{"version":3,"sources":["api/runtime.ts","assets/nsi-logo.png","assets/nsi_logo_white.png","assets/IFAPME_logo.png","assets/IFAPME_WALTER_logo.png","assets/IFAPME_WALTER_logo_test.png","assets/IFAPME_HOPE_logo.png","assets/IFAPME_HOPE_logo_test.png","assets/header_faces.png","assets/logo-eid.png","assets/logo-on-eid.png","assets/logo-no-eid.png","assets/logo-update-eid.png","assets/user.png","assets/excel.png","assets/newspaper.png","assets/printing_queue.png","assets/printing_queue_done.png","assets/printing_queue_error.png","assets/printing_queue_loading.png","assets/index.ts","utils/belgianIdValidate.tsx","components/selector/WSelector.tsx","utils/contratStatutColor.ts","api/models/EStatutDemande.ts","apiConfig.ts","components/formGenerator/FGEuroMaskInput.tsx","hooks/useReferential.ts","utils/b64download.tsx","api/models/AggregateKeyInfo.ts","components/formGenerator/FGRouteDirtyChecker.tsx","components/SmallFormGenerator.tsx","contexts/BreadcrumbContext.tsx","contexts/SearchCriteriasContext.tsx","contexts/RouteParamsContext.tsx","contexts/ModifiedByContext.tsx","contexts/PrintingQueueContext.tsx","api/models/DemandeInscriptionEditDto.ts","components/applicationButtons/ButtonContainerStyles.ts","contexts/AuthContext.tsx","hooks/useTl.ts","locales/ELanguages.ts","locales/index.ts","contexts/GlobalDataContext.tsx","components/LocaliteSelect.tsx","components/parcoursFormation/AddParcoursFormationButton.tsx","components/parcoursFormation/SortieReseauButton.tsx","api/models/EAggregateType.ts","api/models/DemandeInscriptionFichierGridDto.ts","api/apis/FormateurHoraireIncoherenceApi.ts","api/apis/RemplacementOccasionnelApi.ts","api/apis/RemplacementSimultaneApi.ts","api/apis/AbsenceApprenantApi.ts","api/apis/AcquisAdmissionApi.ts","api/apis/AcquisIfapmeApi.ts","api/apis/AcquisProfessionnelApi.ts","api/apis/AcquisScolaireApi.ts","api/apis/AcquisScolaireHopeApi.ts","api/apis/AdjointApi.ts","api/apis/AdresseDoublonApi.ts","api/apis/AgrementApi.ts","api/apis/AgrementLocalisationApi.ts","api/apis/AgrementLocalisationClasseApi.ts","api/apis/AgrementMasseValidationApi.ts","api/apis/AnneeReussieApi.ts","api/apis/AnneeScolaireApi.ts","api/apis/ApprenantApi.ts","api/apis/ApprenantAzureApi.ts","api/apis/ApprenantDoublonApi.ts","api/apis/ApprenantFichierApi.ts","api/apis/ApprenantHistoryApi.ts","api/apis/ApprenantRepresentantHopeApi.ts","api/apis/ApprenantRepresentantsApi.ts","api/apis/ApprenantSelectorApi.ts","api/apis/ApprenantStatistiquePresenceApi.ts","api/apis/AssuranceApi.ts","api/apis/AzureApi.ts","api/apis/BulletinApprenantRecaputilatifApi.ts","api/apis/BulletinApprenantTypeApi.ts","api/apis/CalendrierApi.ts","api/apis/CarteIdentiteApi.ts","api/apis/CentreApi.ts","api/apis/ChangementClasseApi.ts","api/apis/ChefEntrepriseApi.ts","api/apis/ChefEntrepriseSelectorApi.ts","api/apis/ClasseApi.ts","api/apis/ClasseApprenantApi.ts","api/apis/ClasseHoraireApi.ts","api/apis/ClasseHoraireCoherenceApi.ts","api/apis/ClasseHoraireIncoherenceApi.ts","api/apis/ClasseHoraireSemestreApi.ts","api/apis/ClasseJureApi.ts","api/apis/ClasseMatiereApi.ts","api/apis/ClasseMiseAJourMasseApi.ts","api/apis/ClasseRemarqueApi.ts","api/apis/ClauseApi.ts","api/apis/ClauseMetierLiesApi.ts","api/apis/CodePostalApi.ts","api/apis/CommissionParitaireApi.ts","api/apis/ConseillerPedagogiqueApi.ts","api/apis/ConseillerPedagogiqueMetiersLiesApi.ts","api/apis/ContactApi.ts","api/apis/ContratApi.ts","api/apis/ContratFichierApi.ts","api/apis/ContratFormateurApi.ts","api/apis/ContratSuspensionApi.ts","api/apis/DashboardApi.ts","api/apis/DegreApi.ts","api/apis/DeliberationMasseApi.ts","api/apis/DeliberationTypeApi.ts","api/apis/DiplomeApi.ts","api/apis/DirectionTerritorialeApi.ts","api/apis/DispenseApi.ts","api/apis/DoublonsApi.ts","api/apis/EcoleApi.ts","api/apis/EntiteCentreApi.ts","api/apis/EnveloppeProjetFinancementApi.ts","api/apis/EnveloppeTypeFinancementApi.ts","api/apis/EvaluationApi.ts","api/apis/ExamenEntreeApi.ts","api/apis/ExperienceProfessionnelleApi.ts","api/apis/ExportApi.ts","api/apis/ExportGapApi.ts","api/apis/ExportGapClassesApi.ts","api/apis/ExportGapFormateurApi.ts","api/apis/ExportGapPrestationApi.ts","api/apis/ExportGapRemplacementApi.ts","api/apis/ExportGapStatApi.ts","api/apis/ExportGapStatsVacataireApi.ts","api/apis/ExportUtilitaireApi.ts","api/apis/FeuillePresenceApi.ts","api/apis/FichierApi.ts","api/apis/FinancementClasseApi.ts","api/apis/ForfaitAuditeurApi.ts","api/apis/FormateurApi.ts","api/apis/FormateurAgrementApi.ts","api/apis/FormateurAzureApi.ts","api/apis/FormateurClasseApi.ts","api/apis/FormateurDesideratumApi.ts","api/apis/FormateurDiplomeApi.ts","api/apis/FormateurDoublonApi.ts","api/apis/FormateurHoraireApi.ts","api/apis/FormateurLocalisationContratApi.ts","api/apis/FormateurMetierAgrementApi.ts","api/apis/FormateurPrestationsContratApi.ts","api/apis/FormateurPrestationsGlobalesApi.ts","api/apis/FormateurProfessionApi.ts","api/apis/FormateurRemplacementApi.ts","api/apis/FormateurSuiviApi.ts","api/apis/FormateurTitreApi.ts","api/apis/FormationApi.ts","api/apis/GestionDroitsApi.ts","api/apis/HealthCheckApi.ts","api/apis/ImpressionApi.ts","api/apis/InscriptionApi.ts","api/apis/InscriptionMasseApi.ts","api/apis/InscriptionSuspensionApi.ts","api/apis/InstitutionApi.ts","api/apis/InstitutionSelectorApi.ts","api/apis/JustificatifAbsenceApi.ts","api/apis/LieuFormationApi.ts","api/apis/LieuFormationAgrementApi.ts","api/apis/LieuFormationFichierApi.ts","api/apis/LieuxCoursApi.ts","api/apis/LocalApi.ts","api/apis/MatiereReferentielApi.ts","api/apis/MetierApi.ts","api/apis/MetierClausesLieesApi.ts","api/apis/MetierConseillersLiesApi.ts","api/apis/MetierLocalisationApi.ts","api/apis/MinervalApi.ts","api/apis/OffreDemandeApi.ts","api/apis/PaiementApi.ts","api/apis/ParcoursFormationApi.ts","api/apis/PaysApi.ts","api/apis/PersonneApi.ts","api/apis/PersonnelTutelleApi.ts","api/apis/PlageHoraireApi.ts","api/apis/PlanLocalisationApi.ts","api/apis/PlanLocalisationClasseApi.ts","api/apis/PrintingQueueApi.ts","api/apis/ProfessionFormateurApi.ts","api/apis/ProjetFinancementApi.ts","api/apis/RapportHopeApi.ts","api/apis/ReferentialApi.ts","api/apis/ReferentielApi.ts","api/apis/RemplacementApi.ts","api/apis/RemplacementDefinitiveApi.ts","api/apis/ReportApi.ts","api/apis/RepresentantApi.ts","api/apis/RepresentantApprenantLiesApi.ts","api/apis/RepresentantDoublonApi.ts","api/apis/RepresentantSelectorApi.ts","api/apis/SecteurApi.ts","api/apis/SecteurHomogeneApi.ts","api/apis/SecteurMetierMetierLiesApi.ts","api/apis/ServiceApi.ts","api/apis/ServiceTutelleApi.ts","api/apis/ServiceTutelleLocaliteApi.ts","api/apis/ServiceTutelleUserLieApi.ts","api/apis/SiegeLieuSuiviFichierApi.ts","api/apis/SiegeSocialApi.ts","api/apis/SiegeSocialFichierApi.ts","api/apis/SiegeSocialSelectorApi.ts","api/apis/SiegeSocialSuiviApi.ts","api/apis/SmsApi.ts","api/apis/SmsSuiviApi.ts","api/apis/SmsUtilitaireApi.ts","api/apis/SocieteExterneApi.ts","api/apis/SoldeApprenantApi.ts","api/apis/SpecificiteCoursApi.ts","api/apis/StadeApi.ts","api/apis/StatutApprenantApi.ts","api/apis/StatutSocialApi.ts","api/apis/SuiviApi.ts","api/apis/SuiviApprenantApi.ts","api/apis/SuiviFichierApi.ts","api/apis/SuiviSiegeLieuApi.ts","api/apis/SystemApi.ts","api/apis/TitrePedagogiqueApi.ts","api/apis/TuteurApi.ts","api/apis/TypeBulletinApi.ts","api/apis/TypeCoursApi.ts","api/apis/TypeEnseignementApi.ts","api/apis/TypeEvaluationApi.ts","api/apis/TypeFinancementApi.ts","api/apis/UniteActiviteApi.ts","api/apis/UsersApi.ts","api/apis/UsersCentresLiesApi.ts","api/apis/UsersServicesLiesApi.ts","api/apis/UtilisateurApi.ts","api/apis/VisiteApi.ts","api/apis/VisiteClasseApi.ts","pages/cours/formateur/list/FormateurListPage.tsx","pages/cours/formateur/item/signaletique/FormateurSignaletique.tsx","pages/cours/formateur/item/activiteProfessionelles/item/ActiviteProfessionelleDiplomePage.tsx","pages/cours/formateur/item/activiteProfessionelles/item/ActiviteProfessionnelleProfessionPage.tsx","pages/cours/formateur/item/activiteProfessionelles/item/ActiviteProfessionnelleTitrePage.tsx","pages/cours/formateur/item/activiteProfessionelles/list/ActiviteProfessionnelleProfessionListPage.tsx","pages/cours/formateur/item/activiteProfessionelles/list/ActiviteProfessionelleDiplomeListPage.tsx","pages/cours/formateur/item/activiteProfessionelles/list/ActiviteProfessionnelleTitreListPage.tsx","pages/cours/formateur/item/activiteProfessionelles/ActiviteProfessionnellesListPage.tsx","pages/cours/formateur/item/activiteProfessionelles/ActiviteProfessionelleSwitch.tsx","pages/cours/formateur/item/administratif/FormateurAdministratifItemPage.tsx","pages/cours/formateur/item/localisation/FormateurLocalisationListPage.tsx","pages/cours/formateur/item/localisation/FormateurLocalisationItemPage.tsx","pages/cours/formateur/item/localisation/FormateurLocalisationSwitch.tsx","pages/cours/formateur/item/preferenceHoraire/FormateurPreferenceHoraireListPage.tsx","pages/cours/formateur/item/preferenceHoraire/FormateurPreferenceHoraireDetailPage.tsx","pages/cours/formateur/item/preferenceHoraire/FormateurPreferenceHoraireSwitch.tsx","pages/cours/formateur/item/prestations/FormateurPrestationsGlobales.tsx","pages/cours/formateur/item/prestations/FormateurPrestationsContrat.tsx","pages/cours/formateur/item/prestations/FormateurPresations.tsx","pages/cours/formateur/item/remplacement/FormateurRemplacementListPage.tsx","pages/cours/formateur/item/signaletique/FormateurSignaletiqueDoublons.tsx","pages/cours/formateur/item/signaletique/FormateurSignaletiqueSwitch.tsx","pages/cours/formateur/item/sms/FormateurSMS.tsx","pages/cours/formateur/item/suivi/FormateurSuiviListPage.tsx","pages/cours/formateur/item/suivi/FormateurSuiviItemPage.tsx","pages/cours/formateur/item/suivi/FormateurSuiviSwitch.tsx","pages/cours/formateur/item/FormateurItemPage.tsx","pages/cours/formateur/item/suivi/FormateurSuiviDocumentUploadDialog.tsx","pages/cours/formateur/item/suivi/FormateurSuiviDocumentEditDialog.tsx","pages/cours/formateur/item/agrement/FormateurAgrementList.tsx","pages/cours/formateur/item/agrement/FormateurAgrementsMetiersList.tsx","pages/cours/formateur/item/agrement/FormateurAgrementTabs.tsx","pages/cours/formateur/item/agrement/FormateurAgrementMetierSelector.tsx","pages/cours/formateur/item/agrement/FormateurAgrementSwitch.tsx","pages/cours/formateur/item/agrement/FormateurAgrementDetail.tsx","pages/cours/formateur/item/classe/FormateurClasseSearchPage.tsx","pages/cours/formateur/item/horaire/FormateurHoraireGrid.tsx","pages/cours/formateur/item/horaire/FormateurHoraireIncoherenceGrid.tsx","pages/cours/formateur/item/horaire/FormateurHoraire.tsx","pages/cours/formateur/item/azure/FormateurAzure.tsx","pages/cours/formateur/item/azure/FormateurActifCentreTable.tsx","app-navigation.ts","locales/ETLCodes.ts","api/models/ApprenantDoublonSearch.ts","api/models/FcbClasseMatiereDto.ts","api/apis/DemandeApprenantApi.ts","api/apis/VisiteFormateurApi.ts","contexts/DialogContext.tsx","contexts/BeIdCardContext.tsx","contexts/EventsContext.tsx","components/AppBreadcrumb.tsx","components/personTooltip/ToolTipContent.tsx","components/spreadsheet/JExcel/JExcelUtils.ts","components/parcoursFormation/AddParcoursFormationDialog.tsx","components/parcoursFormation/SortieReseauDialog.tsx","pages/cours/apprenant/list/ApprenantListPage.tsx","pages/cours/apprenant/list/CopReassignmentDialog.tsx","pages/cours/apprenant/list/PriReassignmentDialog.tsx","pages/cours/apprenant/list/AriReassignmentDialog.tsx","pages/cours/apprenant/list/DownloadAvisValidesDialog.tsx","pages/cours/apprenant/item/absence/list/ApprenantAbsenceStatistiquePage.tsx","pages/cours/apprenant/item/absence/list/ApprenantDateAbsenceListPage.tsx","pages/cours/apprenant/item/absence/list/ApprenantAbsenceListPage.tsx","pages/cours/apprenant/item/absence/ApprenantAbsence.tsx","pages/cours/apprenant/item/acquis/AcquisScolaireTable.tsx","pages/cours/apprenant/item/acquis/EcoleSelectModal.tsx","pages/cours/apprenant/item/acquis/ExamenEntreeTable.tsx","pages/cours/apprenant/item/acquis/ApprenantAcquisDetail.tsx","pages/cours/apprenant/item/acquis/ExamenEntreeDetail.tsx","pages/cours/apprenant/item/acquis/AcquisScolaireDetail.tsx","pages/cours/apprenant/item/acquis/ApprenantAcquis.tsx","pages/cours/apprenant/item/acquisProfessionnel/ApprenantAcquisProfessionnelDetail.tsx","pages/cours/apprenant/item/acquisProfessionnel/ApprenantAcquisProfessionnelSearch.tsx","pages/cours/apprenant/item/acquisProfessionnel/ApprenantAcquisProfessionnel.tsx","pages/cours/apprenant/item/finance/PaiementsSearchTable.tsx","pages/cours/apprenant/item/finance/SoldeSearchTable.tsx","pages/cours/apprenant/item/finance/ApprenantFinanceDetail.tsx","pages/cours/apprenant/item/finance/ApprenantFinancePaiementDetail.tsx","pages/cours/apprenant/item/finance/ApprenantFinance.tsx","pages/cours/apprenant/item/finance/MinervalSearchTable.tsx","pages/cours/apprenant/item/formation/ApprenantFormationDetail.tsx","pages/cours/apprenant/item/formation/ApprenantFormationSearch.tsx","pages/cours/apprenant/item/formation/ApprenantFormation.tsx","pages/cours/apprenant/item/horaire/ApprenantHoraire.tsx","pages/cours/apprenant/item/inscriptions/changementClasse/ChangementClasseList.tsx","pages/cours/apprenant/item/inscriptions/changementClasse/ChangementClasseDetail.tsx","pages/cours/apprenant/item/inscriptions/changementClasse/ChangementClasseSwitch.tsx","pages/cours/apprenant/item/inscriptions/dispense/DispenseDetail.tsx","pages/cours/apprenant/item/inscriptions/dispense/DispenseList.tsx","pages/cours/apprenant/item/inscriptions/dispense/DispenseSwitch.tsx","pages/cours/apprenant/item/inscriptions/InscriptionDocumentUploadDialog.tsx","pages/cours/apprenant/item/inscriptions/Inscription.tsx","pages/cours/apprenant/item/inscriptions/ApprenantInscriptionDetail.tsx","pages/cours/apprenant/item/inscriptions/InscriptionAbandonDetailDialog.tsx","pages/cours/apprenant/item/inscriptions/InscriptionSuspensionMultipleDialog.tsx","pages/cours/apprenant/item/inscriptions/ApprenantInscriptionSearch.tsx","pages/cours/apprenant/item/inscriptions/ApprenantInscription.tsx","pages/cours/apprenant/item/justificatifs/ApprenantJustificatifsSearch.tsx","pages/cours/apprenant/item/justificatifs/ApprenantJustificatifDetail.tsx","pages/cours/apprenant/item/justificatifs/ApprenantJustificatifs.tsx","pages/cours/apprenant/item/recherchePatron/ApprenantRecherchePatronDetailPage.tsx","pages/cours/apprenant/item/recherchePatron/ApprenantRecherchePatronListPage.tsx","pages/cours/apprenant/item/recherchePatron/ApprenantRecherchePatron.tsx","pages/cours/apprenant/item/representants/ApprenantRepresentantInstitutionDetail.tsx","pages/cours/apprenant/item/representants/ApprenantRepresentantPersonneDetail.tsx","pages/cours/apprenant/item/representants/ApprenantRepresentantGlobal.tsx","pages/cours/apprenant/item/representants/ApprenantRepresentantsSearchPage.tsx","pages/cours/apprenant/item/representants/ApprenantRepresentants.tsx","pages/cours/apprenant/item/resultatType/ApprenantBulletinRecapitulatifList.tsx","pages/cours/apprenant/item/resultatType/bulletins/ApprenantBulletinTabs.tsx","pages/cours/apprenant/item/resultatType/bulletins/ApprenantBulletinDetail.tsx","pages/cours/apprenant/item/resultatType/bulletins/ApprenantBulletinDetailList.tsx","pages/cours/apprenant/item/resultatType/bulletins/ApprenantBulletinSwitch.tsx","pages/cours/deliberationType/item/bulletins/DeliberationBulletinTabs.tsx","pages/cours/deliberationType/item/bulletins/DeliberationBulletinDetail.tsx","pages/cours/deliberationType/item/bulletins/DeliberationBulletinDetailList.tsx","pages/cours/deliberationType/item/bulletins/DeliberationBulletinSwitch.tsx","pages/cours/deliberationType/item/bulletins/DeliberationBulletinDeliberationGrid.tsx","pages/cours/deliberationType/item/bulletins/DeliberationBulletinEvaluationGrid.tsx","pages/cours/deliberationType/item/bulletins/DeliberationBulletinDeliberation2SessGrid.tsx","pages/cours/deliberationType/item/bulletins/DeliberationBulletinCaterorySumGrid.tsx","pages/cours/apprenant/item/resultatType/bulletins/ApprenantBulletinDeliberationGrid.tsx","pages/cours/apprenant/item/resultatType/bulletins/ApprenantBulletinEvaluationGrid.tsx","pages/cours/apprenant/item/resultatType/bulletins/ApprenantBulletinDeliberation2SessGrid.tsx","pages/cours/apprenant/item/resultatType/ApprenantResultatType.tsx","pages/cours/apprenant/item/resultatType/ApprenantResultatTypeTabs.tsx","pages/cours/apprenant/item/sms/ApprenantSMS.tsx","components/personTooltip/RepresentantToolTip.tsx","pages/cours/apprenant/item/signaletique/ApprenantSignaletique.tsx","pages/cours/apprenant/item/suiviApprenant/ApprenantSuiviListPage.tsx","pages/cours/apprenant/item/validationCE/ApprenantValidationCEDetailPage.tsx","pages/cours/apprenant/item/validationCE/ApprenantValidationCEListPage.tsx","pages/cours/apprenant/item/validationCE/ApprenantValidationCE.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/BilanCompetenceDocumentUploadDialog.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/BilanCompetenceDocumentEditDialog.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/DossierAdmissionDocumentUploadDialog.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/DossierAdmissionDocumentEditDialog.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/ExamenEntreeFceDocumentUploadDialog.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/ExamenEntreeFceDocumentEditDialog.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/ExamenEntreeDocumentUploadDialog.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/ExamenEntreeDocumentEditDialog.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/BilanCompetenceDetail.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/ExamenEntreeFceDetail.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/DossierAdmissionDetail.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/ExamenEntreeHopeDetail.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/AcquisAdmissionGlobal.tsx","pages/cours/apprenant/item/acquis/acquisAdmission/AcquisAdmissionList.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/AcquisScolaireList.tsx","pages/cours/apprenant/item/acquis/experienceProfessionnelle/ExperienceProfessionnelleList.tsx","pages/cours/apprenant/item/acquis/AcquisGlobal.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/AnneeFormationSuivieDocumentUploadDialog.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/AnneeFormationSuivieDocumentEditDialog.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/AnneeFormationSuivieIfapmeDocumentUploadDialog.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/AnneeFormationSuivieIfapmeDocumentEditDialog.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/DiplomeCertificationDocumentUploadDialog.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/DiplomeCertificationDocumentEditDialog.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/DiplomeCertificationIfapmeDocumentUploadDialog.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/DiplomeCertificationIfapmeDocumentEditDialog.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/AnneeFormationSuivieDetail.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/DiplomeCertificationDetail.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/AcquisScolaireGlobal.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/AnneeFormationSuivieIfapmeDetail.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/DiplomeCertificationIfapmeDetail.tsx","pages/cours/apprenant/item/acquis/acquisScolaire/AcquisScolaireGlobalIfapme.tsx","pages/cours/apprenant/item/acquis/experienceProfessionnelle/ExperienceProfessionnelleDocumentUploadDialog.tsx","pages/cours/apprenant/item/acquis/experienceProfessionnelle/ExperienceProfessionnelleDocumentEditDialog.tsx","pages/cours/apprenant/item/acquis/experienceProfessionnelle/ExperienceProfessionnelleDetail.tsx","pages/cours/apprenant/item/acquis/AcquisSwitch.tsx","pages/cours/apprenant/item/parcoursFormation/demandeInscription/CentresDemandeSelect.tsx","pages/cours/apprenant/item/parcoursFormation/demandeInscription/DemandeInscriptionCreate.tsx","pages/cours/apprenant/item/parcoursFormation/demandeInscription/DemandeInscriptionDocumentUploadDialog.tsx","pages/cours/apprenant/item/parcoursFormation/demandeInscription/DemandeInscriptionSave.tsx","pages/cours/apprenant/item/parcoursFormation/demandeInscription/DemandeInscription.tsx","pages/cours/apprenant/item/parcoursFormation/ParcoursFormationHistorique.tsx","pages/cours/apprenant/item/parcoursFormation/ParcoursInterneList.tsx","pages/cours/apprenant/item/parcoursFormation/ParcoursFormationDetailPage.tsx","pages/cours/apprenant/item/parcoursFormation/ParcoursFormation.tsx","pages/cours/apprenant/item/resultatType/ApprenantResultatTypeSwitch.tsx","pages/cours/apprenant/item/statut/ApprenantStatutListPage.tsx","pages/cours/apprenant/item/statut/ApprenantStatut.tsx","pages/cours/apprenant/item/suiviApprenant/ApprenantSuiviDetailPage.tsx","pages/cours/apprenant/item/suiviApprenant/SuiviApprenantDetailPage.tsx","pages/cours/apprenant/item/suiviApprenant/SuiviApprenantSearchPage.tsx","pages/cours/apprenant/item/suiviApprenant/SuiviApprenant.tsx","pages/cours/apprenant/item/ApprenantItemPage.tsx","pages/cours/apprenant/item/suiviApprenant/ApprenantSuivi.tsx","pages/cours/apprenant/item/suiviApprenant/ApprenantSuiviForm.tsx","pages/cours/apprenant/item/suiviApprenant/suiviAction/SuiviApprenantActionDialog.tsx","pages/cours/apprenant/item/signaletique/ApprenantSignaletiqueDoublons.tsx","pages/cours/apprenant/item/signaletique/ApprenantSignaletiqueSwitch.tsx","pages/cours/apprenant/item/azure/ApprenantActifCentreTable.tsx","pages/cours/apprenant/item/azure/ApprenantAzure.tsx","pages/cours/apprenant/item/history/ApprenantHistory.tsx","pages/cours/apprenant/item/contrats/ApprenantContratList.tsx","pages/cours/apprenant/item/contrats/ContratRuptureDialog.tsx","pages/cours/apprenant/item/lieuFormation/ApprenantLieuFormationList.tsx","pages/cours/apprenant/item/suiviApprenant/suiviAction/SuiviActionDialog.tsx","pages/cours/apprenant/item/suiviApprenant/SuiviApprenantForm.tsx","pages/cours/apprenant/item/inscriptions/InscriptionDateConvocationSelector.tsx","pages/cours/apprenant/item/passportDrive/ApprenantPassportDrive.tsx","pages/cours/apprenant/item/signaletique/ApprenantSearchSocieteExterne.tsx","pages/cours/apprenant/item/documents/ApprenantAvisAttestPFDocuments.tsx","pages/cours/apprenant/item/documents/ApprenantDocuments.tsx","pages/cours/apprenant/item/documents/ApprenantAutresDocuments.tsx","pages/cours/apprenant/item/documents/ApprenantDocumentsReglementaires.tsx","pages/cours/apprenant/item/documents/ApprenantDocumentUploadDialog.tsx","pages/cours/apprenant/item/documents/ApprenantDocumentEditDialog.tsx","pages/cours/apprenant/item/suiviApprenant/SuiviDocumentEditDialog.tsx","pages/cours/apprenant/item/suiviApprenant/SuiviDocumentUploadDialog.tsx","pages/cours/apprenant/item/suiviApprenant/SuiviWalterDocumentEditDialog.tsx","pages/cours/apprenant/item/suiviApprenant/SuiviWalterDocumentUploadDialog.tsx","pages/cours/apprenant/item/inscriptions/suspensions/InscriptionSuspensionList.tsx","pages/cours/apprenant/item/inscriptions/suspensions/InscriptionSuspensionDetailDialog.tsx","pages/cours/apprenant/item/inscriptions/suspensions/InscriptionSuspensionSwitch.tsx","pages/cours/representant/item/RepresentantApprenantLiesListPage.tsx","pages/cours/representant/item/RepresentantAppernantLiesSwitch.tsx","pages/cours/representant/item/RepresentantSwitch.tsx","pages/cours/representant/item/RepresentantItemPage.tsx","pages/cours/representant/item/RepresentantDetailPage.tsx","pages/cours/representant/item/RepresentantDetailDoublons.tsx","pages/cours/representant/list/RepresentantListPage.tsx","pages/cours/calendrier/list/CalendrierListPage.tsx","pages/cours/calendrier/item/CalendrierDatePicker.tsx","pages/cours/calendrier/item/CalendrierDetailPage.tsx","pages/cours/calendrier/item/CalendrierItemPage.tsx","pages/cours/calendrier/global/CalendrierGlobalClassesSearch.tsx","pages/cours/calendrier/global/CalendrierGlobalFormateursSearch.tsx","pages/cours/calendrier/global/CalendrierGlobalVisitesSearch.tsx","pages/cours/calendrier/global/CalendrierGlobalPage.tsx","pages/cours/classe/list/ClasseListPage.tsx","pages/cours/classe/item/agrementLocalisation/ClasseAgrementLocalisationList.tsx","pages/cours/classe/item/agrementLocalisation/ClasseAgrementLocalisationFinanceForm.tsx","pages/cours/classe/item/agrementLocalisation/ClasseAgrementLocalisationItemPage.tsx","pages/cours/classe/item/agrementLocalisation/ClasseAgrementLocalisationFinanceDetailPage.tsx","pages/cours/classe/item/agrementLocalisation/ClasseAgrementLocalisationSwitch.tsx","pages/cours/classe/item/apprenant/ClasseApprenantList.tsx","pages/cours/classe/item/coherenceHoraire/ClasseCoherenceHoraireSearch.tsx","pages/cours/classe/item/coherenceHoraire/ClasseCoherenceHoraireSemestreSearch.tsx","pages/cours/classe/item/coherenceHoraire/ClasseIncoherencesSearch.tsx","pages/cours/classe/item/coherenceHoraire/ClasseCoherenceHorairePage.tsx","pages/cours/classe/item/copieClasse/CopieClassePage.tsx","pages/cours/classe/item/detail/ClasseDetail.tsx","pages/cours/classe/item/examen/ExamenPratiqueItemPage.tsx","pages/cours/classe/item/horaire/ClasseHoraireCalendrierItem.tsx","utils/randomColor.tsx","pages/cours/classe/item/horaire/jexcel/JExcelView.tsx","pages/cours/classe/item/horaire/ClasseHoraireItemPage.tsx","pages/cours/classe/item/horaire/ClasseHorairePage.tsx","pages/cours/classe/item/horaire/ClasseHoraireMatiereList.tsx","pages/cours/classe/item/horaire/ClasseHoraireRemarque.tsx","pages/cours/classe/item/horaire/actions/AjoutDate.tsx","pages/cours/classe/item/horaire/actions/CalculHoraireManquant.tsx","pages/cours/classe/item/horaire/actions/DeleteHoraire.tsx","pages/cours/classe/item/horaire/actions/FermetureClasse.tsx","pages/cours/classe/item/horaire/ClasseHoraireActions.tsx","pages/cours/classe/item/jure/ClasseJureItemPage.tsx","pages/cours/classe/item/matiere/ClasseMatiereItemPage.tsx","pages/cours/classe/item/matiere/ClasseMatiereListPage.tsx","pages/cours/classe/item/matiere/section/ClasseMatiereListEditor.tsx","pages/cours/classe/item/matiere/section/ClasseMatiereContratListEditor.tsx","pages/cours/classe/item/matiere/section/ClasseMatiereTextEditor.tsx","pages/cours/classe/item/matiere/section/ClasseMatiereCutPage.tsx","pages/cours/classe/item/matiere/assignMultiple/ClasseMatiereAssignMultiplePage.tsx","pages/cours/classe/item/matiere/ClasseMatiereSwitch.tsx","pages/cours/classe/item/ClasseItemPage.tsx","pages/cours/inscriptionMasse/item/InscriptionMasseAddModal.tsx","pages/cours/inscriptionMasse/item/InscriptionMasseTable.tsx","pages/cours/inscriptionMasse/item/InscriptionMasseItemPage.tsx","pages/cours/classeMiseAJour/ClasseMiseAJourPage.tsx","pages/cours/visiteExterieure/list/VisiteExterieureListPage.tsx","pages/cours/visiteExterieure/item/classeLiee/VisiteClasseLieeListPage.tsx","pages/cours/visiteExterieure/item/classeLiee/VisiteClasseLieeSelector.tsx","pages/cours/visiteExterieure/item/classeLiee/VisiteClasseLieeSwitch.tsx","pages/cours/visiteExterieure/item/formateurLie_/VisiteFormateurLieListPage.tsx","pages/cours/visiteExterieure/item/formateurLie_/VisiteFormateurLieSelector.tsx","pages/cours/visiteExterieure/item/formateurLie_/VisiteFormateurLieSwitch.tsx","pages/cours/visiteExterieure/item/VisiteHoraire.tsx","pages/cours/visiteExterieure/item/VisiteInformationPage.tsx","pages/cours/visiteExterieure/item/VisiteExterieureItemPage.tsx","pages/cours/evaluation/list/EvaluationListPage.tsx","pages/cours/evaluation/item/EvaluationApprenantList.tsx","pages/cours/evaluation/item/EvaluationDetailPage.tsx","pages/cours/evaluation/item/EvaluationItemPage.tsx","pages/cours/agrementClasse/list/AgrementClasseListPage.tsx","pages/cours/agrementClasse/item/AgrementClasseDetailPage.tsx","pages/cours/agrementClasse/item/AgrementClasseItemPage.tsx","pages/cours/localisationClasse/list/LocalisationClasseListPage.tsx","pages/cours/localisationClasse/item/LocalisationClasseDetailPage.tsx","pages/cours/localisationClasse/item/LocalisationClasseItemPage.tsx","pages/cours/feuillePresence/list/FeuillePresencePrintDialog.tsx","pages/cours/feuillePresence/list/FeuillePresenceListPage.tsx","pages/cours/feuillePresence/item/FeuillePresenceDetailTable.tsx","pages/cours/feuillePresence/item/FeuillePresenceDetailPage.tsx","pages/cours/feuillePresence/item/FeuillePresenceItemPage.tsx","pages/cours/remplacement/list/RemplacementListPage.tsx","pages/cours/remplacement/item/RemplacementDetail/RemplacementDefinitiveDetailPage.tsx","pages/cours/remplacement/item/RemplacementDetail/RemplacementDefinitiveTablePage.tsx","pages/cours/remplacement/item/RemplacementDetail/RemplacementOccasionnelDetailPage.tsx","pages/cours/remplacement/item/RemplacementDetail/RemplacementOccasionnelTablePage.tsx","pages/cours/remplacement/item/RemplacementDetail/RemplacementSimultaneDetailPage.tsx","pages/cours/remplacement/item/RemplacementDetail/RemplacementSimultaneTablePage.tsx","pages/cours/remplacement/item/RemplacementDetail/RemplacementSwitch.tsx","pages/cours/remplacement/item/RemplacementGeneralPage.tsx","pages/cours/remplacement/item/RemplacementItemPage.tsx","pages/cours/deliberationType/list/DeliberationTypeListPage.tsx","pages/cours/deliberationType/item/DeliberationRecapitulatifList.tsx","pages/cours/deliberationType/item/Deliberation.tsx","pages/cours/deliberationType/item/DeliberationTabs.tsx","pages/cours/deliberationType/item/DeliberationItemPage.tsx","pages/cours/deliberationType/item/DeliberationSwitch.tsx","pages/cours/validationMasse/item/ValidationMasseItemPage.tsx","pages/cours/validationMasse/item/ValidationMasseTable.tsx","pages/cours/validationMasse/item/ValidationMasseAddModal.tsx","pages/cours/siegeSocial/list/SiegeSocialList.tsx","pages/cours/siegeSocial/list/LieuFormationGrid.tsx","pages/cours/siegeSocial/item/contacts/item/SiegeSocialContact.tsx","pages/cours/siegeSocial/item/contacts/item/SiegeSocialContactDoublons.tsx","pages/cours/siegeSocial/item/contacts/list/SiegeSocialContactListPage.tsx","pages/cours/siegeSocial/item/contacts/SiegeSocialContactSwitch.tsx","pages/cours/siegeSocial/item/documents/SiegeSocialDocuments.tsx","pages/cours/siegeSocial/item/documents/SiegeSocialDocumentUploadDialog.tsx","pages/cours/siegeSocial/item/documents/SiegeSocialDocumentEditDialog.tsx","pages/cours/siegeSocial/item/SiegeSocialItemPage.tsx","utils/bceNumberValidate.tsx","pages/cours/siegeSocial/item/signaletique/SiegeSocialSignaletique.tsx","pages/cours/siegeSocial/item/lieuxFormation/LieuxFormationListPage.tsx","pages/cours/siegeSocial/item/history/SiegeSocialHistory.tsx","pages/cours/siegeSocial/item/chefsEntreprise/list/SiegeSocialChefEntrepriseListPage.tsx","pages/cours/siegeSocial/item/chefsEntreprise/item/SiegeSocialChefEntreprise.tsx","pages/cours/siegeSocial/item/chefsEntreprise/item/SiegeSocialChefEntrepriseDoublons.tsx","pages/cours/siegeSocial/item/chefsEntreprise/SiegeSocialChefEntrepriseSwitch.tsx","pages/cours/siegeSocial/item/assurances/SiegeSocialAssuranceList.tsx","pages/cours/siegeSocial/item/assurances/SiegeSocialAssuranceDialog.tsx","pages/cours/siegeSocial/item/suivis/list/SiegeSocialSuiviList.tsx","pages/cours/siegeSocial/item/suivis/item/SiegeSocialSuiviItem.tsx","pages/cours/siegeSocial/item/suivis/item/SiegeLieuSuiviActionDialog.tsx","pages/cours/siegeSocial/item/suivis/item/SiegeLieuSuivi.tsx","pages/cours/siegeSocial/item/suivis/item/SiegeLieuSuiviDocumentUploadDialog.tsx","pages/cours/siegeSocial/item/suivis/item/SiegeLieuSuiviDocumentEditDialog.tsx","pages/cours/siegeSocial/item/suivis/SiegeSocialSuiviSwitch.tsx","pages/cours/lieuFormation/item/signaletique/LieuFormationSignaletique.tsx","pages/cours/lieuFormation/item/signaletique/LieuFormationAgrementGrid.tsx","pages/cours/lieuFormation/item/history/LieuFormationHistory.tsx","pages/cours/lieuFormation/item/contacts/LieuFormationContactSwitch.tsx","pages/cours/lieuFormation/item/contacts/item/LieuFormationContact.tsx","pages/cours/lieuFormation/item/contacts/item/LieuFormationContactDoublons.tsx","pages/cours/lieuFormation/item/contacts/list/LieuFormationContactListPage.tsx","pages/cours/lieuFormation/item/documents/LieuFormationDocuments.tsx","pages/cours/lieuFormation/item/documents/LieuFormationDocumentUploadDialog.tsx","pages/cours/lieuFormation/item/documents/LieuFormationDocumentEditDialog.tsx","pages/cours/lieuFormation/item/LieuFormationItemPage.tsx","pages/cours/lieuFormation/item/tuteurs/list/LieuFormationTuteurListPage.tsx","pages/cours/lieuFormation/item/tuteurs/item/LieuFormationTuteur.tsx","pages/cours/lieuFormation/item/tuteurs/item/LieuFormationTuteurDoublons.tsx","pages/cours/lieuFormation/item/tuteurs/LieuFormationTuteurSwitch.tsx","pages/cours/lieuFormation/item/contrats/LieuFormationContrats.tsx","pages/cours/lieuFormation/item/contrats/LieuFormationAvenantsGrid.tsx","pages/cours/lieuFormation/item/agrements/list/LieuFormationAgrementList.tsx","pages/cours/lieuFormation/item/agrements/list/LieuFormationAgrementMultipleVisiteDialog.tsx","pages/cours/lieuFormation/item/agrements/list/LieuFormationAgrementDemandeSectorielleDialog.tsx","pages/cours/lieuFormation/item/agrements/list/LieuFormationAgrementDecisionDialog.tsx","pages/cours/lieuFormation/item/agrements/item/LieuFormationAgrementItem.tsx","pages/cours/lieuFormation/item/agrements/item/LieuFormationAgrementSuspensionDetailDialog.tsx","pages/cours/lieuFormation/item/agrements/item/LieuFormationAgrementRetraitDialog.tsx","pages/cours/lieuFormation/item/agrements/item/LieuFormationAgrementVisite.tsx","pages/cours/lieuFormation/item/agrements/item/LieuFormationAgrementVisiteDialog.tsx","pages/cours/lieuFormation/item/agrements/item/LieuFormationAgrementDemandeSectorielle.tsx","pages/cours/lieuFormation/item/agrements/item/LieuFormationAgrementDecision.tsx","pages/cours/lieuFormation/item/agrements/LieuFormationAgrementSwitch.tsx","pages/cours/lieuFormation/item/suivis/LieuFormationSuiviSwitch.tsx","pages/cours/lieuFormation/item/suivis/item/LieuFormationSuiviItem.tsx","pages/cours/lieuFormation/item/suivis/list/LieuFormationSuiviList.tsx","pages/cours/lieuFormation/item/offres/LieuFormationOffres.tsx","pages/cours/institution/item/InstitutionApprenantLiesListPage.tsx","pages/cours/institution/item/InstitutionDetail.tsx","pages/cours/institution/item/InstitutionItemPage.tsx","pages/cours/institution/list/InstitutionSearchPage.tsx","pages/cours/suivi/list/SuiviSearchPage.tsx","pages/cours/suivi/item/SuiviDetail.tsx","pages/cours/suivi/item/SuiviItemPage.tsx","pages/cours/suivi/item/ApprenantMultipleSuiviPage.tsx","pages/cours/suivi/item/documents/SuiviDocuments.tsx","pages/cours/tuteur/list/TuteurListPage.tsx","pages/cours/tuteur/item/TuteurItemPage.tsx","pages/cours/tuteur/item/detail/TuteurDetailSwitch.tsx","pages/cours/tuteur/item/detail/TuteurDetailDoublons.tsx","pages/cours/tuteur/item/detail/TuteurDetail.tsx","pages/cours/tuteur/item/lieuxFormation/TuteurLieuxFormation.tsx","pages/cours/tuteur/item/history/TuteurHistory.tsx","pages/cours/tuteur/item/contrats/TuteurContrats.tsx","pages/cours/tuteur/item/contrats/TuteurLieuFormationSelectDialog.tsx","pages/cours/chefEntreprise/item/sieges/CESiegesSociaux.tsx","pages/cours/chefEntreprise/item/ChefEntrepriseItemPage.tsx","pages/cours/chefEntreprise/item/details/ChefEntrepriseDetailSwitch.tsx","pages/cours/chefEntreprise/item/details/ChefEntrepriseDetail.tsx","pages/cours/chefEntreprise/item/details/ChefEntrepriseDetailDoublons.tsx","pages/cours/chefEntreprise/list/ChefEntrepriseListPage.tsx","pages/cours/contrat/item/ContratItemPage.tsx","pages/cours/contrat/item/suspension/ContratSuspensionsPage.tsx","pages/cours/contrat/item/suspension/ContratSuspensionDetailDialog.tsx","pages/cours/contrat/item/detail/ContratDetailPage.tsx","pages/cours/contrat/item/detail/ContratLieuFormationTuteursGrid.tsx","pages/cours/contrat/item/detail/ContratBaremeList.tsx","pages/cours/contrat/item/detail/alternance/ContratAlternancePanel.tsx","pages/cours/contrat/item/detail/pratiquePro/ContratPratiqueProfessionnellePanel.tsx","pages/cours/contrat/item/detail/decouverteMetier/ContratDecouverteMetierPanel.tsx","pages/cours/contrat/item/detail/falt/ContratFaltPanel.tsx","pages/cours/contrat/item/detail/conventionStage/ContratConventionStagePanel.tsx","pages/cours/contrat/item/detail/HeuresHebdomadairesSelector.tsx","pages/cours/contrat/item/detail/stageObservation/StageObservationPanel.tsx","pages/cours/contrat/item/detail/alternanceCommun/ContratAlternanceCommunPanel.tsx","pages/cours/contrat/item/detail/conventionStageExterne/ContratConventionStageExternePanel.tsx","pages/cours/contrat/item/history/ContratHistory.tsx","pages/cours/contrat/item/avenants/ContratAvenantsSwitch.tsx","pages/cours/contrat/item/avenants/list/ContratAvenantsList.tsx","pages/cours/contrat/item/avenants/item/ContratAvenantsItem.tsx","pages/cours/contrat/item/documents/ContratDocuments.tsx","pages/cours/contrat/item/documents/ContratDocumentUploadDialog.tsx","pages/cours/contrat/item/documents/ContratDocumentEditDialog.tsx","pages/cours/contrat/list/ContratListPage.tsx","pages/cours/suiviSiegeLieu/list/SuiviSiegeLieuSearchPage.tsx","pages/cours/contacts/item/ContactItemPage.tsx","pages/cours/contacts/item/details/ContactDetail.tsx","pages/cours/contacts/item/details/ContactDetailDoublons.tsx","pages/cours/contacts/item/details/ContactDetailSwitch.tsx","pages/cours/contacts/item/siegesSociaux/ContactSiegeSociaux.tsx","pages/cours/contacts/item/lieuxFormation/ContactLieuxFormation.tsx","pages/cours/contacts/list/ContactListPage.tsx","utils/nameof_.ts","utils/dateUtils.ts","pages/allReports/impression/list/ImpressionListPage.tsx","pages/allReports/impression/item/ImpressionDetailPage.tsx","pages/allReports/impression/item/permissions/ImpressionAccesPermissionsGrid.tsx","pages/allReports/impression/item/permissions/ImpressionCentrePermissionsGrid.tsx","pages/allReports/impression/item/permissions/ImpressionModulePermissionsGrid.tsx","pages/allReports/impression/item/permissions/ImpressionPermissionsPage.tsx","pages/allReports/impression/item/ImpressionItemPage.tsx","pages/beid/BeidReaderPage.tsx","pages/dashboard/absences/DashboardAbsences.tsx","pages/dashboard/absences/DashboardAbsencesVuDialog.tsx","pages/dashboard/dossiers/DashboardDossiers.tsx","pages/dashboard/dossiers/DashboardDossierSortie.tsx","pages/dashboard/dossiers/DashboardDossierPostFormation.tsx","pages/dashboard/dossiers/DashboardDossierFinAgrement.tsx","pages/dashboard/dossiers/DashboardDossiersRefusSortie.tsx","pages/dashboard/pratiquepro/DashboardPratiquePro.tsx","pages/dashboard/suivis/DashboardSuivis.tsx","pages/dashboard/DashboardPage.tsx","pages/dashboard/DashboardTabTitle.tsx","pages/dashboard/DashboardDossiersTabTitle.tsx","pages/dashboard/inscriptions/DashboardInscriptions.tsx","pages/dashboard/inscriptions/DashboardInscriptionRefuserDialog.tsx","pages/dashboard/suivisSiegeLieu/DashboardSuivisSiegeLieu.tsx","pages/donnees/Administratif/codePostal/item/CodePostalDetailPage.tsx","pages/donnees/Administratif/codePostal/item/CodePostalItemPage.tsx","pages/donnees/Administratif/codePostal/list/CodePostalListPage.tsx","pages/donnees/Administratif/pays/item/PaysDetailPage.tsx","pages/donnees/Administratif/pays/item/PaysItemPage.tsx","pages/donnees/Administratif/pays/list/PaysListPage.tsx","pages/donnees/Administratif/personne/list/PersonneListPage.tsx","pages/donnees/Administratif/personne/item/PersonneItemPage.tsx","pages/donnees/Administratif/personne/item/signaletique/PersonneSignaletique.tsx","pages/donnees/Administratif/personne/item/signaletique/PersonneBankAccountRow.tsx","pages/donnees/Administratif/personne/item/signaletique/replaceDialogs/EmailReplaceDialog.tsx","pages/donnees/Administratif/personne/item/signaletique/replaceDialogs/TelephoneReplaceDialog.tsx","pages/donnees/Administratif/personne/item/history/PersonneHistory.tsx","pages/donnees/Administratif/rapportHope/item/RapportHopeItemPage.tsx","pages/donnees/Administratif/rapportHope/item/detail/RapportHopeDetailPage.tsx","pages/donnees/Administratif/rapportHope/item/permissions/RapportHopePermissionsPage.tsx","pages/donnees/Administratif/rapportHope/item/permissions/RapportHopeAccesPermissionsGrid.tsx","pages/donnees/Administratif/rapportHope/item/permissions/RapportHopeServicePermissionsGrid.tsx","pages/donnees/Administratif/rapportHope/item/permissions/RapportHopeModulePermissionsGrid.tsx","pages/donnees/Administratif/rapportHope/list/RapportHopeListPage.tsx","pages/donnees/Institutions/centreGlobal/item/CentreGlobalItemPage.tsx","pages/donnees/Institutions/centreGlobal/list/CentreGlobalListPage.tsx","pages/donnees/Institutions/centreGlobal/item/CentreGlobalDetailPage.tsx","pages/donnees/Institutions/ecole/list/EcoleListPage.tsx","pages/donnees/Institutions/ecole/item/EcoleItemPage.tsx","pages/donnees/Institutions/ecole/item/EcoleDetailPage.tsx","pages/donnees/Institutions/local/list/LocalListPage.tsx","pages/donnees/Institutions/local/item/LocalItemPage.tsx","pages/donnees/Institutions/local/item/LieuSelect.tsx","pages/donnees/Institutions/local/item/LocalDetailPage.tsx","pages/donnees/Institutions/centre/list/CentreListPage.tsx","pages/donnees/Institutions/centre/item/CentreDetailsTab.tsx","pages/donnees/Institutions/centre/item/CentreHoraireItem.tsx","pages/donnees/Institutions/centre/item/CentreResponsable.tsx","pages/donnees/Institutions/centre/item/CentreItemPage.tsx","pages/donnees/Institutions/centre/item/CentreResponsableAdjointList.tsx","pages/donnees/Institutions/centre/item/CentreLieuxCoursList.tsx","pages/donnees/Institutions/centre/item/CentreLieuxCoursDetails.tsx","pages/donnees/Institutions/centre/item/CentreLieuxCoursItem.tsx","pages/donnees/Institutions/centre/item/CentreHoraireDetails.tsx","pages/donnees/Institutions/centre/item/CentreHoraireList.tsx","pages/donnees/Institutions/directionTerritoriale/list/DirectionTerritorialeListPage.tsx","pages/donnees/Institutions/directionTerritoriale/item/DirectionTerritorialeDetailPage.tsx","pages/donnees/Institutions/directionTerritoriale/item/DirectionTerritorialeItemPage.tsx","pages/donnees/Institutions/serviceTutelle/list/ServiceTutelleListPage.tsx","pages/donnees/Institutions/serviceTutelle/item/ServiceTutelleLocaliteLiePage.tsx","pages/donnees/Institutions/serviceTutelle/item/ServiceTutelleLocaliteLieeSelector.tsx","pages/donnees/Institutions/serviceTutelle/item/ServiceTutelleLocaliteLieeSwitch.tsx","pages/donnees/Institutions/serviceTutelle/item/ServiceTutelleUserLieDialog.tsx","pages/donnees/Institutions/serviceTutelle/item/ServiceTutelleUserLiePage.tsx","pages/donnees/Institutions/serviceTutelle/item/ServiceTutelleItemPage.tsx","pages/donnees/Institutions/serviceTutelle/item/ServiceTutelleDetailPage.tsx","pages/donnees/Institutions/societeExternes/list/SocieteExterneList.tsx","pages/donnees/Institutions/societeExternes/item/SocieteExterneItem.tsx","pages/donnees/Institutions/societeExternes/item/SocieteExterneDetailPage.tsx","pages/donnees/RE/clause/item/ClauseDetailPage.tsx","pages/donnees/RE/clause/item/ClauseMetierLiesPage.tsx","pages/donnees/RE/clause/item/ClauseMetierLiesSelector.tsx","pages/donnees/RE/clause/item/ClauseMetierLiesSwitch.tsx","pages/donnees/RE/clause/item/ClauseItemPage.tsx","pages/donnees/RE/clause/list/ClauseListPage.tsx","pages/donnees/RE/diplome/list/DiplomeListPage.tsx","pages/donnees/RE/diplome/item/DiplomeItemPage.tsx","pages/donnees/RE/diplome/item/DiplomeDetailPage.tsx","pages/donnees/RE/typeEnseignement/item/TypeEnseignementItemPage.tsx","pages/donnees/RE/typeEnseignement/item/TypeEnseignementDetailPage.tsx","pages/donnees/RE/typeEnseignement/list/TypeEnseignementListPage.tsx","pages/donnees/RE/statutSocial/list/StatutSocialListPage.tsx","pages/donnees/RE/statutSocial/item/StatutSocialItemPage.tsx","pages/donnees/RE/statutSocial/item/StatutSocialDetailPage.tsx","pages/donnees/RE/derniereAnneeReussie/list/DerniereAnneeReussieListPage_.tsx","pages/donnees/RE/derniereAnneeReussie/item_/DerniereAnneeReussieDetailPage.tsx","pages/donnees/RE/derniereAnneeReussie/item_/DerniereAnneeReussieItemPage_.tsx","pages/donnees/RH/conseillersPedagogiques/item/ConseillerPedagogiqueDetailPage.tsx","pages/donnees/RH/conseillersPedagogiques/item/ConseillerPedagogiqueMetiersLies.tsx","pages/donnees/RH/conseillersPedagogiques/item/ConseillerPedagogiqueMetiersLiesSelector.tsx","pages/donnees/RH/conseillersPedagogiques/item/ConseillerPedagogiqueMetiersLiesSwitch.tsx","pages/donnees/RH/conseillersPedagogiques/item/ConseillerPedagogiqueItemPage.tsx","pages/donnees/RH/conseillersPedagogiques/list/ConseillerPedagogiqueListPage.tsx","pages/donnees/RH/delegueTutelle/item/DelegueTutelleItemPage.tsx","pages/donnees/RH/delegueTutelle/list/DelegueTutelleListPage.tsx","pages/donnees/RH/delegueTutelle/item/DelegueTutelleDetailPage.tsx","pages/donnees/FO/typeDeCours/list/TypeCoursListPage.tsx","pages/donnees/FO/typeDeCours/item/TypeCoursItemPage.tsx","pages/donnees/FO/typeDeCours/item/TypeCoursDetailPage.tsx","pages/donnees/FO/metiers/list/metierListPage.tsx","pages/donnees/FO/metiers/item/metierDetailPage.tsx","pages/donnees/FO/metiers/item/MetierClausesLiees.tsx","pages/donnees/FO/metiers/item/MetierClausesLieesSelector.tsx","pages/donnees/FO/metiers/item/MetierClausesLieesSwitch.tsx","pages/donnees/FO/metiers/item/MetierConseillersLies.tsx","pages/donnees/FO/metiers/item/MetierConseillerLiesSelector.tsx","pages/donnees/FO/metiers/item/MetierConseillersLiesSwitch.tsx","pages/donnees/FO/metiers/item/metierItemPage.tsx","pages/donnees/FO/metiers/item/MetierLocalisation.tsx","pages/donnees/FO/degre/list/DegreListPage.tsx","pages/donnees/FO/degre/item/DegreItemPage.tsx","pages/donnees/FO/degre/item/DegreDetailPage.tsx","pages/donnees/FO/contratFormateur/list/ContratFormateurListPage.tsx","pages/donnees/FO/contratFormateur/item/ContratFormateurDetailPage.tsx","pages/donnees/FO/contratFormateur/item/ContratFormateurItemPage.tsx","pages/donnees/FO/professionsFormateur/item/ProfessionFormateurDetailPage.tsx","pages/donnees/FO/professionsFormateur/item/ProfessionFormateurItemPage.tsx","pages/donnees/FO/professionsFormateur/list/ProfessionFormateurListPage.tsx","pages/donnees/FO/secteurMetier/list/SecteurMetierListPage.tsx","pages/donnees/FO/secteurMetier/item/SecteurMetierDetailPage.tsx","pages/donnees/FO/secteurMetier/item/SecteurMetierMetierLiesListPage.tsx","pages/donnees/FO/secteurMetier/item/SecteurMetierItemPage.tsx","pages/donnees/FO/secteurClasseHomogene/list/SecteurClasseHomogeneListPage.tsx","pages/donnees/FO/secteurClasseHomogene/item/SecteurClasseHomogeneDetailPage.tsx","pages/donnees/FO/secteurClasseHomogene/item/SecteurClasseHomogeneItemPage.tsx","pages/donnees/FO/stade/item/StadeDetailPage.tsx","pages/donnees/FO/stade/item/StadeItemPage.tsx","pages/donnees/FO/stade/list/StadeListPage.tsx","pages/donnees/FO/TitrePedagogique/item/TitrePedagogiqueDetailPage.tsx","pages/donnees/FO/TitrePedagogique/item/TitrePedagogiqueItemPage.tsx","pages/donnees/FO/TitrePedagogique/list/TitrePedagogiqueListPage.tsx","pages/donnees/FO/referentiel/list/ReferentielListPage.tsx","pages/donnees/FO/referentiel/item/ReferentielDetailPage.tsx","pages/donnees/FO/referentiel/item/matiere/ReferentielMatiereListPage.tsx","pages/donnees/FO/referentiel/item/matiere/ReferentielMatiereDetailPage.tsx","pages/donnees/FO/referentiel/item/matiere/ReferentielMatiereItemPage.tsx","pages/donnees/FO/referentiel/item/ReferentielItemPage.tsx","pages/donnees/FO/anneeScolaire/item/AnneeScolaireItemPage.tsx","pages/donnees/FO/anneeScolaire/item/AnneeScolaireDetailPage.tsx","pages/donnees/FO/anneeScolaire/list/AnneeScolaireListPage.tsx","pages/donnees/FO/typesBulletin/list/TypeBulletinListPage.tsx","pages/donnees/FO/typesBulletin/item/TypeBulletinItemPage.tsx","pages/donnees/FO/typesBulletin/item/TypeBulletinDetailsPanel.tsx","pages/donnees/DFC/TypeFinancement/list/TypeFinancementListPage.tsx","pages/donnees/DFC/TypeFinancement/item/enveloppeTF/EnveloppeTFDialog.tsx","pages/donnees/DFC/TypeFinancement/item/enveloppeTF/EnveloppeTFSearch.tsx","pages/donnees/DFC/TypeFinancement/item/TypefinancementDetailPage.tsx","pages/donnees/DFC/TypeFinancement/item/TypeFinancementItemPage.tsx","pages/donnees/DFC/ProjetFinancement/list/ProjetFinancementListPage.tsx","pages/donnees/DFC/ProjetFinancement/item/enveloppePF/EnveloppePFDialog.tsx","pages/donnees/DFC/ProjetFinancement/item/enveloppePF/EnveloppePFSearch.tsx","pages/donnees/DFC/ProjetFinancement/item/ProjetFinancementDetailPage.tsx","pages/donnees/DFC/ProjetFinancement/item/ProjetFinancementItemPage.tsx","pages/export/exportExcel/item/ExportForm.tsx","pages/export/exportExcel/item/ExportUtilitaireItemPage.tsx","pages/export/rapports/item/RapportForm.tsx","pages/export/rapports/item/RapportItemPage.tsx","pages/login/UnauthorizedPage.tsx","pages/utilitaire/doublons/list/DoublonsListPage.tsx","pages/utilitaire/doublons/item/DoublonsItemPage.tsx","pages/utilitaire/doublons/item/DoublonsTabs.tsx","pages/utilitaire/doublons/item/DoublonsStateContext.tsx","pages/utilitaire/doublons/item/apprenants/DoublonApprenantPage.tsx","pages/utilitaire/doublons/item/apprenants/DoublonApprenantSignaletique.tsx","pages/utilitaire/doublons/item/apprenants/DoublonApprenantRepresentants.tsx","pages/utilitaire/doublons/item/apprenants/DoublonApprenantParcoursFormation.tsx","pages/utilitaire/doublons/item/apprenants/DoublonApprenantStatutApprenant.tsx","pages/utilitaire/doublons/item/apprenants/DoublonApprenantPassportDrive.tsx","pages/utilitaire/doublons/item/apprenants/DoublonApprenantDocuments.tsx","pages/utilitaire/doublons/item/chefsEntreprise/DoublonChefEntreprisePage.tsx","pages/utilitaire/doublons/item/chefsEntreprise/DoublonChefEntrepriseSiegesSociaux.tsx","pages/utilitaire/doublons/item/contacts/DoublonContactPage.tsx","pages/utilitaire/doublons/item/contacts/DoublonContactSiegesSociaux.tsx","pages/utilitaire/doublons/item/contacts/DoublonContactLieuxFormation.tsx","pages/utilitaire/doublons/item/formateurs/DoublonFormateurPage.tsx","pages/utilitaire/doublons/item/formateurs/DoublonFormateurSignaletique.tsx","pages/utilitaire/doublons/item/formateurs/DoublonFormateurAdministratif.tsx","pages/utilitaire/doublons/item/formateurs/DoublonFormateurProfessionnel.tsx","pages/utilitaire/doublons/item/personnes/DoublonPersonnePage.tsx","pages/utilitaire/doublons/item/representants/DoublonRepresentantPage.tsx","pages/utilitaire/doublons/item/representants/DoublonRepresentantSignaletique.tsx","pages/utilitaire/doublons/item/tuteurs/DoublonTuteurPage.tsx","pages/utilitaire/doublons/item/tuteurs/DoublonTuteurSignaletique.tsx","pages/utilitaire/doublons/item/tuteurs/DoublonTuteurLieuxFormation.tsx","pages/utilitaire/doublons/item/CarouselComparer.tsx","pages/utilitaire/doublons/item/DoublonsDataCard.tsx","pages/utilitaire/doublons/item/DoublonsMultipleDataCard.tsx","pages/utilitaire/doublons/item/DoublonsNewPage.tsx","pages/utilitaire/exportation/list/ExportListPage.tsx","utils/containsWord.tsx","pages/utilitaire/exportation/item/ExportDetailPage.tsx","pages/utilitaire/exportation/item/permissions/ExportAccesPermissionsGrid.tsx","pages/utilitaire/exportation/item/permissions/ExportCentrePermissionsGrid.tsx","pages/utilitaire/exportation/item/permissions/ExportModulePermissionsGrid.tsx","pages/utilitaire/exportation/item/permissions/ExportPermissionsPage.tsx","pages/utilitaire/exportation/item/ExportItemPage.tsx","pages/utilitaire/utilisateurs/list/UtilisateurListPage.tsx","pages/utilitaire/utilisateurs/item/ImpersonateButton.tsx","pages/utilitaire/utilisateurs/item/UtilisateurDetailPage.tsx","pages/utilitaire/utilisateurs/item/UtilisateurItemPage.tsx","pages/utilitaire/utilisateurs/item/centres/UtilisateurCentresLiesPage.tsx","pages/utilitaire/utilisateurs/item/centres/UtilisateurCentresLiesSelector.tsx","pages/utilitaire/utilisateurs/item/centres/UtilisateurCentresLiesSwitch.tsx","pages/utilitaire/utilisateurs/item/services/UtilisateurServicesLiesSelector.tsx","pages/utilitaire/utilisateurs/item/services/UtilisateurServicessLiesPage.tsx","pages/utilitaire/utilisateurs/item/services/UtilisateurServicesLiesSwitch.tsx","pages/utilitaire/kitSurvie/KitSurviePage.tsx","pages/utilitaire/gestionDroits/GestionDroitsGrid.tsx","pages/utilitaire/gestionDroits/GestionDroitsListPage.tsx","pages/utilitaire/publipostage/PublipostageListPage.tsx","pages/utilitaire/exporthope/ExportHopeListPage.tsx","pages/utilitaire/printingHistory/list/PrintingHistory.tsx","components/Header.tsx","components/index.ts","components/NavigationMenu/index.ts","components/PageBase.tsx","components/DialogRoot.tsx","components/BackTab.tsx","components/NumberShower.tsx","components/CommuneSelect.tsx","components/NationaliteSelect.tsx","components/TimeDisplay.tsx","components/PhotoModifier.tsx","components/BeIdCard.tsx","components/CardAttribute.tsx","components/ModulesEnum.ts","components/ExportMenu.tsx","components/RapportMenu.tsx","components/StyledError.tsx","components/spreadsheet/index.ts","components/spreadsheet/JExcel/index.ts","components/spreadsheet/JExcel/JExcelSpreadSheet.tsx","components/ProgressBarDialog.tsx","components/FooterIfapme.tsx","components/AppTheme.tsx","components/ModifiedBy.tsx","components/CustomBulletList.tsx","components/StillInDev.tsx","components/ErrorText.tsx","components/WarningText.tsx","components/CodePostalSuggest.tsx","components/CustomStateDisplay.tsx","components/LoadingDots.tsx","components/RapportHopeViewer.tsx","components/GenericProgressLoading.tsx","components/PrintingQueue.tsx","components/StartupDialog.tsx","components/tableInput/TableSelectEditor.tsx","components/tableInput/TableDateEditor.tsx","components/tableInput/TableDateEditorTotal.tsx","components/tableInput/TableSelectEditorTotal.tsx","components/tableInput/TableBASelectGradeEditor.tsx","components/tableInput/TableGlobalTextEditor.tsx","components/tableInput/TableGlobalSelectEditor.tsx","components/tableInput/TableCheckboxEditor.tsx","components/tableInput/TableGlobalDateEditor.tsx","components/PdfViewer/pdf-viewer-utils.ts","components/PdfViewer/PdfViewerToolbar.tsx","components/PdfViewer/PdfViewerPrintLoadingDialog.tsx","components/PdfViewer/PdfViewerThumbnails.tsx","components/PdfViewer/PdfViewerPages.tsx","components/PdfViewer/PdfViewer.tsx","components/customColumns/CircleColumn.tsx","components/customColumns/ColumnMask.tsx","components/customColumns/UnordoredListColumn.tsx","components/customColumns/BooleanColumns.tsx","components/NavigationMenu/CollapseAllContext.ts","components/NavigationMenu/Container.tsx","components/NavigationMenu/MenuItem.tsx","components/NavigationMenu/QuickAccess.tsx","components/NavigationMenu/NavigationMenu.tsx","components/parcoursFormation/AddStatutPostSortieButton.tsx","components/parcoursFormation/AddStatutPostSortieDialog.tsx","components/parcoursFormation/EditStatutApprenantDialog.tsx","components/ProtectedTabs/ProtectedTabs.tsx","components/ProtectedTabs/ProtectedRedirect.tsx","components/adresseDoublons/AdresseDoublonErrorLink.tsx","components/adresseDoublons/AdresseDoublonDialog.tsx","components/selects/ContratMotifRupturePatronSelect.tsx","components/selects/ContratMotifRuptureJeuneSelect.tsx","components/searchTablePage/SearchTablePage.tsx","components/personTooltip/ApprenantTooltip.tsx","components/TableEditors/TableTextEditor.tsx","components/carousel/Carousel.tsx","hooks/useApiService.ts","hooks/useManageError.ts","hooks/useCrudApi.ts","hooks/useLocalStorage.ts","hooks/useAppVersion.ts","theme.ts","hooks/useTheme.ts","hooks/useTabMessage.ts","hooks/useFetchPicture.ts","hooks/useSystemInfo.ts","hooks/useSearchApi.ts","hooks/applicationHooks/useFrontendSettings.ts","api/models/CompteBancaireDto.ts","api/index.ts","utils/guid.ts","components/formGenerator/FGCopyTextInput.tsx","api/models/AcquisIfapmeEditDto.ts","api/models/AcquisIfapmeGridDto.ts","api/models/IAggregateResult.ts","api/models/AcquisIfapmeGridDtoPaginatedResults.ts","api/models/ETextSearchType.ts","api/models/ETextSearchTypeStringCombinableCriteria.ts","api/models/TextSearch.ts","api/models/AcquisIfapmeSearchDto.ts","api/models/AcquisProfessionnelSearch.ts","api/models/AcquisScolaireGridDto.ts","api/models/AcquisScolaireGridDtoPaginatedResults.ts","api/models/AcquisScolaireSearch.ts","api/models/AcquisScolaireSearchDto.ts","api/models/AdjointSearch.ts","api/models/AdmissionGridDto.ts","api/models/AdmissionGridDtoPaginatedResults.ts","api/models/AdmissionSearchDto.ts","api/models/AdresseDoublonDto.ts","api/models/AdresseDoublonGridDto.ts","api/models/AdresseDoublonGridDtoPaginatedResults.ts","api/models/AdresseDoublonSearchDto.ts","api/models/AdresseDto.ts","api/models/AdresseReferentialResultInfoDto.ts","api/models/AgrementSearch.ts","api/models/AnneeFormationSuivieFichierGridDto.ts","api/models/AnneeFormationSuivieEditDto.ts","api/models/AnneeFormationSuivieFichierDto.ts","api/models/FileUploadDto.ts","api/models/AnneeFormationSuivieFichierUploadDto.ts","api/models/AnneeFormationSuivieIfapmeFichierGridDto.ts","api/models/AnneeFormationSuivieIfapmeEditDto.ts","api/models/AnneeFormationSuivieIfapmeFichierDto.ts","api/models/AnneeFormationSuivieIfapmeFichierUploadDto.ts","api/models/EBooleanSearchTypes.ts","api/models/EBooleanSearchTypesBooleanNullableCombinableCriteria.ts","api/models/BooleanSearch.ts","api/models/AnneeReussieSearch.ts","api/models/AnneeScolaireSearch.ts","api/models/ApprenantAzureSearch.ts","api/models/ETypeContrat.ts","api/models/ApprenantContratDto.ts","api/models/EApprenantFichierDeletionReason.ts","api/models/ApprenantFichierGridDto.ts","api/models/ApprenantRepresentantHopeGridDto.ts","api/models/EmailDto.ts","api/models/ParcoursFormationGridDto.ts","api/models/PassportDriveDto.ts","api/models/ECategorieStatutApprenant.ts","api/models/StatutApprenantGridDto.ts","api/models/TelephoneDto.ts","api/models/ApprenantDoublonEditDto.ts","api/models/ApprenantFichierDto.ts","api/models/ApprenantFichierGridDtoPaginatedResults.ts","api/models/EDateSearchType.ts","api/models/EDateSearchTypeDateTimeNullableCombinableCriteria.ts","api/models/DateSearch.ts","api/models/ETypeApprenantFichier.ts","api/models/EListSearchType.ts","api/models/EListSearchTypeInt32NullableCombinableCriteria.ts","api/models/Int32NullableListSearch.ts","api/models/UnaccentTextSearch.ts","api/models/ApprenantFichierSearchDto.ts","api/models/ApprenantFichierUploadDto.ts","api/models/ApprenantHistorySearch.ts","api/models/EHopeApprenantSearchType.ts","api/models/EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria.ts","api/models/EHopeApprenantSearchTypeListSearch.ts","api/models/ESearchStatutInscription.ts","api/models/EListSearchTypeESearchStatutInscriptionCombinableCriteria.ts","api/models/ESearchStatutInscriptionListSearch.ts","api/models/EFilterSearchType.ts","api/models/EFilterSearchTypeStringCombinableCriteria.ts","api/models/FilterTextSearch.ts","api/models/EListSearchTypeInt32CombinableCriteria.ts","api/models/Int32ListSearch.ts","api/models/ENumericSearchType.ts","api/models/ENumericSearchTypeInt64NullableCombinableCriteria.ts","api/models/NumericSearch.ts","api/models/EListSearchTypeStringCombinableCriteria.ts","api/models/StringListSearch.ts","api/models/ApprenantHopeSearch.ts","api/models/ApprenantRepresentantHopeGridDtoPaginatedResults.ts","api/models/ApprenantRepresentantInstitutionEditDto.ts","api/models/ApprenantRepresentantPersonneEditDto.ts","api/models/ApprenantRepresentantSearchDto.ts","api/models/ApprenantRepresentantsSearch.ts","api/models/ApprenantSearch.ts","api/models/ApprenantSelectorGridDto.ts","api/models/ApprenantSelectorGridDtoPaginatedResults.ts","api/models/ApprenantSelectorSearch.ts","api/models/AriReassignmentDto.ts","api/models/AssuranceEditDto.ts","api/models/AssuranceGridDto.ts","api/models/AssuranceGridDtoPaginatedResults.ts","api/models/AssuranceSearchDto.ts","api/models/AzureUserDto.ts","api/models/BaremeTheoriqueDto.ts","api/models/BilanCompetenceFichierGridDto.ts","api/models/BilanCompetenceEditDto.ts","api/models/BilanCompetenceFichierDto.ts","api/models/BilanCompetenceFichierUploadDto.ts","api/models/BooleanDto.ts","api/models/BulletinApprenantRecapitulatifSearch.ts","api/models/BulletinDeliberationNavigationDto.ts","api/models/BulletinDetailSearch.ts","api/models/CalendrierGlobalSearch.ts","api/models/CalendrierSearch.ts","api/models/CanDisableOffreRequestDto.ts","api/models/ETypeCarteIdentiteUser.ts","api/models/CarteIdentiteExistingUserDto.ts","api/models/CentreDemandeRequestDto.ts","api/models/CentreSearch.ts","api/models/CentreUserDto.ts","api/models/ChangeStatutMultipleDto.ts","api/models/ChangementClasseSearch.ts","api/models/ChefEntrepriseDisplayNameDto.ts","api/models/ChefEntrepriseDoublonSiegeSocialDto.ts","api/models/ChefEntrepriseDoublonEditDto.ts","api/models/ChefEntrepriseEditDto.ts","api/models/LastSiegeSocialDto.ts","api/models/ChefEntrepriseGridDto.ts","api/models/ChefEntrepriseGridDtoPaginatedResults.ts","api/models/ChefEntrepriseSearchDto.ts","api/models/ChefEntrepriseSelectorGridDto.ts","api/models/ChefEntrepriseSelectorGridDtoPaginatedResults.ts","api/models/ChefEntrepriseSelectorSearch.ts","api/models/ChefEntrepriseSiegeEditDto.ts","api/models/ChefEntrepriseSiegeSocialGridDto.ts","api/models/ChefEntrepriseSiegeSocialGridDtoPaginatedResults.ts","api/models/ChefEntrepriseSiegeSocialSearch.ts","api/models/ChefsEntrepriseDoublonGridDto.ts","api/models/ChefsEntrepriseDoublonGridDtoPaginatedResults.ts","api/models/ChefsEntrepriseDoublonSearchDto.ts","api/models/ChefsEntrepriseSiegeDoublonGridDto.ts","api/models/ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults.ts","api/models/ChefsEntrepriseSiegeDoublonSearchDto.ts","api/models/ClassHoraireDto.ts","api/models/ClasseApprenantSearch.ts","api/models/ClasseHoraireCoherenceSearch.ts","api/models/ClasseHoraireIncoherenceSearch.ts","api/models/ClasseHoraireJourColumnsDto.ts","api/models/ClasseHoraireMatiereSearch.ts","api/models/ClasseInfosForSuiviDto.ts","api/models/ClasseJourDto.ts","api/models/ClasseMatiereSearch.ts","api/models/ClasseMiseAJourMasseSearch.ts","api/models/ClasseRemarqueSearch.ts","api/models/ClasseSearch.ts","api/models/ClauseMetierSearch.ts","api/models/ClauseSearch.ts","api/models/CodePostalSearch.ts","api/models/CommissionParitaireEditDto.ts","api/models/CommissionParitaireGridDto.ts","api/models/CommissionParitaireGridDtoPaginatedResults.ts","api/models/CommissionParitaireSearchDto.ts","api/models/ConseillerPedagogiqueMetierLiesSearch.ts","api/models/ConseillerPedagogiqueSearch.ts","api/models/ContactDoublonLieuFormationDto.ts","api/models/ContactDoublonSiegeSocialDto.ts","api/models/ContactDoublonEditDto.ts","api/models/ContactDoublonGridDto.ts","api/models/ContactDoublonGridDtoPaginatedResults.ts","api/models/ContactDoublonSearchDto.ts","api/models/ContactEditDto.ts","api/models/ContactGridDto.ts","api/models/ContactGridDtoPaginatedResults.ts","api/models/ContactLieuDoublonGridDto.ts","api/models/ContactLieuDoublonGridDtoPaginatedResults.ts","api/models/ContactLieuDoublonSearch.ts","api/models/ContactLieuEditDto.ts","api/models/ContactLieuFormationGridDto.ts","api/models/ContactLieuFormationGridDtoPaginatedResults.ts","api/models/ContactLieuFormationSearchDto.ts","api/models/ContactLieuGridDto.ts","api/models/ContactLieuGridDtoPaginatedResults.ts","api/models/ContactLieuSearch.ts","api/models/ContactSearch.ts","api/models/ContactSiegeDoublonGridDto.ts","api/models/ContactSiegeDoublonGridDtoPaginatedResults.ts","api/models/ContactSiegeDoublonSearch.ts","api/models/ContactSiegeEditDto.ts","api/models/ContactSiegeGridDto.ts","api/models/ContactSiegeGridDtoPaginatedResults.ts","api/models/ContactSiegeSearch.ts","api/models/ContactSiegeSocialGridDto.ts","api/models/ContactSiegeSocialGridDtoPaginatedResults.ts","api/models/ContactSiegeSocialSearchDto.ts","api/models/ContratAlternanceCommunDto.ts","api/models/ContratAlternanceDto.ts","api/models/ContratApprenantInfosDto.ts","api/models/ContratAvenantEditDto.ts","api/models/ContratAvenantGridDto.ts","api/models/ContratAvenantGridDtoPaginatedResults.ts","api/models/ContratAvenantSearchDto.ts","api/models/ContratChefEntrepriseDto.ts","api/models/ContratClasseInfosDto.ts","api/models/ContratConventionStageDto.ts","api/models/ContratConventionStageExterneDto.ts","api/models/ContratFaltDto.ts","api/models/ContratLieuFormationTuteurGridDto.ts","api/models/ContratLieuFormationGridDto.ts","api/models/ContratSiegeSocialDto.ts","api/models/ContratStageObservationDto.ts","api/models/DecouverteMetierDto.ts","api/models/PratiqueProfessionnelleDto.ts","api/models/ContratEditDto.ts","api/models/ContratFichierDto.ts","api/models/ContratFichierGridDto.ts","api/models/ContratFichierGridDtoPaginatedResults.ts","api/models/ContratFichierSearchDto.ts","api/models/ContratFichierUploadDto.ts","api/models/ContratFormateurSearch.ts","api/models/ContratGridDto.ts","api/models/ContratGridDtoPaginatedResults.ts","api/models/ContratHistoryGridDto.ts","api/models/ContratHistoryGridDtoPaginatedResults.ts","api/models/ContratHistorySearchDto.ts","api/models/ContratInfosForSuiviDto.ts","api/models/ContratLieuxFormationGridDto.ts","api/models/ContratLieuxFormationGridDtoPaginatedResults.ts","api/models/ContratLieuxFormationSearchDto.ts","api/models/EListSearchTypeEStatutContratCombinableCriteria.ts","api/models/EStatutContratListSearch.ts","api/models/EListSearchTypeETypeContratNullableCombinableCriteria.ts","api/models/ETypeContratNullableListSearch.ts","api/models/ContratSearchDto.ts","api/models/ContratSuspensionDto.ts","api/models/ContratSuspensionDtoPaginatedResults.ts","api/models/ContratSuspensionSearchDto.ts","api/models/CopReassignmentDto.ts","api/models/ECustomSearchType.ts","api/models/ECustomSearchTypeStringCombinableCriteria.ts","api/models/CustomSearch.ts","api/models/ETypeDernierAvertissement.ts","api/models/DashboardAbsenceDto.ts","api/models/DashboardAbsenceDtoPaginatedResults.ts","api/models/DashboardAbsenceSearch.ts","api/models/DashboardAbsencesVuReturnDto.ts","api/models/EOrigineDossier.ts","api/models/ETargetDossier.ts","api/models/DashboardDossierDto.ts","api/models/DashboardDossierDtoPaginatedResults.ts","api/models/ETypeDashboardDossier.ts","api/models/DashboardDossierSearch.ts","api/models/EOrigineInscription.ts","api/models/DashboardInscriptionGridDto.ts","api/models/DashboardInscriptionGridDtoPaginatedResults.ts","api/models/EIfapmeSide.ts","api/models/DashboardInscriptionSearch.ts","api/models/DashboardPratiqueProDto.ts","api/models/DashboardPratiqueProDtoPaginatedResults.ts","api/models/DashboardPratiqueProSearch.ts","api/models/EListSearchTypeDoubleCombinableCriteria.ts","api/models/DoubleListSearch.ts","api/models/EOrigineSuivi.ts","api/models/EListSearchTypeEOrigineSuiviCombinableCriteria.ts","api/models/EOrigineSuiviListSearch.ts","api/models/DashboardSuiviSearch.ts","api/models/DashboardSuiviSiegeLieuSearch.ts","api/models/DateDuringContratDto.ts","api/models/DegreSearch.ts","api/models/DeliberationMasseSearch.ts","api/models/DeliberationTypeSearch.ts","api/models/DeliberationValidateIdsDto.ts","api/models/DemandeApprenantSearch.ts","api/models/DemandeInscriptionCreateDto.ts","api/models/DemandeInscriptionFichierDto.ts","api/models/DemandeInscriptionFichierUploadDto.ts","api/models/DemandeInscriptionGridDto.ts","api/models/DemandeInscriptionGridDtoPaginatedResults.ts","api/models/DemandeInscriptionInvalidationDto.ts","api/models/DiplomeCertificationFichierGridDto.ts","api/models/DiplomeCertificationEditDto.ts","api/models/DiplomeCertificationFichierDto.ts","api/models/DiplomeCertificationFichierUploadDto.ts","api/models/DiplomeCertificationIfapmeFichierGridDto.ts","api/models/DiplomeCertificationIfapmeEditDto.ts","api/models/DiplomeCertificationIfapmeFichierDto.ts","api/models/DiplomeCertificationIfapmeFichierUploadDto.ts","api/models/DiplomeSearch.ts","api/models/DirectionTerritorialeSearch.ts","api/models/DispenseSearch.ts","api/models/DisplayNameDto.ts","api/models/DossierAdmissionFichierGridDto.ts","api/models/DossierAdmissionEditDto.ts","api/models/DossierAdmissionFichierDto.ts","api/models/DossierAdmissionFichierUploadDto.ts","api/models/FormateurDoublonAdministratifDto.ts","api/models/FcbFormateurDiplomeDto.ts","api/models/FcbFormateurProfessionDto.ts","api/models/FcbFormateurTitreDto.ts","api/models/FormateurDoublonProfessionnelDto.ts","api/models/FormateurDoublonEditDto.ts","api/models/PersonneDoublonEditDto.ts","api/models/RepresentantDoublonEditDto.ts","api/models/ReferentialItemDto.ts","api/models/TuteurDoublonLieuFormationDto.ts","api/models/TuteurDoublonEditDto.ts","api/models/DoublonEditDto.ts","api/models/DoublonsGridDto.ts","api/models/DoublonsGridDtoPaginatedResults.ts","api/models/DoublonsPersonneGridDto.ts","api/models/DoublonsPersonneGridDtoPaginatedResults.ts","api/models/DoublonsPersonneSearchDto.ts","api/models/DoublonsSearchDto.ts","api/models/EContentHidingMode.ts","api/models/ECriteriaType.ts","api/models/EDashboard.ts","api/models/EErrorCode.ts","api/models/EJours.ts","api/models/ELevelName.ts","api/models/ELieuFormationAgrementStatut.ts","api/models/EPrintingQueueStatus.ts","api/models/EListSearchTypeEPrintingQueueStatusCombinableCriteria.ts","api/models/ESuiviAction.ts","api/models/EListSearchTypeESuiviActionCombinableCriteria.ts","api/models/EPermis.ts","api/models/EPrintingQueueStatusListSearch.ts","api/models/EPrintingType.ts","api/models/ERapportHopeParameterType.ts","api/models/ERapportHopeType.ts","api/models/ESuiviActionListSearch.ts","api/models/ETypeDeliberation.ts","api/models/ETypeDestinataireSms.ts","api/models/EValidationError.ts","api/models/EcoleSearch.ts","api/models/EmailAdressesDto.ts","api/models/EmailReplaceDto.ts","api/models/EntiteCentreSearch.ts","api/models/EnveloppeProjetFinancementSearch.ts","api/models/EnveloppeTypeFinancementSearch.ts","api/models/ErrorDetails.ts","api/models/EvaluationEditableDto.ts","api/models/EvaluationSearch.ts","api/models/ExamenEntreeFichierGridDto.ts","api/models/ExamenEntreeEditDto.ts","api/models/ExamenEntreeFceFichierGridDto.ts","api/models/ExamenEntreeFceEditDto.ts","api/models/ExamenEntreeFceFichierDto.ts","api/models/ExamenEntreeFceFichierUploadDto.ts","api/models/ExamenEntreeFichierDto.ts","api/models/ExamenEntreeFichierUploadDto.ts","api/models/ExamenEntreeSearch.ts","api/models/ExperienceProfessionnelleFichierGridDto.ts","api/models/ExperienceProfessionnelleEditDto.ts","api/models/ExperienceProfessionnelleFichierDto.ts","api/models/ExperienceProfessionnelleFichierUploadDto.ts","api/models/ExperienceProfessionnelleGridDto.ts","api/models/ExperienceProfessionnelleGridDtoPaginatedResults.ts","api/models/ExperienceProfessionnelleSearchDto.ts","api/models/ExportExcelParameterDto.ts","api/models/ExportExcelInfoDto.ts","api/models/ExportSearch.ts","api/models/ResultErrorLevel.ts","api/models/ResultError.ts","api/models/ExposedTypes.ts","api/models/FcbAcquisProfessionnelDto.ts","api/models/FcbAcquisProfessionnelGridDto.ts","api/models/FcbAcquisProfessionnelGridDtoPaginatedResults.ts","api/models/FcbAcquisScolaireDto.ts","api/models/FcbAcquisScolaireGridDto.ts","api/models/FcbAcquisScolaireGridDtoPaginatedResults.ts","api/models/FcbAdjointGridDto.ts","api/models/FcbAdjointGridDtoPaginatedResults.ts","api/models/FcbAgrementDto.ts","api/models/FcbAgrementGridDto.ts","api/models/FcbAgrementGridDtoPaginatedResults.ts","api/models/FcbAgrementValidationMasseDto.ts","api/models/FcbAnneeReussieDto.ts","api/models/FcbAnneeReussieDtoPaginatedResults.ts","api/models/FcbAnneeScolaireDetailDto.ts","api/models/FcbAnneeScolaireDto.ts","api/models/FcbAnneeScolaireDtoPaginatedResults.ts","api/models/FcbApprenantAzureGridDto.ts","api/models/FcbApprenantAzureGridDtoPaginatedResults.ts","api/models/FcbApprenantDoublonGridDto.ts","api/models/FcbApprenantDoublonGridDtoPaginatedResults.ts","api/models/FcbApprenantDto.ts","api/models/FcbApprenantHistoryGridDto.ts","api/models/FcbApprenantHistoryGridDtoPaginatedResults.ts","api/models/FcbApprenantPresenceDetailDto.ts","api/models/FcbApprenantPresenceDetailSaveDto.ts","api/models/FcbApprenantRepresentantDto.ts","api/models/FcbApprenantRepresentantGridDto.ts","api/models/FcbApprenantRepresentantGridDtoPaginatedResults.ts","api/models/FcbBulletinApprenantDto.ts","api/models/FcbBulletinApprenantRecapitulatifGridDto.ts","api/models/FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults.ts","api/models/FcbResultatTypeBulletinSession2GridDto.ts","api/models/FcbResultatTypeBulletinSession2GridDtoPaginatedResults.ts","api/models/FcbResultatTypeEvaluationGridDto.ts","api/models/FcbResultatTypeEvaluationGridDtoPaginatedResults.ts","api/models/FcbResultatTypeGridDto.ts","api/models/FcbResultatTypeGridDtoPaginatedResults.ts","api/models/FcbBulletinApprenantTypeDetailDto.ts","api/models/FcbBulletinApprenantTypeDto.ts","api/models/FcbBulletinApprenantTypeSaveDto.ts","api/models/FcbCalendrierDto.ts","api/models/FcbCalendrierGridDto.ts","api/models/FcbCalendrierGridDtoPaginatedResults.ts","api/models/FcbCentreDto.ts","api/models/FcbCentreGridDto.ts","api/models/FcbCentreGridDtoPaginatedResults.ts","api/models/FcbChangementClasseDto.ts","api/models/FcbChangementClasseGridDto.ts","api/models/FcbChangementClasseGridDtoPaginatedResults.ts","api/models/FcbClasseApprenantGridDto.ts","api/models/FcbClasseApprenantGridDtoPaginatedResults.ts","api/models/FcbClasseCoutMatiereDto.ts","api/models/FcbClasseDetailDto.ts","api/models/FcbClasseGridDto.ts","api/models/FcbClasseGridDtoPaginatedResults.ts","api/models/FcbClasseHoraireCoherenceGridDto.ts","api/models/FcbClasseHoraireCoherenceGridDtoPaginatedResults.ts","api/models/FcbClasseHoraireCoherenceSemestreGridDto.ts","api/models/FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults.ts","api/models/FcbClasseHoraireIncoherenceGridDto.ts","api/models/FcbClasseHoraireIncoherenceGridDtoPaginatedResults.ts","api/models/FcbClasseHoraireMatiereGridDto.ts","api/models/FcbClasseHoraireMatiereGridDtoPaginatedResults.ts","api/models/FcbClasseHoraireRemplacementDto.ts","api/models/FcbClasseHorairesDto.ts","api/models/FcbClasseMatiereCutGridDto.ts","api/models/FcbClasseMatiereCutDto.ts","api/models/FcbClasseMatiereGridDto.ts","api/models/FcbClasseMatiereGridDtoPaginatedResults.ts","api/models/FcbClasseMatiereMultipleDto.ts","api/models/FcbClasseMiseAJourDto.ts","api/models/FcbClasseRemarqueDto.ts","api/models/FcbClasseRemarqueGridDto.ts","api/models/FcbClasseRemarqueGridDtoPaginatedResults.ts","api/models/FcbClauseDto.ts","api/models/FcbClauseGridDto.ts","api/models/FcbClauseGridDtoPaginatedResults.ts","api/models/FcbClauseMetiersLiesDto.ts","api/models/FcbCodePostalDto.ts","api/models/FcbCodePostalGridDto.ts","api/models/FcbCodePostalGridDtoPaginatedResults.ts","api/models/FcbConseillerMetiersDto.ts","api/models/FcbConseillerPedagogiqueDto.ts","api/models/FcbConseillerPedagogiqueGridDto.ts","api/models/FcbConseillerPedagogiqueGridDtoPaginatedResults.ts","api/models/FcbConseillerPedagogiqueMetiersLiesGridDto.ts","api/models/FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults.ts","api/models/FcbContratFormateurDto.ts","api/models/FcbContratFormateurGridDto.ts","api/models/FcbContratFormateurGridDtoPaginatedResults.ts","api/models/FcbCopyClasseDto.ts","api/models/FcbDegreDto.ts","api/models/FcbDegreGridDto.ts","api/models/FcbDegreGridDtoPaginatedResults.ts","api/models/FcbDeliberationMasseDto.ts","api/models/FcbDeliberationMasseGridDto.ts","api/models/FcbDeliberationMasseGridDtoPaginatedResults.ts","api/models/FcbDemandeApprenantDto.ts","api/models/FcbDemandeApprenantGridDto.ts","api/models/FcbDemandeApprenantGridDtoPaginatedResults.ts","api/models/FcbDiplomeDto.ts","api/models/FcbDiplomeGridDto.ts","api/models/FcbDiplomeGridDtoPaginatedResults.ts","api/models/FcbDirectionTerritorialeDto.ts","api/models/FcbDirectionTerritorialeGridDto.ts","api/models/FcbDirectionTerritorialeGridDtoPaginatedResults.ts","api/models/FcbDispenseDetailDto.ts","api/models/FcbDispenseGridDto.ts","api/models/FcbDispenseGridDtoPaginatedResults.ts","api/models/FcbEcoleDto.ts","api/models/FcbEcoleGridDto.ts","api/models/FcbEcoleGridDtoPaginatedResults.ts","api/models/FcbEntitecentreDto.ts","api/models/FcbEntitecentreDtoPaginatedResults.ts","api/models/FcbEnveloppeProjetFinancementDto.ts","api/models/FcbEnveloppeProjetFinancementGridDto.ts","api/models/FcbEnveloppeProjetFinancementGridDtoPaginatedResults.ts","api/models/FcbEnveloppeTypeFinancementDto.ts","api/models/FcbEnveloppeTypeFinancementGridDto.ts","api/models/FcbEnveloppeTypeFinancementGridDtoPaginatedResults.ts","api/models/FcbEvaluationApprenantGetDto.ts","api/models/FcbEvaluationApprenantListGetDto.ts","api/models/FcbEvaluationDto.ts","api/models/FcbEvaluationGridDto.ts","api/models/FcbEvaluationGridDtoPaginatedResults.ts","api/models/FcbExamenEntreeDto.ts","api/models/FcbExamenEntreeGridDto.ts","api/models/FcbExamenEntreeGridDtoPaginatedResults.ts","api/models/FcbExportAccesPermissionDto.ts","api/models/FcbExportCentrePermissionDto.ts","api/models/FieldInfo.ts","api/models/FcbExportDetailDto.ts","api/models/FcbExportDto.ts","api/models/FcbExportGapClassesGridDto.ts","api/models/FcbExportGapClassesGridDtoPaginatedResults.ts","api/models/FcbExportGapDto.ts","api/models/FcbExportGapFormateursGridDto.ts","api/models/FcbExportGapFormateursGridDtoPaginatedResults.ts","api/models/FcbExportGapStatsGridDto.ts","api/models/FcbExportGapStatsGridDtoPaginatedResults.ts","api/models/FcbExportGridDto.ts","api/models/FcbExportGridDtoPaginatedResults.ts","api/models/FcbExportModulePermissionDto.ts","api/models/FcbExportPermissionsDto.ts","api/models/FcbFeuillePresenceGridDto.ts","api/models/FcbFeuillePresenceGridDtoPaginatedResults.ts","api/models/FcbFinancementClasseDto.ts","api/models/FcbFinancementClasseGridDto.ts","api/models/FcbFinancementClasseGridDtoPaginatedResults.ts","api/models/FcbForfaitAuditeurDto.ts","api/models/FcbForfaitAuditeurDtoPaginatedResults.ts","api/models/FcbFormateurAgrementDto.ts","api/models/FcbFormateurAgrementGridDto.ts","api/models/FcbFormateurAgrementGridDtoPaginatedResults.ts","api/models/FcbFormateurAzureGridDto.ts","api/models/FcbFormateurAzureGridDtoPaginatedResults.ts","api/models/FcbFormateurClasseGridDto.ts","api/models/FcbFormateurClasseGridDtoPaginatedResults.ts","api/models/FcbFormateurDesideratumDto.ts","api/models/FcbFormateurDesideratumGridDto.ts","api/models/FcbFormateurDesideratumGridDtoPaginatedResults.ts","api/models/FcbFormateurDetailDto.ts","api/models/FcbFormateurDiplomeGridDto.ts","api/models/FcbFormateurDiplomeGridDtoPaginatedResults.ts","api/models/FcbFormateurDoublonGridDto.ts","api/models/FcbFormateurDoublonGridDtoPaginatedResults.ts","api/models/FcbFormateurDto.ts","api/models/FcbFormateurGridDto.ts","api/models/FcbFormateurGridDtoPaginatedResults.ts","api/models/FcbFormateurLocalisationDto.ts","api/models/FcbFormateurLocalisationContratDetailDto.ts","api/models/FcbFormateurLocalisationContratGridDto.ts","api/models/FcbFormateurLocalisationContratGridDtoPaginatedResults.ts","api/models/FcbFormateurMetierAgrementLiesDto.ts","api/models/FcbFormateurPrestationsContratGridDto.ts","api/models/FcbFormateurPrestationsContratGridDtoPaginatedResults.ts","api/models/FcbFormateurPrestationsGlobalesGridDto.ts","api/models/FcbFormateurPrestationsGlobalesGridDtoPaginatedResults.ts","api/models/FcbFormateurProfessionGridDto.ts","api/models/FcbFormateurProfessionGridDtoPaginatedResults.ts","api/models/FormateurSuiviFichierGridDto.ts","api/models/FcbFormateurSuiviDto.ts","api/models/FcbFormateurSuiviGridDto.ts","api/models/FcbFormateurSuiviGridDtoPaginatedResults.ts","api/models/FcbFormateurTitreGridDto.ts","api/models/FcbFormateurTitreGridDtoPaginatedResults.ts","api/models/FcbFormationDto.ts","api/models/FcbFormationGridDto.ts","api/models/FcbFormationGridDtoPaginatedResults.ts","api/models/FcbGestionDroitsGridDto.ts","api/models/FcbGestionDroitsGridDtoPaginatedResults.ts","api/models/FcbHoraireGridDto.ts","api/models/FcbHoraireGridDtoPaginatedResults.ts","api/models/FcbImpressionDto.ts","api/models/InscriptionFichierGridDto.ts","api/models/InscriptionFormationDto.ts","api/models/FcbInscriptionDetailDto.ts","api/models/FcbInscriptionGridDto.ts","api/models/FcbInscriptionGridDtoPaginatedResults.ts","api/models/FcbInscriptionMasseDto.ts","api/models/FcbInscriptionMasseGridDto.ts","api/models/FcbInscriptionMasseGridDtoPaginatedResults.ts","api/models/FcbJustificatifAbsenceGridDto.ts","api/models/FcbJustificatifAbsenceGridDtoPaginatedResults.ts","api/models/FcbJustificatifsAbsenceDetailsDto.ts","api/models/FcbLieuxCoursDto.ts","api/models/FcbLieuxCoursGridDto.ts","api/models/FcbLieuxCoursGridDtoPaginatedResults.ts","api/models/FcbLocalDto.ts","api/models/FcbLocalGridDto.ts","api/models/FcbLocalGridDtoPaginatedResults.ts","api/models/FcbMatiereReferentielDto.ts","api/models/FcbMatiereReferentielGridDto.ts","api/models/FcbMatiereReferentielGridDtoPaginatedResults.ts","api/models/FcbMetierAgrementGridDto.ts","api/models/FcbMetierAgrementGridDtoPaginatedResults.ts","api/models/FcbMetierClauseGridDto.ts","api/models/FcbMetierClauseGridDtoPaginatedResults.ts","api/models/FcbMetierClauseLiesGridDto.ts","api/models/FcbMetierClauseLiesGridDtoPaginatedResults.ts","api/models/FcbMetierClausesLieesDto.ts","api/models/FcbMetierConseillersLiesDto.ts","api/models/FcbMetierConseillersLiesGridDto.ts","api/models/FcbMetierConseillersLiesGridDtoPaginatedResults.ts","api/models/FcbPlanLocalisationDatumDto.ts","api/models/FcbMetierDetailDto.ts","api/models/FcbMetierDto.ts","api/models/FcbMetierGridDto.ts","api/models/FcbMetierGridDtoPaginatedResults.ts","api/models/FcbMetiersLocalisationGridDto.ts","api/models/FcbMetiersLocalisationGridDtoPaginatedResults.ts","api/models/FcbMinervalGridDto.ts","api/models/FcbMinervalGridDtoPaginatedResults.ts","api/models/FcbPaiementDto.ts","api/models/FcbPaiementGridDto.ts","api/models/FcbPaiementGridDtoPaginatedResults.ts","api/models/FcbPaysDto.ts","api/models/FcbPaysGridDto.ts","api/models/FcbPaysGridDtoPaginatedResults.ts","api/models/FcbPersonnelTutelleDto.ts","api/models/FcbPersonnelTutelleGridDto.ts","api/models/FcbPersonnelTutelleGridDtoPaginatedResults.ts","api/models/FcbPlageHoraireDetailDto.ts","api/models/FcbPlageHoraireDto.ts","api/models/FcbPlageHoraireGridDto.ts","api/models/FcbPlageHoraireGridDtoPaginatedResults.ts","api/models/FcbPlanAgrementDto.ts","api/models/FcbPlanLocalisationDto.ts","api/models/FcbPresenceFormateurDto.ts","api/models/FcbProfessionFormateurDto.ts","api/models/FcbProfessionFormateurDtoPaginatedResults.ts","api/models/FcbProjetFinancementDto.ts","api/models/FcbProjetFinancementGridDto.ts","api/models/FcbProjetFinancementGridDtoPaginatedResults.ts","api/models/FcbRapportGridDto.ts","api/models/FcbRapportGridDtoPaginatedResults.ts","api/models/FcbRechercheAgrementLocalisationDto.ts","api/models/FcbRechercheAgrementLocalisationDtoPaginatedResults.ts","api/models/FcbRechercheApprenantDeliberationTypeDto.ts","api/models/FcbRechercheApprenantDeliberationTypeDtoPaginatedResults.ts","api/models/FcbRechercheApprenantViewDto.ts","api/models/FcbRechercheApprenantViewDtoPaginatedResults.ts","api/models/FcbRechercheClasseHoraireRemplacementDefinitiveDto.ts","api/models/FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults.ts","api/models/FcbRechercheClasseHoraireRemplacementOccasionnelDto.ts","api/models/FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults.ts","api/models/FcbRechercheClasseHoraireRemplacementSimultaneDto.ts","api/models/FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults.ts","api/models/FcbRechercheClasseMiseAJourMasseGridDto.ts","api/models/FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults.ts","api/models/FcbRechercheDateAbsenceDto.ts","api/models/FcbRechercheDateAbsenceDtoPaginatedResults.ts","api/models/FcbRechercheExportGapDto.ts","api/models/FcbRechercheExportGapDtoPaginatedResults.ts","api/models/FcbRechercheExportGapPrestationDto.ts","api/models/FcbRechercheExportGapPrestationDtoPaginatedResults.ts","api/models/FcbRechercheExportGapRemplacementDto.ts","api/models/FcbRechercheExportGapRemplacementDtoPaginatedResults.ts","api/models/FcbRechercheImpressionDto.ts","api/models/FcbRechercheImpressionDtoPaginatedResults.ts","api/models/FcbRecherchePlanAgrementClasseDto.ts","api/models/FcbRecherchePlanAgrementClasseDtoPaginatedResults.ts","api/models/FcbRecherchePlanLocalisationClasseDto.ts","api/models/FcbRecherchePlanLocalisationClasseDtoPaginatedResults.ts","api/models/FcbRecherchePlanLocalisationDto.ts","api/models/FcbRecherchePlanLocalisationDtoPaginatedResults.ts","api/models/FcbRechercheRemplacementDto.ts","api/models/FcbRechercheRemplacementDtoPaginatedResults.ts","api/models/FcbRechercheapprenantValidationcemasseDto.ts","api/models/FcbRechercheapprenantValidationcemasseDtoPaginatedResults.ts","api/models/FcbRecherchecalendrierClasseDto.ts","api/models/FcbRecherchecalendrierClasseDtoPaginatedResults.ts","api/models/FcbRecherchecalendrierFormateurDto.ts","api/models/FcbRecherchecalendrierFormateurDtoPaginatedResults.ts","api/models/FcbRecherchecalendrierVisiteDto.ts","api/models/FcbRecherchecalendrierVisiteDtoPaginatedResults.ts","api/models/FcbRechercheexportDto.ts","api/models/FcbRechercheexportDtoPaginatedResults.ts","api/models/FcbRecherchestatPresenceApprenantDto.ts","api/models/FcbRecherchestatPresenceApprenantDtoPaginatedResults.ts","api/models/FcbReferentielDto.ts","api/models/FcbReferentielGridDto.ts","api/models/FcbReferentielGridDtoPaginatedResults.ts","api/models/FcbRemplacementDefinitifDto.ts","api/models/FcbRemplacementDto.ts","api/models/FcbRemplacementGridDto.ts","api/models/FcbRemplacementGridDtoPaginatedResults.ts","api/models/FcbRemplacementSimultaneDto.ts","api/models/FcbReportAccesPermissionDto.ts","api/models/FcbReportCentrePermissionDto.ts","api/models/FcbReportModulePermissionDto.ts","api/models/FcbReportPermissionsDto.ts","api/models/FcbRepresentantApprenantsliesDto.ts","api/models/FcbRepresentantApprenantsliesDtoPaginatedResults.ts","api/models/FcbRepresentantDoublonGridDto.ts","api/models/FcbRepresentantDoublonGridDtoPaginatedResults.ts","api/models/FcbRepresentantDto.ts","api/models/FcbRepresentantGridDto.ts","api/models/FcbRepresentantGridDtoPaginatedResults.ts","api/models/FcbSecteurDto.ts","api/models/FcbSecteurGridDto.ts","api/models/FcbSecteurGridDtoPaginatedResults.ts","api/models/FcbSecteurHomogeneDto.ts","api/models/FcbSecteurHomogeneGridDto.ts","api/models/FcbSecteurHomogeneGridDtoPaginatedResults.ts","api/models/FcbServiceTutelleCodePostalDto.ts","api/models/FcbServiceTutelleDto.ts","api/models/FcbServiceTutelleGridDto.ts","api/models/FcbServiceTutelleGridDtoPaginatedResults.ts","api/models/FcbServiceTutelleLocaliteGridDto.ts","api/models/FcbServiceTutelleLocaliteGridDtoPaginatedResults.ts","api/models/FcbSmsGridDto.ts","api/models/FcbSmsGridDtoPaginatedResults.ts","api/models/FcbSmsSuiviGridDto.ts","api/models/FcbSmsSuiviGridDtoPaginatedResults.ts","api/models/FcbSmsUtilitaireDetailDto.ts","api/models/FcbSmsUtilitaireGridDto.ts","api/models/FcbSmsUtilitaireGridDtoPaginatedResults.ts","api/models/FcbSoldeGridDto.ts","api/models/FcbSoldeGridDtoPaginatedResults.ts","api/models/FcbSpecificiteCoursDto.ts","api/models/FcbSpecificiteCoursGridDto.ts","api/models/FcbSpecificiteCoursGridDtoPaginatedResults.ts","api/models/FcbStadeDto.ts","api/models/FcbStadeGridDto.ts","api/models/FcbStadeGridDtoPaginatedResults.ts","api/models/FcbStatutSocialDto.ts","api/models/FcbStatutSocialGridDto.ts","api/models/FcbStatutSocialGridDtoPaginatedResults.ts","api/models/SuiviApprenantActionEditDto.ts","api/models/SuiviApprenantFichierGridDto.ts","api/models/FcbSuiviApprenantDetailsDto.ts","api/models/FcbSuiviApprenantGridDto.ts","api/models/FcbSuiviApprenantGridDtoPaginatedResults.ts","api/models/FcbTitrePedagogiqueDto.ts","api/models/FcbTitrePedagogiqueDtoPaginatedResults.ts","api/models/FcbTypeCoursDto.ts","api/models/FcbTypeCoursGridDto.ts","api/models/FcbTypeCoursGridDtoPaginatedResults.ts","api/models/FcbTypeEnseignementDto.ts","api/models/FcbTypeEnseignementDtoPaginatedResults.ts","api/models/FcbTypeEvaluationDto.ts","api/models/FcbTypeEvaluationDtoPaginatedResults.ts","api/models/FcbTypeFinancementDto.ts","api/models/FcbTypeFinancementGridDto.ts","api/models/FcbTypeFinancementGridDtoPaginatedResults.ts","api/models/FcbUniteActiviteDto.ts","api/models/FcbUniteActiviteDtoPaginatedResults.ts","api/models/FcbUserCentresLiesGridDto.ts","api/models/FcbUserCentresLiesGridDtoPaginatedResults.ts","api/models/FcbUserGridDto.ts","api/models/FcbUserGridDtoPaginatedResults.ts","api/models/FcbUsersCentresLiesDto.ts","api/models/FcbVisiteClasseDto.ts","api/models/FcbVisiteClasseGridDto.ts","api/models/FcbVisiteClasseGridDtoPaginatedResults.ts","api/models/FcbVisiteDto.ts","api/models/FcbVisiteFormateurDto.ts","api/models/FcbVisiteFormateurGridDto.ts","api/models/FcbVisiteFormateurGridDtoPaginatedResults.ts","api/models/FcbVisiteGridDto.ts","api/models/FcbVisiteGridDtoPaginatedResults.ts","api/models/FeuillePresenceInfoDto.ts","api/models/FeuillePresencePrintRequestDto.ts","api/models/FeuillePresenceSaveDto.ts","api/models/FeuillePresenceSearch.ts","api/models/FeuillePresencesPrintDatesDto.ts","api/models/FichierGridDto.ts","api/models/FichierGridDtoPaginatedResults.ts","api/models/FichierSearchDto.ts","api/models/FileDownloadDto.ts","api/models/SelectItem.ts","api/models/FilterCriteriaInfo.ts","api/models/FinancementClasseSearch.ts","api/models/ForfaitAuditeurSearch.ts","api/models/FormateurAgrementSearch.ts","api/models/FormateurAzureSearch.ts","api/models/FormateurClasseSearch.ts","api/models/FormateurDesideratumSearch.ts","api/models/FormateurDiplomeSearch.ts","api/models/FormateurDoublonSearch.ts","api/models/FormateurHoraireGridDto.ts","api/models/FormateurHoraireGridDtoPaginatedResults.ts","api/models/FormateurHoraireIncoherenceGridDto.ts","api/models/FormateurHoraireIncoherenceGridDtoPaginatedResults.ts","api/models/FormateurHoraireIncoherenceSearch.ts","api/models/FormateurHoraireSearch.ts","api/models/FormateurLocalisationContratSearch.ts","api/models/FormateurPrestationContratSearch.ts","api/models/FormateurPrestationsGlobalesSearch.ts","api/models/FormateurProfessionSearch.ts","api/models/FormateurSearch.ts","api/models/FormateurSuiviFichierDto.ts","api/models/FormateurSuiviFichierUploadDto.ts","api/models/FormateurSuiviSearch.ts","api/models/FormateurTitreSearch.ts","api/models/FormateursMetiersAgrementSearch.ts","api/models/FormationSearch.ts","api/models/FrontendSettings.ts","api/models/RapportHopeParameterDataDto.ts","api/models/GenerateMultipleRapportHopeCommand.ts","api/models/GenerateRapportHopeCommand.ts","api/models/GestionDroitsSearch.ts","api/models/GetApprenantAvisResultatsIdsfichierDto.ts","api/models/GetInscriptionDatesConvocationRequestDto.ts","api/models/GetRapportHopeForViewQuery.ts","api/models/HealthCheckEntryViewModel.ts","api/models/HealthCheckViewModel.ts","api/models/HoraireSearch.ts","api/models/ImpersonateUserInfoDto.ts","api/models/InscriptionAbandonDto.ts","api/models/InscriptionFichierDto.ts","api/models/InscriptionFichierUploadDto.ts","api/models/InscriptionMasseSearch.ts","api/models/InscriptionSearch.ts","api/models/InscriptionSuspensionDto.ts","api/models/InscriptionSuspensionDtoPaginatedResults.ts","api/models/InscriptionSuspensionMultipleDto.ts","api/models/InscriptionSuspensionSearchDto.ts","api/models/InstitutionApprenantLiesGridDto.ts","api/models/InstitutionApprenantLiesGridDtoPaginatedResults.ts","api/models/InstitutionApprenantLiesSearchDto.ts","api/models/InstitutionEditDto.ts","api/models/InstitutionGridDto.ts","api/models/InstitutionGridDtoPaginatedResults.ts","api/models/InstitutionSearchDto.ts","api/models/InstitutionSelectorGridDto.ts","api/models/InstitutionSelectorGridDtoPaginatedResults.ts","api/models/InstitutionSelectorSearch.ts","api/models/JureSearch.ts","api/models/JustificatifAbsenceSearch.ts","api/models/LieuFormationAgrementDecisionMultipleDto.ts","api/models/LieuFormationAgrementDemandeSectorielleMultipleDto.ts","api/models/LieuFormationAgrementOffreDto.ts","api/models/LieuFormationAgrementSuspensionDto.ts","api/models/LieuFormationAgrementVisiteDto.ts","api/models/LieuFormationAgrementEditDto.ts","api/models/LieuFormationAgrementGridDto.ts","api/models/LieuFormationAgrementGridDtoPaginatedResults.ts","api/models/LieuFormationAgrementRetraitMultipleDto.ts","api/models/LieuFormationAgrementSearchDto.ts","api/models/LieuFormationAgrementSuspensionMultipleDto.ts","api/models/LieuFormationAgrementVisiteMultipleDto.ts","api/models/LieuFormationCapaciteFormativeDto.ts","api/models/LieuFormationEditDto.ts","api/models/LieuFormationFichierDto.ts","api/models/LieuFormationFichierGridDto.ts","api/models/LieuFormationFichierGridDtoPaginatedResults.ts","api/models/LieuFormationFichierSearchDto.ts","api/models/LieuFormationFichierUploadDto.ts","api/models/LieuFormationGridDto.ts","api/models/LieuFormationGridDtoPaginatedResults.ts","api/models/LieuFormationHistoryGridDto.ts","api/models/LieuFormationHistoryGridDtoPaginatedResults.ts","api/models/LieuFormationHistorySearch.ts","api/models/LieuFormationSearchDto.ts","api/models/LieuFormationSelectorGridDto.ts","api/models/LieuFormationSelectorGridDtoPaginatedResults.ts","api/models/LieuFormationSelectorSearch.ts","api/models/LieuxCoursSearch.ts","api/models/LocalSearch.ts","api/models/MassDownloadRequestDto.ts","api/models/MatiereHeureDto.ts","api/models/MatiereReferentielSearch.ts","api/models/MetierClauseLieeSearch.ts","api/models/MetierConseillersLiesSearch.ts","api/models/MetierLocalisationSearch.ts","api/models/MetierSearch.ts","api/models/MinDatePresenceDto.ts","api/models/MinervalSearch.ts","api/models/ModuleDto.ts","api/models/OffreDemandeGridDto.ts","api/models/OffreDemandeGridDtoPaginatedResults.ts","api/models/OffreDemandeSearchDto.ts","api/models/PaiementSearch.ts","api/models/ParcoursFormationDto.ts","api/models/ParcoursFormationEditDto.ts","api/models/ParcoursFormationGridDtoPaginatedResults.ts","api/models/ParcoursFormationSearch.ts","api/models/ParcoursInterneSearch.ts","api/models/PaysSearch.ts","api/models/PersonneEditDto.ts","api/models/PersonneGridDto.ts","api/models/PersonneGridDtoPaginatedResults.ts","api/models/PersonneHistoryGridDto.ts","api/models/PersonneHistoryGridDtoPaginatedResults.ts","api/models/PersonneHistorySearch.ts","api/models/PersonneSearchDto.ts","api/models/PersonnelTutelleSearch.ts","api/models/PlageHoraireSearch.ts","api/models/PlanAgrementClasseSearch.ts","api/models/PlanLocalisationClasseSearch.ts","api/models/PlanLocalisationSearch.ts","api/models/PriReassignmentDto.ts","api/models/PrintingQueueDto.ts","api/models/PrintingQueueGridDto.ts","api/models/PrintingQueueGridDtoPaginatedResults.ts","api/models/PrintingQueueIdsDto.ts","api/models/PrintingQueueSearchDto.ts","api/models/ProfessionFormateurSearch.ts","api/models/ProjetFinancementSearch.ts","api/models/RapportHopeAccesPermissionDto.ts","api/models/RapportHopeDownloadDto.ts","api/models/RapportHopeEditDto.ts","api/models/RapportHopeParameterValuesDto.ts","api/models/RapportHopeParameterDto.ts","api/models/RapportHopeForViewDto.ts","api/models/RapportHopeGetIdsrapportContrat200Response.ts","api/models/RapportHopeGridDto.ts","api/models/RapportHopeGridDtoPaginatedResults.ts","api/models/RapportHopeModulePermissionDto.ts","api/models/RapportHopeServicePermissionDto.ts","api/models/RapportHopePermissionsDto.ts","api/models/RapportHopeSearchDto.ts","api/models/RapportSearch.ts","api/models/RechercheAgrementLocalisationSearch.ts","api/models/RechercheApprenantValidationCeMasseSearch.ts","api/models/RechercheClasseHoraireRemplacementDefinitiveSearch.ts","api/models/RechercheClasseHoraireRemplacementOccasionnelSearch.ts","api/models/RechercheClasseHoraireRemplacementSimultaneSearch.ts","api/models/RechercheDateAbsenceApprenantSearch.ts","api/models/RechercheExportGapSearch.ts","api/models/RechercheImpressionSearch.ts","api/models/RechercheRemplacementSearch.ts","api/models/RechercheStatPresenceApprenantSearch.ts","api/models/RechercheexportSearch.ts","api/models/ReferentialResultInfoDto.ts","api/models/ReferentielSearch.ts","api/models/RemplacementSearch.ts","api/models/ReportParameterDto.ts","api/models/ReportParametersDto.ts","api/models/RepresentantDoublonSearch.ts","api/models/RepresentantSearch.ts","api/models/RepresentantSelectorGridDto.ts","api/models/RepresentantSelectorGridDtoPaginatedResults.ts","api/models/RepresentantSelectorSearch.ts","api/models/SaveReferentielDto.ts","api/models/SecteurHomogeneSearch.ts","api/models/SecteurMetierLiesSearch.ts","api/models/SecteurSearch.ts","api/models/SelectedPrintingsDto.ts","api/models/ServiceGridDto.ts","api/models/ServiceGridDtoPaginatedResults.ts","api/models/ServiceSearchDto.ts","api/models/ServiceTutelleLocaliteSearch.ts","api/models/ServiceTutelleSearch.ts","api/models/ServiceUserLieEditDto.ts","api/models/ServiceUserLieGridDto.ts","api/models/ServiceUserLieGridDtoPaginatedResults.ts","api/models/ServiceUserLieSearch.ts","api/models/SiegeLieuSuiviActionEditDto.ts","api/models/SiegeLieuSuiviFichierGridDto.ts","api/models/SiegeLieuSuiviEditDto.ts","api/models/SiegeLieuSuiviFichierDto.ts","api/models/SiegeLieuSuiviFichierGridDtoPaginatedResults.ts","api/models/SiegeLieuSuiviFichierSearchDto.ts","api/models/SiegeLieuSuiviFichierUploadDto.ts","api/models/SiegeLieuSuiviGridDto.ts","api/models/SiegeLieuSuiviGridDtoPaginatedResults.ts","api/models/SiegeLieuSuiviSearchBase.ts","api/models/SiegeLieuSuiviSearchGlobal.ts","api/models/SiegeSocialAdresseDto.ts","api/models/SiegeSocialChefEntrepriseGridDto.ts","api/models/SiegeSocialChefEntrepriseGridDtoPaginatedResults.ts","api/models/SiegeSocialChefEntrepriseSearchDto.ts","api/models/SiegeSocialEditDto.ts","api/models/SiegeSocialFichierDto.ts","api/models/SiegeSocialFichierGridDto.ts","api/models/SiegeSocialFichierGridDtoPaginatedResults.ts","api/models/SiegeSocialFichierSearchDto.ts","api/models/SiegeSocialFichierUploadDto.ts","api/models/SiegeSocialGridDto.ts","api/models/SiegeSocialGridDtoPaginatedResults.ts","api/models/SiegeSocialHistoryGridDto.ts","api/models/SiegeSocialHistoryGridDtoPaginatedResults.ts","api/models/SiegeSocialHistorySearch.ts","api/models/SiegeSocialSearchDto.ts","api/models/SiegeSocialSelectorGridDto.ts","api/models/SiegeSocialSelectorGridDtoPaginatedResults.ts","api/models/SiegeSocialSelectorSearch.ts","api/models/SmsSearch.ts","api/models/SmsSuiviSearch.ts","api/models/SmsUtilitaireSearch.ts","api/models/SocieteExterneEditDto.ts","api/models/SocieteExterneGridDto.ts","api/models/SocieteExterneGridDtoPaginatedResults.ts","api/models/SocieteExterneSearchDto.ts","api/models/SoldeApprenantSearch.ts","api/models/SpecificiteCoursSearch.ts","api/models/StadeSearch.ts","api/models/StatutApprenantEditDto.ts","api/models/StatutApprenantGridDtoPaginatedResults.ts","api/models/StatutApprenantSearch.ts","api/models/StatutDemandeCodeIdDto.ts","api/models/StatutSocialSearch.ts","api/models/SuiviActionEditDto.ts","api/models/SuiviApprenantFichierDto.ts","api/models/SuiviApprenantFichierUploadDto.ts","api/models/SuiviApprenantSearch.ts","api/models/SuiviFichierDto.ts","api/models/SuiviFichierGridDto.ts","api/models/SuiviFichierGridDtoPaginatedResults.ts","api/models/SuiviFichierSearchDto.ts","api/models/SuiviFichierUploadDto.ts","api/models/SuiviGlobalSearchDto.ts","api/models/SuiviGridDto.ts","api/models/SuiviGridDtoPaginatedResults.ts","api/models/SuiviHopeEditDto.ts","api/models/SuiviHopeMultipleEditDto.ts","api/models/SuiviSearchDto.ts","api/models/SuiviSiegeLieuGridDto.ts","api/models/SuiviSiegeLieuGridDtoPaginatedResults.ts","api/models/SystemInfoDto.ts","api/models/TelephoneReplaceDto.ts","api/models/TitrePedagogiqueSearch.ts","api/models/TuteurEditDto.ts","api/models/TuteurGridDto.ts","api/models/TuteurGridDtoPaginatedResults.ts","api/models/TuteurHistoryGridDto.ts","api/models/TuteurHistoryGridDtoPaginatedResults.ts","api/models/TuteurHistorySearch.ts","api/models/TuteurLieuDoublonGridDto.ts","api/models/TuteurLieuDoublonGridDtoPaginatedResults.ts","api/models/TuteurLieuDoublonSearchDto.ts","api/models/TuteurLieuFormationGridDto.ts","api/models/TuteurLieuFormationGridDtoPaginatedResults.ts","api/models/TuteurLieuFormationSearchDto.ts","api/models/TuteurLieuGridDto.ts","api/models/TuteurLieuGridDtoPaginatedResults.ts","api/models/TuteurSearchDto.ts","api/models/TuteurSelectorGridDto.ts","api/models/TuteurSelectorGridDtoPaginatedResults.ts","api/models/TuteurSelectorSearch.ts","api/models/TypeBulletinEditDto.ts","api/models/TypeBulletinGridDto.ts","api/models/TypeBulletinGridDtoPaginatedResults.ts","api/models/TypeBulletinSearchDto.ts","api/models/TypeCoursSearch.ts","api/models/TypeEnseignementSearch.ts","api/models/TypeEvaluationSearch.ts","api/models/TypeFinancementSearch.ts","api/models/UniteActiviteSearch.ts","api/models/UserActionDto.ts","api/models/UserDto.ts","api/models/UserProfileDto.ts","api/models/UserSearch.ts","api/models/UsersCentresLiesSearch.ts","api/models/UsersServicesLiesDto.ts","api/models/UsersServicesLiesGridDto.ts","api/models/UsersServicesLiesGridDtoPaginatedResults.ts","api/models/UsersServicesLiesSearchDto.ts","api/models/ValidationError.ts","api/models/VisiteClasseSearch.ts","api/models/VisiteFormateurSearch.ts","api/models/VisiteSearch.ts","api/models/EStatutContrat.ts","App.tsx","AppProvider.tsx","version.ts","index.tsx","utils/phoneRegex.tsx","pages/cours/deliberationMasse/item/DeliberationMasseSelector.tsx","pages/cours/deliberationMasse/item/DeliberationMasseDetail.tsx","pages/cours/offre/list/OffreListPage.tsx","pages/cours/offre/item/OffreItemPage.tsx","pages/cours/offre/item/OffreDetail.tsx","pages/donnees/FO/acquisIfapme/item/AcquisIfapmeDetailPage.tsx","pages/donnees/FO/acquisIfapme/item/AcquisIfapmeItemPage.tsx","pages/donnees/FO/acquisIfapme/list/AcquisIfapmeListPage.tsx","pages/donnees/FO/specificiteCours/list/SpecificiteCoursListPage.tsx","pages/donnees/FO/specificiteCours/item/SpecificiteCoursDetailPage.tsx","pages/donnees/FO/specificiteCours/item/SpecificiteCoursItemPage.tsx","pages/donnees/FO/typeEvaluation/list/TypeEvaluationListPage.tsx","pages/donnees/FO/typeEvaluation/item/TypeEvaluationDetailPage.tsx","pages/donnees/FO/typeEvaluation/item/TypeEvaluationItemPage.tsx","pages/gestion/uniteActivite/item/UniteActiviteDetailPage.tsx","pages/gestion/uniteActivite/item/UniteActiviteItemPage.tsx","pages/gestion/uniteActivite/list/UniteActiviteListPage.tsx","pages/gestion/exportationGap/item/ExportationGapDetailPage.tsx","pages/gestion/exportationGap/item/ExportationGapPrestationListPage.tsx","pages/gestion/exportationGap/item/ExportationGapRemplacementsListPage.tsx","pages/gestion/exportationGap/item/ExportationGapItemPage.tsx","pages/gestion/exportationGap/list/ExportationGapListPage.tsx","pages/gestion/exportationGap/item/ExportGapClassesList.tsx","pages/gestion/exportationGap/item/ExportGapFormateursList.tsx","pages/gestion/exportationGap/item/ExportGapStatistiqueList.tsx","pages/gestion/forfaitAuditeur/list/ForfaitAuditeurList.tsx","pages/gestion/forfaitAuditeur/item/ForfaitAuditeurPage.tsx","pages/gestion/forfaitAuditeur/item/ForfaitAuditeurDetail.tsx","pages/utilitaire/sms/item/SmsDetailPage.tsx","pages/utilitaire/sms/item/SmsSuiviPage.tsx","pages/utilitaire/sms/item/SmsItemPage.tsx","pages/utilitaire/sms/list/SmsListPage.tsx","pages/donnees/FO/commissionParitaire/item/CommissionParitaireDetailPage.tsx","pages/donnees/FO/commissionParitaire/item/CommissionParitaireItemPage.tsx","pages/donnees/FO/commissionParitaire/list/CommissionParitaireListPage.tsx","AppRouter.tsx","components/applicationButtons/CancelButton.tsx","components/applicationButtons/DeleteButton.tsx","components/applicationButtons/SaveButton.tsx","components/applicationButtons/EditButton.tsx","components/applicationButtons/ViewButton.tsx","components/applicationButtons/EmailButton.tsx","components/applicationButtons/AddButton.tsx","components/applicationButtons/BackButton.tsx","components/applicationButtons/CopyButton.tsx","components/applicationButtons/SmsButton.tsx","components/applicationButtons/SearchButton.tsx","components/applicationButtons/PrintButton.tsx","components/applicationButtons/DownloadButton.tsx","components/applicationButtons/FusionButton.tsx","components/applicationButtons/HomonymeButton.tsx","components/applicationButtons/CutButton.tsx","components/applicationButtons/CreateAzureButton.tsx","components/applicationButtons/DuplicateButton.tsx","components/applicationButtons/ClearButton.tsx","components/applicationButtons/SelectButton.tsx","components/applicationButtons/LinkButton.tsx","components/applicationButtons/FavoriteButton.tsx","components/applicationButtons/NextButton.tsx","components/applicationButtons/PreviousButton.tsx","components/applicationButtons/ConfirmableIconButton.tsx","components/applicationButtons/SelectAllButton.tsx","components/formGenerator/RepresentantSelector/RepresentantSelectorField.tsx","components/formGenerator/RepresentantSelector/RepresentantSelectorDialog.tsx","components/formGenerator/FGWalterDateMaskInput.tsx","components/formGenerator/FGWalterSelectInput.tsx","components/formGenerator/RepresentantSelector/RepresentantSelector.tsx","components/formGenerator/FGReadOnlyInput.tsx","components/formGenerator/InstitutionSelector/InstitutionSelectorField.tsx","components/formGenerator/InstitutionSelector/InstitutionSelectorDialog.tsx","components/formGenerator/InstitutionSelector/InstitutionSelector.tsx","components/formGenerator/FGWalterCheckboxInput.tsx","components/formGenerator/FGWalterMultiCheckboxInput.tsx","components/formGenerator/personneAdresseSelector/FGPersonneAdresseSelector.tsx","components/formGenerator/personneAdresseSelector/PersonneAdresseSelectorDialog.tsx","components/formGenerator/personneAdresseSelector/AdresseInfos.tsx","components/formGenerator/ChefEntrepriseSelector/ChefEntrepriseSelector.tsx","components/formGenerator/ChefEntrepriseSelector/ChefEntrepriseSelectorDialog.tsx","components/formGenerator/ChefEntrepriseSelector/ChefEntrepriseSelectorField.tsx","components/formGenerator/LieuFormationSelector/LieuFormationSelector.tsx","components/formGenerator/LieuFormationSelector/LieuFormationSelectorField.tsx","components/formGenerator/LieuFormationSelector/LieuFormationSelectorDialog.tsx","components/formGenerator/TuteurSelector/TuteurSelector.tsx","components/formGenerator/TuteurSelector/TuteurSelectorField.tsx","components/formGenerator/TuteurSelector/TuteurSelectorDialog.tsx","components/formGenerator/ApprenantSelector/ApprenantSelectorField.tsx","components/formGenerator/ApprenantSelector/ApprenantSelectorDialog.tsx","components/formGenerator/ApprenantSelector/ApprenantSelector.tsx","components/formGenerator/FGHalfDaysInput.tsx","components/formGenerator/FGWalterSuggestTextInput.tsx","components/formGenerator/SiegeSocialSelector/SiegeSocialSelector.tsx","components/formGenerator/SiegeSocialSelector/SiegeSocialSelectorDialog.tsx","components/formGenerator/SiegeSocialSelector/SiegeSocialSelectorField.tsx","components/formGenerator/FGWalterFileInput.tsx","components/formGenerator/Dropzone.tsx","components/formGenerator/FGPersonneCodePostal.tsx"],"names":[],"mappings":"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MAGX,IAGH,EAAsB,CAAC,EAAuB,KAAuC,CAnnB3F,SAonBE,GAAI,GAA4B,KAAK,GACrC,MAAI,GAAK,OACP,GAAS,MAAQ,GACjB,EAAK,MAAM,QAAQ,IAAK,CACtB,KAAM,IAAe,EAAoB,GAAG,IACxC,IAAiB,EAAC,GAAa,OAAS,GAAa,MAAM,OAAS,IACtE,EAAS,MAAM,KAAK,OAItB,EAAS,OACX,GACE,oBAAS,SAAS,KAAS,MAAM,MAAM,KAAK,KAA1B,cAA8B,iBAChD,OAAS,wBAAT,eAAgC,KAAK,IAAK,mBAAS,SAAS,GAAE,MAAM,KAAK,GAAG,iBACxE,EACA,MAED,GAGI,EAAgB,CAC3B,EACA,GACA,EACA,KACY,CA7oBd,MA8oBE,OAAS,MAAK,sBAAM,QAAN,OAAe,EAAc,EAAS,GAAM,GACxD,GAAI,EAAC,GAEL,MAAI,IAAE,MACG,EAAc,EAAS,GAAM,EAAoB,IAEnD,GAAE,Q,iCCppBN,mCAAK,GAAL,UAAK,EAAL,CACL,qBACA,qBACA,mBACA,mBACA,qBACA,qBACA,+BACA,+BACA,mBACA,mBACA,oBACA,oBACA,4BACA,oCACA,kCACA,0BACA,sBACA,wBACA,oCACA,wBACA,kDACA,wCACA,sBACA,sCACA,gDACA,kDACA,8CACA,sDACA,wEACA,kFACA,oFACA,4DACA,kDACA,8DACA,0EACA,oDACA,0DACA,4DACA,oDACA,sDACA,sDACA,sDACA,0DACA,gDACA,8CACA,sDACA,gDACA,wDACA,0DACA,8CACA,0DACA,sDACA,oEACA,4EACA,gEACA,kEACA,4CACA,4CACA,8DACA,oEACA,8CACA,gDACA,4EACA,gDACA,4CACA,sDACA,8CACA,8DACA,wDACA,gEACA,gDACA,oDACA,0DACA,4DACA,8DACA,oDACA,sDACA,gDACA,4DACA,gDACA,kDACA,sDACA,wDACA,0DACA,wDACA,kEACA,0DACA,0CACA,4CACA,0DACA,4DACA,sDACA,4DACA,gEACA,4CACA,0DACA,sEACA,oDACA,0EACA,gDACA,mDACA,+CACA,uDACA,yDACA,2CACA,uDACA,yDACA,uEACA,yEACA,yDACA,yEACA,qEACA,6CACA,iEACA,yDACA,2DACA,6DACA,2DACA,6DACA,yDACA,2DACA,+CACA,6EACA,6DACA,+DACA,2DACA,yCACA,mEACA,6CACA,2DACA,6CACA,+DACA,mEACA,qDACA,mEACA,mEACA,+DACA,iEACA,6CACA,2DACA,iEACA,mEACA,qDACA,2BACA,6BACA,6DACA,yBACA,iCACA,+CACA,yCACA,iCACA,mEACA,6BACA,uCACA,2BACA,qCACA,2CACA,2CACA,+CACA,+CACA,uBACA,6BACA,2CACA,qDACA,+BACA,6CACA,6CACA,iCACA,2CACA,uBACA,mCACA,qCACA,uCACA,yCACA,mBACA,6CACA,+BACA,yCACA,iCACA,iDACA,6CACA,iBACA,uBACA,mEACA,uBACA,qCACA,yCACA,qBACA,mCACA,uBACA,uBACA,uBACA,uBACA,+EACA,uFACA,2GACA,6FACA,iGACA,+FACA,+EACA,6EACA,+EACA,2FACA,mEACA,+DACA,yEACA,qEACA,+FACA,2EACA,qFACA,+DACA,2EACA,+FACA,yFACA,uFACA,mFACA,mGACA,uCACA,iCACA,yCACA,uBACA,6BACA,uCACA,uCACA,iBACA,iBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,2CACA,yDACA,mCACA,iCACA,mCACA,iDACA,2EACA,2CACA,iCACA,uCACA,mDACA,+BACA,2BACA,yBACA,2CACA,6EACA,2CACA,qCACA,6DACA,uDACA,mEACA,iEACA,2EACA,+DACA,2BACA,mCACA,mCACA,qCACA,yCACA,6CACA,mDACA,yBACA,mCACA,yDACA,+CACA,iCACA,uCACA,uGACA,uFACA,6CACA,qCACA,2BACA,6CACA,qDACA,mDACA,mDACA,qCACA,qDACA,qBACA,2BACA,iCACA,yDACA,2CACA,uCACA,mCACA,6BACA,iCACA,2DACA,mCACA,mCACA,iCACA,2CACA,qCACA,6CACA,6DACA,+CACA,6BACA,2CACA,2DACA,2BACA,6CACA,uCACA,2CACA,uBACA,yCACA,6BACA,2CACA,qBACA,iCACA,uDACA,+DACA,6EACA,iHACA,yEACA,+EACA,2CACA,2DACA,+BACA,yCACA,6CACA,2BACA,6DACA,2BACA,6CACA,iDACA,iCACA,mCACA,yDACA,qBACA,2BACA,qCACA,2BACA,uBACA,uBACA,2BACA,iCACA,iCACA,mCACA,mCACA,2BACA,+BACA,+BACA,+BACA,qCACA,yCACA,yCACA,+CACA,mBACA,mBACA,qBACA,mCACA,mCACA,2CACA,qCACA,mCACA,yCACA,2CACA,+BACA,qCACA,iDACA,yEACA,+BACA,2CACA,+BACA,6CACA,mCACA,mDACA,qCACA,qCACA,6CACA,6CACA,+BACA,iCACA,+BACA,uCACA,2BACA,iDACA,2CACA,6CACA,uCACA,qDACA,qCACA,iCACA,2CACA,+BACA,yCACA,2CACA,uCACA,iBACA,uBACA,uCACA,qCACA,6BACA,uBACA,yBACA,2BACA,2CACA,+DACA,+CACA,uCACA,uCACA,mDACA,qCACA,+CACA,+CACA,+CACA,mEACA,qDACA,6CACA,iDACA,+CACA,2BACA,yCACA,qDACA,qDACA,2DACA,iCACA,mCACA,iCACA,yBACA,6CACA,2BACA,2CACA,iCACA,qCACA,6BACA,2BACA,qCACA,6BACA,+BACA,2DACA,2CACA,+CACA,qEACA,iCACA,2BACA,qDACA,6BACA,uEACA,uBACA,uBACA,iEACA,qEACA,uEACA,2EACA,6DACA,yBACA,2BACA,iCACA,uBACA,6BACA,mCACA,uCACA,uCACA,2CACA,+CACA,iCACA,iEACA,6DACA,iDACA,uCACA,6BACA,2DACA,uBACA,2EACA,2EACA,qEACA,6EACA,2CACA,mDACA,+DACA,mCACA,qBACA,qCACA,+BACA,mCACA,6CACA,yBACA,iCACA,mCACA,yBACA,2BACA,qCACA,yCACA,uCACA,6BACA,+BACA,mCACA,qCACA,2CACA,uBACA,uBACA,mBACA,qDACA,uDACA,2DACA,iEACA,qEACA,iBACA,mBACA,yBACA,6BACA,uBACA,yBACA,6BACA,yBACA,2BACA,2CACA,6CACA,yBACA,mBACA,mCACA,iCACA,yBACA,2BACA,mCACA,iCACA,yCACA,2CACA,mEACA,+BACA,iDACA,qCACA,iCACA,+BACA,iCACA,qCACA,6BACA,iCACA,yBACA,uCACA,2BACA,iDACA,yCACA,uCACA,mCACA,yCACA,qCACA,yCACA,6CACA,qCACA,uCACA,yCACA,iCACA,6CACA,qCACA,6DACA,mEACA,yDACA,6CACA,qCACA,mCACA,iCACA,uBACA,qDACA,2BACA,uCACA,uCACA,yCACA,yDACA,yBACA,uBACA,iCACA,yBACA,6BACA,iCACA,mBACA,yBACA,+BACA,+BACA,qCACA,2CACA,6CACA,yCACA,2BACA,2BACA,yBACA,yCACA,6CACA,2CACA,yCACA,6BACA,yCACA,2BACA,2CACA,6CACA,+CACA,6BACA,uBACA,uBACA,uBACA,+BACA,uBACA,2BACA,2BACA,yBACA,2CACA,mCACA,6BACA,6BACA,qDACA,2DACA,mCACA,6BACA,qCACA,+CACA,yBACA,6BACA,yBACA,2BACA,uCACA,mCACA,mCACA,mCACA,mCACA,yBACA,+CACA,+CACA,qCACA,mCACA,yEACA,2DACA,mEACA,yDACA,uEACA,iFACA,iEACA,+DACA,qDACA,2DACA,qCACA,+CACA,qFACA,qCACA,2BACA,2BACA,qCACA,mCACA,yBACA,uBACA,qCACA,uBACA,qBACA,iCACA,iCACA,2BACA,uBACA,qBACA,uBACA,uCACA,+BACA,iBACA,yBACA,2BACA,6CACA,qEACA,6BACA,iCACA,yBACA,2BACA,uCACA,iDACA,mCACA,qBACA,uCACA,uCACA,+BACA,qCACA,iDACA,+CACA,+BACA,uBACA,uDACA,qCACA,qDACA,6BACA,6BACA,yCACA,qCACA,+CACA,+BACA,qDACA,yBACA,uBACA,6BACA,iCACA,6DACA,6DACA,yBACA,qCACA,uBACA,qCACA,uBACA,6BACA,iCACA,iCACA,2BACA,2CACA,2CACA,6BACA,+BACA,6DACA,mEACA,qDACA,2CACA,iDACA,+CACA,yDACA,6BACA,6BACA,iDACA,qBACA,qCACA,qDACA,6BACA,2BACA,yBACA,2FACA,qFACA,mEACA,yFACA,6DACA,2DACA,6DACA,+DACA,6EACA,+DACA,yDACA,6DACA,qDACA,uDACA,qDACA,mDACA,iEACA,6EACA,uEACA,uEACA,yEACA,mEACA,2BACA,mCACA,mEACA,6BACA,6BACA,2BACA,+BACA,yCACA,qBACA,iCACA,iCACA,uCACA,yBACA,yBACA,iCACA,2BACA,iDACA,+CACA,qBACA,2BACA,mCACA,iBACA,2DACA,iCACA,2BACA,mCACA,iCACA,yCACA,iCACA,yCACA,uCACA,uCACA,2DACA,yDACA,mDACA,2CACA,iCACA,mDACA,2CACA,+BACA,+BACA,mBACA,2CACA,mCACA,mCACA,2BACA,mBACA,+BACA,uCACA,iCACA,iCACA,iCACA,+CACA,+BACA,uBACA,yDACA,qDACA,mDACA,uCACA,qCACA,uCACA,6EACA,6BACA,+BACA,+CACA,yBACA,qCACA,6BACA,qDACA,yCACA,+BACA,uBACA,qDACA,mBACA,qDACA,uEACA,+CACA,mDACA,+BACA,+CACA,yBACA,qBACA,uFACA,iCACA,+CACA,+CACA,qDACA,6CACA,iDACA,mDACA,qDACA,6CACA,uCACA,2CACA,+CACA,mCACA,6CACA,qEACA,uEACA,uEACA,mEACA,mFACA,iFACA,mEACA,+EACA,yEACA,mFACA,yFACA,+DACA,2EACA,qEACA,qEACA,mEACA,mEACA,yEACA,uBACA,yBACA,2BACA,2BACA,2BACA,2BACA,2BACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,+BACA,6CACA,6BACA,uBACA,yCACA,mDACA,mDACA,+BACA,mDACA,qCACA,yBACA,2BACA,uCACA,uCACA,qCACA,6BACA,6BACA,iCACA,+BACA,mCACA,iDACA,mDACA,uBACA,uBACA,iCACA,mDACA,uDACA,mDACA,+CACA,iDACA,qCACA,6DACA,mDACA,mDACA,mCACA,uBACA,yBACA,uBACA,iBACA,iBACA,mBACA,yBACA,2BACA,iCACA,iDACA,6DACA,+BACA,2CACA,mEACA,uDACA,mCACA,qCACA,6CACA,2DACA,qDACA,yCACA,2BACA,uBACA,6BACA,yCACA,yDACA,iDACA,iEACA,+BACA,mCACA,uCACA,yBACA,+BACA,uCACA,+CACA,mCACA,2CACA,iCACA,+CACA,6CACA,6BACA,6CACA,yCACA,qCACA,uCACA,2BACA,qCACA,uCACA,2BACA,2CACA,mDACA,+CACA,uCACA,6BACA,uBACA,mCACA,qCACA,6BACA,qDACA,qCACA,6CACA,yBACA,6BACA,2DACA,2BACA,yCACA,uBACA,uBACA,uBACA,uBACA,mBACA,qCACA,yBACA,6BACA,mCACA,yBACA,2EACA,yDACA,iEACA,2FACA,6FACA,2FACA,yFACA,2FACA,2GACA,mGACA,mHACA,qFACA,qGACA,6FACA,6GACA,mGACA,+FACA,+FACA,4DACA,gDACA,4HACA,4CACA,0DACA,4CACA,4BACA,wDACA,gCACA,0EACA,8CACA,wDACA,gCACA,4BACA,8BACA,gCACA,oDACA,4BACA,kDACA,oCACA,wCACA,sBACA,sCACA,sCACA,wBACA,4BACA,0BACA,sBACA,oCACA,8CACA,wBACA,gEACA,0BACA,kEACA,sCACA,0BACA,0BACA,0CACA,gDACA,kEACA,sCACA,oCACA,0CACA,wBACA,0CACA,4CACA,8BACA,kBACA,oBACA,0CACA,sCACA,oBACA,0BACA,8BACA,wBACA,kCACA,0BACA,8BACA,0BACA,gCACA,sCACA,sBACA,wBACA,wBACA,0BACA,kDACA,kDACA,wBACA,8BACA,wCACA,0DACA,4CACA,wCACA,oCACA,4CACA,kCACA,oCACA,8BACA,8BACA,wCACA,0CACA,8CACA,wCACA,gDACA,oCACA,oCACA,sBACA,oCACA,gCACA,sEACA,4EACA,sCACA,oCACA,0CACA,4CACA,4CACA,kCACA,8CACA,sCACA,kCACA,gDACA,4CACA,8CACA,oBACA,8CACA,wCACA,0BACA,oCACA,sCACA,kCACA,kCACA,sCACA,gDACA,0BACA,wCACA,sEACA,sCACA,8BACA,0BACA,8CACA,kDACA,sBACA,wCACA,4BACA,4BACA,0BACA,4BACA,4BACA,4BACA,4BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,8BACA,kDACA,kDACA,4EACA,gCACA,4DACA,wBACA,wBACA,gDACA,wDACA,gDACA,kFACA,wFACA,sDACA,4CACA,8BACA,0BACA,sBACA,4DACA,wCACA,gCACA,gCACA,gDACA,4EACA,gEACA,0DACA,8BACA,4CACA,4HACA,0EACA,gFACA,0CACA,0CACA,8BACA,wCACA,wCACA,0BACA,oDACA,oCACA,kCACA,gCACA,4BACA,4DACA,8BACA,0EACA,8EACA,gFACA,kDACA,sCACA,0EACA,gFACA,4CACA,gDACA,oEACA,oEACA,4CACA,wCACA,0CACA,oFACA,4DACA,4CACA,0DACA,kCACA,0CACA,wCACA,oCACA,sDACA,gDACA,wBACA,wBACA,gDACA,kCACA,4BACA,8DACA,kEACA,0DACA,oCACA,gDACA,wCACA,oCACA,0FACA,4BACA,8CACA,wDACA,0CACA,sDACA,oEACA,kEACA,kEACA,wEACA,kCACA,sGACA,8EACA,4EACA,wFACA,kFACA,gEACA,4CACA,oCACA,sCACA,oCACA,wBACA,8CACA,oGACA,0FACA,oCACA,sDACA,0CACA,4HACA,4CACA,4CACA,4CACA,8CACA,wCACA,oCACA,8BACA,sDACA,0DACA,oCACA,0CACA,8CACA,kEACA,gCACA,gEACA,gDACA,sCACA,wDACA,kEACA,wBACA,oBACA,4CACA,gEACA,4DACA,0DACA,oDACA,sCACA,wCACA,sDACA,oDACA,8CACA,gCACA,sCACA,kEACA,oDACA,0DACA,0EACA,sEACA,sFACA,gFACA,kFACA,0EACA,4EACA,sCACA,gCACA,4EACA,wEACA,wGACA,oGACA,gCACA,4DACA,kDACA,0CACA,oDACA,4DACA,8DACA,8DACA,sCACA,4CACA,gDACA,kCACA,0BACA,4BACA,oBACA,wBACA,wBACA,8CACA,kBACA,kBACA,gDACA,oCACA,oCACA,wEACA,0DACA,wCACA,kEACA,gCACA,4EACA,gBACA,gBACA,8CACA,8BACA,kDACA,8CACA,oDACA,sDACA,4DACA,8DACA,4DACA,gEACA,kEACA,kEACA,oDACA,kEACA,0DACA,wEACA,4DACA,kEACA,oEACA,kEACA,sEACA,sFACA,wEACA,0DACA,wEACA,sDACA,kDACA,8EACA,4DACA,kEACA,oEACA,kEACA,sEACA,sFACA,wEACA,wEACA,0DACA,wEACA,sBACA,gBACA,oCACA,kCACA,4CACA,4CACA,8BACA,kCACA,gCACA,oDACA,0CACA,0CACA,0BACA,kCACA,4BACA,4BACA,wCACA,wBACA,8BACA,4BACA,4CACA,gCACA,kDACA,8DACA,wEACA,4EACA,sDACA,8CACA,wCACA,8BACA,wCACA,wCACA,4CACA,8BACA,wCACA,gCACA,4BACA,0BACA,8BACA,gDACA,4CACA,8DACA,0CACA,8CACA,kFACA,4CACA,gFACA,gEACA,gFACA,8DACA,sEACA,4DACA,gFACA,sFACA,8CACA,8DACA,sCACA,gEACA,oBACA,sCACA,4CACA,0DACA,4CACA,gEACA,gEACA,gEACA,kEACA,oEACA,oEACA,oEACA,sEACA,gEACA,8CACA,sCACA,gCACA,oCACA,8DACA,wCACA,0CACA,0CACA,0BACA,wBACA,0BACA,gCACA,4CACA,oCACA,4CACA,8CACA,4CACA,sDACA,kEACA,sDACA,kEACA,kCACA,kDACA,8CACA,4FACA,kEACA,wEACA,0EACA,wEACA,kEACA,kFACA,8FACA,kFACA,8FACA,kGACA,8EACA,gFACA,8EACA,wEACA,wFACA,oGACA,wFACA,oGACA,kGACA,8EACA,gFACA,8EACA,wEACA,wFACA,oGACA,wFACA,oGACA,kFACA,kCACA,kDACA,gEACA,0CACA,sCACA,wBACA,oDACA,0BACA,wDACA,kDACA,sDACA,gDACA,sBACA,0BACA,oCACA,4BACA,oCACA,kDACA,gCACA,oCACA,8BACA,0DACA,kEACA,8CACA,wCACA,0CACA,oDACA,oDACA,wCACA,gCACA,8BACA,8CACA,0BACA,4CACA,gCACA,sDACA,oCACA,8CACA,8BACA,8BACA,8CACA,4DACA,oDACA,sCACA,0BACA,8CACA,gCACA,wCACA,4BACA,wCACA,gDACA,sCACA,kCACA,gDACA,0CACA,kCACA,kCACA,kCACA,wCACA,kDACA,gEACA,wDACA,8DACA,sEACA,wCACA,8CACA,8DACA,kEACA,0DACA,8EACA,0CACA,8CACA,kCACA,oDACA,8CACA,gDACA,4BACA,sCACA,gDACA,4BACA,wCACA,oCACA,oBACA,sDACA,8DACA,4CACA,wCACA,wBACA,8BACA,gCACA,8BACA,gDACA,kCACA,wCACA,0CACA,oCACA,wBACA,4CACA,0BACA,8BACA,sCACA,oDACA,0DACA,gEACA,kEACA,kCACA,kCACA,0EACA,gDACA,wDACA,kEACA,gDACA,kDACA,0DACA,0CACA,0BACA,0CACA,0CACA,sCACA,oCACA,8BACA,kCACA,4BACA,4BACA,wCACA,wCACA,sDACA,gDACA,4CACA,kBACA,8CACA,4BACA,oBACA,oEACA,8CACA,8CACA,gEACA,wDACA,0CACA,sCACA,sDACA,oEACA,kDACA,0BACA,sCACA,kBACA,sDACA,sEACA,4DACA,sEACA,sDACA,sDACA,sEACA,sEACA,sEACA,oCACA,0DACA,0DACA,4EACA,gCACA,gEACA,gDACA,oDACA,kEACA,kCACA,8CACA,4DACA,4DACA,sEACA,sFACA,sDACA,8EACA,kDACA,kEACA,4EACA,wDACA,4DACA,0CACA,kCACA,kDACA,kCACA,kCACA,kCACA,4CACA,0DACA,4CACA,oCACA,wDACA,wDACA,oDACA,0DACA,8DACA,4DACA,8CACA,oCACA,wCACA,sDACA,0DACA,8CACA,kDACA,wCACA,gCACA,oCACA,kEACA,gDACA,sGACA,wDACA,wDACA,kEACA,kEACA,kEACA,kCACA,4BACA,kCACA,kCACA,gCACA,oCACA,4DACA,sDACA,8BACA,4CACA,8CACA,0EACA,gEACA,sCACA,wCACA,0BACA,0BACA,4CACA,0DACA,oCACA,wBACA,sCACA,4BACA,8BACA,8BACA,gCACA,8DACA,gEACA,gEACA,sDACA,4DACA,4DACA,0DACA,wDACA,wCACA,oCACA,4BACA,0CACA,0CACA,kDACA,8CACA,4CACA,oCACA,gDACA,kCACA,4CACA,oCACA,gDACA,oCACA,oCACA,sCACA,4BACA,8CACA,8CACA,wCACA,4EACA,4CACA,0BACA,8BACA,0BACA,oEACA,oEACA,4CACA,sDACA,kEACA,oDACA,sDACA,8CACA,4CACA,wCACA,oDACA,oDACA,4BACA,kCACA,wCACA,wCACA,sCACA,sCACA,0BACA,kDACA,4BACA,sDACA,oDACA,gDACA,kDACA,8CACA,4DACA,gDACA,kDACA,sEACA,8CACA,8CACA,4CACA,wHACA,oHACA,oFACA,4FACA,4CACA,kCACA,wCACA,oBACA,8FACA,oJACA,4IACA,8CACA,kDACA,wBACA,wBACA,gCACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,0BACA,oDACA,kDACA,sCACA,gCACA,kDACA,8CACA,oDACA,sDACA,sDACA,0DACA,0DACA,4CACA,8CACA,4CACA,oDACA,4DACA,0EACA,8CACA,8CACA,8BACA,oCACA,sBACA,8DACA,4EACA,kEACA,kDACA,oGACA,4DACA,sDACA,gDACA,wCACA,wCACA,4CACA,oCACA,oCACA,0CACA,0BACA,8CACA,8BACA,gIACA,kCACA,oCACA,kCACA,sCACA,sDACA,oEACA,0DACA,8DACA,kBACA,4DACA,0EACA,wFACA,sGACA,4EACA,0FACA,sCACA,4BACA,4BACA,gCACA,sCACA,sCACA,wDACA,0DACA,kCACA,wBACA,8CACA,8BACA,wDACA,sCACA,wCACA,wDACA,8CACA,wDACA,8CACA,8BACA,sEACA,kDACA,4DACA,0FACA,gDACA,wDACA,oDACA,4BACA,gCACA,0CACA,gDACA,kDACA,kDACA,0CACA,oCACA,kDACA,8BACA,8BACA,wCACA,kEACA,sEACA,oCACA,8CACA,kEACA,sEACA,8CACA,gDACA,sDACA,8CACA,kDACA,wFACA,gFACA,4EACA,sGACA,wGACA,0CACA,wDACA,0BACA,sBACA,oGACA,oDACA,oEACA,oEACA,wEACA,gEACA,oEACA,kDACA,gCACA,oHACA,0CACA,oDACA,wDACA,0DACA,wCACA,8CACA,0CACA,wCACA,8CACA,wCACA,0CACA,wCACA,wCACA,8CACA,0CACA,wCACA,oDACA,wDACA,0GACA,kCACA,8DACA,wCACA,0BACA,gCACA,sCACA,sDACA,oDACA,kDACA,sDACA,4DACA,0DACA,sDACA,gDACA,wCACA,0EACA,0EACA,oDACA,wCACA,oDACA,4BACA,sHACA,0HACA,sBACA,4DACA,oEACA,0CACA,0EACA,4CACA,gHACA,oDACA,4HACA,sCACA,8CACA,0CACA,4CACA,sEACA,iBACA,gCACA,wDACA,wEACA,kEACA,8DACA,0DACA,oFACA,gFACA,8CACA,0CACA,4CACA,oEACA,kDACA,8BACA,sDACA,oCACA,gEACA,8DACA,4CACA,4DACA,sEACA,kDACA,8DACA,kEACA,sCACA,4CACA,0CACA,gDACA,gDACA,4DACA,8EACA,wEACA,wEACA,wCACA,gEACA,gCACA,8BACA,8CACA,gIACA,sEACA,kFACA,sFACA,0CACA,sDACA,gEACA,sDACA,gDACA,wEACA,8CACA,gEACA,4EACA,wCACA,sFACA,wCACA,wDACA,wCACA,gFACA,wCACA,gEACA,4CACA,gEACA,oEACA,0DACA,wDACA,gCACA,gCACA,oDACA,sCACA,8CACA,4CACA,kDACA,kEACA,gEACA,oCACA,kDACA,0BACA,oCACA,oCACA,sDACA,kDACA,0CACA,8CACA,gDACA,sDACA,gEACA,sCACA,8CACA,kDACA,oDACA,4DACA,sEACA,gEACA,4DACA,oDACA,8DACA,gEACA,oDACA,oDACA,0DACA,sDACA,0DACA,oDACA,gDACA,sDACA,kDACA,gDACA,gDACA,wDACA,kEACA,oDACA,kCACA,kCACA,gDACA,0DACA,gEACA,gCACA,oDACA,wCACA,4BACA,8BACA,kCACA,kCACA,0DACA,0CACA,kDACA,oDACA,kDACA,8BACA,oDACA,0DACA,4CACA,8DACA,kEACA,4CACA,4CACA,wBACA,wFACA,oFACA,0EACA,sFACA,0FACA,gDACA,4DACA,wCACA,sCACA,0CACA,wDACA,4DACA,wDACA,4DACA,gDACA,sEACA,8DACA,kCACA,oCACA,0CACA,sCACA,4CACA,0DACA,4CACA,wBACA,wBACA,wDACA,0CACA,0CACA,wCACA,0CACA,wCACA,wGACA,4CACA,gCACA,oCACA,sDACA,wDACA,kDACA,gCACA,8FACA,4FACA,8CACA,oCACA,kGACA,8BACA,gFACA,oGACA,0DACA,0DACA,kEACA,gCACA,sEACA,wFACA,sHACA,sDACA,8EACA,kFACA,sDACA,gFACA,4CACA,0CACA,4CACA,wDACA,4BACA,4CACA,8CACA,sCACA,gDACA,sBACA,sBACA,wDACA,4BACA,sEACA,8BACA,sCACA,oCACA,sCACA,oBACA,wBACA,wBACA,oCACA,sBACA,4CACA,4CACA,8BACA,wDACA,8DACA,gDACA,oCACA,oCACA,8EACA,8DACA,4CACA,sDACA,sEACA,kEACA,kDACA,sFACA,4DACA,8CACA,8CACA,oCACA,0CACA,gCACA,0EACA,8EACA,oEACA,0DACA,gEACA,gEACA,0EACA,0BACA,oCACA,kDACA,4DACA,oDACA,0DACA,gEACA,0DACA,gEACA,8DACA,oDACA,4CACA,oEACA,kEACA,oGACA,kEACA,kCACA,sCACA,8FACA,wCACA,8DACA,kEACA,sCACA,0FACA,4EACA,4EACA,0FACA,0FACA,kDACA,gCACA,gCACA,0CACA,0CACA,oCACA,0CACA,oCACA,kCACA,8BACA,kCACA,sDACA,0DACA,wCACA,gDACA,oDACA,oCACA,oFACA,wEACA,4DACA,4EACA,wDACA,sCACA,0EACA,sDACA,4DACA,sCACA,oEACA,0EACA,kDACA,kDACA,gFACA,4FACA,8EACA,kCACA,8BACA,0CACA,sCACA,kCACA,8CACA,4FACA,gCACA,8EACA,kFACA,8BACA,gFACA,oFACA,0CACA,oCACA,4CACA,oCACA,0DACA,oCACA,4BACA,wGACA,8GACA,gDACA,gDACA,0CACA,8EACA,sBACA,sBACA,4BACA,sCACA,4DACA,8DACA,wDACA,4DACA,wDACA,4DACA,wDACA,4CACA,0FACA,gDACA,sDACA,8DACA,0DACA,0CACA,4DACA,kCACA,8BACA,8EACA,8DACA,8CACA,sEACA,wDACA,wFACA,wGACA,gEACA,wDACA,sEACA,oDACA,0EACA,oEACA,8DACA,wDACA,kDACA,8BACA,wEACA,kDACA,0GACA,gDACA,4BACA,sEACA,8CACA,0CACA,8CACA,sEACA,0EACA,kGACA,8BACA,oDACA,4CACA,sCACA,kCACA,wEACA,4FACA,kDACA,kCACA,sEACA,8EACA,wCACA,oDACA,0CACA,oCACA,0FACA,kCACA,8CACA,kDACA,8EACA,4DACA,kEACA,kEACA,8DACA,8EACA,0EACA,oFACA,sEACA,sBACA,sCACA,wCACA,wCACA,oBACA,4CACA,gCACA,wCACA,8CACA,8CACA,oEACA,oEACA,4EACA,gFACA,sEACA,kEACA,8CACA,wCACA,oCACA,sCACA,4EACA,4EACA,wDACA,wEACA,sDACA,0CACA,8BACA,oCACA,gCACA,gEACA,gEACA,8CACA,oFACA,kEACA,kEACA,4DACA,4DACA,4DACA,kGACA,sDACA,0EACA,gDACA,4CACA,8EACA,wEACA,8EACA,kFACA,0DACA,gFACA,sDACA,kEACA,oCACA,8DACA,0DACA,8CACA,8CACA,kDACA,kEACA,oEACA,gGACA,8CACA,wEACA,4CACA,0CACA,0BACA,kCACA,8FACA,4EACA,kFACA,gGACA,oEACA,wEACA,oDACA,8CACA,kEACA,wCA37EU,Y,kCCcZ,4FAuJO,WAA0C,EAAwB,CAGrE,MAFiB,GAKd,YAAwC,EAAmC,CAC9E,MAAO,GAAoC,EAAM,IAG9C,WAA6C,EAAW,EAAs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xB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,uBAA0B,EAAM,uBAChC,eAAkB,EAAM,eACxB,kBAAqB,EAAM,kBAC3B,iBAAoB,EAAM,iBAC1B,eAAk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","file":"static/js/main.2dd13be3.chunk.js","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport const BASE_PATH = \"http://localhost\".replace(/\\/+$/, \"\");\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | ((name: string) => string); // parameter for apiKey security\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string | Promise); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {}\n\n set config(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n get basePath(): string {\n return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI | undefined {\n return this.configuration.fetchApi;\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === 'function' ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken(): ((name?: string, scopes?: string[]) => string | Promise) | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === 'function' ? accessToken : async () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n\n\t private static readonly jsonRegex = new RegExp('^(:?application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$', 'i');\n private middleware: Middleware[];\n\n constructor(protected configuration = DefaultConfig) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware(this: T, ...middlewares: Middleware[]) {\n const next = this.clone();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware(this: T, ...preMiddlewares: Array) {\n const middlewares = preMiddlewares.map((pre) => ({ pre }));\n return this.withMiddleware(...middlewares);\n }\n\n withPostMiddleware(this: T, ...postMiddlewares: Array) {\n const middlewares = postMiddlewares.map((post) => ({ post }));\n return this.withMiddleware(...middlewares);\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n protected isJsonMime(mime: string | null | undefined): boolean {\n if (!mime) {\n return false;\n }\n return BaseAPI.jsonRegex.test(mime);\n }\n\n protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise {\n const { url, init } = await this.createFetchParams(context, initOverrides);\n const response = await this.fetchApi(url, init);\n if (response && (response.status >= 200 && response.status < 300)) {\n return response;\n }\n throw new ResponseError(response, 'Response returned an error code');\n }\n\n private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) {\n let url = this.configuration.basePath + context.path;\n if (context.query !== undefined && Object.keys(context.query).length !== 0) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += '?' + this.configuration.queryParamsStringify(context.query);\n }\n\n const headers = Object.assign({}, this.configuration.headers, context.headers);\n Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {});\n\n const initOverrideFn =\n typeof initOverrides === \"function\"\n ? initOverrides\n : async () => initOverrides;\n\n const initParams = {\n method: context.method,\n headers,\n body: context.body,\n credentials: this.configuration.credentials,\n };\n\n const overriddenInit: RequestInit = {\n ...initParams,\n ...(await initOverrideFn({\n init: initParams,\n context,\n }))\n };\n\n let body: any;\n if (isFormData(overriddenInit.body)\n || (overriddenInit.body instanceof URLSearchParams)\n || isBlob(overriddenInit.body)) {\n body = overriddenInit.body;\n } else if (this.isJsonMime(headers['Content-Type'])) {\n body = JSON.stringify(overriddenInit.body);\n } else {\n body = overriddenInit.body;\n }\n\n const init: RequestInit = {\n ...overriddenInit,\n body\n };\n\n return { url, init };\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = { url, init };\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams = await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n }) || fetchParams;\n }\n }\n let response: Response | undefined = undefined;\n try {\n response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init);\n } catch (e) {\n for (const middleware of this.middleware) {\n if (middleware.onError) {\n response = await middleware.onError({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n error: e,\n response: response ? response.clone() : undefined,\n }) || response;\n }\n }\n if (response === undefined) {\n if (e instanceof Error) {\n throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response');\n } else {\n throw e;\n }\n }\n }\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response = await middleware.post({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response.clone(),\n }) || response;\n }\n }\n return response;\n }\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n};\n\nfunction isBlob(value: any): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n return typeof FormData !== \"undefined\" && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n override name: \"ResponseError\" = \"ResponseError\";\n constructor(public response: Response, msg?: string) {\n super(msg);\n }\n}\n\nexport class FetchError extends Error {\n override name: \"FetchError\" = \"FetchError\";\n constructor(public cause: Error, msg?: string) {\n super(msg);\n }\n}\n\nexport class RequiredError extends Error {\n override name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope['fetch'];\n\nexport type Json = any;\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = { [key: string]: string | number | null | boolean | Array | Set | HTTPQuery };\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody };\nexport type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original';\n\nexport type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function exists(json: any, key: string) {\n const value = json[key];\n return value !== null && value !== undefined;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n return Object.keys(params)\n .map(key => querystringSingleKey(key, params[key], prefix))\n .filter(part => part.length > 0)\n .join('&');\n}\n\nfunction querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array | Set | HTTPQuery, keyPrefix: string = ''): string {\n const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n if (value instanceof Array) {\n const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Set) {\n const valueAsArray = Array.from(value);\n return querystringSingleKey(key, valueAsArray, keyPrefix);\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n return Object.keys(data).reduce(\n (acc, key) => ({ ...acc, [key]: fn(data[key]) }),\n {}\n );\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if ('multipart/form-data' === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string;\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface ErrorContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n error: unknown;\n response?: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise;\n post?(context: ResponseContext): Promise;\n onError?(context: ErrorContext): Promise;\n}\n\nexport interface ApiResponse {\n raw: Response;\n value(): Promise;\n}\n\nexport interface ResponseTransformer {\n (json: any): T;\n}\n\nexport class JSONApiResponse {\n constructor(public raw: Response, private transformer: ResponseTransformer = (jsonValue: any) => jsonValue) {}\n\n async value(): Promise {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise {\n return await this.raw.blob();\n };\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise {\n return await this.raw.text();\n };\n}\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuEAAAFxCAMAAADqEIZ+AAACNFBMVEUAAAD///////////////////////////////////////////////////////////+f1eFOntDpQkWf1eGf1eFOntDpQkXpQkVOntDpQkVOntCf1eFOntCf1eHoQUWf1eFOntCf1eFOntDpQkVOntCf1eGf1eGf1eFOntCf1eHpQkXpQkWf1eFOntDpQkXpQkVOntDpQkXpQkXpQkWf1eGf1eFPn9Gf1eFOntAelMJOntDpQkVOntCVLlwelMLpQkUglMMelMKqM1cflMMglMMelMIelMKCKWFrJ2kelMKBKWLRPEyeMVlyJmahMVkql8aULl2EKmFrJmmmMlgelMKnMle3NlMelMKFKmBrJGgelMKjMldvQHhpKm2TLV0elMKAKWJrKGqaL1u+OFHFOU8elMJrJGhsJGeLLF9yJmaoMleJLF9qNXFzJmbQPEzKO06ZM1hrJGgwm8d+KWKGKmFqMG6bMFuvNFVpPHRrJGhlRYCXMFpiaZUolsUklcSdMFriQkVSl8VoL3GZL1tfVZK/OFH///9OntCf1eHpQkVrJGgelMJzJmZVgLZCnM1qLW4+pMpdYZx7KGNkQ4IllsWKLF5Knc86msthUYyDKmGbMFormMZSkMI2mslFnM1Th71nM3SiNFbJPE3bP0hftdIxmMghlcNYea9ZcahmPHtsJmZVirpfWpVQlspbaaOTLVyLy9x/xdlSrs+vNVS7OFDSPEvhQEd3wddfZZjiQkVGqMxRmMhG6FL/AAAAhnRSTlMAgL9AEO9gn9/PMCCPcK9Q7+8QQBAQ70CAv2Awv78wgDDfnyAgn2DPzyDPcI9AgN+vr59gUK9QcN+/j49wv0BQn4CAcDAQ7+/fz59gQO/fIN/Pv7+vp6SPj31QUDPv79+/n5+AcGBAz7+vj3VgUFBAIBDf39/Pz8+Xj4BgIO/v7++/r6+fj36oS4YAACCzSURBVHja7NnPitpQFMDhi8NMZRQaSHZDCFloCLjUSvfta3UpF7rxkatlKLRQNeO/G/N9z/DjcDgnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN5a/KwI8iiKfV4uyrOM/mrKsqvwt0BOvT39MAnttXs3KeEyzqsz0tE1epqPnzV+eR9OXQXde5FWZxdM1s7nK0zSZjjf/MZ6+hiEqlosmfkCzsLIkZ/Jpc9BocI2/VU38uFrkiRltjhiFIVnOsniuet0GkqHw43l3N8sDiVD4u3yX9wU180ASFL7XVnW8tFrjSVB4CMtVvIp6Gbi7wRderOt4NaXDyt0NvPB2kcWrWngDdaXwy2ln8eoyq0pHCr+UvIw3sTLGO1F4v/reqV3Hu1D4JbRlvKUqcDKF92P/tqkkYoCFF1W8vcbd8FQKP9M8i/eQSfxECj9L3sR78cU/jcLPUHRZwCX+EAZVeMcFReKPYECFd78QSvwBDKfwdRbvT+LHKbyvA/y3L4EjFN7bAb63/RY4TOHdFauYiu2P74FbehpvDhp/Dr2XpzLAd7Y/vwZ+sXfuOk4DURg+E19iOzdIQlYhwCpAWJJdWAgLy01cxEWiokFCoqHiBXiIcUZuKFZQIKiAGmiQeDrM4gBxfEk8M8kZJ19DZ1J8OfvPmXOcxaIVDRpH1QT12Rkh4o3n3Yc1i0YjVWs6npRrOqhPc2uECd9w7w6sWQaaViFjarl5NyemhPKb777hL9dRfI0oNkfI+OT5PIM1K0t9u83Y7sV63nooE4Z7L2DNirLdYoe0zgA/fVwRfJxSfB6vc8pqUh+yMW3gpoMsgo9Pmr+5B2tWkDMD9g/uIn5uhJFDw9f9lNVko8X+YyNPXfBpw1/CmlVjmzGBhvdGOAkMX9/7rB5DNkkdOGgimSRMMPzxU1izQtQHbJLLObrHDBu+PmyuHqcGLMRGPgUfffD+sp6jXR1OtViIW3nrEo7x/nEDloeu1Qgp+FjUxyr4EGJqOiwBTSOkGHwWn8JvyoRoWh7Gov5whYW5nFfBA8N5O4b8P54ag1EgC5y30yrBR4nDrpJaDn4McFrwQT2vgo88gUW8pJGyX++CIkwq6UVPN4sWTcUuayAdjRTojIj51jnm4V8Kg1LD/6dITAcWxJCFaZ3JreBfPVFF3ClbUW46SXpX6awY/oN44fgkor91pUqBRlColEA+QzbFRm4FH33zxBTxmk1jsMy4RRc6HwUT5ODrnQmjauqQBSfhP7RNkEu9zabYzq/gvuFCiniFJlCJssqm82OZIJxS2aAcVGvCd5FBKvUBm2KYY8GD4VnunjihCZBpvy2aDUsDoWhFyotRLilkuC+4yFNmszvCTshw7+kCDNdsnqKpgzCcAhVCoaaK4VGCt07l8qJnzE9vkufSDdernDVTAzHoRSoMy1TCcP+eZ5q7uRbcv7Sf5PEjyYbXDMoLARFUDCoSy8RveCC4sLvMhW2sbZ3MHvffeyFeSTXcL+ACKOrAS6lARWOVkBseKfgA57hs92Rvc7PRaMAEnUZjf7M3n+5emCcyDXdsKgSbV3HToOLRcBseKXjrDLal+u7Vzb1OWjxq7PdmTEhfvSkeSjI8SCgoFC9SnxUzPFJwdhfTypovdwNmp7E5w0z6N2+K59IMNymlGBTX/xi2WoZHCz5E0wjv9s71YX72dlL6lZ+8KR7LMpxQkRSzCx5EpZUyPFrw3TpkpClU8Kv7fchMJ1Hy7940L4QbLiUZEGyCYzb8TItFcQpBn7Db2wNeGr3YL9wbb5p7UgwvixcKmeDUQWt4fcCiuLj0Nkp3pwNCaJ6LKeReBI9lGG5S4Vg6LsEp2n54jODtJZ8yj/QaIJC9qHPnVy+KF+INN6kEyhxDTxKwsRoeCC6uUdgZCeDkORBNY9rxH14U94Qb7hiUA4E5pUzlUcZq+IBFsr3Ecasjm30IkOv4Jy+Kx6IN1y0qhQLMiUYlUkNq+JAJzihXEZbvv4Ty+BsvkoeCDU+LBvbhpi+p/l7pmgsT5kKf6/HGnwXkw8U8m6ZiIZ1LGTLBGWV/xEevAzJpTty1HniR3BdruJG0JkNCy5xaaHMzEUvSVaZdNjUI4WiknKQmwWn4NhOcUTp88WSnD7LpnAwfNAXMphCaAYs4cSufBkcy4M0oibtpJbMcXc8NHaXhV5jgjNLc4orfTVgE+8kHTZ9H8g03ig4kYFrik7hN07Eq6abqtYg/MybK+fBTTHRG2cHvt09nK3SjGeaFbMMNoot5ZAlmxqSpGDN76hB7svCj3IAI7uoF3vU0VPDbp9kLHTR5p6+IaL99HFtsT9xKf5ie9fUZto7R8Poui2aw+EZhL6PffLdSXhw3pBpe1MWtmRniUrhRg3mpVceCo9zTHLAYNhadUa72YeH404/fvFg4DBe5Ll8UeNaspgnuQAZKxcPtaJSbyEMWw3DBGWWrAcugv/XJi+WOHMPntqEoLKaUpAjuo1c0nG+T2GYxtOoLzShHzsGSaL72Ynkgy/CK6EEpi/edRQEOZATrG4HusjiuLDSj7DRhabw98OK4J8dwQ5s7BRiCuikFnm+egob7bRTRx8yOOgHlD9dc97MXwxMOw8UmgYqYm3udq6+unuH1ARN+zDyZoUMIy+Sm67qxVZzDcMFR1xayzlbjm1JUzvDLLI7h4obCT/ZhqVz3DX97IOaoSaQJDpqQIF5GVMIXYPg2Y5y3mfybmUf2Ybmcdd0ExV8JN9xwZPjgo/M/xIRkVDN8g/kIvs3cUayAA9x2/yj+hX+8MDBcUhAwRTyY80uiluH14JQpcru+P5qPTVg6l9w/fOS/1QwMl1UmDf42iI4ppEg3vM1iubKYY2a3A0vnmDvm3SIML8p7QxXhDvNlSEEtwy+yWHYhIw3cQygxvcIxn/mbKUTmW9hq/J2+Gp5muHTD/RAuoVOoxCXmBKfdgJjT5iOhhjvAA7/hBFGvUKrhQQgXvfewp1hC+c1R1ychit8RaTiRaQRdG/4/bRklvDvHGCGGhDIZUnw+yDXcBj7I2nCeTjh/CT+nVA9lMqQEHHC2C4nMEg417skUwjeBq47hp9hSS/iRPcDCUXeCj6gNL9FENOmfTx3DB1JKuGoRPBRSovspzxEZDpINr0Iaqhh+S0oJ35p1kBBJBA+ue8bEXG3ewGS4LddwA1JQxfANlkBbdi+8B3g45k7xDrPhBW7DMY0WSjPc3zxeYi98BxBx3J3mALHhVd4LG43vxlURwxMzSlvy4gOOa54x593UIv4Sk+Hcj9cQ7bBJM3yDSSnhPQUF9wdn04t4rgzXaf53fOq7Ukp4c6YuYQNQcdON4l2ODQeD5n5P8xZL4orMn808gqdLOG6GR3KQY8N/S4VmCSLFcBkZZRey0lVQ8ONuNO9ybDjhe+OVAoYP5JTwPQUFhxNuNG+/5NdwjVI8VVyG4RdZEq06ZOSqgoKfdeP4nF/DweB6nyJ6w8+0WBK3ICNNBQWHm24cH3NseJHrlYroDW+zRLL/pImCgh876sZykF/Da3QWiiWIBLvhd1kilyErW+oJDsfdeN7l13CwKBrHhRvut8ITuQsZ6SsoOFx343mbY8MJnZGiBlMgN/wi42gV8oQUPOPgobnZWA7ya/gcPzVoVcKFHLfhKcdMtp09pKh0VZ/cKgz4nF/DgdA5sCclx234ZZZMPXNIUVDwC24iH3NsuG5RikNywYZvMFnnzH1l5sFD+5kJfMmv4YftFBSSCza8zdLOmVImw68CRs66KbzPseFQpRSF5GINv8JknTObqqyszVHC3XcoNyA4Hh/OKRgkF2v4LkvmFsiYSTmCU/Czbhof82w4OAalGSV3sBp+kaVwCrLSU6wRHpTwFHJtONRoZqyyg9HweoslM4DMdBVro4RKeEoQf5ZLw8GkdPmSizTcL+GymuF9RbaOf7F357xRA1EAx9+ub3sPQpSERCGEbBBHYEMSFI4gDi0gUaVBQqKh4gvQ085otBIVSgoEHXxOLodjYddjv3n2G5t/z4jil5H9dmzn28LlJ4ZvBEIuP0m8cuT6wvFbuBqA+RcBXQSebUqNjmsuHPqeQCPnI/xA0V2kXLXsLlNvC5dvU+GjugqHOBTYwlbCQ/hAZbUF5n+yZ/bYsfYWnpYKv1db4eD2BL62z0H4rqK7SAH2r5fNu4Wnfa69cADfE/jCllu18IEivEiZnwL8LDDtmkzTG6ZAnYVD0hMmCpJqhe9SXqTcnHIRXvlXBKe1+l/47zkhtXG8cPwgRa1B4S7YcyQ81xaefg/iaeUEyZf3zRhvuZUJH6qstqF4Zy06UPitW/mE32ZAkGB5CuOeTyUcv4UfgOEbzfNcB4Xp05n6A/GHLAiSL+/0hIHaSSXChyqz+1C4y1YNCk8esNcfiI+YECRfPmmFNNs4vfBtlRkUb96mX+sBzsicwu+xIUi/fNzBIw/c0oXvqcx2oHg3rbpG2ZR5hR9yIki4fFo/8ASuyC1b+LainBXCOZvmKLCaWzgvgtnLV4/ci8sVvqQU5awQLtjy3Nq39mVe4bd5EaQWnub3CIhTCd9RmS0CorMW/dazcCu38Oe8CNILT3MxyL24ROEDld2OWeE3gWtnZG7hI14ESxKeIo8KE3fLE36gaC/D4e/bTODauswv/B4vgtTCJ0q6EfJ2k174IvFlONgzCofVAsKZESxVeIo8FAUKyhK+p4gvw8Ge28y7Mr/wp8wIEixPNCbvlyR8WWW3Y1Q429vMzbkCwh8wI6i9fOXIPbcU4QOl0RAQzVvza+Z1WUD4K2YEEctjc3KOyYNShB8ojZZQwi15NBP2ZRHhj5gRxCyPrx+IHCVlCF9UGp1GCbfkybWJE1eap2efcCOIWx6fm+OcbVCC8PtKo21ACbdkC78uiwi/zY0genl8TltoltAL31XkN5rzdmzh+zJ/n8bjh9wIMhCub7xDLvy00mmIE27FFp57jpI+p3mPG0EWwnWf7fTIhe8pnZZwwq3YwldlMeHsCDIRrvmllD618B2l0wAn3IYt/K4s0nj8jB1BNsK1XpgV4IQbukhZBFwWbOHrsqDwETuCfISDG4msQmLhe0qnZcDFfwtfuCTT8o7DH7EjyEi4zvfDE7xw/EXKLuDi/wKJO7Kg8Jf8CLISDpHIyCcVflppNQRcp7ifSNmXxfowfsCPIC/hboiYF+KF7ymtlgDXWeaHCtNBYZFRygt+BHkJB0fMrk0qfEdptYYVzvxc+CVZsHfjx/wIMhOedSkekgpXegGyq7wf7bkjC3Y0fsaQIDfhiZgdpfD7qpRhIZxj/XTmviza2/GIIUFuwqFXnfBdlWtYiP6YJstR4fqcLNqH8SFDguyE+2JmMaHw7ZKEzzMeFaaT8EK9f8qRIDvhrpiZQyd8Tek1BGyM35FyXRbv84gjQXbCIaxK+FYO4fhbzfMsP318FwH84/iQI0F+wttVCd9Reu0BuhvneA4K9yWi46csCfIT3qtK+KLSawnq2vqcRPR+xJIgP+GtioQvqaYLX7gkMX0+ZEmQn/BAzMolEz5Umq1BTVuVmD4+40mQn/B2RfPwZaUZ1LQNierDK54E/ws/abHhwlckrjcLPAnyEy5mFZEJX1PNFo4FfvSAKUF2wuOKzhZuNVv4+pzEdfyIKUF2wruI/xBG+K7SbBFqGBq4fM2VIDvhUUXP+FxRmi1D/UrnhIiORlwJGlre7zmlnJ6NyYSrBgvHA5fHj6HOwt1vsIKEfhruAZXwpSYLX5XoHlS+yVIuH3s/+LVc6qfYemTCtxosfEOiO3pUZ+GuJ9K8TkL7ypQumfDd5grfkPhWoc7C/1AZxJQvTEnIhC83VrgJ4HKlzsInV2j7ZMAjIBOumip8RRroFtRYeOKJybxOTAJc+GTCB00VbgS4PFNn4f9mGXUTyFkSIb5VhRW+1FDhZoDPLdRYuCvSsMi7HuIF+WjhQ6XdNtQnM8DlBtRYuC9mFHUc0MsPq/1S1YFSDTyXYgi43Kyz8J6YndfrxpBR0gpx3zjBC19uovAVyWELr1Z4G7ISOrVb/anMnU7E4Iux2w0UviJZbOHVChdZqmKhXbvX6jrOrwVdp98KIqFdFwiFq+YJNwb8OtgsPGv9viirNpAJT4eFzXpO0xhwec1q4cLX+uf0eQmd8HRY2Khn7e9IU62C3cJFELMQ7sN/4dx+qk+3cNuFC+G1g9bXKhXeAVLhQ5WjLbC+DclnC2cgfNYu2hWl1ANGwodgeQsGgcv1+ggPM85zExa5xMIPVI4OwO5+PNHDYxbOSriINX+0pwBOLHxZqcYcTPkBnMksnJfwTsav9lT1XGAl/ArY3Pqc5LWFMxIeZXysm6gAgJdwq3/yuWYU+NxmrYRPAeJ2BGU+lCB8UeVpANa2Ik+q/lw4gXDsraI7bY1QUBXFUIZwpZoxEL8jT2JwLrwk4dAT2jkwrZYnSOq4wFC4rQPxhQ1pthWwQbirjzOZsQqF8XYMwFG4pePCdIhirktghXBwEIf7KI2HPgBP4XaOC0+GKIx+ry9JOPimZhp+ZNY3V+FWvptzRZ7E5dRsecLBNza0izueMFHkA/AVbuMwJb0E5zYpzD750QUTOZkuPW1y/QCL3Atimvtmz5Tw+2BZPy/BuU0Kv+cEYlqBA2ZyMyYq7QRy5HQiBO8+YPKn7uJhy531/Yc6n72avASv/CVAk7n9TltMFnX6LpjLCY1eE7v9IsqjjgPoEj+I/j4A3IphegNV61vN9EPHLG8zfytx/NZJvhOD8fpT9vFeYXVON9Binho0+Rcbf2Hv/nXThqIwgBuctkOaVkRCQigDogyoEiptJYRaHiBDszCVoQNLqgwMHfsEVz7yhMSAN+ytSwf+SHm7EmSIMdfYVsn18c33Gxk8HR1993B8bV4Utt6asQ+2ND5qlttig+cxU62zl29ehJrqq/8uu3OzUCgWjzXu4uuCeW5kylrT9FXNWlf4+P2bmYmzx+Znmqd9sOk/eudi/ZPBgmXp+q9mTzyJngG5YqX00ciHcELh8+oaqGXpGcQDq7I8R+GgylLLIB7cJGQ6CgdFbE+/IF5rij3sNq5AIZqudJuIV0QYo9frQbVrmljpXBqsNYINHBkF+kSOlcpng7NeSQRgjgJ9InK0mReGEzjmKDCktZkmMUWSwNm9uQaKDejBTIeY0pI18Oe+jwID2pjlPqaUJTNw7KOAcUt+iec8plRLQobzziwocUs+J88xpXYlDmFQCA9oy8nt9YXygIJBIWz8oK3JKp+7KdIROEI4+Pq0M/WsZD4ZfLS6QgYhHHxDemQvE67QsjlrNiICOEI4bA0o4M8iVwuGjbqQQwiH0DAl5Xnzg8FAuSKU6CKE59ov2jf18jEwLFdKIhpWZmHnmvbZbg62xI/XN9ZRIOCOwpx75nflx9c3r+/1QKYGdGDscm7iMfWNUyaEj5oSs3uuTTy2vnHKBMlRU9LGWTbxRl2oVMIpUwc/ScpZsWvirbZQq2OABn6TnD3nNROvNkUsjFHg0IiijF02M/FGsviNMQrIgni0ictiO6XTFrFQ4BATxOUcL+sPQjQqXZGBJsYo2vhORzlelt+tqiZr3yhwiPaNYvx1M5oYtuqp0jcuRwG5G4ozWajfoq19SZVOMAiHSEOKN56vjh42NSpvFLh2RpSI40bdnaJVeWMQrp9Lm5IZz5ZPnVPKndTZGwUOce4osenc28sp707avHtXInsocP2MKI1psJO/P111tzNv3ihwbd1QOraz2LbyrzpV9z/2zt1VaiCKw5PJ+41WImKhFjaClYgogo3iAxSxUkS0ESwUFG0V8SwMiqiNhaDY+MbCxj/Pq/sjmTnJNVk36mw2X7O7eUxmd7+cnDmZvXcSfKycVGChUD63/KhYhj0HttmQmUx/OWLkXFJ/xvOv397e3/2nkXv7th3WhO5pMsrIua3+nBMPtm3ft1C9ZN+G23tnFjIJPlpuqCV4+esuyY7927bt27fnNwnJvn2Htx2yU+0pRRk7W8+oJfhu3hHcscH+bRU/X1qXjkyDzHXjpFqG97MRMAk+am49Vkvw8fVs5ZkEHznX1TI8XXnFJ8HHzmm1nOKfZqvMlknw8XNljRWfpsuuA6fVcnz4MltVJsHXgyvLKv5qtprsnX6yth6cVmotE5X//6PjQspSbE4ZRrSBL3NPbJBIHVHh5YVPG0RF1ZjU8cRPAikdAVJ24EzKQGyOG8b0E/Rj3lwx71sRYJlAFwsBGgsSp5i3E4X8XefoXEVpNuRIGeAxNz8/V/ThiFqOjytZUdn13wV3iSgSm5HEVOFgc43aDl/fbg7pJHNJiCTWejFRrImZ/L4fkkDdghtRhV9qphJRIDRCraeSauJEaHg+EaVCw8GbARKvgmo7vPI90YebP2vi61Y0PCT+OwVt4Ip2AtogyvLSCX0KYDg5FbpDFDtB4EiitDY8rLfkhpuCo4lAtOP68364P/uRo2/VMWPaIDTElLq6+juURJHjlOWvnfyUv9eMG06JaTieFPp5EYh+XFVrp7gFVcKUoEcDxFUfQnluFfIFJyOiyMV2lRLwCmiGQ2g/YREUK5skvhZNXTwgclcnQGmIqbmbM8OdymiIWp1yCMdGQ3HT8ERrL8MWfdh9Zs0U32LDf8rMiHB1biFiGjYNxzIWjzsM54JDwwgRs4nk4Z33zfM1OTMWjCNuuCZwamZr5mEcJF2NXcNK6xRN9+OYWivF91pRJfSJgojI2SxHyUW34QWu9z0NR8sBFzaXm1xMXHimU6Jv2iaBnmr7+iqsZIZ7CPyVtUVmDgUcnHVsV6QmLGHpxZ0BFH83WxF2/PcxZjVOyiFEi7mR6Dbcg4C9DYfgXNh0s0Fb2LI8ZH2L6xRHmsE4RCQ2NcU+jp6tlYjIem8dhGsW/tEjl53bf3WwCT6uyExDC8aY+JIzhKRWRfNOw1FbWMTwxEcWUTMP3z4OyMDmBhFblqNfMFGr2RD5YYfhiNfohtFbbMR3xWUPD/15qAbg+2wFsGCMCV8pRV7ZujLpYTjCXG/DE1/zSEtnoRlgK7saT9BZrIqI0uqQoUOUtWcprnYW5biUsN6iYexqfHABUeSJRdh6XA3Ay5ntHLQiBUfyyR3iMjcXusDT42/7JUDfEs54Ea+Z4BRDqtCnHzCMK18/yyunI6IEIb1lpOnp2RqCsmE4TmBzV7xpXPsW4uI8Txn5JBU7UnDNbEjaJza7VJMzaRhU42hNskJ4NXKD6bK34WJzw3/lJkjwSYpWwwO9ShrjuTEkwW4xUW7uio8uR7MLcUENwRurSyr2/CCzygpKhDO+Vv7W8MCUxq1oGJ5rYRMq8vEuC82LG65Xq4UI0b3i52NpGB66GzixXuJMcFyca+YHkGA4aRiOt5KIRdl6Rw3BU3vHm1ss+h9r+Dpxde5teLNa7cAS8Ls8PKJmkR1HRyz9Y8MDbZU773xK5BtbS6qRnpYlSV7qxgeAR2Y4blGFYnFuPleD8HlmJzZNJdSqczmiOVtNCxie9jNcBgieLKnmXeo23GtmKVjlz8+a9NcBs3bDfUwRY5VxJG664chTeDYWoAsLc02BUU6ntSdDmX/bvpwTIwQ2LerWLYMIoMtw0VC8qPshkdK0lUkAr4NwM5GS5EQZPEfiwgcNZsahdSBkhiNPwa78k1ic8+ono7z5Y8V9es0cE9liUdBtOEZn/Q0XmXmwlEyiPnV5lM55RMUxUAevEnBcJDYzPCITzzAcz4YzfOtZNRAvLaup7LelhlLfFpQVCJT8PmGX4ThTgv6G4zZjaEyNkRUtexXIjfky9joyvQyJygI9Q6MwvC0dkxU+kcMN9yKifADDwc7jaiDePJnZw5bDwipYiG4pGOYQoyspjmFXT8ORDWdGqZCX6LmBJV9mtp6iQdziQU8LXF06DOd3Mvm5guQ+GsBwcOqxGorP1oRxOyZasboGU6alTB15XYajsryQ4R7yfja4ZMNONnOQLTOSedmSh8R1JT4iKtlaluez4jwzHBMWBzAcPBpO8TeWZONWDTEbBUK8zluCeJx2GA6/Qq+v4UzxuA7nra9Rro+Slr55kLKglvvyAUF7LOOGs1Ihe80M96KBDAdX1XC8tKCoYl0AZzGbFwyNeXlhmYokkORqd+1BImpfo9wVnpsXuuF5vSVzJvEROVnMbi8YZnU/QirrvvmZ6wnX8QlZee0wgnEhOgxHzOZlmYQbLtyhDAf31HA8fTZbkPEHcCSf/Jsum6nMb3+nKYUWRPlS0okMw6G4n7Tl3TDOIPCpotC0B7iEaBkJNnC7DceZzT8abrjIhjV86121wThGnBYGcCG8ZrqbGc6DNIsIDiWthgO3IKgcuqLF8Bg2UaH/9jJu5jIQi5M6EUFwt1oWwns/1Jrw0SBrEm+taBgeN5a4GKCa8048bGhstYzi59SQvPg068s6BPCFSJFldJFgFuHfwnN/0tq3leRXWXz10/EdNgbwCSvYeVmtvOO21cAnrGLnOTUsH3s5Pqq/9zNhNcjFh+TlP8zH91o1C2XCRrbeU4Pz4t2snSlB+dHeHayoDQRwGM8z5JKecslL9BIKuSjGle2KYrEu21Vo6xYplJZtt1AoPQ0Jkh0CCj14U7cSH6AvVy09SFlYXGcyI3y/Z/gY/jMSRPncplBvVtz7Uz4DBSa0E6He3ST9v0heUGBIfyp0mGX6bp1PLfpQDfaLK0KPZbETOf/KA2P8U6HLsviluu8nDHDsy20lQpvZav6bvmHYYCp0klmq5gHFog/pcVz8htBMrhYHzPK0mMhr+sbjue1bod14k3m6b9uLTM6E6P346gCHGH0T5RjLSTZPfz5UdlpkEzkWf/W+sL9xHMf4rqWUq2xjkf4zz7ak3IS9q0rfUMNrCPt8fOcAqvQrwip33186gELBZqpYo3fN9RLKec1EWIF5Ak1GDfONn7xinkCf2HDjZxzf0CxuGNvj1RfvHUA7r2mi8epn1gnKErTPRalOal0HKJE7KG+sVMkbJvit80Ro97rDOIExo9ZaaJS8veJqCbPc+FLPSZ4879QdwAbPhqdT1XV3XQewRxC3FFVeeXNVp27YKIiHn/LkoLg7N74D2MwbDMP1VOwnyS9qUT1wgOPgeoOoGa7zh17Mb/MPYS268VglOE6+5/Wj6DLcusi3KmfhVi2Koq7nOQAAAAAAAAAAAHiUP76cWYTN15hJAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAADfCAMAAAAdkl2nAAAAwFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////98AEHtF0+dQHHev8+9f6D6xdPyUXvuJlr94umEEE337/OtYInvNGX4qL2MIFn2i6fv3+eVMGX0bpHmz9v+8PT8097wQ3DOn7f1fZylUH3Fj6zzYIa2cJT3mbLWr8P5tshGB+g7AAAAH3RSTlMA/buAy5I2LqmiQYtKJRoP11rgBfjumnfmbsGyY1Jo2553TgAAEQNJREFUeNrs3QmTmjAUB/D03N7b+27fC6ccIogrguh+/29VXbWLEE1Cu5XK+81026l0R7v/ScJLQpi+d/fgb7j35+CO2TP4h+6dk0dM31voi1kIpJX7TN996I0pvwLSwlum7yP0wcC2x5Mh5zMgLbxj2h5ALzicc3f1K7Rte0Tp0nTBtL2BfnB4FRAdP5i2x9AT11P+22wARMMnpu0V9AffGQLR8ZHp+wD9YYf8xhiIjq9M30PoE75lA1H3mel7An0y5JyaLH2XTNtz6JU55+HVYMb5dAJE1WOm7Qv0yyx0hgCTGfWFGt4wbS+gZybbhmpId4XKHlChQducOkSpb3RDqG3Ar4Ec957pewQ9t6CbQ6mXTNsP6LGBvRgOHO5SX3jcF6btEnrsmnPuuqsvowlMQpo2FKMBlrYRrxoBEXrPqDKqZzIO+c6cGqxDLqiCpanSZjk0zDrkU6s9Ob10dQU7M75B7dUh95m+r9BP4zHsjGg6+rh7jNa4K3Nd2Bo4tET5uMdM2zM4Q3G69OEoG2z+u9Z+ddNYLTin6rvYJ6bvPZydLAhKIzfhIMd1+TjcbP0aDNbBcsYTgAFtBhOhzalbeRQnkRGYMRww4FXu+m+2L4zorlCE6fsE58YPSgPXvNjKQGgy5bfGtGhG5jFN5axYSRHhVuSD2IxvUN+n4CMtcl8xvQR3oqQAkcpt4ByIDKM1DSuBZeCtAA6Y8I0pEIkX9LiilRiDCCtyEBvxvVq7WSaJD0TgG809r1m4z4tBiHMeXo/c7RjLX4cxBSLA9F3A+clxX26BUHhTCx26m74wWw/IAiBN32mO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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAABBCAMAAAAHf2EqAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAv1QTFRFAAAAhGX/kHT/nYX/fFz/dFP8Yz/3aEbyfV77cFLrjnL/l33/o43/hWf+bUr5Y0HrXDnrXz3ob1nJclzKrpr/e17xblDoZUnZWTvUUjPRVTTZUjHYTy/TVzbaVTLhWESsuKf/q5f/oIj/iW/2dFfsUTPMTS7NSy3FRynBSSrKTCvPUC7Yak3fWDzHTSzVSyrTTizbwrP/clbhQSS4XkLTRiq7Wzreooz6c1XtWTjiY0rISi3Cl3/8a1LNSTCyUi/hcVH0j3T/fmD2d1zpgWfrhmv1QyqmTjDKYULgZkbnak3iVTrCTzW5f2Tug2j1eV7mmIXky7//w7T/X0DeVTDrUjHZVzTpUSrwTDC+VjfTXDvjWzX1YEfEXUDUZEXgYT7sXTvrQCuWm4L+taP/hXDXVDfHNySFUTylqZT+fmfdXzr0YTv+SDGodl7bjnbwMR93oo72v6//7ur/rZ/mXEmpaUfxMBqG5uD/nIjuclrTdWDLUTqva1m0XEa2Xk2laFO9dmHLfGfTi3fciXfQhHTJgHK5fG60npLQwbXw1cv/tKnhhHmud2qsfWvEiHHjgm7RbFTQinPrcFrFfWrKi3zHmYrZlYbVjXzWRzWPj3rok3v62M//oo/yjXjfq5f72M7/zMD/u6v5xbf/08j/zcH/xrv00cb/fWTkk37nTz2V3NT/tajqOiKb3dT/aFevsqH02tH+zMPzclfg0cf66OL/lYnIeGe849z/ppjhy8XnqKO9t7HR6+b+UEGJLh9orqTbo5bcb2Kk4dr/hHe4k4HY1s/w4938ua/hjIG4kYLNrJzqxb7g4tv/Z1mfVj64pZPukoDccmG12NTrqZfzoJDfZVuPppvRYFKY4t7xn4zsdGmgnJa1jnjngXuXzMnZg2zjWEyLcWmSOy5yZ2J8hW3om4rj8e3/loHqMCBzZ0H/kX3fSkB0TziqnozpUEV7fWzDTDeg5uD8VTu/NyxhRDpwZ1ySX1CcZlSwLidMqqPFyMDmnZS/fXWZUkl0nIzbw8t5uAAAAP90Uk5TAP/////////kWP/////////rnRj//////v///////3b///////////////////////////////////////////////////7///////////////////////////////////////////////////////////////3////////////////////////////////////////////+//////////////////////////7///////////////////////7//////////////////////////////v/////////////9//////////D//79H/y6Qiwnx/ervxb/+Qh9liP3LDGpbOwAAEgBJREFUeJy1mAk81Pn/x7uwW4nfljRm6GBmXCGZwUxMuUaIcU3uYw1yRmldCYNxG2TIyjmYCSNyRKkQSihylFaxLeaXfu3xq93t2P6P//s7tNvvv/v4Pbbd/q+Hme/g8Z3nvD7v6/OZVas+QKvXrAWtWbN63ToxMTFxcXGJTz79kPs/SOs3bNy4do3k6nVimySkpKQRSUn947PN/y+stRu3bFwvs1V2G0pODo1Br0heXuEf2z8+beOOnbsUlWSxWBwOr6ysrKKiqqqKwahhQGq4bR8ZtnbHjo2K6rt34xHhgKSqoYFRxaiB4AmHx2M+ImzDlh1b1qvvxopcqahqaIqkofVOGAwA0R+LtmXPlvXau/F79wINWcIV3K80LRzCw2E+DnDnni2SOiKSigiiofGfMHCnJqcGQALxI9B27NHV08HjsVhVDVVkCTX+GAdBxBH0/zZty55dJKyKioaGqgoSLMAh/kBq/yk0FAeeQN7854pwHdSumKhViK1bveadVm/YsWefgSFetJQaFMqKm9/DlnEYMgG9/7e7f9XaDdCG3oNBCa89IGlkJCNjbCwjY2RiYmpquhq0ZuPG9TqGZkiCINaWeVACIPR7UhAJXsihqDpGa9Zv+L3Wm8p8+s74xh07NsjoqcuqiyQrSyKRdHTMD1pY6OnJ6lgaWimrYjVUgbbiTfWPcGoKCnJEDG6buYWe0aHfydTaxmIbdbm90mztrC3sNSkOjo5oNA4rR6FQHBzoCo6OKBQKc/gwgYDUNQ5HpZItsVgKBYU6fBjj5OSEUqBoOTpiUc4uLvJychQHV1cFBX2Qvb2bu4cnyMXFw9zcxcX8oISUvb2UhJeKN+LvczsfhiVZBXCamtCh8KqaqlrwCuOoiULhcIcPW1nhIFSAQ1mCTy0tKvXwYTkq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\"","export default __webpack_public_path__ + \"static/media/IFAPME_HOPE_logo.bc8b6963.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/header_faces.7f830762.png\";","export default __webpack_public_path__ + \"static/media/logo-eid.cd0ba9bb.png\";","export default __webpack_public_path__ + \"static/media/logo-on-eid.fe2fbad9.png\";","export default __webpack_public_path__ + \"static/media/logo-no-eid.a9f174a0.png\";","export default __webpack_public_path__ + \"static/media/logo-update-eid.d69d8be6.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfkAgsONgRoL18zAAAEPUlEQVRo3r2Z228VRRzHv3sMFOxprcWSqLQQ7Q16kESwKlHCxfjoJSZGSTSRxvYvUJJ6iQhUHjTxUaMvlIiXGJ/EBzVKfSAhFqO2JaUVo9UUKEKrrUK19OMDdnZ2Pd3uzu7p72nO7u97mTlnZn4zx5ND0Kz7tVlNqlNe0pRGNKhj+tQ75cKWTLqMdk4wX/TyNEtLKb+TX1koRnisNOI1fLKg+Fx8zA1Zyxf4JbY8wM+0ZCm/kYshge/ZyzaaKKecJraxj75QxgVuz0q+nnMB6s/YWDRvE58H8s5ySxbyy/jWIh3ngcjsB5mwsk9Qlt7AqxbhEE0L5jczZCEOpJVv4R9DNsrNsTCrGDWYv2lOZ+B9Q/UXrbFRd3HJ4A6nkV/DjCHakwi5z+BmqHM38IKhGaMyEbKCswbb6W6g15A8nxj7osEed5Wvsr6AxOsa660v4To3A/cYih+c8KcNfvP8WbkIhgbTOunUAx/VMH9SlIFq0xp1MuCjVrgZWG5aF50MXDCta90MTMXpQUT4NcGkm4EJ07rRycBNRZgSGRg2rXVOBnzUkBOePFfMRCokRm8w2CvknUbAm9I35sPDif0/ZFq93lRi9H+96EyxF/hV1DOO8hJrrGrg5UTI/VZFUOtsQOIdQ3SJO2Oj7uaywR1KIS+xlmmrIloVC1PLGYOZTlkRSXRZFd4waxfMX8ewhdibUl5ieeAsOEHkfOARfreyv2ZZagMSqxkL1PtfcEfRvFa+DOSdS1GMhag3cJ5g9LOfHTSTJ08zO+hiIJQxxm0ZyUsSBX4kSZzO9GwoSVTTH1u+n+r0irZ4Je18l2gEBtmdkQny7GEykfhcTPJS1DYUR/waOqxFxSXO0EHUli8vQn61urXl/4/Vpx4N6JRGNK4/JZWrWnVqVIu2qlCEsUdPeiPJe78zcNAGmOUou6iJRNXQRg+zIeR4wnsjPA6EKC7zJrfGxtfzlrWHXI0uvLjwJXSHen4o3sE8wFLL4ZCFgyyJA1zKkQBsmK1JxQ3Xdut0BHBkwVtEPA4GIB9R5SovSVTyXoDv3eg5IV4PDP3uNOKGszPwo3wtKvVxK3GGp7KQlyTarHM2PDpfWr21l8/SlpW8JPGENQqTNBZLyXHccpnJ4Af4n7PYjxX5JdBhJXyQtbwk8aGlsCv8cgW/WRMv0RkgtoEqq6YY4/rgy1csd9tLIS9J3Gep2OUqlYybF92lkpcka1WYsG6OeNZa8xMvuokM1Fl7hH9kY9A8fKOU8pLE20Zr7tBOqzX7Y+94zgYarBVh09VH/vJ7tNTyksRXoWWZk/POztIYaDd6fZJYaYZkNrraycyArbgypy2miuvzzi+GAW9MA3NN3ZvTevOmZzHkQ0qFnPydqX/RDAyYVkPOusd1u0xzCf8/5sacdZ/506IZ8JVqcqowH/5YNAO+UoWstbmU/3sHgjKjOf0vXZqAfEP+R7EAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDItMTFUMTQ6NTQ6MDMrMDA6MDBFBKeUAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTAyLTExVDE0OjU0OjAzKzAwOjAwNFkfKAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=\"","export default __webpack_public_path__ + \"static/media/excel.f7ad5380.png\";","export default __webpack_public_path__ + \"static/media/newspaper.d2afa42d.png\";","export default __webpack_public_path__ + \"static/media/printing_queue.01126185.png\";","export default __webpack_public_path__ + \"static/media/printing_queue_done.7f34df83.png\";","export default __webpack_public_path__ + \"static/media/printing_queue_error.7d179b63.png\";","export default __webpack_public_path__ + \"static/media/printing_queue_loading.e6372b7a.png\";","import nsiLogo from \"./nsi-logo.png\";\nimport nsiLogoWhite from \"./nsi_logo_white.png\";\nimport ifapmeLogo from \"./IFAPME_logo.png\";\nimport walterLogo from \"./IFAPME_WALTER_logo.png\";\nimport walterTestLogo from \"./IFAPME_WALTER_logo_test.png\";\nimport hopeLogo from \"./IFAPME_HOPE_logo.png\";\nimport hopeLogoTest from \"./IFAPME_HOPE_logo_test.png\";\nimport headerImage from \"./header_faces.png\";\nimport beidLogo from \"./logo-eid.png\";\nimport onbeidLogo from \"./logo-on-eid.png\";\nimport nobeidLogo from \"./logo-no-eid.png\";\nimport newVersionBeidLogo from \"./logo-update-eid.png\";\nimport userlogo from \"./user.png\";\nimport excel from \"./excel.png\";\nimport rapport from \"./newspaper.png\";\nimport printingQueue from \"./printing_queue.png\";\nimport printingQueueDone from \"./printing_queue_done.png\";\nimport printingQueueError from \"./printing_queue_error.png\";\nimport printingQueueLoading from \"./printing_queue_loading.png\";\n\nconst assets = {\n images: {\n nsiLogo,\n nsiLogoWhite,\n ifapmeLogo,\n walterLogo,\n walterTestLogo,\n hopeLogo,\n hopeLogoTest,\n headerImage,\n beidLogo,\n onbeidLogo,\n nobeidLogo,\n newVersionBeidLogo,\n userlogo,\n excel,\n rapport,\n printingQueue,\n printingQueueDone,\n printingQueueError,\n printingQueueLoading\n }\n};\n\nexport default assets;\n","export function belgianIdValidate(id: string, millenial?: boolean) {\n id = id.replace(\".\", \"\").replace(\"-\", \"\");\n if (id.length < 11) return false;\n\n const numberToValidate = (millenial ? 2000000000 : 0) + parseInt(id.slice(0, 9));\n const validator = parseInt(id.slice(9));\n return 97 - (numberToValidate % 97) === validator;\n}\n","import { ISelectorProps, Selector } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { useTl } from \"../../hooks/useTl\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { IconNames } from \"@blueprintjs/icons\";\n\nexport interface IWSelectorProps\n extends Omit<\n ISelectorProps,\n | \"addAllText\"\n | \"addAllTtitleFunc\"\n | \"addAllTextFunc\"\n | \"addElementTextFunc\"\n | \"removeAllText\"\n | \"removeAllTitleFunc\"\n | \"removeAllTextFunc\"\n | \"removeElementTextFunc\"\n | \"resultText\"\n | \"cancelText\"\n | \"saveText\"\n > {}\n\nexport const WSelector: React.FunctionComponent = props => {\n const { t } = useTl();\n return (\n t(ETLCodes.AddAll)}\n addAllTextFunc={count => t(ETLCodes.AddAllText, { count })}\n addElementTextFunc={count => t(ETLCodes.AddElementText, { count })}\n removeAllTitleFunc={() => t(ETLCodes.RemoveAll)}\n removeAllTextFunc={count => t(ETLCodes.RemoveAllText, { count })}\n removeElementTextFunc={count => t(ETLCodes.RemoveElementText, { count })}\n resultText={t(ETLCodes.Resultat)}\n cancelText={t(ETLCodes.Retour)}\n saveText={t(ETLCodes.General_Save)}\n saveIcon={IconNames.FLOPPY_DISK}\n cancelIcon={IconNames.RESET}\n {...props}\n >\n );\n};\n","import { Colors } from \"@blueprintjs/core\";\n\nimport { EStatutContrat } from \"../api/models/EStatutContrat\";\nimport { IThemeData } from \"../theme\";\n\nexport const computeContratStatutColor = (statut: EStatutContrat, theme: IThemeData) => {\n if (!statut) return Colors.BLACK;\n switch (statut) {\n case EStatutContrat.EnCours:\n return theme.sucessColor;\n case EStatutContrat.Rompu:\n return theme.dangerColor;\n case EStatutContrat.Suspendu:\n return theme.warningColor;\n case EStatutContrat.Termine:\n return Colors.VIOLET4;\n case EStatutContrat.SansSuite:\n return null;\n }\n};\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EStatutDemande {\n AE = 'AE',\n P = 'P',\n I = 'I',\n E = 'E',\n EV = 'EV',\n EA = 'EA',\n EC = 'EC',\n CC = 'CC',\n ER = 'ER',\n MS = 'MS',\n SU = 'SU',\n RC = 'RC',\n DS = 'DS',\n V = 'V',\n CE = 'CE'\n}\n\n\nexport function EStatutDemandeFromJSON(json: any): EStatutDemande {\n return EStatutDemandeFromJSONTyped(json, false);\n}\n\nexport function EStatutDemandeFromJSONTyped(json: any, ignoreDiscriminator: boolean): EStatutDemande {\n return json as EStatutDemande;\n}\n\nexport function EStatutDemandeToJSON(value?: EStatutDemande | null): any {\n return value as any;\n}\n\n","import { ConfigurationParameters, EIfapmeSide } from \"./api\";\n\nexport let baseUrl = \"~\";\n\nif (baseUrl === \"~\") {\n const hostUrl = window.location.href.split(\"/\");\n baseUrl = hostUrl[0] + \"//\" + hostUrl[2];\n}\n\nexport const apiConfiguration = (getAccessToken?: () => Promise, side?: EIfapmeSide) => {\n const configuration: ConfigurationParameters = {\n basePath: baseUrl,\n accessToken: getAccessToken,\n headers: side\n ? {\n \"ifapme-side\": side\n }\n : {}\n };\n return configuration;\n};\n\nexport const setApiUrl = (u: string) => {\n // eslint-disable-next-line no-console\n console.log(\"Set Api url with \" + u);\n baseUrl = u;\n};\n","import * as React from \"react\";\nimport { FGMaskInput } from \"nsitools-react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { Icon } from \"@blueprintjs/core\";\nimport styled from \"styled-components\";\n\nconst IconContainer = styled.div`\n display: flex;\n align-items: center;\n height: 30px;\n`;\n\nexport interface IFGEuroMaskInputProps {\n name: string;\n label: string;\n disabled?: boolean;\n readonly?: boolean;\n allowNegative?: boolean;\n}\n\nexport const FGEuroMaskInput: React.FunctionComponent = ({\n label,\n name,\n disabled,\n readonly,\n allowNegative\n}) => {\n return (\n \n \n \n }\n cleaveOptions={{\n numeral: true,\n numeralThousandsGroupStyle: \"thousand\",\n numericOnly: true,\n numeralPositiveOnly: !allowNegative,\n numeralDecimalScale: 2,\n delimiter: \" \",\n stripLeadingZeroes: false\n }}\n name={name}\n label={label}\n disabled={disabled}\n readonly={readonly}\n />\n );\n};\n","import { IOptionProps } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { QueryObserverResult, RefetchOptions, RefetchQueryFilters, useQuery } from \"react-query\";\n\nimport { useApiService } from \".\";\nimport { ReferentialApi, ReferentialItemDto, ReferentialResultInfoDto } from \"../api\";\nimport { useEventsContext } from \"../contexts\";\nimport { Guid } from \"../utils/guid\";\n\nexport const useReferential = (\n func: (api: ReferentialApi) => Promise,\n asInt?: boolean,\n dependencies?: any[],\n nullable?: boolean,\n customApiKey?: string\n): [\n IOptionProps[],\n boolean,\n (options?: RefetchOptions & RefetchQueryFilters) => Promise>,\n ReferentialItemDto[]\n] => {\n const api = useApiService(ReferentialApi);\n const apiKey = React.useMemo(() => customApiKey ?? `ref-${Guid.newGuid()}`, [customApiKey]);\n const { data, isFetching, refetch } = useQuery(dependencies ? [apiKey, dependencies] : apiKey, async () => {\n return func(api);\n });\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n React.useEffect(() => {\n subscribeToEvent(\"REFERENTIAL_REFRESH\", refetch);\n return () => {\n unsubscribeEvent(\"REFERENTIAL_REFRESH\", refetch);\n };\n }, [refetch, subscribeToEvent, unsubscribeEvent]);\n\n const newData = React.useMemo(() => {\n if (data) {\n return data.list?.map(p => {\n return {\n value: p.idValue ? (asInt ? +p.idValue : p.idValue) : null,\n label: p.displayValue,\n disabled: p.disabled ?? false\n };\n }) as IOptionProps[];\n }\n }, [asInt, data]);\n\n const finalData = React.useMemo(() => {\n // if (newData && nullable) {\n // newData.unshift({ value: undefined, label: \"\" } as IOptionProps);\n // }\n return newData;\n }, [newData]);\n\n const rawData = React.useMemo(() => data?.list, [data]);\n\n return [finalData, isFetching, refetch, rawData];\n};\n\n","import { saveAs } from \"file-saver\";\nimport { FileDownloadDto } from \"../api\";\nexport function exportFile(file: FileDownloadDto) {\n const blob: Blob = b64toBlob(file);\n saveAs(blob, file.fileName);\n}\n\nexport function b64toBlob(file: FileDownloadDto, sliceSize = 512) {\n const b64Data: string = file.base64Content;\n const byteCharacters = atob(b64Data);\n const byteArrays = [];\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n\n byteArrays.push(byteArray);\n }\n\n const blob = new Blob(byteArrays);\n return blob;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EAggregateType } from './EAggregateType';\nimport {\n EAggregateTypeFromJSON,\n EAggregateTypeFromJSONTyped,\n EAggregateTypeToJSON,\n} from './EAggregateType';\n\n/**\n * \n * @export\n * @interface AggregateKeyInfo\n */\nexport interface AggregateKeyInfo {\n /**\n * \n * @type {string}\n * @memberof AggregateKeyInfo\n */\n key?: string | null;\n /**\n * \n * @type {EAggregateType}\n * @memberof AggregateKeyInfo\n */\n aggregateType?: EAggregateType;\n /**\n * \n * @type {string}\n * @memberof AggregateKeyInfo\n */\n text?: string | null;\n}\n\n/**\n * Check if a given object implements the AggregateKeyInfo interface.\n */\nexport function instanceOfAggregateKeyInfo(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AggregateKeyInfoFromJSON(json: any): AggregateKeyInfo {\n return AggregateKeyInfoFromJSONTyped(json, false);\n}\n\nexport function AggregateKeyInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AggregateKeyInfo {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'key': !exists(json, 'key') ? undefined : json['key'],\n 'aggregateType': !exists(json, 'aggregateType') ? undefined : EAggregateTypeFromJSON(json['aggregateType']),\n 'text': !exists(json, 'text') ? undefined : json['text'],\n };\n}\n\nexport function AggregateKeyInfoToJSON(value?: AggregateKeyInfo | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'key': value.key,\n 'aggregateType': EAggregateTypeToJSON(value.aggregateType),\n 'text': value.text,\n };\n}\n\n","import * as React from \"react\";\r\nimport { useFGContext } from \"nsitools-react\";\r\nimport { Prompt } from \"react-router\";\r\nimport { useTl } from \"../../hooks\";\r\nimport { ETLCodes } from \"../../locales\";\r\n\r\ninterface IFGRouteDirtyCheckerProps {\r\n message?: string;\r\n /**\r\n * var used to signal that the confirm changes prompt should not be rendered when deleting an element\r\n */\r\n isDelete?: boolean;\r\n isViewMode?: boolean;\r\n enableDirtyCheck?: boolean;\r\n}\r\n\r\nexport const FGRouteDirtyChecker: React.FunctionComponent = props => {\r\n const { isDelete, isViewMode, enableDirtyCheck } = props;\r\n const { formik } = useFGContext();\r\n const { t } = useTl();\r\n return (\r\n \r\n );\r\n};\r\n","import { Classes, IconName, MaybeElement } from \"@blueprintjs/core\";\nimport { FGCustomPanel, FormGenerator, IFGContext, IFormGeneratorProps, Loading } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { useAuth } from \"../contexts\";\nimport { useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\nimport {\n CancelButton,\n DeleteButton,\n DuplicateButton,\n EditButton,\n IDeleteButtonProps,\n SaveButton\n} from \"./applicationButtons\";\nimport { ButtonsBloc, InlineButtonContainer } from \"./applicationButtons/ButtonContainerStyles\";\nimport { FGRouteDirtyChecker } from \"./formGenerator/FGRouteDirtyChecker\";\n\ninterface IFormDeleteButtonProps extends Omit {\n icon?: IconName | MaybeElement;\n}\n\ninterface ISmallFormGeneratorProps extends Omit, \"children\"> {\n loading?: boolean;\n onEdit?: () => void;\n onCancel?: () => void;\n onDelete?: () => void;\n deleting?: boolean;\n deleteBtnDisabled?: boolean;\n saving?: boolean;\n showDeleteButton?: boolean;\n editMode?: boolean;\n hideButtons?: boolean;\n cancelEdit?: boolean;\n enableDirtyCheck?: boolean;\n editable?: boolean;\n canCheckRights?: boolean;\n rightSaveButton?: boolean;\n onHardDelete?: () => void;\n hardDeleting?: boolean;\n forceEnableSave?: boolean;\n showDuplicateButton?: boolean;\n onDuplicate?: () => void;\n additionalRightButtons?: (ctx: IFGContext) => JSX.Element;\n deleteButtonProps?: IFormDeleteButtonProps;\n customDeleteButtonProps?: IFormDeleteButtonProps;\n specificRights?: { module: string; tab?: string; rights?: \"R\" | \"RW\" | \"RWD\" };\n disableSaveButton?: boolean;\n}\n\nconst StyledForm = styled.div`\n & .${Classes.FORM_GROUP} {\n margin: 0 0 2px !important;\n }\n\n & .${Classes.CONTROL} {\n margin-bottom: 0 !important;\n }\n`;\n\nexport function SmallFormGenerator(props: React.PropsWithChildren>) {\n const {\n editable = true,\n children,\n loading = false,\n showDeleteButton = false,\n deleting,\n onDelete,\n deleteBtnDisabled = false,\n onEdit = () => {},\n onCancel,\n saving,\n editMode,\n minLabelWidth = 180,\n labelAlignment = \"right\",\n fill = true,\n showColons = true,\n inline = true,\n boldLabel = true,\n hideButtons = false,\n enableDirtyCheck = true,\n cancelEdit = false,\n validationErrors = {},\n canCheckRights = true,\n rightSaveButton = false,\n onHardDelete,\n hardDeleting,\n forceEnableSave = false,\n showDuplicateButton = false,\n onDuplicate,\n additionalRightButtons,\n deleteButtonProps,\n customDeleteButtonProps,\n specificRights,\n disableSaveButton = false,\n ...otherProps\n } = props;\n const [innerEditMode, setInnerEditMode] = React.useState(editMode);\n\n React.useEffect(() => {\n setInnerEditMode(editMode);\n }, [editMode]);\n\n const { getCurrentPermission, hasPermission } = useAuth();\n\n const readOnly = React.useMemo(() => canCheckRights && getCurrentPermission()?.permission === \"R\", [\n canCheckRights,\n getCurrentPermission\n ]);\n\n const canDelete = React.useMemo(\n () =>\n !!specificRights\n ? hasPermission(specificRights.module, specificRights.rights ?? \"RWD\", specificRights.tab)\n : canCheckRights && getCurrentPermission()?.permission === \"RWD\",\n [canCheckRights, getCurrentPermission, hasPermission, specificRights]\n );\n\n const { t, tUnsafe } = useTl();\n\n const [isDeleting, setIsDeleting] = React.useState(false);\n const [isSoftDeleting, setIsHardDeleting] = React.useState(false);\n\n const editCallback = React.useCallback(() => {\n setInnerEditMode(true);\n if (onEdit) {\n onEdit();\n }\n }, [onEdit]);\n\n const deleteCallback = React.useCallback(() => {\n setIsDeleting(true);\n if (onDelete) {\n onDelete();\n }\n }, [onDelete]);\n\n const hardDeleteCallback = React.useCallback(() => {\n setIsHardDeleting(true);\n if (onHardDelete) {\n onHardDelete();\n }\n }, [onHardDelete]);\n\n return (\n \n \n {(props?.initialValues || props.formik?.initialValues) && (\n \n {enableDirtyCheck && (\n \n )}\n {children}\n {!hideButtons && (\n \n {ctx => (\n \n \n {customDeleteButtonProps && (\n \n )}\n {showDeleteButton && onDelete && innerEditMode && canDelete ? (\n \n ) : (\n <>\n )}\n {onHardDelete && innerEditMode && (\n \n )}\n {rightSaveButton &&\n (innerEditMode ? (\n \n ) : (\n editable && !readOnly && \n ))}\n \n \n {!onCancel && cancelEdit && innerEditMode && (\n setInnerEditMode(false)} />\n )}\n {onCancel && }\n {showDuplicateButton ? (\n \n ) : (\n <>\n )}\n {innerEditMode ? (\n \n ) : (\n editable && !readOnly && \n )}\n {!!additionalRightButtons ? additionalRightButtons(ctx) : null}\n \n \n )}\n \n )}\n \n )}\n \n \n );\n}\n","import * as React from \"react\";\n\nimport { IBreadcrumbProps } from \"@blueprintjs/core\";\n\ninterface IBreadcumbContext {\n breadcrumbs: IBreadcrumbProps[];\n setBaseBreadcrumb: (breadCrumb: IBreadcrumbProps[]) => void;\n setDetailsBreadcrumb: (breadCrum: IBreadcrumbProps[]) => void;\n changeLastBreadcrumbDisplayedText: (text: string) => void;\n}\n\nexport const BreadcrumbContext = React.createContext(null);\n\nexport const BreadcrumbProvider: React.FunctionComponent = ({ children }) => {\n const [baseBreadcrumb, setBaseBreadcrumb] = React.useState([]);\n const [detailsBreadcrumb, setDetailsBreadcrumb] = React.useState([]);\n\n const breadcrumbs = React.useMemo(() => [...baseBreadcrumb, ...detailsBreadcrumb], [\n baseBreadcrumb,\n detailsBreadcrumb\n ]);\n\n const changeLastBreadcrumbDisplayedText = React.useCallback((text: string) => {\n setBaseBreadcrumb(prev => {\n if (prev.length > 0) {\n let next = [...prev.reverse()];\n next[0].text = text;\n next = next.reverse();\n return [...next];\n } else {\n return prev;\n }\n });\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useBreadcrumbs = () => React.useContext(BreadcrumbContext);\n","import { useSessionStorageState } from \"ahooks\";\nimport * as React from \"react\";\n\ntype CriteriaRouteType = {\n [route: string]: any;\n};\n\ninterface ISearchCriteriaContext {\n setCriterias: (route: string, criteria: object) => void;\n criterias: CriteriaRouteType;\n clearCriterias: () => void;\n}\nconst SearchCriteriaContext = React.createContext(null);\n\nconst SESSION_STORAGE_KEY = \"SearchCriterias\";\n\nexport const SearchCriteriaProvider: React.FunctionComponent = ({ children }) => {\n const [routeCriteria, setRouteCriteria] = useSessionStorageState(SESSION_STORAGE_KEY, {});\n\n const setCriterias = React.useCallback(\n (route: string, sObj: any) => {\n const origString = JSON.stringify(routeCriteria[route]);\n const objString = JSON.stringify(sObj);\n if (origString !== objString) {\n setRouteCriteria(c => ({\n ...c,\n [route]: sObj\n }));\n }\n },\n [routeCriteria, setRouteCriteria]\n );\n\n const clearCriterias = React.useCallback(() => {\n setRouteCriteria({});\n }, [setRouteCriteria]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useSearchCriteriaContext = () => React.useContext(SearchCriteriaContext);\n","import * as React from \"react\";\nimport { ETypeDestinataireSms } from \"../api\";\n\ninterface IRouteParamsContext {\n popSmsRecipientIds: () => number[];\n pushSmsRecipientIds: (ids: number[]) => void;\n popSmsRecipientType: () => ETypeDestinataireSms;\n pushSmsRecipientType: (type: ETypeDestinataireSms) => void;\n popIdbulletinApprenantType: () => number;\n pushIdbulletinApprenantType: (id: number) => void;\n\n popCancelRoute: () => string;\n pushCancelRoute: (route: string) => void;\n popSelectedApprenantIds: () => number[];\n pushSelectedApprenantIds: (ids: number[]) => void;\n}\nconst RouteParamsContext = React.createContext(null);\n\ninterface IRouteParamsProviderProps {}\n\nexport const RouteParamsProvider: React.FunctionComponent = ({ children }) => {\n const [smsRecipientIds, setSmsRecipientIds] = React.useState([]);\n const popSmsRecipientIds = React.useCallback(() => {\n const ids = [...smsRecipientIds];\n setSmsRecipientIds([]);\n return ids;\n }, [smsRecipientIds]);\n\n const [smsRecipientType, setSmsRecipientType] = React.useState(null);\n const popSmsRecipientType = React.useCallback(() => {\n const type = smsRecipientType;\n setSmsRecipientType(null);\n return type;\n }, [smsRecipientType]);\n\n const [idbulletinApprenantType, setIdbulletinApprenantType] = React.useState(null);\n const popIdbulletinApprenantType = React.useCallback(() => {\n const id = idbulletinApprenantType;\n setIdbulletinApprenantType(null);\n return id;\n }, [idbulletinApprenantType]);\n\n const [cancelRoute, setCancelRoute] = React.useState(null);\n const popCancelRoute = React.useCallback(() => {\n const route = cancelRoute;\n setCancelRoute(null);\n return route;\n }, [cancelRoute]);\n\n const [selectedApprenantIds, setSelectedApprenantIds] = React.useState([]);\n const popSelectedApprenantIds = React.useCallback(() => {\n const ids = [...selectedApprenantIds];\n setSelectedApprenantIds([]);\n return ids;\n }, [selectedApprenantIds]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useRouteParamsContext = () => React.useContext(RouteParamsContext);\n","import * as React from \"react\";\nimport { IModifedByDataObject, ModifiedBy } from \"../components\";\n\ninterface IModifiedByContext {\n modifiedByComponent?: React.ReactNode;\n setModifiedByData?: (data: IModifedByDataObject) => void;\n}\n\nexport const ModifiedByContext = React.createContext(null);\n\nexport const ModifiedByProvider: React.FunctionComponent = ({ children }) => {\n const [modifiedByData, setModifiedByData] =\n React.useState();\n\n return (\n ,\n setModifiedByData,\n }}\n >\n {children}\n \n );\n};\n\nexport const useModifiedByComponent = () => React.useContext(ModifiedByContext);\n","import * as signalR from \"@microsoft/signalr\";\nimport orderBy from \"lodash/orderBy\";\nimport { showError, showInfo } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\n\nimport { useAuth } from \".\";\nimport {\n EPrintingQueueStatus,\n FichierApi,\n PrintingQueueApi,\n PrintingQueueDto,\n SelectedPrintingsDtoFromJSON\n} from \"../api\";\nimport { useApiService, useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\nimport { b64toBlob, exportFile, nameof } from \"../utils\";\n\ninterface IPrintingQueueContext {\n connected: boolean;\n queuePrintings: PrintingQueueDto[];\n isLoading: boolean;\n cancelQueue: (idprintingQueue: number) => Promise;\n rowCancelling: number;\n deleteFromQueue: (idprintingQueue: number) => Promise;\n rowDeleting: number;\n refreshQueue: () => void;\n isQueueForcedOpen: boolean;\n setIsQueueForcedOpen: (value: boolean) => void;\n rowDownloading: number;\n downloadFile: (idprintingQueue: number, idfichier: number) => Promise;\n massDownloading: boolean;\n massDownload: (idsfichier: number[]) => Promise;\n rowRetrying: number;\n retryPrinting: (idprintingQueue: number) => Promise;\n rowShowing: number;\n showPrinting: (idprintingQueue: number) => Promise;\n showHidden: boolean;\n setShowHidden: (value: boolean | ((prev: boolean) => boolean)) => void;\n massMask: (selectedIds: number[]) => Promise;\n massDelete: (selectedIds: number[]) => Promise;\n massCancel: (selectedIds: number[]) => Promise;\n removePreviousPrintings: () => Promise;\n hasError: boolean;\n setHasError: (value: boolean) => void;\n}\nconst PrintingQueueContext = React.createContext(null);\n\ninterface IPrintingQueueProviderProps {}\n\nconst hostUrl = window.location.href.split(\"/\");\nconst baseUrl = hostUrl[2]?.startsWith(\"localhost:\") ? \"https://localhost:5001\" : hostUrl[0] + \"//\" + hostUrl[2];\n\nexport const PrintingQueueProvider: React.FunctionComponent = ({ children }) => {\n const { t } = useTl();\n const { user, getAccessToken } = useAuth();\n const api = useApiService(PrintingQueueApi);\n const fApi = useApiService(FichierApi);\n const [isQueueOpen, setIsQueueOpen] = React.useState(false);\n const [showHidden, setShowHidden] = React.useState(false);\n const [hasError, setHasError] = React.useState(false);\n\n const formatAccessToken = React.useCallback(async () => {\n const accessToken = await getAccessToken();\n if (!accessToken) return null;\n\n return accessToken.split(\"Bearer \")[1];\n }, [getAccessToken]);\n\n const connection = React.useMemo(\n () =>\n new signalR.HubConnectionBuilder()\n .withUrl(baseUrl + \"/printingQueue\", {\n accessTokenFactory: formatAccessToken,\n skipNegotiation: !user\n })\n .withAutomaticReconnect()\n .build(),\n [formatAccessToken, user]\n );\n\n const [connected, setConnected] = React.useState(false);\n const [queuePrintings, setQueuePrintings] = React.useState([]);\n\n const { data, isFetching, refetch } = useQuery(\n [\"queue-printings\", user?.iduser, showHidden],\n async () => await api.printingQueueGetPrintingQueue({ showHidden }),\n { enabled: !!user?.iduser }\n );\n React.useEffect(() => {\n if (!!data) {\n setQueuePrintings(data);\n }\n }, [data]);\n\n const onPrintingStatusChange = React.useCallback(\n async (idprintingQueue: number, status: string, idfichier: number) => {\n setQueuePrintings(prev => {\n const modified = prev.map(p =>\n p.idprintingQueue === idprintingQueue\n ? { ...p, status: EPrintingQueueStatus[status], idfichier: idfichier }\n : p\n );\n\n if (!hasError) setHasError(modified.some(d => d.status === EPrintingQueueStatus.ERROR));\n return orderBy(\n modified,\n [\n item => {\n switch (item.status) {\n case EPrintingQueueStatus.GENERATING:\n return 1;\n case EPrintingQueueStatus.DONE:\n return 2;\n case EPrintingQueueStatus.ERROR:\n return 3;\n case EPrintingQueueStatus.CANCELLED:\n return 4;\n case EPrintingQueueStatus.WAITING:\n return 5;\n }\n },\n nameof(\"creationDate\"),\n nameof(\"idprintingQueue\")\n ],\n [\"asc\", \"asc\", \"asc\"]\n );\n });\n },\n [hasError]\n );\n\n React.useEffect(() => {\n connection.onreconnected(() => setConnected(true));\n connection.onreconnecting(() => setConnected(false));\n connection\n .start()\n .then(() => setConnected(true))\n .catch(error => console.error(error));\n }, [connection]);\n\n React.useEffect(() => {\n connection.on(\"PrintingStatusChanged\", onPrintingStatusChange);\n return () => {\n connection.off(\"PrintingStatusChanged\");\n };\n }, [connection, onPrintingStatusChange]);\n\n const [rowCancelling, setRowCancelling] = React.useState(null);\n const cancelQueue = React.useCallback(\n async (idprintingQueue: number) => {\n try {\n setRowCancelling(idprintingQueue);\n await api.printingQueueCancelPrinting({ idprintingQueue: idprintingQueue });\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileCancellingPrinting));\n console.error(e);\n } finally {\n setRowCancelling(null);\n }\n },\n [api, t]\n );\n\n const [rowDeleting, setRowDeleting] = React.useState(null);\n const deleteFromQueue = React.useCallback(\n async (idprintingQueue: number) => {\n try {\n setRowDeleting(idprintingQueue);\n await api.printingQueueDeletePrinting({ idprintingQueue: idprintingQueue });\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileDeletingPrinting));\n console.error(e);\n } finally {\n setRowDeleting(null);\n }\n },\n [api, t]\n );\n\n const [rowDownloading, setRowDownloading] = React.useState(null);\n const downloadFile = React.useCallback(\n async (idprintingQueue: number, idfichier: number) => {\n try {\n setRowDownloading(idprintingQueue);\n const file = await fApi.fichierDownload({ id: idfichier });\n await exportFile(file);\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileDownloadingPrinting));\n console.error(e);\n } finally {\n setRowDownloading(null);\n }\n },\n [fApi, t]\n );\n\n const [massDownloading, setMassDownloading] = React.useState(null);\n const massDownload = React.useCallback(\n async (idsfichier: number[]) => {\n if (idsfichier.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n try {\n setMassDownloading(true);\n const zip = await fApi.fichierMassDownloadPdf({\n MassDownloadRequestDto: { idsfichier: idsfichier }\n });\n if (!zip) {\n showInfo(t(ETLCodes.AucunFichierATelecharger));\n return;\n }\n saveAs(b64toBlob(zip), zip.fileName);\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileDownloadingPrinting));\n console.error(e);\n } finally {\n setMassDownloading(false);\n }\n },\n [fApi, t]\n );\n\n const [rowRetrying, setRowRetrying] = React.useState(null);\n const retryPrinting = React.useCallback(\n async idprintingQueue => {\n try {\n setRowRetrying(idprintingQueue);\n await api.printingQueueRetryPrinting({ idprintingQueue: idprintingQueue });\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileDeletingPrinting));\n console.error(e);\n } finally {\n setRowRetrying(null);\n }\n },\n [api, t]\n );\n\n const [rowShowing, setRowShowing] = React.useState(null);\n const showPrinting = React.useCallback(\n async idprintingQueue => {\n try {\n setRowShowing(idprintingQueue);\n await api.printingQueueShowPrinting({ idprintingQueue: idprintingQueue });\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileShowingRow));\n console.error(e);\n } finally {\n setRowShowing(null);\n }\n },\n [api, t]\n );\n\n const massMask = React.useCallback(\n async (selectedIds: number[]) => {\n if (selectedIds.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n try {\n setMassDownloading(true);\n await api.printingQueueMaskSelected({\n SelectedPrintingsDto: SelectedPrintingsDtoFromJSON({\n selectedIds: selectedIds\n })\n });\n refetch();\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileMaskingprintings));\n console.error(e);\n } finally {\n setMassDownloading(false);\n }\n },\n [api, refetch, t]\n );\n\n const massDelete = React.useCallback(\n async (selectedIds: number[]) => {\n if (selectedIds.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n try {\n setMassDownloading(true);\n await api.printingQueueDeleteSelected({\n SelectedPrintingsDto: SelectedPrintingsDtoFromJSON({\n selectedIds: selectedIds\n })\n });\n refetch();\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileDeletingPrintings));\n console.error(e);\n } finally {\n setMassDownloading(false);\n }\n },\n [api, refetch, t]\n );\n\n const massCancel = React.useCallback(\n async (selectedIds: number[]) => {\n if (selectedIds.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n try {\n setMassDownloading(true);\n await api.printingQueueCancelSelected({\n SelectedPrintingsDto: SelectedPrintingsDtoFromJSON({\n selectedIds: selectedIds\n })\n });\n refetch();\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileCancellingPrintings));\n console.error(e);\n } finally {\n setMassDownloading(false);\n }\n },\n [api, refetch, t]\n );\n\n const removePreviousPrintings = React.useCallback(async () => {\n const selectedIds = queuePrintings.map(qp => qp.idprintingQueue);\n try {\n setMassDownloading(true);\n await api.printingQueueCancelSelected({\n SelectedPrintingsDto: SelectedPrintingsDtoFromJSON({\n selectedIds: selectedIds\n })\n });\n await api.printingQueueDeleteSelected({\n SelectedPrintingsDto: SelectedPrintingsDtoFromJSON({\n selectedIds: selectedIds\n })\n });\n await api.printingQueueMaskSelected({\n SelectedPrintingsDto: SelectedPrintingsDtoFromJSON({\n selectedIds: selectedIds\n })\n });\n refetch();\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileCancellingPrintings));\n console.error(e);\n } finally {\n setMassDownloading(false);\n }\n }, [api, queuePrintings, refetch, t]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const usePrintingQueueContext = () => React.useContext(PrintingQueueContext);\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DemandeInscriptionFichierGridDto } from './DemandeInscriptionFichierGridDto';\nimport {\n DemandeInscriptionFichierGridDtoFromJSON,\n DemandeInscriptionFichierGridDtoFromJSONTyped,\n DemandeInscriptionFichierGridDtoToJSON,\n} from './DemandeInscriptionFichierGridDto';\nimport type { EStatutDemande } from './EStatutDemande';\nimport {\n EStatutDemandeFromJSON,\n EStatutDemandeFromJSONTyped,\n EStatutDemandeToJSON,\n} from './EStatutDemande';\n\n/**\n * \n * @export\n * @interface DemandeInscriptionEditDto\n */\nexport interface DemandeInscriptionEditDto {\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n iddemandeInscription?: number;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n idparcoursFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n idtypeCours?: number | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionEditDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n idstade?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n iddegre?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n idservice?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n idstatutDemande?: number | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionEditDto\n */\n remarqueInvalidation?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionEditDto\n */\n remarqueRefus?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof DemandeInscriptionEditDto\n */\n editable?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DemandeInscriptionEditDto\n */\n priCanValidate?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DemandeInscriptionEditDto\n */\n centreExterieur?: boolean;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n creationUser?: number;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionEditDto\n */\n idpriApprenant?: number | null;\n /**\n * \n * @type {EStatutDemande}\n * @memberof DemandeInscriptionEditDto\n */\n changeStatut?: EStatutDemande;\n /**\n * \n * @type {Array}\n * @memberof DemandeInscriptionEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the DemandeInscriptionEditDto interface.\n */\nexport function instanceOfDemandeInscriptionEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DemandeInscriptionEditDtoFromJSON(json: any): DemandeInscriptionEditDto {\n return DemandeInscriptionEditDtoFromJSONTyped(json, false);\n}\n\nexport function DemandeInscriptionEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DemandeInscriptionEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddemandeInscription': !exists(json, 'iddemandeInscription') ? undefined : json['iddemandeInscription'],\n 'idparcoursFormation': !exists(json, 'idparcoursFormation') ? undefined : json['idparcoursFormation'],\n 'idtypeCours': !exists(json, 'idtypeCours') ? undefined : json['idtypeCours'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'iddegre': !exists(json, 'iddegre') ? undefined : json['iddegre'],\n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'idstatutDemande': !exists(json, 'idstatutDemande') ? undefined : json['idstatutDemande'],\n 'remarqueInvalidation': !exists(json, 'remarqueInvalidation') ? undefined : json['remarqueInvalidation'],\n 'remarqueRefus': !exists(json, 'remarqueRefus') ? undefined : json['remarqueRefus'],\n 'editable': !exists(json, 'editable') ? undefined : json['editable'],\n 'priCanValidate': !exists(json, 'priCanValidate') ? undefined : json['priCanValidate'],\n 'centreExterieur': !exists(json, 'centreExterieur') ? undefined : json['centreExterieur'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'idpriApprenant': !exists(json, 'idpriApprenant') ? undefined : json['idpriApprenant'],\n 'changeStatut': !exists(json, 'changeStatut') ? undefined : EStatutDemandeFromJSON(json['changeStatut']),\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(DemandeInscriptionFichierGridDtoFromJSON)),\n };\n}\n\nexport function DemandeInscriptionEditDtoToJSON(value?: DemandeInscriptionEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddemandeInscription': value.iddemandeInscription,\n 'idparcoursFormation': value.idparcoursFormation,\n 'idtypeCours': value.idtypeCours,\n 'anneeAcademique': value.anneeAcademique,\n 'idmetier': value.idmetier,\n 'idstade': value.idstade,\n 'idcentre': value.idcentre,\n 'iddegre': value.iddegre,\n 'idservice': value.idservice,\n 'idstatutDemande': value.idstatutDemande,\n 'remarqueInvalidation': value.remarqueInvalidation,\n 'remarqueRefus': value.remarqueRefus,\n 'editable': value.editable,\n 'priCanValidate': value.priCanValidate,\n 'centreExterieur': value.centreExterieur,\n 'creationUser': value.creationUser,\n 'idpriApprenant': value.idpriApprenant,\n 'changeStatut': EStatutDemandeToJSON(value.changeStatut),\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(DemandeInscriptionFichierGridDtoToJSON)),\n };\n}\n\n","import styled from \"styled-components\";\n\nexport const InlineButtonContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex: 1;\n align-items: flex-end;\n justify-content: space-between;\n`;\n\nexport const ButtonsBloc = styled.div`\n display: flex;\n margin-top: 0.5em;\n & > * + * {\n margin-left: 0.5em;\n }\n`;\n","import { AccountInfo, AuthenticationResult, LogLevel, PublicClientApplication } from \"@azure/msal-browser\";\nimport { useLocalStorageState, useSessionStorageState } from \"ahooks\";\nimport * as React from \"react\";\nimport { useHistory, useLocation } from \"react-router\";\n\nimport { Configuration, UserActionDto, UserProfileDto, UsersApi } from \"../api\";\nimport { apiConfiguration } from \"../apiConfig\";\nimport { ERoutes } from \"../AppRouter\";\nimport { useFrontendSettings, useSystemInfo } from \"../hooks\";\n\ninterface IAuthProviderProps {}\n\ninterface IAuthContext {\n logout: (reason?: string) => void;\n isLoading: boolean;\n user?: UserProfileDto;\n logoutReason?: string;\n authenticationFailed: boolean;\n matchModule: (module: string) => boolean;\n matchTab: (tab: string) => boolean;\n userPermissions: UserActionDto[];\n getCurrentPermission: () => UserActionDto;\n azureAdAccount: AccountInfo;\n hasPermission: (module: string, permission: \"R\" | \"RW\" | \"RWD\", tab?: string) => boolean;\n getAccessToken: () => Promise;\n reloadUser: () => Promise;\n}\n\nexport type Permission = {\n module: string;\n tab: string;\n right: \"R\" | \"RW\" | \"RWD\";\n};\n\nconst AuthContext = React.createContext(null);\n\nconst AuthProvider: React.FunctionComponent = ({ children }) => {\n // Load from localstorage\n const history = useHistory();\n const location = useLocation();\n const [isLoading, setIsLoading] = React.useState(true);\n const [logoutReason, setLogoutReason] = React.useState();\n const [userProfile, setUserProfile] = React.useState(null);\n const userPermissions = React.useMemo(() => userProfile?.actions || null, [userProfile?.actions]);\n const [authenticationFailed, setAuthenticationFailed] = React.useState(false);\n\n const { pathname } = useLocation();\n const { frontendSettings } = useFrontendSettings();\n const [lastAccountName, setLastAccountName] = useLocalStorageState(\"account_name\");\n const msalInstance = React.useMemo(() => {\n if (frontendSettings) {\n return new PublicClientApplication({\n auth: {\n clientId: frontendSettings.azureClientId,\n authority: frontendSettings.azureAuthority\n },\n cache: {\n cacheLocation: \"localStorage\", // This configures where your cache will be stored\n storeAuthStateInCookie: true // Set this to \"true\" if you are having issues on IE11 or Edge\n },\n system: {\n loggerOptions: {\n loggerCallback: (logLevel, message) => {\n // eslint-disable-next-line no-console\n console.log(\"[MSAL]\", message);\n },\n piiLoggingEnabled: true,\n logLevel: LogLevel.Warning\n }\n }\n });\n }\n }, [frontendSettings]);\n\n const [azureAdAccount, setAzureAdAccount] = React.useState();\n const [, setRedirectUri] = useSessionStorageState(\"redirect_uri\");\n\n React.useEffect(() => {\n if (userPermissions && userPermissions.length === 0) {\n history.push(`${ERoutes.unauthorized}`);\n }\n }, [history, userPermissions]);\n\n const matchModule = React.useCallback(\n (module: string) => {\n if (!userPermissions) return false;\n return userPermissions?.some(p => p.module.toUpperCase() === module.toUpperCase());\n },\n [userPermissions]\n );\n\n const matchTab = React.useCallback(\n (tab: string) => {\n if (!userPermissions) return false;\n const module = pathname.split(\"/\")[1].toUpperCase();\n return userPermissions?.some(\n p => (!!p.tab || p.tab === \"\") && p.module.toUpperCase() === module && p.tab.toUpperCase() === tab.toUpperCase()\n );\n },\n [pathname, userPermissions]\n );\n\n const getCurrentPermission = React.useCallback(() => {\n let permission = null;\n if (!userPermissions) return null;\n const module = pathname.split(\"/\")[1].toUpperCase();\n permission =\n userPermissions?.find(\n p => p.module.toUpperCase() === module.toUpperCase() && (p.tab === \"SEARCH\" || p.tab === \"\")\n ) ?? userPermissions?.find(p => p.module.toUpperCase() === module.toUpperCase());\n if (pathname.split(\"/\").length > 4) {\n let tab = null;\n let idFound = false;\n for (let part of pathname.split(\"/\").splice(2)) {\n if (isNaN(+part) && idFound) {\n tab = part.toUpperCase();\n break;\n }\n if (!isNaN(+part) || part.length <= 3) idFound = true;\n }\n permission = userPermissions?.find(\n p => p.tab && p.module?.toUpperCase() === module && p.tab?.toUpperCase() === tab?.toUpperCase()\n );\n }\n return permission;\n }, [pathname, userPermissions]);\n\n const hasPermission = React.useCallback(\n (module: string, permission: \"R\" | \"RW\" | \"RWD\", tab: string = \"\") => {\n if (!userPermissions) return false;\n const actions = userPermissions?.find(\n p => p.module.toUpperCase() === module.toUpperCase() && p.tab.toUpperCase() === tab.toUpperCase()\n );\n return !!actions && actions.permission.toUpperCase().includes(permission);\n },\n [userPermissions]\n );\n\n const loginProcess = React.useCallback(() => {\n const previousPath = location.pathname;\n return msalInstance\n .handleRedirectPromise()\n .then(redirectResponse => {\n if (redirectResponse !== null) {\n setAzureAdAccount(redirectResponse.account);\n setLastAccountName(redirectResponse.account.username);\n } else {\n setRedirectUri(previousPath);\n const account = msalInstance.getAccountByUsername(lastAccountName);\n if (account) {\n console.log(\"Local account found ...\", account);\n\n setAzureAdAccount(account);\n } else {\n console.log(\"No account found, login with azure ad ! \");\n\n void msalInstance.loginRedirect({\n scopes: [frontendSettings?.azureApiScope],\n loginHint: lastAccountName\n });\n }\n }\n })\n .catch(error => {\n console.error(error);\n });\n }, [\n frontendSettings?.azureApiScope,\n lastAccountName,\n location.pathname,\n msalInstance,\n setLastAccountName,\n setRedirectUri\n ]);\n\n React.useEffect(() => {\n if (msalInstance) {\n if (!azureAdAccount) {\n void loginProcess();\n }\n }\n }, [azureAdAccount, loginProcess, msalInstance]);\n\n const getAccessToken = React.useCallback(async () => {\n let refreshedToken: AuthenticationResult;\n try {\n if (azureAdAccount) {\n refreshedToken = await msalInstance.acquireTokenSilent({\n account: azureAdAccount,\n scopes: [frontendSettings.azureApiScope]\n });\n return \"Bearer \" + refreshedToken.accessToken;\n }\n } catch (error) {\n console.error(\"Unable to get token silently\", error);\n await msalInstance.loginRedirect({\n scopes: [frontendSettings?.azureApiScope],\n loginHint: lastAccountName\n });\n }\n\n return null;\n }, [azureAdAccount, lastAccountName, frontendSettings, msalInstance]);\n\n const { ifapmeSide } = useSystemInfo();\n\n const loadUser = React.useCallback(async () => {\n if (!ifapmeSide) return;\n\n const api = new UsersApi(new Configuration(apiConfiguration(getAccessToken, ifapmeSide)));\n try {\n const userProfile = await api.usersAuthenticate();\n setUserProfile(userProfile);\n } catch (error) {\n console.error(error);\n setAuthenticationFailed(true);\n } finally {\n setIsLoading(false);\n }\n }, [getAccessToken, ifapmeSide]);\n\n const logout = React.useCallback(\n async (reason?: string) => {\n setLogoutReason(reason);\n\n const api = new UsersApi(new Configuration(apiConfiguration(getAccessToken, ifapmeSide)));\n\n if (userProfile?.impersonator) {\n await api.usersLogoutImpersonate();\n await loadUser();\n history.replace(ERoutes.home);\n } else {\n await api.usersLogout();\n await msalInstance.logoutRedirect({\n account: azureAdAccount\n });\n\n setAzureAdAccount(null);\n setUserProfile(null);\n }\n },\n [azureAdAccount, getAccessToken, history, ifapmeSide, loadUser, msalInstance, userProfile]\n );\n\n React.useEffect(() => {\n if (azureAdAccount) {\n console.log(\"Azure ad account ready, getting user profile...\");\n void loadUser();\n }\n }, [azureAdAccount, loadUser]);\n\n return (\n \n {children}\n \n );\n};\n\nconst useAuth = () => React.useContext(AuthContext);\n\nexport { AuthProvider, useAuth };\n","import { useTranslation } from \"react-i18next\";\nimport { ETLCodes } from \"../locales/ETLCodes\";\nimport { useCallback } from \"react\";\nimport { TOptions } from \"i18next\";\n\nexport const useTl = () => {\n const { t } = useTranslation();\n\n const tCode = useCallback(\n (code: ETLCodes, options?: TOptions | string) => {\n return t(ETLCodes[code], options);\n },\n [t]\n );\n\n const tUnsafeCode = useCallback(\n (code: string | undefined, options?: TOptions | string) => {\n if (code === undefined) return \"\";\n return t(code, options);\n },\n [t]\n );\n return {\n t: tCode,\n tUnsafe: tUnsafeCode\n };\n};\n","export enum ELanguages {\n fr\n}\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport fr from \"./resources/fr.json\";\nimport { ETLCodes } from \"./ETLCodes\";\nimport { ELanguages } from \"./ELanguages\";\n\nconst resources = {\n fr\n};\n\n(window as any).MISSING_TL_KEYS = {};\n(window as any).GetMissingKeysEnum = () => {\n const s = Object.keys((window as any).MISSING_TL_KEYS).join(\",\\n\");\n // eslint-disable-next-line no-console\n console.log(\",\" + s);\n return s;\n};\n\ni18n.use(initReactI18next).init({\n resources,\n lng: \"fr\",\n keySeparator: false,\n interpolation: {\n escapeValue: false\n },\n parseMissingKeyHandler: key => {\n (window as any).MISSING_TL_KEYS[key] = true;\n return `${key}_MISSING_TL`;\n }\n});\n\nexport default i18n;\n\nexport const tlCodesArray = Object.keys(ETLCodes)\n .filter(k => typeof ETLCodes[k as any] === \"number\")\n .sort();\nexport const languagesArray = Object.keys(ELanguages)\n .filter(k => typeof ELanguages[k as any] === \"number\")\n .sort();\n\nexport { ELanguages, ETLCodes };\n","import { useRequest } from \"ahooks\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useLocation } from \"react-router\";\n\nimport { useAuth } from \".\";\nimport { AnneeScolaireApi, Configuration, FcbAnneeScolaireDto, SystemApi } from \"../api\";\nimport { apiConfiguration } from \"../apiConfig\";\nimport { ISystemInfo, useSystemInfo } from \"../hooks\";\n\ninterface IGlobalDataContext extends ISystemInfo {\n currentAnneeScolaire?: FcbAnneeScolaireDto;\n loading: boolean;\n nbPlages: number;\n currentModuleId: number;\n}\n\nconst GlobalDataContext = React.createContext(null);\n\ninterface IGlobalDataProviderProps {}\n\nexport const GlobalDataProvider: React.FunctionComponent = ({ children }) => {\n const anneeScolaireApi = new AnneeScolaireApi(new Configuration(apiConfiguration()));\n\n const { getAccessToken, user } = useAuth();\n const systemApi = React.useMemo(() => new SystemApi(new Configuration(apiConfiguration(getAccessToken))), [\n getAccessToken\n ]);\n\n const { pathname } = useLocation();\n const moduleName = React.useMemo(() => pathname?.split(\"/\")[1], [pathname]);\n\n const { data: currentAnneeScolaire, loading: loadingAnneeScolaire } = useRequest(() =>\n anneeScolaireApi.anneeScolaireGetCurrent()\n );\n\n const fetchModules = React.useCallback(() => {\n if (!!user?.iduser) {\n return systemApi.systemGetModules();\n } else {\n return [];\n }\n }, [systemApi, user?.iduser]);\n const { data: modules, isFetching: mloading } = useQuery([\"app-modules\", user?.iduser], fetchModules, {\n cacheTime: 0\n });\n\n const currentModuleId = React.useMemo(\n () =>\n !mloading && modules?.length > 0 && moduleName ? modules.find(m => m.modulename === moduleName)?.idmodule : null,\n [mloading, moduleName, modules]\n );\n\n const systemInfo = useSystemInfo();\n const globalDataLoading = React.useMemo(() => loadingAnneeScolaire || mloading, [loadingAnneeScolaire, mloading]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useGlobalData = () => React.useContext(GlobalDataContext);\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Tooltip } from \"@blueprintjs/core\";\nimport { useDebounce, useFGContext, usePrevious } from \"nsitools-react\";\n\nimport { useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\nimport { FGWalterSelectInput } from \".\";\nimport { useReferential } from \"../hooks/useReferential\";\nimport { getIn } from \"formik\";\n\ninterface ILocaliteSelectProps {\n codePostalTextName?: string;\n codePays?: string;\n codePostal: string;\n name: string;\n labelStyles?: React.CSSProperties;\n disableIfNoCp?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n}\n\nconst StyledTooltip = styled(Tooltip)`\n display: flex;\n & > * {\n flex: 1;\n }\n`;\n\nexport const LocaliteSelect: React.FunctionComponent = ({\n codePostalTextName,\n codePays = \"BE\",\n codePostal,\n name,\n disableIfNoCp = true,\n disabled,\n readonly\n}) => {\n const { t } = useTl();\n const { formik } = useFGContext();\n\n const debouncedCodePays = useDebounce(codePays, 500);\n const debouncedCodePostal = useDebounce(codePostal, 500);\n const [data, loading, , rawLocalites] = useReferential(\n a =>\n !debouncedCodePostal\n ? a.referentialGetLocalitesSuggest({ pays: debouncedCodePays })\n : a.referentialGetLocaliteFromCodePostal({ codePays: debouncedCodePays, codePostal: debouncedCodePostal }),\n false,\n [debouncedCodePostal]\n );\n\n const value = React.useMemo(() => getIn(formik.values, name), [formik.values, name]);\n const previousLocalite = usePrevious(value);\n React.useEffect(() => {\n if (!!codePostalTextName && !!value && value !== previousLocalite) {\n const cpText = rawLocalites?.find(l => l.idValue === value)?.keyValue;\n if (!!cpText) {\n formik.setFieldValue(codePostalTextName, cpText);\n }\n }\n }, [codePostalTextName, formik, previousLocalite, rawLocalites, value]);\n\n return (\n \n \n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { AddParcoursFormationDialog } from \"./AddParcoursFormationDialog\";\n\nexport interface IAddParcoursFormationButtonProps {\n idApprenant: number;\n idCategorieStatut?: number;\n idStatut?: number;\n iddureeInoccupation?: number;\n dateEntree?: Date;\n minDateEntree?: Date;\n onClose?: (refresh: boolean) => void;\n loading?: boolean;\n title: string;\n}\n\nexport const AddParcoursFormationButton: React.FunctionComponent = ({\n idApprenant,\n idCategorieStatut,\n idStatut,\n dateEntree,\n onClose = (refresh: boolean) => {},\n loading,\n title,\n minDateEntree,\n iddureeInoccupation\n}) => {\n const [isDialogOpen, setIsDialogOpen] = React.useState(false);\n\n return (\n <>\n \n {\n setIsDialogOpen(true);\n }}\n disabled={loading}\n />\n \n\n {\n setIsDialogOpen(false);\n onClose(refresh);\n }}\n />\n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { WarningText } from \"..\";\n\nimport { ContratApi, EIfapmeSide } from \"../../api\";\nimport { useDialog, useEventsContext } from \"../../contexts\";\nimport { useApiService, useTheme, useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales\";\nimport { SortieReseauDialog } from \"./SortieReseauDialog\";\n\nexport interface ISortieReseauButtonProps {\n idApprenant: number;\n dateStatut: Date;\n idCategorieStatut?: number;\n idParcoursFormation?: number;\n idStatut?: number;\n iddureeInoccupation?: number;\n onClose?: () => void;\n loading?: boolean;\n withConfirm?: boolean;\n isSortieEnCours: boolean;\n}\n\nexport const SortieReseauButton: React.FunctionComponent = ({\n idApprenant,\n dateStatut,\n idCategorieStatut,\n idParcoursFormation,\n idStatut,\n onClose = () => {},\n loading,\n withConfirm = false,\n isSortieEnCours = false,\n iddureeInoccupation\n}) => {\n const { t } = useTl();\n const { showDialogPromise } = useDialog();\n const [isDialogOpen, setIsDialogOpen] = React.useState(false);\n const { ifapmeSide } = useTheme();\n\n const api = useApiService(ContratApi);\n const fetchCanSortirApprenant = React.useCallback(async () => {\n return await api.contratCanSortirApprenant({\n idApprenant,\n ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Hope : EIfapmeSide.Walter\n });\n }, [api, idApprenant, ifapmeSide]);\n const { data: canSortirApprenant, refetch } = useQuery(\n [\"apprenant-can-sortir\", idApprenant],\n fetchCanSortirApprenant\n );\n\n const fetchCanDialogAlert = React.useCallback(async () => {\n return await api.contratCanSortirApprenant({\n idApprenant,\n ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Walter : EIfapmeSide.Hope\n });\n }, [api, idApprenant, ifapmeSide]);\n const { data: canDialogAlert, refetch: refetchCanDialogAlert } = useQuery(\n [\"apprenant-can-dialog-alert\", idApprenant],\n fetchCanDialogAlert\n );\n\n const refresh = React.useCallback(() => {\n refetch();\n refetchCanDialogAlert();\n }, [refetch, refetchCanDialogAlert]);\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n React.useEffect(() => {\n subscribeToEvent(\"REFRESH_APPRENANT_SORTIR\", refresh);\n return () => {\n unsubscribeEvent(\"REFRESH_APPRENANT_SORTIR\", refresh);\n };\n }, [refresh, subscribeToEvent, unsubscribeEvent]);\n\n const onClickFunc = React.useCallback(async () => {\n if (!canSortirApprenant?.value) {\n showError(t(ifapmeSide === \"hope\" ? ETLCodes.SortieImpossible : ETLCodes.SortieImpossibleWalter));\n return;\n }\n if (withConfirm) {\n const result = await showDialogPromise({\n message: t(\n canDialogAlert?.value ? ETLCodes.SimpleSortieReseauConfirmMessage : ETLCodes.SortieReseauConfirmMessage\n ),\n title: t(ETLCodes.SortieReseauConfirm)\n });\n\n if (result === \"yes\") {\n setIsDialogOpen(true);\n }\n } else {\n setIsDialogOpen(true);\n }\n }, [canDialogAlert?.value, canSortirApprenant?.value, ifapmeSide, showDialogPromise, t, withConfirm]);\n\n return (\n <>\n \n {!isSortieEnCours ? (\n onClickFunc()}\n disabled={loading}\n icon=\"log-out\"\n />\n ) : (\n \n )}\n \n\n {\n setIsDialogOpen(false);\n onClose();\n }}\n />\n \n );\n};\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EAggregateType {\n Sum = 'Sum',\n Avg = 'Avg',\n Min = 'Min',\n Max = 'Max'\n}\n\n\nexport function EAggregateTypeFromJSON(json: any): EAggregateType {\n return EAggregateTypeFromJSONTyped(json, false);\n}\n\nexport function EAggregateTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): EAggregateType {\n return json as EAggregateType;\n}\n\nexport function EAggregateTypeToJSON(value?: EAggregateType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DemandeInscriptionFichierGridDto\n */\nexport interface DemandeInscriptionFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionFichierGridDto\n */\n iddemandeInscriptionFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DemandeInscriptionFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the DemandeInscriptionFichierGridDto interface.\n */\nexport function instanceOfDemandeInscriptionFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DemandeInscriptionFichierGridDtoFromJSON(json: any): DemandeInscriptionFichierGridDto {\n return DemandeInscriptionFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function DemandeInscriptionFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DemandeInscriptionFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddemandeInscriptionFichier': !exists(json, 'iddemandeInscriptionFichier') ? undefined : json['iddemandeInscriptionFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function DemandeInscriptionFichierGridDtoToJSON(value?: DemandeInscriptionFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddemandeInscriptionFichier': value.iddemandeInscriptionFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n FormateurHoraireIncoherenceGridDtoPaginatedResults,\n FormateurHoraireIncoherenceSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurHoraireIncoherenceGridDtoPaginatedResultsFromJSON,\n FormateurHoraireIncoherenceGridDtoPaginatedResultsToJSON,\n FormateurHoraireIncoherenceSearchFromJSON,\n FormateurHoraireIncoherenceSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface FormateurHoraireIncoherenceBaseSearchRequest {\n FormateurHoraireIncoherenceSearch?: FormateurHoraireIncoherenceSearch;\n}\n\nexport interface FormateurHoraireIncoherenceCalculCoherenceRequest {\n idFormateur?: number;\n}\n\nexport interface FormateurHoraireIncoherenceGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurHoraireIncoherenceGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class FormateurHoraireIncoherenceApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurHoraireIncoherenceBaseSearchRaw(requestParameters: FormateurHoraireIncoherenceBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurHoraireIncoherence/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurHoraireIncoherenceSearchToJSON(requestParameters.FormateurHoraireIncoherenceSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FormateurHoraireIncoherenceGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurHoraireIncoherenceBaseSearch(requestParameters: FormateurHoraireIncoherenceBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurHoraireIncoherenceBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurHoraireIncoherenceCalculCoherenceRaw(requestParameters: FormateurHoraireIncoherenceCalculCoherenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormateur !== undefined) {\n queryParameters['idFormateur'] = requestParameters.idFormateur;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurHoraireIncoherence/CalculCoherence`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurHoraireIncoherenceCalculCoherence(requestParameters: FormateurHoraireIncoherenceCalculCoherenceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurHoraireIncoherenceCalculCoherenceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurHoraireIncoherenceGetSearchCriteriasRaw(requestParameters: FormateurHoraireIncoherenceGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurHoraireIncoherence/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurHoraireIncoherenceGetSearchCriterias(requestParameters: FormateurHoraireIncoherenceGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurHoraireIncoherenceGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurHoraireIncoherenceGetSelectItemsRaw(requestParameters: FormateurHoraireIncoherenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurHoraireIncoherenceGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurHoraireIncoherence/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurHoraireIncoherenceGetSelectItems(requestParameters: FormateurHoraireIncoherenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurHoraireIncoherenceGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbClasseHoraireRemplacementDto,\n FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheClasseHoraireRemplacementOccasionnelSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbClasseHoraireRemplacementDtoFromJSON,\n FcbClasseHoraireRemplacementDtoToJSON,\n FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResultsFromJSON,\n FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheClasseHoraireRemplacementOccasionnelSearchFromJSON,\n RechercheClasseHoraireRemplacementOccasionnelSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface RemplacementOccasionnelBaseSearchRequest {\n RechercheClasseHoraireRemplacementOccasionnelSearch?: RechercheClasseHoraireRemplacementOccasionnelSearch;\n}\n\nexport interface RemplacementOccasionnelGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface RemplacementOccasionnelGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface RemplacementOccasionnelSaveRequest {\n FcbClasseHoraireRemplacementDto?: FcbClasseHoraireRemplacementDto;\n}\n\n/**\n * \n */\nexport class RemplacementOccasionnelApi extends runtime.BaseAPI {\n\n /**\n */\n async remplacementOccasionnelBaseSearchRaw(requestParameters: RemplacementOccasionnelBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementOccasionnel/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheClasseHoraireRemplacementOccasionnelSearchToJSON(requestParameters.RechercheClasseHoraireRemplacementOccasionnelSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async remplacementOccasionnelBaseSearch(requestParameters: RemplacementOccasionnelBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.remplacementOccasionnelBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementOccasionnelGetSearchCriteriasRaw(requestParameters: RemplacementOccasionnelGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementOccasionnel/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async remplacementOccasionnelGetSearchCriterias(requestParameters: RemplacementOccasionnelGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.remplacementOccasionnelGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementOccasionnelGetSelectItemsRaw(requestParameters: RemplacementOccasionnelGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling remplacementOccasionnelGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementOccasionnel/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async remplacementOccasionnelGetSelectItems(requestParameters: RemplacementOccasionnelGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.remplacementOccasionnelGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementOccasionnelSaveRaw(requestParameters: RemplacementOccasionnelSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementOccasionnel`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClasseHoraireRemplacementDtoToJSON(requestParameters.FcbClasseHoraireRemplacementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseHoraireRemplacementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async remplacementOccasionnelSave(requestParameters: RemplacementOccasionnelSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.remplacementOccasionnelSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults,\n FcbRemplacementSimultaneDto,\n FilterCriteriaInfo,\n RechercheClasseHoraireRemplacementSimultaneSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResultsFromJSON,\n FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResultsToJSON,\n FcbRemplacementSimultaneDtoFromJSON,\n FcbRemplacementSimultaneDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheClasseHoraireRemplacementSimultaneSearchFromJSON,\n RechercheClasseHoraireRemplacementSimultaneSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface RemplacementSimultaneBaseSearchRequest {\n RechercheClasseHoraireRemplacementSimultaneSearch?: RechercheClasseHoraireRemplacementSimultaneSearch;\n}\n\nexport interface RemplacementSimultaneGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface RemplacementSimultaneGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface RemplacementSimultaneSaveRequest {\n FcbRemplacementSimultaneDto?: FcbRemplacementSimultaneDto;\n}\n\n/**\n * \n */\nexport class RemplacementSimultaneApi extends runtime.BaseAPI {\n\n /**\n */\n async remplacementSimultaneBaseSearchRaw(requestParameters: RemplacementSimultaneBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementSimultane/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheClasseHoraireRemplacementSimultaneSearchToJSON(requestParameters.RechercheClasseHoraireRemplacementSimultaneSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async remplacementSimultaneBaseSearch(requestParameters: RemplacementSimultaneBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.remplacementSimultaneBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementSimultaneGetSearchCriteriasRaw(requestParameters: RemplacementSimultaneGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementSimultane/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async remplacementSimultaneGetSearchCriterias(requestParameters: RemplacementSimultaneGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.remplacementSimultaneGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementSimultaneGetSelectItemsRaw(requestParameters: RemplacementSimultaneGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling remplacementSimultaneGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementSimultane/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async remplacementSimultaneGetSelectItems(requestParameters: RemplacementSimultaneGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.remplacementSimultaneGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementSimultaneSaveRaw(requestParameters: RemplacementSimultaneSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementSimultane`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbRemplacementSimultaneDtoToJSON(requestParameters.FcbRemplacementSimultaneDto),\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async remplacementSimultaneSave(requestParameters: RemplacementSimultaneSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.remplacementSimultaneSaveRaw(requestParameters, initOverrides);\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRechercheDateAbsenceDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheDateAbsenceApprenantSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRechercheDateAbsenceDtoPaginatedResultsFromJSON,\n FcbRechercheDateAbsenceDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheDateAbsenceApprenantSearchFromJSON,\n RechercheDateAbsenceApprenantSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface AbsenceApprenantBaseSearchRequest {\n RechercheDateAbsenceApprenantSearch?: RechercheDateAbsenceApprenantSearch;\n}\n\nexport interface AbsenceApprenantGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AbsenceApprenantGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class AbsenceApprenantApi extends runtime.BaseAPI {\n\n /**\n */\n async absenceApprenantBaseSearchRaw(requestParameters: AbsenceApprenantBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AbsenceApprenant/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheDateAbsenceApprenantSearchToJSON(requestParameters.RechercheDateAbsenceApprenantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheDateAbsenceDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async absenceApprenantBaseSearch(requestParameters: AbsenceApprenantBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.absenceApprenantBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async absenceApprenantGetSearchCriteriasRaw(requestParameters: AbsenceApprenantGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AbsenceApprenant/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async absenceApprenantGetSearchCriterias(requestParameters: AbsenceApprenantGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.absenceApprenantGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async absenceApprenantGetSelectItemsRaw(requestParameters: AbsenceApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling absenceApprenantGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AbsenceApprenant/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async absenceApprenantGetSelectItems(requestParameters: AbsenceApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.absenceApprenantGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AdmissionGridDtoPaginatedResults,\n AdmissionSearchDto,\n BilanCompetenceEditDto,\n BilanCompetenceFichierDto,\n BilanCompetenceFichierUploadDto,\n DossierAdmissionEditDto,\n DossierAdmissionFichierDto,\n DossierAdmissionFichierUploadDto,\n ExamenEntreeEditDto,\n ExamenEntreeFceEditDto,\n ExamenEntreeFceFichierDto,\n ExamenEntreeFceFichierUploadDto,\n ExamenEntreeFichierDto,\n ExamenEntreeFichierUploadDto,\n FileDownloadDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n AdmissionGridDtoPaginatedResultsFromJSON,\n AdmissionGridDtoPaginatedResultsToJSON,\n AdmissionSearchDtoFromJSON,\n AdmissionSearchDtoToJSON,\n BilanCompetenceEditDtoFromJSON,\n BilanCompetenceEditDtoToJSON,\n BilanCompetenceFichierDtoFromJSON,\n BilanCompetenceFichierDtoToJSON,\n BilanCompetenceFichierUploadDtoFromJSON,\n BilanCompetenceFichierUploadDtoToJSON,\n DossierAdmissionEditDtoFromJSON,\n DossierAdmissionEditDtoToJSON,\n DossierAdmissionFichierDtoFromJSON,\n DossierAdmissionFichierDtoToJSON,\n DossierAdmissionFichierUploadDtoFromJSON,\n DossierAdmissionFichierUploadDtoToJSON,\n ExamenEntreeEditDtoFromJSON,\n ExamenEntreeEditDtoToJSON,\n ExamenEntreeFceEditDtoFromJSON,\n ExamenEntreeFceEditDtoToJSON,\n ExamenEntreeFceFichierDtoFromJSON,\n ExamenEntreeFceFichierDtoToJSON,\n ExamenEntreeFceFichierUploadDtoFromJSON,\n ExamenEntreeFceFichierUploadDtoToJSON,\n ExamenEntreeFichierDtoFromJSON,\n ExamenEntreeFichierDtoToJSON,\n ExamenEntreeFichierUploadDtoFromJSON,\n ExamenEntreeFichierUploadDtoToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface AcquisAdmissionBaseSearchRequest {\n AdmissionSearchDto?: AdmissionSearchDto;\n}\n\nexport interface AcquisAdmissionDeleteBilanCompetenceRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDeleteBilanCompetenceFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDeleteDossierAdmissionRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDeleteDossierAdmissionFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDeleteExamenEntreeRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDeleteExamenEntreeFceRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDeleteExamenEntreeFceFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDeleteExamenEntreeFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDownloadBilanCompetenceFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDownloadDossierAdmissionFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDownloadExamenEntreeFceFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionDownloadExamenEntreeFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionGetBilanCompetenceRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionGetBilanCompetenceFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionGetDossierAdmissionRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionGetDossierAdmissionFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionGetExamenEntreeRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionGetExamenEntreeFceRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionGetExamenEntreeFceFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionGetExamenEntreeFichierRequest {\n id?: number;\n}\n\nexport interface AcquisAdmissionGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AcquisAdmissionGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AcquisAdmissionSaveBilanCompetenceRequest {\n BilanCompetenceEditDto?: BilanCompetenceEditDto;\n}\n\nexport interface AcquisAdmissionSaveBilanCompetenceFichierRequest {\n BilanCompetenceFichierDto?: BilanCompetenceFichierDto;\n}\n\nexport interface AcquisAdmissionSaveDossierAdmissionRequest {\n DossierAdmissionEditDto?: DossierAdmissionEditDto;\n}\n\nexport interface AcquisAdmissionSaveDossierAdmissionFichierRequest {\n DossierAdmissionFichierDto?: DossierAdmissionFichierDto;\n}\n\nexport interface AcquisAdmissionSaveExamenEntreeRequest {\n ExamenEntreeEditDto?: ExamenEntreeEditDto;\n}\n\nexport interface AcquisAdmissionSaveExamenEntreeFceRequest {\n ExamenEntreeFceEditDto?: ExamenEntreeFceEditDto;\n}\n\nexport interface AcquisAdmissionSaveExamenEntreeFceFichierRequest {\n ExamenEntreeFceFichierDto?: ExamenEntreeFceFichierDto;\n}\n\nexport interface AcquisAdmissionSaveExamenEntreeFichierRequest {\n ExamenEntreeFichierDto?: ExamenEntreeFichierDto;\n}\n\nexport interface AcquisAdmissionUploadBilanCompetenceFichierRequest {\n BilanCompetenceFichierUploadDto?: BilanCompetenceFichierUploadDto;\n}\n\nexport interface AcquisAdmissionUploadDossierAdmissionFichierRequest {\n DossierAdmissionFichierUploadDto?: DossierAdmissionFichierUploadDto;\n}\n\nexport interface AcquisAdmissionUploadExamenEntreeFceFichierRequest {\n ExamenEntreeFceFichierUploadDto?: ExamenEntreeFceFichierUploadDto;\n}\n\nexport interface AcquisAdmissionUploadExamenEntreeFichierRequest {\n ExamenEntreeFichierUploadDto?: ExamenEntreeFichierUploadDto;\n}\n\n/**\n * \n */\nexport class AcquisAdmissionApi extends runtime.BaseAPI {\n\n /**\n */\n async acquisAdmissionBaseSearchRaw(requestParameters: AcquisAdmissionBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AdmissionSearchDtoToJSON(requestParameters.AdmissionSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AdmissionGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionBaseSearch(requestParameters: AcquisAdmissionBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionDeleteBilanCompetenceRaw(requestParameters: AcquisAdmissionDeleteBilanCompetenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DeleteBilanCompetence`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisAdmissionDeleteBilanCompetence(requestParameters: AcquisAdmissionDeleteBilanCompetenceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisAdmissionDeleteBilanCompetenceRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisAdmissionDeleteBilanCompetenceFichierRaw(requestParameters: AcquisAdmissionDeleteBilanCompetenceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DeleteBilanCompetenceFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisAdmissionDeleteBilanCompetenceFichier(requestParameters: AcquisAdmissionDeleteBilanCompetenceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisAdmissionDeleteBilanCompetenceFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisAdmissionDeleteDossierAdmissionRaw(requestParameters: AcquisAdmissionDeleteDossierAdmissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DeleteDossierAdmission`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisAdmissionDeleteDossierAdmission(requestParameters: AcquisAdmissionDeleteDossierAdmissionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisAdmissionDeleteDossierAdmissionRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisAdmissionDeleteDossierAdmissionFichierRaw(requestParameters: AcquisAdmissionDeleteDossierAdmissionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DeleteDossierAdmissionFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisAdmissionDeleteDossierAdmissionFichier(requestParameters: AcquisAdmissionDeleteDossierAdmissionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisAdmissionDeleteDossierAdmissionFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisAdmissionDeleteExamenEntreeRaw(requestParameters: AcquisAdmissionDeleteExamenEntreeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DeleteExamenEntree`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisAdmissionDeleteExamenEntree(requestParameters: AcquisAdmissionDeleteExamenEntreeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisAdmissionDeleteExamenEntreeRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisAdmissionDeleteExamenEntreeFceRaw(requestParameters: AcquisAdmissionDeleteExamenEntreeFceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DeleteExamenEntreeFce`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisAdmissionDeleteExamenEntreeFce(requestParameters: AcquisAdmissionDeleteExamenEntreeFceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisAdmissionDeleteExamenEntreeFceRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisAdmissionDeleteExamenEntreeFceFichierRaw(requestParameters: AcquisAdmissionDeleteExamenEntreeFceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DeleteExamenEntreeFceFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisAdmissionDeleteExamenEntreeFceFichier(requestParameters: AcquisAdmissionDeleteExamenEntreeFceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisAdmissionDeleteExamenEntreeFceFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisAdmissionDeleteExamenEntreeFichierRaw(requestParameters: AcquisAdmissionDeleteExamenEntreeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DeleteExamenEntreeFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisAdmissionDeleteExamenEntreeFichier(requestParameters: AcquisAdmissionDeleteExamenEntreeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisAdmissionDeleteExamenEntreeFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisAdmissionDownloadBilanCompetenceFichierRaw(requestParameters: AcquisAdmissionDownloadBilanCompetenceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DownloadBilanCompetenceFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionDownloadBilanCompetenceFichier(requestParameters: AcquisAdmissionDownloadBilanCompetenceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionDownloadBilanCompetenceFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionDownloadDossierAdmissionFichierRaw(requestParameters: AcquisAdmissionDownloadDossierAdmissionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DownloadDossierAdmissionFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionDownloadDossierAdmissionFichier(requestParameters: AcquisAdmissionDownloadDossierAdmissionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionDownloadDossierAdmissionFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionDownloadExamenEntreeFceFichierRaw(requestParameters: AcquisAdmissionDownloadExamenEntreeFceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DownloadExamenEntreeFceFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionDownloadExamenEntreeFceFichier(requestParameters: AcquisAdmissionDownloadExamenEntreeFceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionDownloadExamenEntreeFceFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionDownloadExamenEntreeFichierRaw(requestParameters: AcquisAdmissionDownloadExamenEntreeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/DownloadExamenEntreeFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionDownloadExamenEntreeFichier(requestParameters: AcquisAdmissionDownloadExamenEntreeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionDownloadExamenEntreeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetBilanCompetenceRaw(requestParameters: AcquisAdmissionGetBilanCompetenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/GetBilanCompetence`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BilanCompetenceEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionGetBilanCompetence(requestParameters: AcquisAdmissionGetBilanCompetenceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionGetBilanCompetenceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetBilanCompetenceFichierRaw(requestParameters: AcquisAdmissionGetBilanCompetenceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/GetBilanCompetenceFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BilanCompetenceFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionGetBilanCompetenceFichier(requestParameters: AcquisAdmissionGetBilanCompetenceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionGetBilanCompetenceFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetDossierAdmissionRaw(requestParameters: AcquisAdmissionGetDossierAdmissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/GetDossierAdmission`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DossierAdmissionEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionGetDossierAdmission(requestParameters: AcquisAdmissionGetDossierAdmissionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionGetDossierAdmissionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetDossierAdmissionFichierRaw(requestParameters: AcquisAdmissionGetDossierAdmissionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/GetDossierAdmissionFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DossierAdmissionFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionGetDossierAdmissionFichier(requestParameters: AcquisAdmissionGetDossierAdmissionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionGetDossierAdmissionFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetExamenEntreeRaw(requestParameters: AcquisAdmissionGetExamenEntreeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/GetExamenEntree`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionGetExamenEntree(requestParameters: AcquisAdmissionGetExamenEntreeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionGetExamenEntreeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetExamenEntreeFceRaw(requestParameters: AcquisAdmissionGetExamenEntreeFceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/GetExamenEntreeFce`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeFceEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionGetExamenEntreeFce(requestParameters: AcquisAdmissionGetExamenEntreeFceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionGetExamenEntreeFceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetExamenEntreeFceFichierRaw(requestParameters: AcquisAdmissionGetExamenEntreeFceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/GetExamenEntreeFceFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeFceFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionGetExamenEntreeFceFichier(requestParameters: AcquisAdmissionGetExamenEntreeFceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionGetExamenEntreeFceFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetExamenEntreeFichierRaw(requestParameters: AcquisAdmissionGetExamenEntreeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/GetExamenEntreeFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionGetExamenEntreeFichier(requestParameters: AcquisAdmissionGetExamenEntreeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionGetExamenEntreeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetSearchCriteriasRaw(requestParameters: AcquisAdmissionGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async acquisAdmissionGetSearchCriterias(requestParameters: AcquisAdmissionGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisAdmissionGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionGetSelectItemsRaw(requestParameters: AcquisAdmissionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling acquisAdmissionGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async acquisAdmissionGetSelectItems(requestParameters: AcquisAdmissionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisAdmissionGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionSaveBilanCompetenceRaw(requestParameters: AcquisAdmissionSaveBilanCompetenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/SaveBilanCompetence`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: BilanCompetenceEditDtoToJSON(requestParameters.BilanCompetenceEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BilanCompetenceEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionSaveBilanCompetence(requestParameters: AcquisAdmissionSaveBilanCompetenceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionSaveBilanCompetenceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionSaveBilanCompetenceFichierRaw(requestParameters: AcquisAdmissionSaveBilanCompetenceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/SaveBilanCompetenceFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: BilanCompetenceFichierDtoToJSON(requestParameters.BilanCompetenceFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BilanCompetenceFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionSaveBilanCompetenceFichier(requestParameters: AcquisAdmissionSaveBilanCompetenceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionSaveBilanCompetenceFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionSaveDossierAdmissionRaw(requestParameters: AcquisAdmissionSaveDossierAdmissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/SaveDossierAdmission`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DossierAdmissionEditDtoToJSON(requestParameters.DossierAdmissionEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DossierAdmissionEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionSaveDossierAdmission(requestParameters: AcquisAdmissionSaveDossierAdmissionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionSaveDossierAdmissionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionSaveDossierAdmissionFichierRaw(requestParameters: AcquisAdmissionSaveDossierAdmissionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/SaveDossierAdmissionFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DossierAdmissionFichierDtoToJSON(requestParameters.DossierAdmissionFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DossierAdmissionFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionSaveDossierAdmissionFichier(requestParameters: AcquisAdmissionSaveDossierAdmissionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionSaveDossierAdmissionFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionSaveExamenEntreeRaw(requestParameters: AcquisAdmissionSaveExamenEntreeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/SaveExamenEntree`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExamenEntreeEditDtoToJSON(requestParameters.ExamenEntreeEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionSaveExamenEntree(requestParameters: AcquisAdmissionSaveExamenEntreeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionSaveExamenEntreeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionSaveExamenEntreeFceRaw(requestParameters: AcquisAdmissionSaveExamenEntreeFceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/SaveExamenEntreeFce`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExamenEntreeFceEditDtoToJSON(requestParameters.ExamenEntreeFceEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeFceEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionSaveExamenEntreeFce(requestParameters: AcquisAdmissionSaveExamenEntreeFceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionSaveExamenEntreeFceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionSaveExamenEntreeFceFichierRaw(requestParameters: AcquisAdmissionSaveExamenEntreeFceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/SaveExamenEntreeFceFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExamenEntreeFceFichierDtoToJSON(requestParameters.ExamenEntreeFceFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeFceFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionSaveExamenEntreeFceFichier(requestParameters: AcquisAdmissionSaveExamenEntreeFceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionSaveExamenEntreeFceFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionSaveExamenEntreeFichierRaw(requestParameters: AcquisAdmissionSaveExamenEntreeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/SaveExamenEntreeFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExamenEntreeFichierDtoToJSON(requestParameters.ExamenEntreeFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionSaveExamenEntreeFichier(requestParameters: AcquisAdmissionSaveExamenEntreeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionSaveExamenEntreeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionUploadBilanCompetenceFichierRaw(requestParameters: AcquisAdmissionUploadBilanCompetenceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/UploadBilanCompetenceFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: BilanCompetenceFichierUploadDtoToJSON(requestParameters.BilanCompetenceFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BilanCompetenceFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionUploadBilanCompetenceFichier(requestParameters: AcquisAdmissionUploadBilanCompetenceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionUploadBilanCompetenceFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionUploadDossierAdmissionFichierRaw(requestParameters: AcquisAdmissionUploadDossierAdmissionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/UploadDossierAdmissionFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DossierAdmissionFichierUploadDtoToJSON(requestParameters.DossierAdmissionFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DossierAdmissionFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionUploadDossierAdmissionFichier(requestParameters: AcquisAdmissionUploadDossierAdmissionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionUploadDossierAdmissionFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionUploadExamenEntreeFceFichierRaw(requestParameters: AcquisAdmissionUploadExamenEntreeFceFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/UploadExamenEntreeFceFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExamenEntreeFceFichierUploadDtoToJSON(requestParameters.ExamenEntreeFceFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeFceFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionUploadExamenEntreeFceFichier(requestParameters: AcquisAdmissionUploadExamenEntreeFceFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionUploadExamenEntreeFceFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisAdmissionUploadExamenEntreeFichierRaw(requestParameters: AcquisAdmissionUploadExamenEntreeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisAdmission/UploadExamenEntreeFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExamenEntreeFichierUploadDtoToJSON(requestParameters.ExamenEntreeFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExamenEntreeFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisAdmissionUploadExamenEntreeFichier(requestParameters: AcquisAdmissionUploadExamenEntreeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisAdmissionUploadExamenEntreeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AcquisIfapmeEditDto,\n AcquisIfapmeGridDtoPaginatedResults,\n AcquisIfapmeSearchDto,\n BooleanDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n AcquisIfapmeEditDtoFromJSON,\n AcquisIfapmeEditDtoToJSON,\n AcquisIfapmeGridDtoPaginatedResultsFromJSON,\n AcquisIfapmeGridDtoPaginatedResultsToJSON,\n AcquisIfapmeSearchDtoFromJSON,\n AcquisIfapmeSearchDtoToJSON,\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface AcquisIfapmeBaseSearchRequest {\n AcquisIfapmeSearchDto?: AcquisIfapmeSearchDto;\n}\n\nexport interface AcquisIfapmeDeleteRequest {\n id?: number;\n}\n\nexport interface AcquisIfapmeGetRequest {\n id?: number;\n}\n\nexport interface AcquisIfapmeGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface AcquisIfapmeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AcquisIfapmeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AcquisIfapmeIsAcquisDeletableRequest {\n id?: number;\n}\n\nexport interface AcquisIfapmeSaveRequest {\n AcquisIfapmeEditDto?: AcquisIfapmeEditDto;\n}\n\n/**\n * \n */\nexport class AcquisIfapmeApi extends runtime.BaseAPI {\n\n /**\n */\n async acquisIfapmeBaseSearchRaw(requestParameters: AcquisIfapmeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisIfapme/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AcquisIfapmeSearchDtoToJSON(requestParameters.AcquisIfapmeSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AcquisIfapmeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisIfapmeBaseSearch(requestParameters: AcquisIfapmeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisIfapmeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisIfapmeDeleteRaw(requestParameters: AcquisIfapmeDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisIfapme/DeleteAcquisIfapme`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisIfapmeDelete(requestParameters: AcquisIfapmeDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisIfapmeDeleteRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisIfapmeGetRaw(requestParameters: AcquisIfapmeGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisIfapme`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AcquisIfapmeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisIfapmeGet(requestParameters: AcquisIfapmeGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisIfapmeGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisIfapmeGetDisplayNameRaw(requestParameters: AcquisIfapmeGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisIfapme/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async acquisIfapmeGetDisplayName(requestParameters: AcquisIfapmeGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisIfapmeGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisIfapmeGetSearchCriteriasRaw(requestParameters: AcquisIfapmeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisIfapme/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async acquisIfapmeGetSearchCriterias(requestParameters: AcquisIfapmeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisIfapmeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisIfapmeGetSelectItemsRaw(requestParameters: AcquisIfapmeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling acquisIfapmeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisIfapme/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async acquisIfapmeGetSelectItems(requestParameters: AcquisIfapmeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisIfapmeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisIfapmeIsAcquisDeletableRaw(requestParameters: AcquisIfapmeIsAcquisDeletableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisIfapme/IsAcquisDeletable`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisIfapmeIsAcquisDeletable(requestParameters: AcquisIfapmeIsAcquisDeletableRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisIfapmeIsAcquisDeletableRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisIfapmeSaveRaw(requestParameters: AcquisIfapmeSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisIfapme`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AcquisIfapmeEditDtoToJSON(requestParameters.AcquisIfapmeEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AcquisIfapmeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisIfapmeSave(requestParameters: AcquisIfapmeSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisIfapmeSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AcquisProfessionnelSearch,\n FcbAcquisProfessionnelDto,\n FcbAcquisProfessionnelGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n AcquisProfessionnelSearchFromJSON,\n AcquisProfessionnelSearchToJSON,\n FcbAcquisProfessionnelDtoFromJSON,\n FcbAcquisProfessionnelDtoToJSON,\n FcbAcquisProfessionnelGridDtoPaginatedResultsFromJSON,\n FcbAcquisProfessionnelGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface AcquisProfessionnelBaseSearchRequest {\n AcquisProfessionnelSearch?: AcquisProfessionnelSearch;\n}\n\nexport interface AcquisProfessionnelDeleteRequest {\n id?: number;\n}\n\nexport interface AcquisProfessionnelExistsRequest {\n entreprise?: string;\n}\n\nexport interface AcquisProfessionnelGetRequest {\n id?: number;\n}\n\nexport interface AcquisProfessionnelGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AcquisProfessionnelGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AcquisProfessionnelSaveRequest {\n FcbAcquisProfessionnelDto?: FcbAcquisProfessionnelDto;\n}\n\n/**\n * \n */\nexport class AcquisProfessionnelApi extends runtime.BaseAPI {\n\n /**\n */\n async acquisProfessionnelBaseSearchRaw(requestParameters: AcquisProfessionnelBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisProfessionnel/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AcquisProfessionnelSearchToJSON(requestParameters.AcquisProfessionnelSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAcquisProfessionnelGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisProfessionnelBaseSearch(requestParameters: AcquisProfessionnelBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisProfessionnelBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisProfessionnelDeleteRaw(requestParameters: AcquisProfessionnelDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisProfessionnel`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async acquisProfessionnelDelete(requestParameters: AcquisProfessionnelDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisProfessionnelDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisProfessionnelExistsRaw(requestParameters: AcquisProfessionnelExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.entreprise !== undefined) {\n queryParameters['entreprise'] = requestParameters.entreprise;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisProfessionnel/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisProfessionnelExists(requestParameters: AcquisProfessionnelExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisProfessionnelExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisProfessionnelGetRaw(requestParameters: AcquisProfessionnelGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisProfessionnel/get`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAcquisProfessionnelDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisProfessionnelGet(requestParameters: AcquisProfessionnelGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisProfessionnelGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisProfessionnelGetSearchCriteriasRaw(requestParameters: AcquisProfessionnelGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisProfessionnel/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async acquisProfessionnelGetSearchCriterias(requestParameters: AcquisProfessionnelGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisProfessionnelGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisProfessionnelGetSelectItemsRaw(requestParameters: AcquisProfessionnelGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling acquisProfessionnelGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisProfessionnel/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async acquisProfessionnelGetSelectItems(requestParameters: AcquisProfessionnelGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisProfessionnelGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisProfessionnelSaveRaw(requestParameters: AcquisProfessionnelSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisProfessionnel/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbAcquisProfessionnelDtoToJSON(requestParameters.FcbAcquisProfessionnelDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAcquisProfessionnelDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisProfessionnelSave(requestParameters: AcquisProfessionnelSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisProfessionnelSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AcquisScolaireSearch,\n FcbAcquisScolaireDto,\n FcbAcquisScolaireGridDtoPaginatedResults,\n FcbApprenantDto,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n AcquisScolaireSearchFromJSON,\n AcquisScolaireSearchToJSON,\n FcbAcquisScolaireDtoFromJSON,\n FcbAcquisScolaireDtoToJSON,\n FcbAcquisScolaireGridDtoPaginatedResultsFromJSON,\n FcbAcquisScolaireGridDtoPaginatedResultsToJSON,\n FcbApprenantDtoFromJSON,\n FcbApprenantDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface AcquisScolaireBaseSearchRequest {\n AcquisScolaireSearch?: AcquisScolaireSearch;\n}\n\nexport interface AcquisScolaireDeleteRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireGetRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AcquisScolaireGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AcquisScolaireSaveRequest {\n FcbAcquisScolaireDto?: FcbAcquisScolaireDto;\n}\n\n/**\n * \n */\nexport class AcquisScolaireApi extends runtime.BaseAPI {\n\n /**\n */\n async acquisScolaireBaseSearchRaw(requestParameters: AcquisScolaireBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaire/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AcquisScolaireSearchToJSON(requestParameters.AcquisScolaireSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAcquisScolaireGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireBaseSearch(requestParameters: AcquisScolaireBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireDeleteRaw(requestParameters: AcquisScolaireDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaire`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async acquisScolaireDelete(requestParameters: AcquisScolaireDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireGetRaw(requestParameters: AcquisScolaireGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaire`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAcquisScolaireDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireGet(requestParameters: AcquisScolaireGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireGetSearchCriteriasRaw(requestParameters: AcquisScolaireGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaire/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async acquisScolaireGetSearchCriterias(requestParameters: AcquisScolaireGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisScolaireGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireGetSelectItemsRaw(requestParameters: AcquisScolaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling acquisScolaireGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaire/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async acquisScolaireGetSelectItems(requestParameters: AcquisScolaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisScolaireGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireSaveRaw(requestParameters: AcquisScolaireSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaire`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbAcquisScolaireDtoToJSON(requestParameters.FcbAcquisScolaireDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireSave(requestParameters: AcquisScolaireSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AcquisScolaireGridDtoPaginatedResults,\n AcquisScolaireSearchDto,\n AnneeFormationSuivieEditDto,\n AnneeFormationSuivieFichierDto,\n AnneeFormationSuivieFichierUploadDto,\n AnneeFormationSuivieIfapmeEditDto,\n AnneeFormationSuivieIfapmeFichierDto,\n AnneeFormationSuivieIfapmeFichierUploadDto,\n DiplomeCertificationEditDto,\n DiplomeCertificationFichierDto,\n DiplomeCertificationFichierUploadDto,\n DiplomeCertificationIfapmeEditDto,\n DiplomeCertificationIfapmeFichierDto,\n DiplomeCertificationIfapmeFichierUploadDto,\n FileDownloadDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n AcquisScolaireGridDtoPaginatedResultsFromJSON,\n AcquisScolaireGridDtoPaginatedResultsToJSON,\n AcquisScolaireSearchDtoFromJSON,\n AcquisScolaireSearchDtoToJSON,\n AnneeFormationSuivieEditDtoFromJSON,\n AnneeFormationSuivieEditDtoToJSON,\n AnneeFormationSuivieFichierDtoFromJSON,\n AnneeFormationSuivieFichierDtoToJSON,\n AnneeFormationSuivieFichierUploadDtoFromJSON,\n AnneeFormationSuivieFichierUploadDtoToJSON,\n AnneeFormationSuivieIfapmeEditDtoFromJSON,\n AnneeFormationSuivieIfapmeEditDtoToJSON,\n AnneeFormationSuivieIfapmeFichierDtoFromJSON,\n AnneeFormationSuivieIfapmeFichierDtoToJSON,\n AnneeFormationSuivieIfapmeFichierUploadDtoFromJSON,\n AnneeFormationSuivieIfapmeFichierUploadDtoToJSON,\n DiplomeCertificationEditDtoFromJSON,\n DiplomeCertificationEditDtoToJSON,\n DiplomeCertificationFichierDtoFromJSON,\n DiplomeCertificationFichierDtoToJSON,\n DiplomeCertificationFichierUploadDtoFromJSON,\n DiplomeCertificationFichierUploadDtoToJSON,\n DiplomeCertificationIfapmeEditDtoFromJSON,\n DiplomeCertificationIfapmeEditDtoToJSON,\n DiplomeCertificationIfapmeFichierDtoFromJSON,\n DiplomeCertificationIfapmeFichierDtoToJSON,\n DiplomeCertificationIfapmeFichierUploadDtoFromJSON,\n DiplomeCertificationIfapmeFichierUploadDtoToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface AcquisScolaireHopeBaseSearchRequest {\n AcquisScolaireSearchDto?: AcquisScolaireSearchDto;\n}\n\nexport interface AcquisScolaireHopeDeleteAnneeFormationSuivieRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDeleteAnneeFormationSuivieFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDeleteAnneeFormationSuivieIfapmeRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDeleteAnneeFormationSuivieIfapmeFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDeleteDiplomeCertificationRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDeleteDiplomeCertificationFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDeleteDiplomeCertificationIfapmeRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDeleteDiplomeCertificationIfapmeFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDownloadAnneeFormationSuivieFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDownloadAnneeFormationSuivieIfapmeFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDownloadDiplomeCertificationFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeDownloadDiplomeCertificationIfapmeFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeGetAnneeFormationSuivieRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeGetAnneeFormationSuivieFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeGetAnneeFormationSuivieIfapmeRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeGetAnneeFormationSuivieIfapmeFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeGetDiplomeCertificationRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeGetDiplomeCertificationFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeGetDiplomeCertificationIfapmeRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeGetDiplomeCertificationIfapmeFichierRequest {\n id?: number;\n}\n\nexport interface AcquisScolaireHopeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AcquisScolaireHopeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AcquisScolaireHopeSaveAnneeFormationSuivieRequest {\n AnneeFormationSuivieEditDto?: AnneeFormationSuivieEditDto;\n}\n\nexport interface AcquisScolaireHopeSaveAnneeFormationSuivieFichierRequest {\n AnneeFormationSuivieFichierDto?: AnneeFormationSuivieFichierDto;\n}\n\nexport interface AcquisScolaireHopeSaveAnneeFormationSuivieIfapmeRequest {\n AnneeFormationSuivieIfapmeEditDto?: AnneeFormationSuivieIfapmeEditDto;\n}\n\nexport interface AcquisScolaireHopeSaveAnneeFormationSuivieIfapmeFichierRequest {\n AnneeFormationSuivieIfapmeFichierDto?: AnneeFormationSuivieIfapmeFichierDto;\n}\n\nexport interface AcquisScolaireHopeSaveDiplomeCertificationRequest {\n DiplomeCertificationEditDto?: DiplomeCertificationEditDto;\n}\n\nexport interface AcquisScolaireHopeSaveDiplomeCertificationFichierRequest {\n DiplomeCertificationFichierDto?: DiplomeCertificationFichierDto;\n}\n\nexport interface AcquisScolaireHopeSaveDiplomeCertificationIfapmeFichierRequest {\n DiplomeCertificationIfapmeFichierDto?: DiplomeCertificationIfapmeFichierDto;\n}\n\nexport interface AcquisScolaireHopeSaveDiplomeCertificationIfapmeeRequest {\n DiplomeCertificationIfapmeEditDto?: DiplomeCertificationIfapmeEditDto;\n}\n\nexport interface AcquisScolaireHopeUploadAnneeFormationSuivieFichierRequest {\n AnneeFormationSuivieFichierUploadDto?: AnneeFormationSuivieFichierUploadDto;\n}\n\nexport interface AcquisScolaireHopeUploadAnneeFormationSuivieIfapmeFichierRequest {\n AnneeFormationSuivieIfapmeFichierUploadDto?: AnneeFormationSuivieIfapmeFichierUploadDto;\n}\n\nexport interface AcquisScolaireHopeUploadDiplomeCertificationFichierRequest {\n DiplomeCertificationFichierUploadDto?: DiplomeCertificationFichierUploadDto;\n}\n\nexport interface AcquisScolaireHopeUploadDiplomeCertificationIfapmeFichierRequest {\n DiplomeCertificationIfapmeFichierUploadDto?: DiplomeCertificationIfapmeFichierUploadDto;\n}\n\n/**\n * \n */\nexport class AcquisScolaireHopeApi extends runtime.BaseAPI {\n\n /**\n */\n async acquisScolaireHopeBaseSearchRaw(requestParameters: AcquisScolaireHopeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AcquisScolaireSearchDtoToJSON(requestParameters.AcquisScolaireSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AcquisScolaireGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeBaseSearch(requestParameters: AcquisScolaireHopeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeDeleteAnneeFormationSuivieRaw(requestParameters: AcquisScolaireHopeDeleteAnneeFormationSuivieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DeleteAnneeFormationSuivie`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteAnneeFormationSuivie(requestParameters: AcquisScolaireHopeDeleteAnneeFormationSuivieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisScolaireHopeDeleteAnneeFormationSuivieRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteAnneeFormationSuivieFichierRaw(requestParameters: AcquisScolaireHopeDeleteAnneeFormationSuivieFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DeleteAnneeFormationSuivieFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteAnneeFormationSuivieFichier(requestParameters: AcquisScolaireHopeDeleteAnneeFormationSuivieFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisScolaireHopeDeleteAnneeFormationSuivieFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteAnneeFormationSuivieIfapmeRaw(requestParameters: AcquisScolaireHopeDeleteAnneeFormationSuivieIfapmeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DeleteAnneeFormationSuivieIfapme`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteAnneeFormationSuivieIfapme(requestParameters: AcquisScolaireHopeDeleteAnneeFormationSuivieIfapmeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisScolaireHopeDeleteAnneeFormationSuivieIfapmeRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteAnneeFormationSuivieIfapmeFichierRaw(requestParameters: AcquisScolaireHopeDeleteAnneeFormationSuivieIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DeleteAnneeFormationSuivieIfapmeFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteAnneeFormationSuivieIfapmeFichier(requestParameters: AcquisScolaireHopeDeleteAnneeFormationSuivieIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisScolaireHopeDeleteAnneeFormationSuivieIfapmeFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteDiplomeCertificationRaw(requestParameters: AcquisScolaireHopeDeleteDiplomeCertificationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DeleteDiplomeCertification`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteDiplomeCertification(requestParameters: AcquisScolaireHopeDeleteDiplomeCertificationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisScolaireHopeDeleteDiplomeCertificationRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteDiplomeCertificationFichierRaw(requestParameters: AcquisScolaireHopeDeleteDiplomeCertificationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DeleteDiplomeCertificationFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteDiplomeCertificationFichier(requestParameters: AcquisScolaireHopeDeleteDiplomeCertificationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisScolaireHopeDeleteDiplomeCertificationFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteDiplomeCertificationIfapmeRaw(requestParameters: AcquisScolaireHopeDeleteDiplomeCertificationIfapmeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DeleteDiplomeCertificationIfapme`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteDiplomeCertificationIfapme(requestParameters: AcquisScolaireHopeDeleteDiplomeCertificationIfapmeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisScolaireHopeDeleteDiplomeCertificationIfapmeRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteDiplomeCertificationIfapmeFichierRaw(requestParameters: AcquisScolaireHopeDeleteDiplomeCertificationIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DeleteDiplomeCertificationIfapmeFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async acquisScolaireHopeDeleteDiplomeCertificationIfapmeFichier(requestParameters: AcquisScolaireHopeDeleteDiplomeCertificationIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.acquisScolaireHopeDeleteDiplomeCertificationIfapmeFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async acquisScolaireHopeDownloadAnneeFormationSuivieFichierRaw(requestParameters: AcquisScolaireHopeDownloadAnneeFormationSuivieFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DownloadAnneeFormationSuivieFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeDownloadAnneeFormationSuivieFichier(requestParameters: AcquisScolaireHopeDownloadAnneeFormationSuivieFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeDownloadAnneeFormationSuivieFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeDownloadAnneeFormationSuivieIfapmeFichierRaw(requestParameters: AcquisScolaireHopeDownloadAnneeFormationSuivieIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DownloadAnneeFormationSuivieIfapmeFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeDownloadAnneeFormationSuivieIfapmeFichier(requestParameters: AcquisScolaireHopeDownloadAnneeFormationSuivieIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeDownloadAnneeFormationSuivieIfapmeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeDownloadDiplomeCertificationFichierRaw(requestParameters: AcquisScolaireHopeDownloadDiplomeCertificationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DownloadDiplomeCertificationFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeDownloadDiplomeCertificationFichier(requestParameters: AcquisScolaireHopeDownloadDiplomeCertificationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeDownloadDiplomeCertificationFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeDownloadDiplomeCertificationIfapmeFichierRaw(requestParameters: AcquisScolaireHopeDownloadDiplomeCertificationIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/DownloadDiplomeCertificationIfapmeFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeDownloadDiplomeCertificationIfapmeFichier(requestParameters: AcquisScolaireHopeDownloadDiplomeCertificationIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeDownloadDiplomeCertificationIfapmeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetAnneeFormationSuivieRaw(requestParameters: AcquisScolaireHopeGetAnneeFormationSuivieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/GetAnneeFormationSuivie`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeGetAnneeFormationSuivie(requestParameters: AcquisScolaireHopeGetAnneeFormationSuivieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeGetAnneeFormationSuivieRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetAnneeFormationSuivieFichierRaw(requestParameters: AcquisScolaireHopeGetAnneeFormationSuivieFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/GetAnneeFormationSuivieFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeGetAnneeFormationSuivieFichier(requestParameters: AcquisScolaireHopeGetAnneeFormationSuivieFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeGetAnneeFormationSuivieFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetAnneeFormationSuivieIfapmeRaw(requestParameters: AcquisScolaireHopeGetAnneeFormationSuivieIfapmeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/GetAnneeFormationSuivieIfapme`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieIfapmeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeGetAnneeFormationSuivieIfapme(requestParameters: AcquisScolaireHopeGetAnneeFormationSuivieIfapmeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeGetAnneeFormationSuivieIfapmeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetAnneeFormationSuivieIfapmeFichierRaw(requestParameters: AcquisScolaireHopeGetAnneeFormationSuivieIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/GetAnneeFormationSuivieIfapmeFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieIfapmeFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeGetAnneeFormationSuivieIfapmeFichier(requestParameters: AcquisScolaireHopeGetAnneeFormationSuivieIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeGetAnneeFormationSuivieIfapmeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetDiplomeCertificationRaw(requestParameters: AcquisScolaireHopeGetDiplomeCertificationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/GetDiplomeCertification`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeGetDiplomeCertification(requestParameters: AcquisScolaireHopeGetDiplomeCertificationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeGetDiplomeCertificationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetDiplomeCertificationFichierRaw(requestParameters: AcquisScolaireHopeGetDiplomeCertificationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/GetDiplomeCertificationFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeGetDiplomeCertificationFichier(requestParameters: AcquisScolaireHopeGetDiplomeCertificationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeGetDiplomeCertificationFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetDiplomeCertificationIfapmeRaw(requestParameters: AcquisScolaireHopeGetDiplomeCertificationIfapmeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/GetDiplomeCertificationIfapme`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationIfapmeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeGetDiplomeCertificationIfapme(requestParameters: AcquisScolaireHopeGetDiplomeCertificationIfapmeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeGetDiplomeCertificationIfapmeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetDiplomeCertificationIfapmeFichierRaw(requestParameters: AcquisScolaireHopeGetDiplomeCertificationIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/GetDiplomeCertificationIfapmeFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationIfapmeFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeGetDiplomeCertificationIfapmeFichier(requestParameters: AcquisScolaireHopeGetDiplomeCertificationIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeGetDiplomeCertificationIfapmeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetSearchCriteriasRaw(requestParameters: AcquisScolaireHopeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async acquisScolaireHopeGetSearchCriterias(requestParameters: AcquisScolaireHopeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisScolaireHopeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeGetSelectItemsRaw(requestParameters: AcquisScolaireHopeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling acquisScolaireHopeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async acquisScolaireHopeGetSelectItems(requestParameters: AcquisScolaireHopeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.acquisScolaireHopeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeSaveAnneeFormationSuivieRaw(requestParameters: AcquisScolaireHopeSaveAnneeFormationSuivieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/SaveAnneeFormationSuivie`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AnneeFormationSuivieEditDtoToJSON(requestParameters.AnneeFormationSuivieEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeSaveAnneeFormationSuivie(requestParameters: AcquisScolaireHopeSaveAnneeFormationSuivieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeSaveAnneeFormationSuivieRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeSaveAnneeFormationSuivieFichierRaw(requestParameters: AcquisScolaireHopeSaveAnneeFormationSuivieFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/SaveAnneeFormationSuivieFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AnneeFormationSuivieFichierDtoToJSON(requestParameters.AnneeFormationSuivieFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeSaveAnneeFormationSuivieFichier(requestParameters: AcquisScolaireHopeSaveAnneeFormationSuivieFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeSaveAnneeFormationSuivieFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeSaveAnneeFormationSuivieIfapmeRaw(requestParameters: AcquisScolaireHopeSaveAnneeFormationSuivieIfapmeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/SaveAnneeFormationSuivieIfapme`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AnneeFormationSuivieIfapmeEditDtoToJSON(requestParameters.AnneeFormationSuivieIfapmeEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieIfapmeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeSaveAnneeFormationSuivieIfapme(requestParameters: AcquisScolaireHopeSaveAnneeFormationSuivieIfapmeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeSaveAnneeFormationSuivieIfapmeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeSaveAnneeFormationSuivieIfapmeFichierRaw(requestParameters: AcquisScolaireHopeSaveAnneeFormationSuivieIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/SaveAnneeFormationSuivieIfapmeFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AnneeFormationSuivieIfapmeFichierDtoToJSON(requestParameters.AnneeFormationSuivieIfapmeFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieIfapmeFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeSaveAnneeFormationSuivieIfapmeFichier(requestParameters: AcquisScolaireHopeSaveAnneeFormationSuivieIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeSaveAnneeFormationSuivieIfapmeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeSaveDiplomeCertificationRaw(requestParameters: AcquisScolaireHopeSaveDiplomeCertificationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/SaveDiplomeCertification`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DiplomeCertificationEditDtoToJSON(requestParameters.DiplomeCertificationEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeSaveDiplomeCertification(requestParameters: AcquisScolaireHopeSaveDiplomeCertificationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeSaveDiplomeCertificationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeSaveDiplomeCertificationFichierRaw(requestParameters: AcquisScolaireHopeSaveDiplomeCertificationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/SaveDiplomeCertificationFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DiplomeCertificationFichierDtoToJSON(requestParameters.DiplomeCertificationFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeSaveDiplomeCertificationFichier(requestParameters: AcquisScolaireHopeSaveDiplomeCertificationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeSaveDiplomeCertificationFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeSaveDiplomeCertificationIfapmeFichierRaw(requestParameters: AcquisScolaireHopeSaveDiplomeCertificationIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/SaveDiplomeCertificationIfapmeFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DiplomeCertificationIfapmeFichierDtoToJSON(requestParameters.DiplomeCertificationIfapmeFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationIfapmeFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeSaveDiplomeCertificationIfapmeFichier(requestParameters: AcquisScolaireHopeSaveDiplomeCertificationIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeSaveDiplomeCertificationIfapmeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeSaveDiplomeCertificationIfapmeeRaw(requestParameters: AcquisScolaireHopeSaveDiplomeCertificationIfapmeeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/SaveDiplomeCertificationIfapme`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DiplomeCertificationIfapmeEditDtoToJSON(requestParameters.DiplomeCertificationIfapmeEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationIfapmeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeSaveDiplomeCertificationIfapmee(requestParameters: AcquisScolaireHopeSaveDiplomeCertificationIfapmeeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeSaveDiplomeCertificationIfapmeeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeUploadAnneeFormationSuivieFichierRaw(requestParameters: AcquisScolaireHopeUploadAnneeFormationSuivieFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/UploadAnneeFormationSuivieFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AnneeFormationSuivieFichierUploadDtoToJSON(requestParameters.AnneeFormationSuivieFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeUploadAnneeFormationSuivieFichier(requestParameters: AcquisScolaireHopeUploadAnneeFormationSuivieFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeUploadAnneeFormationSuivieFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeUploadAnneeFormationSuivieIfapmeFichierRaw(requestParameters: AcquisScolaireHopeUploadAnneeFormationSuivieIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/UploadAnneeFormationSuivieIfapmeFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AnneeFormationSuivieIfapmeFichierUploadDtoToJSON(requestParameters.AnneeFormationSuivieIfapmeFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AnneeFormationSuivieIfapmeFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeUploadAnneeFormationSuivieIfapmeFichier(requestParameters: AcquisScolaireHopeUploadAnneeFormationSuivieIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeUploadAnneeFormationSuivieIfapmeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeUploadDiplomeCertificationFichierRaw(requestParameters: AcquisScolaireHopeUploadDiplomeCertificationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/UploadDiplomeCertificationFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DiplomeCertificationFichierUploadDtoToJSON(requestParameters.DiplomeCertificationFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeUploadDiplomeCertificationFichier(requestParameters: AcquisScolaireHopeUploadDiplomeCertificationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeUploadDiplomeCertificationFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async acquisScolaireHopeUploadDiplomeCertificationIfapmeFichierRaw(requestParameters: AcquisScolaireHopeUploadDiplomeCertificationIfapmeFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AcquisScolaireHope/UploadDiplomeCertificationIfapmeFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DiplomeCertificationIfapmeFichierUploadDtoToJSON(requestParameters.DiplomeCertificationIfapmeFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DiplomeCertificationIfapmeFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async acquisScolaireHopeUploadDiplomeCertificationIfapmeFichier(requestParameters: AcquisScolaireHopeUploadDiplomeCertificationIfapmeFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.acquisScolaireHopeUploadDiplomeCertificationIfapmeFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AdjointSearch,\n FcbAdjointGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n AdjointSearchFromJSON,\n AdjointSearchToJSON,\n FcbAdjointGridDtoPaginatedResultsFromJSON,\n FcbAdjointGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface AdjointBaseSearchRequest {\n AdjointSearch?: AdjointSearch;\n}\n\nexport interface AdjointGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AdjointGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class AdjointApi extends runtime.BaseAPI {\n\n /**\n */\n async adjointBaseSearchRaw(requestParameters: AdjointBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Adjoint/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AdjointSearchToJSON(requestParameters.AdjointSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAdjointGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async adjointBaseSearch(requestParameters: AdjointBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.adjointBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async adjointGetSearchCriteriasRaw(requestParameters: AdjointGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Adjoint/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async adjointGetSearchCriterias(requestParameters: AdjointGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.adjointGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async adjointGetSelectItemsRaw(requestParameters: AdjointGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling adjointGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Adjoint/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async adjointGetSelectItems(requestParameters: AdjointGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.adjointGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AdresseDoublonDto,\n AdresseDoublonGridDtoPaginatedResults,\n AdresseDoublonSearchDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n AdresseDoublonDtoFromJSON,\n AdresseDoublonDtoToJSON,\n AdresseDoublonGridDtoPaginatedResultsFromJSON,\n AdresseDoublonGridDtoPaginatedResultsToJSON,\n AdresseDoublonSearchDtoFromJSON,\n AdresseDoublonSearchDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface AdresseDoublonBaseSearchRequest {\n AdresseDoublonSearchDto?: AdresseDoublonSearchDto;\n}\n\nexport interface AdresseDoublonGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AdresseDoublonGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AdresseDoublonSaveAdresseDoublonRequest {\n AdresseDoublonDto?: AdresseDoublonDto;\n}\n\n/**\n * \n */\nexport class AdresseDoublonApi extends runtime.BaseAPI {\n\n /**\n */\n async adresseDoublonBaseSearchRaw(requestParameters: AdresseDoublonBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AdresseDoublon/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AdresseDoublonSearchDtoToJSON(requestParameters.AdresseDoublonSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AdresseDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async adresseDoublonBaseSearch(requestParameters: AdresseDoublonBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.adresseDoublonBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async adresseDoublonGetSearchCriteriasRaw(requestParameters: AdresseDoublonGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AdresseDoublon/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async adresseDoublonGetSearchCriterias(requestParameters: AdresseDoublonGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.adresseDoublonGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async adresseDoublonGetSelectItemsRaw(requestParameters: AdresseDoublonGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling adresseDoublonGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AdresseDoublon/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async adresseDoublonGetSelectItems(requestParameters: AdresseDoublonGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.adresseDoublonGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async adresseDoublonSaveAdresseDoublonRaw(requestParameters: AdresseDoublonSaveAdresseDoublonRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AdresseDoublon`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AdresseDoublonDtoToJSON(requestParameters.AdresseDoublonDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AdresseDoublonDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async adresseDoublonSaveAdresseDoublon(requestParameters: AdresseDoublonSaveAdresseDoublonRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.adresseDoublonSaveAdresseDoublonRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AgrementSearch,\n FcbAgrementDto,\n FcbAgrementGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n AgrementSearchFromJSON,\n AgrementSearchToJSON,\n FcbAgrementDtoFromJSON,\n FcbAgrementDtoToJSON,\n FcbAgrementGridDtoPaginatedResultsFromJSON,\n FcbAgrementGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface AgrementBaseSearchRequest {\n AgrementSearch?: AgrementSearch;\n}\n\nexport interface AgrementDeleteRequest {\n id?: number;\n}\n\nexport interface AgrementGetRequest {\n id?: number;\n}\n\nexport interface AgrementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AgrementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AgrementSaveRequest {\n FcbAgrementDto?: FcbAgrementDto;\n}\n\n/**\n * \n */\nexport class AgrementApi extends runtime.BaseAPI {\n\n /**\n */\n async agrementBaseSearchRaw(requestParameters: AgrementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Agrement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AgrementSearchToJSON(requestParameters.AgrementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAgrementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementBaseSearch(requestParameters: AgrementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementDeleteRaw(requestParameters: AgrementDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Agrement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async agrementDelete(requestParameters: AgrementDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementGetRaw(requestParameters: AgrementGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Agrement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAgrementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementGet(requestParameters: AgrementGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementGetSearchCriteriasRaw(requestParameters: AgrementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Agrement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async agrementGetSearchCriterias(requestParameters: AgrementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.agrementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementGetSelectItemsRaw(requestParameters: AgrementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling agrementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Agrement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async agrementGetSelectItems(requestParameters: AgrementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.agrementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementSaveRaw(requestParameters: AgrementSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Agrement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbAgrementDtoToJSON(requestParameters.FcbAgrementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAgrementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementSave(requestParameters: AgrementSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbPlanAgrementDto,\n FcbRechercheAgrementLocalisationDtoPaginatedResults,\n FcbRecherchePlanAgrementClasseDtoPaginatedResults,\n FilterCriteriaInfo,\n PlanAgrementClasseSearch,\n RechercheAgrementLocalisationSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbPlanAgrementDtoFromJSON,\n FcbPlanAgrementDtoToJSON,\n FcbRechercheAgrementLocalisationDtoPaginatedResultsFromJSON,\n FcbRechercheAgrementLocalisationDtoPaginatedResultsToJSON,\n FcbRecherchePlanAgrementClasseDtoPaginatedResultsFromJSON,\n FcbRecherchePlanAgrementClasseDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PlanAgrementClasseSearchFromJSON,\n PlanAgrementClasseSearchToJSON,\n RechercheAgrementLocalisationSearchFromJSON,\n RechercheAgrementLocalisationSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface AgrementLocalisationBaseSearchRequest {\n RechercheAgrementLocalisationSearch?: RechercheAgrementLocalisationSearch;\n}\n\nexport interface AgrementLocalisationDeleteRequest {\n id?: number;\n}\n\nexport interface AgrementLocalisationGenerateAgrementRequest {\n idPlan?: number;\n}\n\nexport interface AgrementLocalisationGetRequest {\n id?: number;\n}\n\nexport interface AgrementLocalisationGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface AgrementLocalisationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AgrementLocalisationGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AgrementLocalisationLockClasseRequest {\n idPlan?: number;\n}\n\nexport interface AgrementLocalisationSaveRequest {\n FcbPlanAgrementDto?: FcbPlanAgrementDto;\n}\n\nexport interface AgrementLocalisationSearchClassesRequest {\n PlanAgrementClasseSearch?: PlanAgrementClasseSearch;\n}\n\nexport interface AgrementLocalisationToValidatePlanRequest {\n idPlan?: number;\n}\n\nexport interface AgrementLocalisationUnlockClasseRequest {\n idPlan?: number;\n}\n\nexport interface AgrementLocalisationValidatePlanRequest {\n idPlan?: number;\n}\n\n/**\n * \n */\nexport class AgrementLocalisationApi extends runtime.BaseAPI {\n\n /**\n */\n async agrementLocalisationBaseSearchRaw(requestParameters: AgrementLocalisationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheAgrementLocalisationSearchToJSON(requestParameters.RechercheAgrementLocalisationSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheAgrementLocalisationDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementLocalisationBaseSearch(requestParameters: AgrementLocalisationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationDeleteRaw(requestParameters: AgrementLocalisationDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async agrementLocalisationDelete(requestParameters: AgrementLocalisationDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationGenerateAgrementRaw(requestParameters: AgrementLocalisationGenerateAgrementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idPlan !== undefined) {\n queryParameters['idPlan'] = requestParameters.idPlan;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/GenerateAgrement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async agrementLocalisationGenerateAgrement(requestParameters: AgrementLocalisationGenerateAgrementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationGenerateAgrementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationGetRaw(requestParameters: AgrementLocalisationGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPlanAgrementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementLocalisationGet(requestParameters: AgrementLocalisationGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationGetDisplayNameRaw(requestParameters: AgrementLocalisationGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async agrementLocalisationGetDisplayName(requestParameters: AgrementLocalisationGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationGetSearchCriteriasRaw(requestParameters: AgrementLocalisationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async agrementLocalisationGetSearchCriterias(requestParameters: AgrementLocalisationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.agrementLocalisationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationGetSelectItemsRaw(requestParameters: AgrementLocalisationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling agrementLocalisationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async agrementLocalisationGetSelectItems(requestParameters: AgrementLocalisationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.agrementLocalisationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationLockClasseRaw(requestParameters: AgrementLocalisationLockClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idPlan !== undefined) {\n queryParameters['idPlan'] = requestParameters.idPlan;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/LockClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async agrementLocalisationLockClasse(requestParameters: AgrementLocalisationLockClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationLockClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationSaveRaw(requestParameters: AgrementLocalisationSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbPlanAgrementDtoToJSON(requestParameters.FcbPlanAgrementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPlanAgrementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementLocalisationSave(requestParameters: AgrementLocalisationSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationSearchClassesRaw(requestParameters: AgrementLocalisationSearchClassesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/SearchClasses`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PlanAgrementClasseSearchToJSON(requestParameters.PlanAgrementClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchePlanAgrementClasseDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementLocalisationSearchClasses(requestParameters: AgrementLocalisationSearchClassesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationSearchClassesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationToValidatePlanRaw(requestParameters: AgrementLocalisationToValidatePlanRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idPlan !== undefined) {\n queryParameters['idPlan'] = requestParameters.idPlan;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/ToValidatePlan`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async agrementLocalisationToValidatePlan(requestParameters: AgrementLocalisationToValidatePlanRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationToValidatePlanRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationUnlockClasseRaw(requestParameters: AgrementLocalisationUnlockClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idPlan !== undefined) {\n queryParameters['idPlan'] = requestParameters.idPlan;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/UnlockClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async agrementLocalisationUnlockClasse(requestParameters: AgrementLocalisationUnlockClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationUnlockClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationValidatePlanRaw(requestParameters: AgrementLocalisationValidatePlanRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idPlan !== undefined) {\n queryParameters['idPlan'] = requestParameters.idPlan;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisation/ValidatePlan`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async agrementLocalisationValidatePlan(requestParameters: AgrementLocalisationValidatePlanRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationValidatePlanRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRecherchePlanAgrementClasseDto,\n FcbRecherchePlanAgrementClasseDtoPaginatedResults,\n FilterCriteriaInfo,\n PlanAgrementClasseSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRecherchePlanAgrementClasseDtoFromJSON,\n FcbRecherchePlanAgrementClasseDtoToJSON,\n FcbRecherchePlanAgrementClasseDtoPaginatedResultsFromJSON,\n FcbRecherchePlanAgrementClasseDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PlanAgrementClasseSearchFromJSON,\n PlanAgrementClasseSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface AgrementLocalisationClasseBaseSearchRequest {\n PlanAgrementClasseSearch?: PlanAgrementClasseSearch;\n}\n\nexport interface AgrementLocalisationClasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AgrementLocalisationClasseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AgrementLocalisationClasseSaveRequest {\n FcbRecherchePlanAgrementClasseDto?: FcbRecherchePlanAgrementClasseDto;\n}\n\n/**\n * \n */\nexport class AgrementLocalisationClasseApi extends runtime.BaseAPI {\n\n /**\n */\n async agrementLocalisationClasseBaseSearchRaw(requestParameters: AgrementLocalisationClasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisationClasse/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PlanAgrementClasseSearchToJSON(requestParameters.PlanAgrementClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchePlanAgrementClasseDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementLocalisationClasseBaseSearch(requestParameters: AgrementLocalisationClasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationClasseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationClasseGetSearchCriteriasRaw(requestParameters: AgrementLocalisationClasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisationClasse/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async agrementLocalisationClasseGetSearchCriterias(requestParameters: AgrementLocalisationClasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.agrementLocalisationClasseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationClasseGetSelectItemsRaw(requestParameters: AgrementLocalisationClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling agrementLocalisationClasseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisationClasse/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async agrementLocalisationClasseGetSelectItems(requestParameters: AgrementLocalisationClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.agrementLocalisationClasseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementLocalisationClasseSaveRaw(requestParameters: AgrementLocalisationClasseSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementLocalisationClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbRecherchePlanAgrementClasseDtoToJSON(requestParameters.FcbRecherchePlanAgrementClasseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchePlanAgrementClasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementLocalisationClasseSave(requestParameters: AgrementLocalisationClasseSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementLocalisationClasseSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbAgrementValidationMasseDto,\n FcbRechercheapprenantValidationcemasseDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheApprenantValidationCeMasseSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbAgrementValidationMasseDtoFromJSON,\n FcbAgrementValidationMasseDtoToJSON,\n FcbRechercheapprenantValidationcemasseDtoPaginatedResultsFromJSON,\n FcbRechercheapprenantValidationcemasseDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheApprenantValidationCeMasseSearchFromJSON,\n RechercheApprenantValidationCeMasseSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface AgrementMasseValidationBaseSearchRequest {\n RechercheApprenantValidationCeMasseSearch?: RechercheApprenantValidationCeMasseSearch;\n}\n\nexport interface AgrementMasseValidationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AgrementMasseValidationGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AgrementMasseValidationSaveRequest {\n FcbAgrementValidationMasseDto?: FcbAgrementValidationMasseDto;\n}\n\nexport interface AgrementMasseValidationSearchFunctionIdsRequest {\n RechercheApprenantValidationCeMasseSearch?: RechercheApprenantValidationCeMasseSearch;\n}\n\n/**\n * \n */\nexport class AgrementMasseValidationApi extends runtime.BaseAPI {\n\n /**\n */\n async agrementMasseValidationBaseSearchRaw(requestParameters: AgrementMasseValidationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementMasseValidation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheApprenantValidationCeMasseSearchToJSON(requestParameters.RechercheApprenantValidationCeMasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheapprenantValidationcemasseDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementMasseValidationBaseSearch(requestParameters: AgrementMasseValidationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementMasseValidationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementMasseValidationGetSearchCriteriasRaw(requestParameters: AgrementMasseValidationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementMasseValidation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async agrementMasseValidationGetSearchCriterias(requestParameters: AgrementMasseValidationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.agrementMasseValidationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementMasseValidationGetSelectItemsRaw(requestParameters: AgrementMasseValidationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling agrementMasseValidationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementMasseValidation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async agrementMasseValidationGetSelectItems(requestParameters: AgrementMasseValidationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.agrementMasseValidationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementMasseValidationSaveRaw(requestParameters: AgrementMasseValidationSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementMasseValidation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbAgrementValidationMasseDtoToJSON(requestParameters.FcbAgrementValidationMasseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAgrementValidationMasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async agrementMasseValidationSave(requestParameters: AgrementMasseValidationSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.agrementMasseValidationSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async agrementMasseValidationSearchFunctionIdsRaw(requestParameters: AgrementMasseValidationSearchFunctionIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AgrementMasseValidation/SearchAgrementFormationIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheApprenantValidationCeMasseSearchToJSON(requestParameters.RechercheApprenantValidationCeMasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async agrementMasseValidationSearchFunctionIds(requestParameters: AgrementMasseValidationSearchFunctionIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.agrementMasseValidationSearchFunctionIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AnneeReussieSearch,\n FcbAnneeReussieDto,\n FcbAnneeReussieDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n AnneeReussieSearchFromJSON,\n AnneeReussieSearchToJSON,\n FcbAnneeReussieDtoFromJSON,\n FcbAnneeReussieDtoToJSON,\n FcbAnneeReussieDtoPaginatedResultsFromJSON,\n FcbAnneeReussieDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface AnneeReussieBaseSearchRequest {\n AnneeReussieSearch?: AnneeReussieSearch;\n}\n\nexport interface AnneeReussieDeleteRequest {\n id?: number;\n}\n\nexport interface AnneeReussieGetRequest {\n id?: number;\n}\n\nexport interface AnneeReussieGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface AnneeReussieGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AnneeReussieGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AnneeReussieSaveRequest {\n FcbAnneeReussieDto?: FcbAnneeReussieDto;\n}\n\n/**\n * \n */\nexport class AnneeReussieApi extends runtime.BaseAPI {\n\n /**\n */\n async anneeReussieBaseSearchRaw(requestParameters: AnneeReussieBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeReussie/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AnneeReussieSearchToJSON(requestParameters.AnneeReussieSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAnneeReussieDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async anneeReussieBaseSearch(requestParameters: AnneeReussieBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeReussieBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeReussieDeleteRaw(requestParameters: AnneeReussieDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeReussie`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async anneeReussieDelete(requestParameters: AnneeReussieDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeReussieDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeReussieGetRaw(requestParameters: AnneeReussieGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeReussie`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAnneeReussieDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async anneeReussieGet(requestParameters: AnneeReussieGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeReussieGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeReussieGetDisplayNameRaw(requestParameters: AnneeReussieGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeReussie/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async anneeReussieGetDisplayName(requestParameters: AnneeReussieGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeReussieGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeReussieGetSearchCriteriasRaw(requestParameters: AnneeReussieGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeReussie/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async anneeReussieGetSearchCriterias(requestParameters: AnneeReussieGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.anneeReussieGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeReussieGetSelectItemsRaw(requestParameters: AnneeReussieGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling anneeReussieGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeReussie/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async anneeReussieGetSelectItems(requestParameters: AnneeReussieGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.anneeReussieGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeReussieSaveRaw(requestParameters: AnneeReussieSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeReussie`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbAnneeReussieDtoToJSON(requestParameters.FcbAnneeReussieDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAnneeReussieDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async anneeReussieSave(requestParameters: AnneeReussieSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeReussieSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AnneeScolaireSearch,\n BooleanDto,\n FcbAnneeScolaireDetailDto,\n FcbAnneeScolaireDto,\n FcbAnneeScolaireDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n AnneeScolaireSearchFromJSON,\n AnneeScolaireSearchToJSON,\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FcbAnneeScolaireDetailDtoFromJSON,\n FcbAnneeScolaireDetailDtoToJSON,\n FcbAnneeScolaireDtoFromJSON,\n FcbAnneeScolaireDtoToJSON,\n FcbAnneeScolaireDtoPaginatedResultsFromJSON,\n FcbAnneeScolaireDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface AnneeScolaireBaseSearchRequest {\n AnneeScolaireSearch?: AnneeScolaireSearch;\n}\n\nexport interface AnneeScolaireDeleteRequest {\n id?: string;\n}\n\nexport interface AnneeScolaireExistsRequest {\n anneeDebut?: string;\n anneeFin?: string;\n}\n\nexport interface AnneeScolaireGetRequest {\n id?: string;\n}\n\nexport interface AnneeScolaireGetDisplayNameRequest {\n id?: string;\n}\n\nexport interface AnneeScolaireGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AnneeScolaireGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AnneeScolaireIsDeletableRequest {\n id?: string;\n}\n\nexport interface AnneeScolaireSaveRequest {\n FcbAnneeScolaireDetailDto?: FcbAnneeScolaireDetailDto;\n}\n\n/**\n * \n */\nexport class AnneeScolaireApi extends runtime.BaseAPI {\n\n /**\n */\n async anneeScolaireBaseSearchRaw(requestParameters: AnneeScolaireBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AnneeScolaireSearchToJSON(requestParameters.AnneeScolaireSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAnneeScolaireDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async anneeScolaireBaseSearch(requestParameters: AnneeScolaireBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeScolaireBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeScolaireDeleteRaw(requestParameters: AnneeScolaireDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async anneeScolaireDelete(requestParameters: AnneeScolaireDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeScolaireDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeScolaireExistsRaw(requestParameters: AnneeScolaireExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.anneeDebut !== undefined) {\n queryParameters['anneeDebut'] = requestParameters.anneeDebut;\n }\n\n if (requestParameters.anneeFin !== undefined) {\n queryParameters['anneeFin'] = requestParameters.anneeFin;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async anneeScolaireExists(requestParameters: AnneeScolaireExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeScolaireExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeScolaireGetRaw(requestParameters: AnneeScolaireGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire/get`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAnneeScolaireDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async anneeScolaireGet(requestParameters: AnneeScolaireGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeScolaireGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeScolaireGetCurrentRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire/getCurrent`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAnneeScolaireDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async anneeScolaireGetCurrent(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeScolaireGetCurrentRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeScolaireGetDisplayNameRaw(requestParameters: AnneeScolaireGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async anneeScolaireGetDisplayName(requestParameters: AnneeScolaireGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeScolaireGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeScolaireGetSearchCriteriasRaw(requestParameters: AnneeScolaireGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async anneeScolaireGetSearchCriterias(requestParameters: AnneeScolaireGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.anneeScolaireGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeScolaireGetSelectItemsRaw(requestParameters: AnneeScolaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling anneeScolaireGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async anneeScolaireGetSelectItems(requestParameters: AnneeScolaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.anneeScolaireGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeScolaireIsDeletableRaw(requestParameters: AnneeScolaireIsDeletableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire/IsDeletable`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async anneeScolaireIsDeletable(requestParameters: AnneeScolaireIsDeletableRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeScolaireIsDeletableRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async anneeScolaireSaveRaw(requestParameters: AnneeScolaireSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/AnneeScolaire`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbAnneeScolaireDetailDtoToJSON(requestParameters.FcbAnneeScolaireDetailDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbAnneeScolaireDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async anneeScolaireSave(requestParameters: AnneeScolaireSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.anneeScolaireSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ApprenantHopeSearch,\n ApprenantSearch,\n AriReassignmentDto,\n BooleanDto,\n CopReassignmentDto,\n EmailAdressesDto,\n FcbApprenantDto,\n FcbRechercheApprenantViewDtoPaginatedResults,\n FilterCriteriaInfo,\n GetApprenantAvisResultatsIdsfichierDto,\n PassportDriveDto,\n PriReassignmentDto,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n ApprenantHopeSearchFromJSON,\n ApprenantHopeSearchToJSON,\n ApprenantSearchFromJSON,\n ApprenantSearchToJSON,\n AriReassignmentDtoFromJSON,\n AriReassignmentDtoToJSON,\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n CopReassignmentDtoFromJSON,\n CopReassignmentDtoToJSON,\n EmailAdressesDtoFromJSON,\n EmailAdressesDtoToJSON,\n FcbApprenantDtoFromJSON,\n FcbApprenantDtoToJSON,\n FcbRechercheApprenantViewDtoPaginatedResultsFromJSON,\n FcbRechercheApprenantViewDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n GetApprenantAvisResultatsIdsfichierDtoFromJSON,\n GetApprenantAvisResultatsIdsfichierDtoToJSON,\n PassportDriveDtoFromJSON,\n PassportDriveDtoToJSON,\n PriReassignmentDtoFromJSON,\n PriReassignmentDtoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ApprenantBaseSearchRequest {\n ApprenantSearch?: ApprenantSearch;\n}\n\nexport interface ApprenantCheckDoublonsNameRequest {\n FcbApprenantDto?: FcbApprenantDto;\n}\n\nexport interface ApprenantCheckDoublonsNationalNumberRequest {\n FcbApprenantDto?: FcbApprenantDto;\n}\n\nexport interface ApprenantDeleteRequest {\n id?: number;\n}\n\nexport interface ApprenantDeleteAcquisRequest {\n id?: number;\n}\n\nexport interface ApprenantDeletePassportDriveRequest {\n idapprenant?: number;\n}\n\nexport interface ApprenantGetRequest {\n id?: number;\n picture?: boolean;\n}\n\nexport interface ApprenantGetAlreadySelectedInstituttionIdsRequest {\n idapprenant?: number;\n}\n\nexport interface ApprenantGetAlreadySelectedRepresentantIdsRequest {\n idapprenant?: number;\n}\n\nexport interface ApprenantGetAnneesScolairesInscritesRequest {\n IdApprenant?: number;\n}\n\nexport interface ApprenantGetAriReassignmentRequest {\n request_body?: Array;\n}\n\nexport interface ApprenantGetAvisResultatsIdsfichierRequest {\n GetApprenantAvisResultatsIdsfichierDto?: GetApprenantAvisResultatsIdsfichierDto;\n}\n\nexport interface ApprenantGetCopReassignmentRequest {\n request_body?: Array;\n}\n\nexport interface ApprenantGetDerniereAnneeRequest {\n IdApprenant?: number;\n}\n\nexport interface ApprenantGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ApprenantGetEmailsRequest {\n request_body?: Array;\n}\n\nexport interface ApprenantGetHopeSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantGetIdPersonneRequest {\n id?: number;\n}\n\nexport interface ApprenantGetPassportDriveRequest {\n idapprenant?: number;\n}\n\nexport interface ApprenantGetPhotoRequest {\n id?: number;\n}\n\nexport interface ApprenantGetPhotoByBulletinRequest {\n id?: number;\n}\n\nexport interface ApprenantGetPriReassignmentRequest {\n request_body?: Array;\n}\n\nexport interface ApprenantGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ApprenantHasContratActifRequest {\n request_body?: Array;\n}\n\nexport interface ApprenantMailSentRequest {\n IdApprenant?: number;\n}\n\nexport interface ApprenantSaveRequest {\n FcbApprenantDto?: FcbApprenantDto;\n}\n\nexport interface ApprenantSaveAriReassignmentRequest {\n AriReassignmentDto?: AriReassignmentDto;\n}\n\nexport interface ApprenantSaveCopReassignmentRequest {\n CopReassignmentDto?: CopReassignmentDto;\n}\n\nexport interface ApprenantSavePassportDriveRequest {\n PassportDriveDto?: PassportDriveDto;\n}\n\nexport interface ApprenantSavePriReassignmentRequest {\n PriReassignmentDto?: PriReassignmentDto;\n}\n\nexport interface ApprenantSearchApprenantIdsRequest {\n ApprenantSearch?: ApprenantSearch;\n}\n\nexport interface ApprenantSearchHopeRequest {\n ApprenantHopeSearch?: ApprenantHopeSearch;\n}\n\nexport interface ApprenantSearchHopeApprenantIdsRequest {\n ApprenantHopeSearch?: ApprenantHopeSearch;\n}\n\nexport interface ApprenantSocieteExterneUnauthorizedRequest {\n idApprenant?: number;\n}\n\n/**\n * \n */\nexport class ApprenantApi extends runtime.BaseAPI {\n\n /**\n */\n async apprenantBaseSearchRaw(requestParameters: ApprenantBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantSearchToJSON(requestParameters.ApprenantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheApprenantViewDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantBaseSearch(requestParameters: ApprenantBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantCheckDoublonsNameRaw(requestParameters: ApprenantCheckDoublonsNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/CheckDoublonsName`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbApprenantDtoToJSON(requestParameters.FcbApprenantDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantCheckDoublonsName(requestParameters: ApprenantCheckDoublonsNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantCheckDoublonsNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantCheckDoublonsNationalNumberRaw(requestParameters: ApprenantCheckDoublonsNationalNumberRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/CheckDoublonsNationalNumber`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbApprenantDtoToJSON(requestParameters.FcbApprenantDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantCheckDoublonsNationalNumber(requestParameters: ApprenantCheckDoublonsNationalNumberRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantCheckDoublonsNationalNumberRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantDeleteRaw(requestParameters: ApprenantDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async apprenantDelete(requestParameters: ApprenantDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantDeleteAcquisRaw(requestParameters: ApprenantDeleteAcquisRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/DeleteAcquis`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantDeleteAcquis(requestParameters: ApprenantDeleteAcquisRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantDeleteAcquisRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantDeletePassportDriveRaw(requestParameters: ApprenantDeletePassportDriveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/DeletePassportDrive`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async apprenantDeletePassportDrive(requestParameters: ApprenantDeletePassportDriveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.apprenantDeletePassportDriveRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async apprenantGetRaw(requestParameters: ApprenantGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.picture !== undefined) {\n queryParameters['picture'] = requestParameters.picture;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantGet(requestParameters: ApprenantGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetAlreadySelectedInstituttionIdsRaw(requestParameters: ApprenantGetAlreadySelectedInstituttionIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetAlreadySelectedInstituttionIds`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async apprenantGetAlreadySelectedInstituttionIds(requestParameters: ApprenantGetAlreadySelectedInstituttionIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantGetAlreadySelectedInstituttionIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetAlreadySelectedRepresentantIdsRaw(requestParameters: ApprenantGetAlreadySelectedRepresentantIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetAlreadySelectedRepresentantIds`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async apprenantGetAlreadySelectedRepresentantIds(requestParameters: ApprenantGetAlreadySelectedRepresentantIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantGetAlreadySelectedRepresentantIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetAnneesScolairesInscritesRaw(requestParameters: ApprenantGetAnneesScolairesInscritesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.IdApprenant !== undefined) {\n queryParameters['IdApprenant'] = requestParameters.IdApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetAnneesScolairesInscrites`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async apprenantGetAnneesScolairesInscrites(requestParameters: ApprenantGetAnneesScolairesInscritesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantGetAnneesScolairesInscritesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetAriReassignmentRaw(requestParameters: ApprenantGetAriReassignmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetAriReassignment`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AriReassignmentDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantGetAriReassignment(requestParameters: ApprenantGetAriReassignmentRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetAriReassignmentRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetAvisResultatsIdsfichierRaw(requestParameters: ApprenantGetAvisResultatsIdsfichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetAvisResultatsIdsfichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: GetApprenantAvisResultatsIdsfichierDtoToJSON(requestParameters.GetApprenantAvisResultatsIdsfichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async apprenantGetAvisResultatsIdsfichier(requestParameters: ApprenantGetAvisResultatsIdsfichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantGetAvisResultatsIdsfichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetCopReassignmentRaw(requestParameters: ApprenantGetCopReassignmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetCopReassignment`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CopReassignmentDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantGetCopReassignment(requestParameters: ApprenantGetCopReassignmentRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetCopReassignmentRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetDerniereAnneeRaw(requestParameters: ApprenantGetDerniereAnneeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.IdApprenant !== undefined) {\n queryParameters['IdApprenant'] = requestParameters.IdApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetDerniereAnnee`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async apprenantGetDerniereAnnee(requestParameters: ApprenantGetDerniereAnneeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetDerniereAnneeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetDisplayNameRaw(requestParameters: ApprenantGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async apprenantGetDisplayName(requestParameters: ApprenantGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetEmailsRaw(requestParameters: ApprenantGetEmailsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetEmails`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EmailAdressesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantGetEmails(requestParameters: ApprenantGetEmailsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetEmailsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetHopeSearchCriteriasRaw(requestParameters: ApprenantGetHopeSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/hopeCriterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantGetHopeSearchCriterias(requestParameters: ApprenantGetHopeSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantGetHopeSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetIdPersonneRaw(requestParameters: ApprenantGetIdPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetIdPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async apprenantGetIdPersonne(requestParameters: ApprenantGetIdPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetIdPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetPassportDriveRaw(requestParameters: ApprenantGetPassportDriveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetPassportDrive`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PassportDriveDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantGetPassportDrive(requestParameters: ApprenantGetPassportDriveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetPassportDriveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetPhotoRaw(requestParameters: ApprenantGetPhotoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/photo`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async apprenantGetPhoto(requestParameters: ApprenantGetPhotoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetPhotoRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetPhotoByBulletinRaw(requestParameters: ApprenantGetPhotoByBulletinRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetPhotoByBulletin`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async apprenantGetPhotoByBulletin(requestParameters: ApprenantGetPhotoByBulletinRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetPhotoByBulletinRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetPriReassignmentRaw(requestParameters: ApprenantGetPriReassignmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/GetPriReassignment`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PriReassignmentDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantGetPriReassignment(requestParameters: ApprenantGetPriReassignmentRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantGetPriReassignmentRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetSearchCriteriasRaw(requestParameters: ApprenantGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantGetSearchCriterias(requestParameters: ApprenantGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantGetSelectItemsRaw(requestParameters: ApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling apprenantGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async apprenantGetSelectItems(requestParameters: ApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantHasContratActifRaw(requestParameters: ApprenantHasContratActifRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/HasContratActif`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantHasContratActif(requestParameters: ApprenantHasContratActifRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantHasContratActifRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantMailSentRaw(requestParameters: ApprenantMailSentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.IdApprenant !== undefined) {\n queryParameters['IdApprenant'] = requestParameters.IdApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/MailSent`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async apprenantMailSent(requestParameters: ApprenantMailSentRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.apprenantMailSentRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async apprenantSaveRaw(requestParameters: ApprenantSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbApprenantDtoToJSON(requestParameters.FcbApprenantDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantSave(requestParameters: ApprenantSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSaveAriReassignmentRaw(requestParameters: ApprenantSaveAriReassignmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/SaveAriReassignment`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AriReassignmentDtoToJSON(requestParameters.AriReassignmentDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AriReassignmentDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantSaveAriReassignment(requestParameters: ApprenantSaveAriReassignmentRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantSaveAriReassignmentRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSaveCopReassignmentRaw(requestParameters: ApprenantSaveCopReassignmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/SaveCopReassignment`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CopReassignmentDtoToJSON(requestParameters.CopReassignmentDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CopReassignmentDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantSaveCopReassignment(requestParameters: ApprenantSaveCopReassignmentRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantSaveCopReassignmentRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSavePassportDriveRaw(requestParameters: ApprenantSavePassportDriveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/SavePassportDrive`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PassportDriveDtoToJSON(requestParameters.PassportDriveDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PassportDriveDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantSavePassportDrive(requestParameters: ApprenantSavePassportDriveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantSavePassportDriveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSavePriReassignmentRaw(requestParameters: ApprenantSavePriReassignmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/SavePriReassignment`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PriReassignmentDtoToJSON(requestParameters.PriReassignmentDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PriReassignmentDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantSavePriReassignment(requestParameters: ApprenantSavePriReassignmentRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantSavePriReassignmentRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSearchApprenantIdsRaw(requestParameters: ApprenantSearchApprenantIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/SearchApprenantIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantSearchToJSON(requestParameters.ApprenantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async apprenantSearchApprenantIds(requestParameters: ApprenantSearchApprenantIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantSearchApprenantIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSearchHopeRaw(requestParameters: ApprenantSearchHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/SearchHope`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantHopeSearchToJSON(requestParameters.ApprenantHopeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheApprenantViewDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantSearchHope(requestParameters: ApprenantSearchHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantSearchHopeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSearchHopeApprenantIdsRaw(requestParameters: ApprenantSearchHopeApprenantIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/SearchHopeApprenantIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantHopeSearchToJSON(requestParameters.ApprenantHopeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async apprenantSearchHopeApprenantIds(requestParameters: ApprenantSearchHopeApprenantIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantSearchHopeApprenantIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSocieteExterneUnauthorizedRaw(requestParameters: ApprenantSocieteExterneUnauthorizedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Apprenant/SocieteExterneUnauthorized`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantSocieteExterneUnauthorized(requestParameters: ApprenantSocieteExterneUnauthorizedRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantSocieteExterneUnauthorizedRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ApprenantAzureSearch,\n FcbApprenantAzureGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ApprenantAzureSearchFromJSON,\n ApprenantAzureSearchToJSON,\n FcbApprenantAzureGridDtoPaginatedResultsFromJSON,\n FcbApprenantAzureGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ApprenantAzureBaseSearchRequest {\n ApprenantAzureSearch?: ApprenantAzureSearch;\n}\n\nexport interface ApprenantAzureGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantAzureGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ApprenantAzureApi extends runtime.BaseAPI {\n\n /**\n */\n async apprenantAzureBaseSearchRaw(requestParameters: ApprenantAzureBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantAzure/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantAzureSearchToJSON(requestParameters.ApprenantAzureSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantAzureGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantAzureBaseSearch(requestParameters: ApprenantAzureBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantAzureBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantAzureGetSearchCriteriasRaw(requestParameters: ApprenantAzureGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantAzure/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantAzureGetSearchCriterias(requestParameters: ApprenantAzureGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantAzureGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantAzureGetSelectItemsRaw(requestParameters: ApprenantAzureGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling apprenantAzureGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantAzure/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async apprenantAzureGetSelectItems(requestParameters: ApprenantAzureGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantAzureGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ApprenantDoublonSearch,\n FcbApprenantDoublonGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ApprenantDoublonSearchFromJSON,\n ApprenantDoublonSearchToJSON,\n FcbApprenantDoublonGridDtoPaginatedResultsFromJSON,\n FcbApprenantDoublonGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ApprenantDoublonBaseSearchRequest {\n ApprenantDoublonSearch?: ApprenantDoublonSearch;\n}\n\nexport interface ApprenantDoublonGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantDoublonGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ApprenantDoublonApi extends runtime.BaseAPI {\n\n /**\n */\n async apprenantDoublonBaseSearchRaw(requestParameters: ApprenantDoublonBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantDoublon/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantDoublonSearchToJSON(requestParameters.ApprenantDoublonSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantDoublonBaseSearch(requestParameters: ApprenantDoublonBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantDoublonBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantDoublonGetSearchCriteriasRaw(requestParameters: ApprenantDoublonGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantDoublon/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantDoublonGetSearchCriterias(requestParameters: ApprenantDoublonGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantDoublonGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantDoublonGetSelectItemsRaw(requestParameters: ApprenantDoublonGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling apprenantDoublonGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantDoublon/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async apprenantDoublonGetSelectItems(requestParameters: ApprenantDoublonGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantDoublonGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ApprenantFichierDto,\n ApprenantFichierGridDtoPaginatedResults,\n ApprenantFichierSearchDto,\n ApprenantFichierUploadDto,\n FileDownloadDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n ApprenantFichierDtoFromJSON,\n ApprenantFichierDtoToJSON,\n ApprenantFichierGridDtoPaginatedResultsFromJSON,\n ApprenantFichierGridDtoPaginatedResultsToJSON,\n ApprenantFichierSearchDtoFromJSON,\n ApprenantFichierSearchDtoToJSON,\n ApprenantFichierUploadDtoFromJSON,\n ApprenantFichierUploadDtoToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ApprenantFichierBaseSearchRequest {\n ApprenantFichierSearchDto?: ApprenantFichierSearchDto;\n}\n\nexport interface ApprenantFichierDeleteApprenantFichierRequest {\n id?: number;\n}\n\nexport interface ApprenantFichierDeleteAvisResultatRequest {\n id?: number;\n}\n\nexport interface ApprenantFichierDownloadApprenantFichierRequest {\n id?: number;\n}\n\nexport interface ApprenantFichierGetApprenantFichierRequest {\n id?: number;\n}\n\nexport interface ApprenantFichierGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantFichierGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ApprenantFichierSaveApprenantFichierRequest {\n ApprenantFichierDto?: ApprenantFichierDto;\n}\n\nexport interface ApprenantFichierSearchDocumentsReglementairesRequest {\n idapprenant?: number;\n}\n\nexport interface ApprenantFichierUploadApprenantFichierRequest {\n ApprenantFichierUploadDto?: ApprenantFichierUploadDto;\n}\n\n/**\n * \n */\nexport class ApprenantFichierApi extends runtime.BaseAPI {\n\n /**\n */\n async apprenantFichierBaseSearchRaw(requestParameters: ApprenantFichierBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantFichierSearchDtoToJSON(requestParameters.ApprenantFichierSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantFichierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantFichierBaseSearch(requestParameters: ApprenantFichierBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantFichierBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantFichierDeleteApprenantFichierRaw(requestParameters: ApprenantFichierDeleteApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async apprenantFichierDeleteApprenantFichier(requestParameters: ApprenantFichierDeleteApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.apprenantFichierDeleteApprenantFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async apprenantFichierDeleteAvisResultatRaw(requestParameters: ApprenantFichierDeleteAvisResultatRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier/DeleteAvisResultats`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async apprenantFichierDeleteAvisResultat(requestParameters: ApprenantFichierDeleteAvisResultatRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.apprenantFichierDeleteAvisResultatRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async apprenantFichierDownloadApprenantFichierRaw(requestParameters: ApprenantFichierDownloadApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier/Download`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantFichierDownloadApprenantFichier(requestParameters: ApprenantFichierDownloadApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantFichierDownloadApprenantFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantFichierGetApprenantFichierRaw(requestParameters: ApprenantFichierGetApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantFichierGetApprenantFichier(requestParameters: ApprenantFichierGetApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantFichierGetApprenantFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantFichierGetSearchCriteriasRaw(requestParameters: ApprenantFichierGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantFichierGetSearchCriterias(requestParameters: ApprenantFichierGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantFichierGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantFichierGetSelectItemsRaw(requestParameters: ApprenantFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling apprenantFichierGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async apprenantFichierGetSelectItems(requestParameters: ApprenantFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantFichierGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantFichierSaveApprenantFichierRaw(requestParameters: ApprenantFichierSaveApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantFichierDtoToJSON(requestParameters.ApprenantFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantFichierSaveApprenantFichier(requestParameters: ApprenantFichierSaveApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantFichierSaveApprenantFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantFichierSearchDocumentsReglementairesRaw(requestParameters: ApprenantFichierSearchDocumentsReglementairesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier/SearchDocumentsReglementaires`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantFichierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantFichierSearchDocumentsReglementaires(requestParameters: ApprenantFichierSearchDocumentsReglementairesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantFichierSearchDocumentsReglementairesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantFichierUploadApprenantFichierRaw(requestParameters: ApprenantFichierUploadApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantFichier/Upload`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantFichierUploadDtoToJSON(requestParameters.ApprenantFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantFichierUploadApprenantFichier(requestParameters: ApprenantFichierUploadApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantFichierUploadApprenantFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ApprenantHistorySearch,\n FcbApprenantHistoryGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ApprenantHistorySearchFromJSON,\n ApprenantHistorySearchToJSON,\n FcbApprenantHistoryGridDtoPaginatedResultsFromJSON,\n FcbApprenantHistoryGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ApprenantHistoryBaseSearchRequest {\n ApprenantHistorySearch?: ApprenantHistorySearch;\n}\n\nexport interface ApprenantHistoryGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantHistoryGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ApprenantHistoryApi extends runtime.BaseAPI {\n\n /**\n */\n async apprenantHistoryBaseSearchRaw(requestParameters: ApprenantHistoryBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantHistory/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantHistorySearchToJSON(requestParameters.ApprenantHistorySearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantHistoryGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantHistoryBaseSearch(requestParameters: ApprenantHistoryBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantHistoryBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantHistoryGetSearchCriteriasRaw(requestParameters: ApprenantHistoryGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantHistory/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantHistoryGetSearchCriterias(requestParameters: ApprenantHistoryGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantHistoryGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantHistoryGetSelectItemsRaw(requestParameters: ApprenantHistoryGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling apprenantHistoryGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantHistory/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async apprenantHistoryGetSelectItems(requestParameters: ApprenantHistoryGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantHistoryGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ApprenantRepresentantHopeGridDtoPaginatedResults,\n ApprenantRepresentantInstitutionEditDto,\n ApprenantRepresentantPersonneEditDto,\n ApprenantRepresentantSearchDto,\n BooleanDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n ApprenantRepresentantHopeGridDtoPaginatedResultsFromJSON,\n ApprenantRepresentantHopeGridDtoPaginatedResultsToJSON,\n ApprenantRepresentantInstitutionEditDtoFromJSON,\n ApprenantRepresentantInstitutionEditDtoToJSON,\n ApprenantRepresentantPersonneEditDtoFromJSON,\n ApprenantRepresentantPersonneEditDtoToJSON,\n ApprenantRepresentantSearchDtoFromJSON,\n ApprenantRepresentantSearchDtoToJSON,\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ApprenantRepresentantHopeAlreadyHasEmergencyContactQueryRequest {\n idapprenant?: number;\n idapprenantRepresentant?: number;\n idapprenantInstitution?: number;\n}\n\nexport interface ApprenantRepresentantHopeBaseSearchRequest {\n ApprenantRepresentantSearchDto?: ApprenantRepresentantSearchDto;\n}\n\nexport interface ApprenantRepresentantHopeDeleteApprenantRepresentantInstitutionRequest {\n idapprenantInstitution?: number;\n idapprenant?: number;\n}\n\nexport interface ApprenantRepresentantHopeDeleteApprenantRepresentantPersonneRequest {\n idapprenantRepresentant?: number;\n idapprenant?: number;\n}\n\nexport interface ApprenantRepresentantHopeGetApprenantRepresentantInstitutionRequest {\n idapprenantInstitution?: number;\n idapprenant?: number;\n}\n\nexport interface ApprenantRepresentantHopeGetApprenantRepresentantPersonneRequest {\n idapprenant?: number;\n idapprenantRepresentant?: number;\n}\n\nexport interface ApprenantRepresentantHopeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantRepresentantHopeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ApprenantRepresentantHopeSaveApprenantRepresentantInstitutionRequest {\n ApprenantRepresentantInstitutionEditDto?: ApprenantRepresentantInstitutionEditDto;\n}\n\nexport interface ApprenantRepresentantHopeSaveApprenantRepresentantPersonneRequest {\n ApprenantRepresentantPersonneEditDto?: ApprenantRepresentantPersonneEditDto;\n}\n\n/**\n * \n */\nexport class ApprenantRepresentantHopeApi extends runtime.BaseAPI {\n\n /**\n */\n async apprenantRepresentantHopeAlreadyHasEmergencyContactQueryRaw(requestParameters: ApprenantRepresentantHopeAlreadyHasEmergencyContactQueryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n if (requestParameters.idapprenantRepresentant !== undefined) {\n queryParameters['idapprenantRepresentant'] = requestParameters.idapprenantRepresentant;\n }\n\n if (requestParameters.idapprenantInstitution !== undefined) {\n queryParameters['idapprenantInstitution'] = requestParameters.idapprenantInstitution;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/AlreadyHasEmergencyContactQuery`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantHopeAlreadyHasEmergencyContactQuery(requestParameters: ApprenantRepresentantHopeAlreadyHasEmergencyContactQueryRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantHopeAlreadyHasEmergencyContactQueryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantHopeBaseSearchRaw(requestParameters: ApprenantRepresentantHopeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantRepresentantSearchDtoToJSON(requestParameters.ApprenantRepresentantSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantRepresentantHopeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantHopeBaseSearch(requestParameters: ApprenantRepresentantHopeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantHopeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantHopeDeleteApprenantRepresentantInstitutionRaw(requestParameters: ApprenantRepresentantHopeDeleteApprenantRepresentantInstitutionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenantInstitution !== undefined) {\n queryParameters['idapprenantInstitution'] = requestParameters.idapprenantInstitution;\n }\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/DeleteApprenantRepresentantInstitution`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async apprenantRepresentantHopeDeleteApprenantRepresentantInstitution(requestParameters: ApprenantRepresentantHopeDeleteApprenantRepresentantInstitutionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.apprenantRepresentantHopeDeleteApprenantRepresentantInstitutionRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async apprenantRepresentantHopeDeleteApprenantRepresentantPersonneRaw(requestParameters: ApprenantRepresentantHopeDeleteApprenantRepresentantPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenantRepresentant !== undefined) {\n queryParameters['idapprenantRepresentant'] = requestParameters.idapprenantRepresentant;\n }\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/DeleteApprenantRepresentantPersonne`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async apprenantRepresentantHopeDeleteApprenantRepresentantPersonne(requestParameters: ApprenantRepresentantHopeDeleteApprenantRepresentantPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.apprenantRepresentantHopeDeleteApprenantRepresentantPersonneRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async apprenantRepresentantHopeGetApprenantRepresentantInstitutionRaw(requestParameters: ApprenantRepresentantHopeGetApprenantRepresentantInstitutionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenantInstitution !== undefined) {\n queryParameters['idapprenantInstitution'] = requestParameters.idapprenantInstitution;\n }\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/GetApprenantRepresentantInstitution`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantRepresentantInstitutionEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantHopeGetApprenantRepresentantInstitution(requestParameters: ApprenantRepresentantHopeGetApprenantRepresentantInstitutionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantHopeGetApprenantRepresentantInstitutionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantHopeGetApprenantRepresentantPersonneRaw(requestParameters: ApprenantRepresentantHopeGetApprenantRepresentantPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n if (requestParameters.idapprenantRepresentant !== undefined) {\n queryParameters['idapprenantRepresentant'] = requestParameters.idapprenantRepresentant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/GetApprenantRepresentantPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantRepresentantPersonneEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantHopeGetApprenantRepresentantPersonne(requestParameters: ApprenantRepresentantHopeGetApprenantRepresentantPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantHopeGetApprenantRepresentantPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantHopeGetSearchCriteriasRaw(requestParameters: ApprenantRepresentantHopeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantRepresentantHopeGetSearchCriterias(requestParameters: ApprenantRepresentantHopeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantRepresentantHopeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantHopeGetSelectItemsRaw(requestParameters: ApprenantRepresentantHopeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling apprenantRepresentantHopeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async apprenantRepresentantHopeGetSelectItems(requestParameters: ApprenantRepresentantHopeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantRepresentantHopeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantHopeSaveApprenantRepresentantInstitutionRaw(requestParameters: ApprenantRepresentantHopeSaveApprenantRepresentantInstitutionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/SaveApprenantRepresentantInstitution`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantRepresentantInstitutionEditDtoToJSON(requestParameters.ApprenantRepresentantInstitutionEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantRepresentantInstitutionEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantHopeSaveApprenantRepresentantInstitution(requestParameters: ApprenantRepresentantHopeSaveApprenantRepresentantInstitutionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantHopeSaveApprenantRepresentantInstitutionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantHopeSaveApprenantRepresentantPersonneRaw(requestParameters: ApprenantRepresentantHopeSaveApprenantRepresentantPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentantHope/SaveApprenantRepresentantPersonne`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantRepresentantPersonneEditDtoToJSON(requestParameters.ApprenantRepresentantPersonneEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantRepresentantPersonneEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantHopeSaveApprenantRepresentantPersonne(requestParameters: ApprenantRepresentantHopeSaveApprenantRepresentantPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantHopeSaveApprenantRepresentantPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ApprenantRepresentantsSearch,\n FcbApprenantRepresentantDto,\n FcbApprenantRepresentantGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n ApprenantRepresentantsSearchFromJSON,\n ApprenantRepresentantsSearchToJSON,\n FcbApprenantRepresentantDtoFromJSON,\n FcbApprenantRepresentantDtoToJSON,\n FcbApprenantRepresentantGridDtoPaginatedResultsFromJSON,\n FcbApprenantRepresentantGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ApprenantRepresentantsBaseSearchRequest {\n ApprenantRepresentantsSearch?: ApprenantRepresentantsSearch;\n}\n\nexport interface ApprenantRepresentantsDeleteRequest {\n FcbApprenantRepresentantDto?: FcbApprenantRepresentantDto;\n}\n\nexport interface ApprenantRepresentantsExistsRequest {\n idApprenant?: number;\n idRepresentant?: number;\n}\n\nexport interface ApprenantRepresentantsGetRequest {\n idRepresantant?: number;\n idApprenant?: number;\n}\n\nexport interface ApprenantRepresentantsGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantRepresentantsGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ApprenantRepresentantsSaveRequest {\n FcbApprenantRepresentantDto?: FcbApprenantRepresentantDto;\n}\n\n/**\n * \n */\nexport class ApprenantRepresentantsApi extends runtime.BaseAPI {\n\n /**\n */\n async apprenantRepresentantsBaseSearchRaw(requestParameters: ApprenantRepresentantsBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentants/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantRepresentantsSearchToJSON(requestParameters.ApprenantRepresentantsSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantRepresentantGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantsBaseSearch(requestParameters: ApprenantRepresentantsBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantsBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantsDeleteRaw(requestParameters: ApprenantRepresentantsDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentants/delete`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n body: FcbApprenantRepresentantDtoToJSON(requestParameters.FcbApprenantRepresentantDto),\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async apprenantRepresentantsDelete(requestParameters: ApprenantRepresentantsDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantsDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantsExistsRaw(requestParameters: ApprenantRepresentantsExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.idRepresentant !== undefined) {\n queryParameters['idRepresentant'] = requestParameters.idRepresentant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentants/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantsExists(requestParameters: ApprenantRepresentantsExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantsExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantsGetRaw(requestParameters: ApprenantRepresentantsGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idRepresantant !== undefined) {\n queryParameters['idRepresantant'] = requestParameters.idRepresantant;\n }\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentants/get`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantRepresentantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantsGet(requestParameters: ApprenantRepresentantsGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantsGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantsGetSearchCriteriasRaw(requestParameters: ApprenantRepresentantsGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentants/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantRepresentantsGetSearchCriterias(requestParameters: ApprenantRepresentantsGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantRepresentantsGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantsGetSelectItemsRaw(requestParameters: ApprenantRepresentantsGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling apprenantRepresentantsGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentants/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async apprenantRepresentantsGetSelectItems(requestParameters: ApprenantRepresentantsGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantRepresentantsGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantRepresentantsSaveRaw(requestParameters: ApprenantRepresentantsSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantRepresentants/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbApprenantRepresentantDtoToJSON(requestParameters.FcbApprenantRepresentantDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbApprenantRepresentantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantRepresentantsSave(requestParameters: ApprenantRepresentantsSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantRepresentantsSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ApprenantSelectorGridDtoPaginatedResults,\n ApprenantSelectorSearch,\n DisplayNameDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n ApprenantSelectorGridDtoPaginatedResultsFromJSON,\n ApprenantSelectorGridDtoPaginatedResultsToJSON,\n ApprenantSelectorSearchFromJSON,\n ApprenantSelectorSearchToJSON,\n DisplayNameDtoFromJSON,\n DisplayNameDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ApprenantSelectorBaseSearchRequest {\n ApprenantSelectorSearch?: ApprenantSelectorSearch;\n}\n\nexport interface ApprenantSelectorGetDisplayNamesRequest {\n request_body?: Array;\n}\n\nexport interface ApprenantSelectorGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantSelectorGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ApprenantSelectorApi extends runtime.BaseAPI {\n\n /**\n */\n async apprenantSelectorBaseSearchRaw(requestParameters: ApprenantSelectorBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantSelector/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantSelectorSearchToJSON(requestParameters.ApprenantSelectorSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ApprenantSelectorGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantSelectorBaseSearch(requestParameters: ApprenantSelectorBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantSelectorBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSelectorGetDisplayNamesRaw(requestParameters: ApprenantSelectorGetDisplayNamesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantSelector/GetDisplayNames`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DisplayNameDtoFromJSON));\n }\n\n /**\n */\n async apprenantSelectorGetDisplayNames(requestParameters: ApprenantSelectorGetDisplayNamesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantSelectorGetDisplayNamesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSelectorGetSearchCriteriasRaw(requestParameters: ApprenantSelectorGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantSelector/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantSelectorGetSearchCriterias(requestParameters: ApprenantSelectorGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantSelectorGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantSelectorGetSelectItemsRaw(requestParameters: ApprenantSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling apprenantSelectorGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantSelector/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async apprenantSelectorGetSelectItems(requestParameters: ApprenantSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantSelectorGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRecherchestatPresenceApprenantDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheStatPresenceApprenantSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRecherchestatPresenceApprenantDtoPaginatedResultsFromJSON,\n FcbRecherchestatPresenceApprenantDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheStatPresenceApprenantSearchFromJSON,\n RechercheStatPresenceApprenantSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ApprenantStatistiquePresenceBaseSearchRequest {\n RechercheStatPresenceApprenantSearch?: RechercheStatPresenceApprenantSearch;\n}\n\nexport interface ApprenantStatistiquePresenceGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ApprenantStatistiquePresenceGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ApprenantStatistiquePresenceApi extends runtime.BaseAPI {\n\n /**\n */\n async apprenantStatistiquePresenceBaseSearchRaw(requestParameters: ApprenantStatistiquePresenceBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantStatistiquePresence/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheStatPresenceApprenantSearchToJSON(requestParameters.RechercheStatPresenceApprenantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchestatPresenceApprenantDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async apprenantStatistiquePresenceBaseSearch(requestParameters: ApprenantStatistiquePresenceBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.apprenantStatistiquePresenceBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantStatistiquePresenceGetSearchCriteriasRaw(requestParameters: ApprenantStatistiquePresenceGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantStatistiquePresence/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async apprenantStatistiquePresenceGetSearchCriterias(requestParameters: ApprenantStatistiquePresenceGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantStatistiquePresenceGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async apprenantStatistiquePresenceGetSelectItemsRaw(requestParameters: ApprenantStatistiquePresenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling apprenantStatistiquePresenceGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ApprenantStatistiquePresence/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async apprenantStatistiquePresenceGetSelectItems(requestParameters: ApprenantStatistiquePresenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.apprenantStatistiquePresenceGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AssuranceEditDto,\n AssuranceGridDtoPaginatedResults,\n AssuranceSearchDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n AssuranceEditDtoFromJSON,\n AssuranceEditDtoToJSON,\n AssuranceGridDtoPaginatedResultsFromJSON,\n AssuranceGridDtoPaginatedResultsToJSON,\n AssuranceSearchDtoFromJSON,\n AssuranceSearchDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface AssuranceBaseSearchRequest {\n AssuranceSearchDto?: AssuranceSearchDto;\n}\n\nexport interface AssuranceDeleteAssuranceRequest {\n id?: number;\n}\n\nexport interface AssuranceGetAssuranceRequest {\n id?: number;\n}\n\nexport interface AssuranceGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface AssuranceGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface AssuranceSaveAssuranceRequest {\n AssuranceEditDto?: AssuranceEditDto;\n}\n\n/**\n * \n */\nexport class AssuranceApi extends runtime.BaseAPI {\n\n /**\n */\n async assuranceBaseSearchRaw(requestParameters: AssuranceBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Assurance/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AssuranceSearchDtoToJSON(requestParameters.AssuranceSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AssuranceGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async assuranceBaseSearch(requestParameters: AssuranceBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.assuranceBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async assuranceDeleteAssuranceRaw(requestParameters: AssuranceDeleteAssuranceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Assurance`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async assuranceDeleteAssurance(requestParameters: AssuranceDeleteAssuranceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.assuranceDeleteAssuranceRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async assuranceGetAssuranceRaw(requestParameters: AssuranceGetAssuranceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Assurance`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AssuranceEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async assuranceGetAssurance(requestParameters: AssuranceGetAssuranceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.assuranceGetAssuranceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async assuranceGetSearchCriteriasRaw(requestParameters: AssuranceGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Assurance/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async assuranceGetSearchCriterias(requestParameters: AssuranceGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.assuranceGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async assuranceGetSelectItemsRaw(requestParameters: AssuranceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling assuranceGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Assurance/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async assuranceGetSelectItems(requestParameters: AssuranceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.assuranceGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async assuranceSaveAssuranceRaw(requestParameters: AssuranceSaveAssuranceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Assurance`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: AssuranceEditDtoToJSON(requestParameters.AssuranceEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AssuranceEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async assuranceSaveAssurance(requestParameters: AssuranceSaveAssuranceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.assuranceSaveAssuranceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AzureUserDto,\n BooleanDto,\n FcbApprenantDto,\n FcbFormateurDto,\n} from '../models/index';\nimport {\n AzureUserDtoFromJSON,\n AzureUserDtoToJSON,\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FcbApprenantDtoFromJSON,\n FcbApprenantDtoToJSON,\n FcbFormateurDtoFromJSON,\n FcbFormateurDtoToJSON,\n} from '../models/index';\n\nexport interface AzureCreateApprenantRequest {\n FcbApprenantDto?: FcbApprenantDto;\n}\n\nexport interface AzureCreateFormateurRequest {\n FcbFormateurDto?: FcbFormateurDto;\n}\n\nexport interface AzureEnableApprenantRequest {\n id?: number;\n o365UserId?: string;\n accountEnabled?: boolean;\n}\n\nexport interface AzureEnableFormateurRequest {\n id?: number;\n o365UserId?: string;\n accountEnabled?: boolean;\n}\n\nexport interface AzureGetAsyncRequest {\n o365UserId?: string;\n}\n\n/**\n * \n */\nexport class AzureApi extends runtime.BaseAPI {\n\n /**\n */\n async azureCreateApprenantRaw(requestParameters: AzureCreateApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Azure/CreateApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbApprenantDtoToJSON(requestParameters.FcbApprenantDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AzureUserDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async azureCreateApprenant(requestParameters: AzureCreateApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.azureCreateApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async azureCreateFormateurRaw(requestParameters: AzureCreateFormateurRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Azure/CreateFormateur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurDtoToJSON(requestParameters.FcbFormateurDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AzureUserDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async azureCreateFormateur(requestParameters: AzureCreateFormateurRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.azureCreateFormateurRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async azureEnableApprenantRaw(requestParameters: AzureEnableApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.o365UserId !== undefined) {\n queryParameters['o365UserId'] = requestParameters.o365UserId;\n }\n\n if (requestParameters.accountEnabled !== undefined) {\n queryParameters['accountEnabled'] = requestParameters.accountEnabled;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Azure/EnableApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async azureEnableApprenant(requestParameters: AzureEnableApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.azureEnableApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async azureEnableFormateurRaw(requestParameters: AzureEnableFormateurRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.o365UserId !== undefined) {\n queryParameters['o365UserId'] = requestParameters.o365UserId;\n }\n\n if (requestParameters.accountEnabled !== undefined) {\n queryParameters['accountEnabled'] = requestParameters.accountEnabled;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Azure/EnableFormateur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async azureEnableFormateur(requestParameters: AzureEnableFormateurRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.azureEnableFormateurRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async azureGetAsyncRaw(requestParameters: AzureGetAsyncRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.o365UserId !== undefined) {\n queryParameters['o365UserId'] = requestParameters.o365UserId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Azure`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AzureUserDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async azureGetAsync(requestParameters: AzureGetAsyncRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.azureGetAsyncRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BulletinApprenantRecapitulatifSearch,\n FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n BulletinApprenantRecapitulatifSearchFromJSON,\n BulletinApprenantRecapitulatifSearchToJSON,\n FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsFromJSON,\n FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface BulletinApprenantRecaputilatifBaseSearchRequest {\n BulletinApprenantRecapitulatifSearch?: BulletinApprenantRecapitulatifSearch;\n}\n\nexport interface BulletinApprenantRecaputilatifGetClasseNameRequest {\n id?: number;\n anneeScolaire?: string;\n}\n\nexport interface BulletinApprenantRecaputilatifGetFirstTypeCoursInscriptionRequest {\n id?: number;\n anneeScolaire?: string;\n}\n\nexport interface BulletinApprenantRecaputilatifGetListTypeCoursInscriptionRequest {\n id?: number;\n anneeScolaire?: string;\n}\n\nexport interface BulletinApprenantRecaputilatifGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface BulletinApprenantRecaputilatifGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class BulletinApprenantRecaputilatifApi extends runtime.BaseAPI {\n\n /**\n */\n async bulletinApprenantRecaputilatifBaseSearchRaw(requestParameters: BulletinApprenantRecaputilatifBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantRecaputilatif/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: BulletinApprenantRecapitulatifSearchToJSON(requestParameters.BulletinApprenantRecapitulatifSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifBaseSearch(requestParameters: BulletinApprenantRecaputilatifBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantRecaputilatifBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetClasseNameRaw(requestParameters: BulletinApprenantRecaputilatifGetClasseNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantRecaputilatif/getClasseName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetClasseName(requestParameters: BulletinApprenantRecaputilatifGetClasseNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantRecaputilatifGetClasseNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetFirstTypeCoursInscriptionRaw(requestParameters: BulletinApprenantRecaputilatifGetFirstTypeCoursInscriptionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantRecaputilatif/getTypeCours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetFirstTypeCoursInscription(requestParameters: BulletinApprenantRecaputilatifGetFirstTypeCoursInscriptionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantRecaputilatifGetFirstTypeCoursInscriptionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetListTypeCoursInscriptionRaw(requestParameters: BulletinApprenantRecaputilatifGetListTypeCoursInscriptionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantRecaputilatif/listTypeCours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetListTypeCoursInscription(requestParameters: BulletinApprenantRecaputilatifGetListTypeCoursInscriptionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.bulletinApprenantRecaputilatifGetListTypeCoursInscriptionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetSearchCriteriasRaw(requestParameters: BulletinApprenantRecaputilatifGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantRecaputilatif/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetSearchCriterias(requestParameters: BulletinApprenantRecaputilatifGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.bulletinApprenantRecaputilatifGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetSelectItemsRaw(requestParameters: BulletinApprenantRecaputilatifGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling bulletinApprenantRecaputilatifGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantRecaputilatif/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async bulletinApprenantRecaputilatifGetSelectItems(requestParameters: BulletinApprenantRecaputilatifGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.bulletinApprenantRecaputilatifGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n BulletinApprenantRecapitulatifSearch,\n BulletinDetailSearch,\n FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults,\n FcbBulletinApprenantTypeDetailDto,\n FcbBulletinApprenantTypeDto,\n FcbBulletinApprenantTypeSaveDto,\n FcbResultatTypeBulletinSession2GridDtoPaginatedResults,\n FcbResultatTypeGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n BulletinApprenantRecapitulatifSearchFromJSON,\n BulletinApprenantRecapitulatifSearchToJSON,\n BulletinDetailSearchFromJSON,\n BulletinDetailSearchToJSON,\n FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsFromJSON,\n FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsToJSON,\n FcbBulletinApprenantTypeDetailDtoFromJSON,\n FcbBulletinApprenantTypeDetailDtoToJSON,\n FcbBulletinApprenantTypeDtoFromJSON,\n FcbBulletinApprenantTypeDtoToJSON,\n FcbBulletinApprenantTypeSaveDtoFromJSON,\n FcbBulletinApprenantTypeSaveDtoToJSON,\n FcbResultatTypeBulletinSession2GridDtoPaginatedResultsFromJSON,\n FcbResultatTypeBulletinSession2GridDtoPaginatedResultsToJSON,\n FcbResultatTypeGridDtoPaginatedResultsFromJSON,\n FcbResultatTypeGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface BulletinApprenantTypeBaseSearchRequest {\n BulletinApprenantRecapitulatifSearch?: BulletinApprenantRecapitulatifSearch;\n}\n\nexport interface BulletinApprenantTypeBulletinDeliberationSession1SearchRequest {\n BulletinDetailSearch?: BulletinDetailSearch;\n}\n\nexport interface BulletinApprenantTypeBulletinDeliberationSession2SearchRequest {\n BulletinDetailSearch?: BulletinDetailSearch;\n}\n\nexport interface BulletinApprenantTypeGetBulletinTypeRequest {\n idApprenant?: number;\n anneeScolaire?: string;\n idTypeCours?: string;\n}\n\nexport interface BulletinApprenantTypeGetBulletinTypeByIdRequest {\n id?: number;\n}\n\nexport interface BulletinApprenantTypeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface BulletinApprenantTypeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface BulletinApprenantTypeRefreshDeliberationAsyncRequest {\n idApprenant?: number;\n anneeScolaire?: string;\n}\n\nexport interface BulletinApprenantTypeRefreshPresenceDeliberationRequest {\n idApprenant?: number;\n anneeScolaire?: string;\n}\n\nexport interface BulletinApprenantTypeSaveRequest {\n FcbBulletinApprenantTypeSaveDto?: FcbBulletinApprenantTypeSaveDto;\n}\n\nexport interface BulletinApprenantTypeSaveBulletinApprenantTypeRequest {\n FcbBulletinApprenantTypeDto?: FcbBulletinApprenantTypeDto;\n}\n\nexport interface BulletinApprenantTypeSaveBulletinDate2SessRequest {\n date2Sess?: Date;\n idBulletinInscriptionMatiere?: number;\n}\n\nexport interface BulletinApprenantTypeSaveBulletinDeliberationTypeRequest {\n idDeliberationType?: number;\n idBulletinInscriptionMatiere?: number;\n secondeSess?: boolean;\n}\n\nexport interface BulletinApprenantTypeSaveBulletinRemediationConseilleeRequest {\n conseille?: boolean;\n idBulletinInscriptionMatiere?: number;\n}\n\nexport interface BulletinApprenantTypeSaveBulletinRemediationObligatoireRequest {\n obligatoire?: boolean;\n idBulletinInscriptionMatiere?: number;\n}\n\nexport interface BulletinApprenantTypeSaveBulletinTotalDateRequest {\n date?: Date;\n idbulletinApprenant?: number;\n}\n\nexport interface BulletinApprenantTypeSaveBulletinTotalGradeRequest {\n idgrade?: number;\n idbulletinApprenant?: number;\n}\n\nexport interface BulletinApprenantTypeSetBulletinApprenantTypeVisibleRequest {\n FcbBulletinApprenantTypeDetailDto?: FcbBulletinApprenantTypeDetailDto;\n}\n\n/**\n * \n */\nexport class BulletinApprenantTypeApi extends runtime.BaseAPI {\n\n /**\n */\n async bulletinApprenantTypeBaseSearchRaw(requestParameters: BulletinApprenantTypeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: BulletinApprenantRecapitulatifSearchToJSON(requestParameters.BulletinApprenantRecapitulatifSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantTypeBaseSearch(requestParameters: BulletinApprenantTypeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeBulletinDeliberationSession1SearchRaw(requestParameters: BulletinApprenantTypeBulletinDeliberationSession1SearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/Deliberation1Search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: BulletinDetailSearchToJSON(requestParameters.BulletinDetailSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbResultatTypeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantTypeBulletinDeliberationSession1Search(requestParameters: BulletinApprenantTypeBulletinDeliberationSession1SearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeBulletinDeliberationSession1SearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeBulletinDeliberationSession2SearchRaw(requestParameters: BulletinApprenantTypeBulletinDeliberationSession2SearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/Deliberation2Search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: BulletinDetailSearchToJSON(requestParameters.BulletinDetailSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbResultatTypeBulletinSession2GridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantTypeBulletinDeliberationSession2Search(requestParameters: BulletinApprenantTypeBulletinDeliberationSession2SearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeBulletinDeliberationSession2SearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeGetBulletinTypeRaw(requestParameters: BulletinApprenantTypeGetBulletinTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n if (requestParameters.idTypeCours !== undefined) {\n queryParameters['idTypeCours'] = requestParameters.idTypeCours;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FcbBulletinApprenantTypeDetailDtoFromJSON));\n }\n\n /**\n */\n async bulletinApprenantTypeGetBulletinType(requestParameters: BulletinApprenantTypeGetBulletinTypeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.bulletinApprenantTypeGetBulletinTypeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeGetBulletinTypeByIdRaw(requestParameters: BulletinApprenantTypeGetBulletinTypeByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/GetById`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbBulletinApprenantTypeDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantTypeGetBulletinTypeById(requestParameters: BulletinApprenantTypeGetBulletinTypeByIdRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeGetBulletinTypeByIdRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeGetSearchCriteriasRaw(requestParameters: BulletinApprenantTypeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async bulletinApprenantTypeGetSearchCriterias(requestParameters: BulletinApprenantTypeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.bulletinApprenantTypeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeGetSelectItemsRaw(requestParameters: BulletinApprenantTypeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling bulletinApprenantTypeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async bulletinApprenantTypeGetSelectItems(requestParameters: BulletinApprenantTypeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.bulletinApprenantTypeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeRefreshDeliberationAsyncRaw(requestParameters: BulletinApprenantTypeRefreshDeliberationAsyncRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/RefreshDeliberation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbBulletinApprenantTypeDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantTypeRefreshDeliberationAsync(requestParameters: BulletinApprenantTypeRefreshDeliberationAsyncRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeRefreshDeliberationAsyncRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeRefreshPresenceDeliberationRaw(requestParameters: BulletinApprenantTypeRefreshPresenceDeliberationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/RefreshPresenceDeliberation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbBulletinApprenantTypeDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantTypeRefreshPresenceDeliberation(requestParameters: BulletinApprenantTypeRefreshPresenceDeliberationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeRefreshPresenceDeliberationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeSaveRaw(requestParameters: BulletinApprenantTypeSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbBulletinApprenantTypeSaveDtoToJSON(requestParameters.FcbBulletinApprenantTypeSaveDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbBulletinApprenantTypeDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantTypeSave(requestParameters: BulletinApprenantTypeSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinApprenantTypeRaw(requestParameters: BulletinApprenantTypeSaveBulletinApprenantTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/SaveBulletinApprenantType`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbBulletinApprenantTypeDtoToJSON(requestParameters.FcbBulletinApprenantTypeDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbBulletinApprenantTypeDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinApprenantType(requestParameters: BulletinApprenantTypeSaveBulletinApprenantTypeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeSaveBulletinApprenantTypeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinDate2SessRaw(requestParameters: BulletinApprenantTypeSaveBulletinDate2SessRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.date2Sess !== undefined) {\n queryParameters['date2Sess'] = (requestParameters.date2Sess as any).toISOString();\n }\n\n if (requestParameters.idBulletinInscriptionMatiere !== undefined) {\n queryParameters['idBulletinInscriptionMatiere'] = requestParameters.idBulletinInscriptionMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/SaveBulletinDate2Sess`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinDate2Sess(requestParameters: BulletinApprenantTypeSaveBulletinDate2SessRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeSaveBulletinDate2SessRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinDeliberationTypeRaw(requestParameters: BulletinApprenantTypeSaveBulletinDeliberationTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idDeliberationType !== undefined) {\n queryParameters['idDeliberationType'] = requestParameters.idDeliberationType;\n }\n\n if (requestParameters.idBulletinInscriptionMatiere !== undefined) {\n queryParameters['idBulletinInscriptionMatiere'] = requestParameters.idBulletinInscriptionMatiere;\n }\n\n if (requestParameters.secondeSess !== undefined) {\n queryParameters['secondeSess'] = requestParameters.secondeSess;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/SaveBulletinDeliberationType`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinDeliberationType(requestParameters: BulletinApprenantTypeSaveBulletinDeliberationTypeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeSaveBulletinDeliberationTypeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinRemediationConseilleeRaw(requestParameters: BulletinApprenantTypeSaveBulletinRemediationConseilleeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.conseille !== undefined) {\n queryParameters['conseille'] = requestParameters.conseille;\n }\n\n if (requestParameters.idBulletinInscriptionMatiere !== undefined) {\n queryParameters['idBulletinInscriptionMatiere'] = requestParameters.idBulletinInscriptionMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/SaveBulletinRemediationConseillee`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinRemediationConseillee(requestParameters: BulletinApprenantTypeSaveBulletinRemediationConseilleeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeSaveBulletinRemediationConseilleeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinRemediationObligatoireRaw(requestParameters: BulletinApprenantTypeSaveBulletinRemediationObligatoireRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.obligatoire !== undefined) {\n queryParameters['obligatoire'] = requestParameters.obligatoire;\n }\n\n if (requestParameters.idBulletinInscriptionMatiere !== undefined) {\n queryParameters['idBulletinInscriptionMatiere'] = requestParameters.idBulletinInscriptionMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/SaveBulletinRemediationObligatoire`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinRemediationObligatoire(requestParameters: BulletinApprenantTypeSaveBulletinRemediationObligatoireRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeSaveBulletinRemediationObligatoireRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinTotalDateRaw(requestParameters: BulletinApprenantTypeSaveBulletinTotalDateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.date !== undefined) {\n queryParameters['date'] = (requestParameters.date as any).toISOString();\n }\n\n if (requestParameters.idbulletinApprenant !== undefined) {\n queryParameters['idbulletinApprenant'] = requestParameters.idbulletinApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/SaveBulletinTotalDate`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinTotalDate(requestParameters: BulletinApprenantTypeSaveBulletinTotalDateRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeSaveBulletinTotalDateRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinTotalGradeRaw(requestParameters: BulletinApprenantTypeSaveBulletinTotalGradeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idgrade !== undefined) {\n queryParameters['idgrade'] = requestParameters.idgrade;\n }\n\n if (requestParameters.idbulletinApprenant !== undefined) {\n queryParameters['idbulletinApprenant'] = requestParameters.idbulletinApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/SaveBulletinTotalGrade`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async bulletinApprenantTypeSaveBulletinTotalGrade(requestParameters: BulletinApprenantTypeSaveBulletinTotalGradeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeSaveBulletinTotalGradeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async bulletinApprenantTypeSetBulletinApprenantTypeVisibleRaw(requestParameters: BulletinApprenantTypeSetBulletinApprenantTypeVisibleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/BulletinApprenantType/SetBulletinApprenantTypeVisible`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbBulletinApprenantTypeDetailDtoToJSON(requestParameters.FcbBulletinApprenantTypeDetailDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async bulletinApprenantTypeSetBulletinApprenantTypeVisible(requestParameters: BulletinApprenantTypeSetBulletinApprenantTypeVisibleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.bulletinApprenantTypeSetBulletinApprenantTypeVisibleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n CalendrierGlobalSearch,\n CalendrierSearch,\n FcbCalendrierDto,\n FcbCalendrierGridDtoPaginatedResults,\n FcbRecherchecalendrierClasseDtoPaginatedResults,\n FcbRecherchecalendrierFormateurDtoPaginatedResults,\n FcbRecherchecalendrierVisiteDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n CalendrierGlobalSearchFromJSON,\n CalendrierGlobalSearchToJSON,\n CalendrierSearchFromJSON,\n CalendrierSearchToJSON,\n FcbCalendrierDtoFromJSON,\n FcbCalendrierDtoToJSON,\n FcbCalendrierGridDtoPaginatedResultsFromJSON,\n FcbCalendrierGridDtoPaginatedResultsToJSON,\n FcbRecherchecalendrierClasseDtoPaginatedResultsFromJSON,\n FcbRecherchecalendrierClasseDtoPaginatedResultsToJSON,\n FcbRecherchecalendrierFormateurDtoPaginatedResultsFromJSON,\n FcbRecherchecalendrierFormateurDtoPaginatedResultsToJSON,\n FcbRecherchecalendrierVisiteDtoPaginatedResultsFromJSON,\n FcbRecherchecalendrierVisiteDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface CalendrierBaseSearchRequest {\n CalendrierSearch?: CalendrierSearch;\n}\n\nexport interface CalendrierDeleteRequest {\n id?: number;\n}\n\nexport interface CalendrierGetRequest {\n id?: number;\n}\n\nexport interface CalendrierGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface CalendrierGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface CalendrierGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface CalendrierSaveRequest {\n FcbCalendrierDto?: FcbCalendrierDto;\n}\n\nexport interface CalendrierSearchClassesRequest {\n CalendrierGlobalSearch?: CalendrierGlobalSearch;\n}\n\nexport interface CalendrierSearchFormateursRequest {\n CalendrierGlobalSearch?: CalendrierGlobalSearch;\n}\n\nexport interface CalendrierSearchVisitesRequest {\n CalendrierGlobalSearch?: CalendrierGlobalSearch;\n}\n\n/**\n * \n */\nexport class CalendrierApi extends runtime.BaseAPI {\n\n /**\n */\n async calendrierBaseSearchRaw(requestParameters: CalendrierBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CalendrierSearchToJSON(requestParameters.CalendrierSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCalendrierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async calendrierBaseSearch(requestParameters: CalendrierBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.calendrierBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async calendrierDeleteRaw(requestParameters: CalendrierDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async calendrierDelete(requestParameters: CalendrierDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.calendrierDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async calendrierGetRaw(requestParameters: CalendrierGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCalendrierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async calendrierGet(requestParameters: CalendrierGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.calendrierGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async calendrierGetDisplayNameRaw(requestParameters: CalendrierGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async calendrierGetDisplayName(requestParameters: CalendrierGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.calendrierGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async calendrierGetSearchCriteriasRaw(requestParameters: CalendrierGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async calendrierGetSearchCriterias(requestParameters: CalendrierGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.calendrierGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async calendrierGetSelectItemsRaw(requestParameters: CalendrierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling calendrierGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async calendrierGetSelectItems(requestParameters: CalendrierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.calendrierGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async calendrierSaveRaw(requestParameters: CalendrierSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbCalendrierDtoToJSON(requestParameters.FcbCalendrierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCalendrierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async calendrierSave(requestParameters: CalendrierSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.calendrierSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async calendrierSearchClassesRaw(requestParameters: CalendrierSearchClassesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier/SearchClasses`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CalendrierGlobalSearchToJSON(requestParameters.CalendrierGlobalSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchecalendrierClasseDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async calendrierSearchClasses(requestParameters: CalendrierSearchClassesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.calendrierSearchClassesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async calendrierSearchFormateursRaw(requestParameters: CalendrierSearchFormateursRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier/SearchFormateurs`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CalendrierGlobalSearchToJSON(requestParameters.CalendrierGlobalSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchecalendrierFormateurDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async calendrierSearchFormateurs(requestParameters: CalendrierSearchFormateursRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.calendrierSearchFormateursRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async calendrierSearchVisitesRaw(requestParameters: CalendrierSearchVisitesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Calendrier/SearchVisites`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CalendrierGlobalSearchToJSON(requestParameters.CalendrierGlobalSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchecalendrierVisiteDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async calendrierSearchVisites(requestParameters: CalendrierSearchVisitesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.calendrierSearchVisitesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n CarteIdentiteExistingUserDto,\n} from '../models/index';\nimport {\n CarteIdentiteExistingUserDtoFromJSON,\n CarteIdentiteExistingUserDtoToJSON,\n} from '../models/index';\n\nexport interface CarteIdentiteCheckExistingRequest {\n nationalNb?: string;\n nom?: string;\n prenom?: string;\n dateNaissance?: Date;\n}\n\n/**\n * \n */\nexport class CarteIdentiteApi extends runtime.BaseAPI {\n\n /**\n */\n async carteIdentiteCheckExistingRaw(requestParameters: CarteIdentiteCheckExistingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.nationalNb !== undefined) {\n queryParameters['nationalNb'] = requestParameters.nationalNb;\n }\n\n if (requestParameters.nom !== undefined) {\n queryParameters['nom'] = requestParameters.nom;\n }\n\n if (requestParameters.prenom !== undefined) {\n queryParameters['prenom'] = requestParameters.prenom;\n }\n\n if (requestParameters.dateNaissance !== undefined) {\n queryParameters['dateNaissance'] = (requestParameters.dateNaissance as any).toISOString();\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CarteIdentite/checkExisting`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CarteIdentiteExistingUserDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async carteIdentiteCheckExisting(requestParameters: CarteIdentiteCheckExistingRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.carteIdentiteCheckExistingRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async carteIdentiteDownloadRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CarteIdentite/downloadBeid`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async carteIdentiteDownload(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.carteIdentiteDownloadRaw(initOverrides);\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n CentreSearch,\n FcbCentreDto,\n FcbCentreGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n CentreSearchFromJSON,\n CentreSearchToJSON,\n FcbCentreDtoFromJSON,\n FcbCentreDtoToJSON,\n FcbCentreGridDtoPaginatedResultsFromJSON,\n FcbCentreGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface CentreBaseSearchRequest {\n CentreSearch?: CentreSearch;\n}\n\nexport interface CentreCodeExistsRequest {\n code?: string;\n}\n\nexport interface CentreDeleteRequest {\n id?: number;\n}\n\nexport interface CentreGetRequest {\n id?: number;\n}\n\nexport interface CentreGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface CentreGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface CentreGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface CentreIsAnyExterieurRequest {\n request_body?: Array;\n}\n\nexport interface CentreSaveRequest {\n FcbCentreDto?: FcbCentreDto;\n}\n\nexport interface CentreSearchCentreIdsRequest {\n CentreSearch?: CentreSearch;\n}\n\n/**\n * \n */\nexport class CentreApi extends runtime.BaseAPI {\n\n /**\n */\n async centreBaseSearchRaw(requestParameters: CentreBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CentreSearchToJSON(requestParameters.CentreSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCentreGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async centreBaseSearch(requestParameters: CentreBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.centreBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async centreCodeExistsRaw(requestParameters: CentreCodeExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/codeExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async centreCodeExists(requestParameters: CentreCodeExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.centreCodeExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async centreDeleteRaw(requestParameters: CentreDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/delete`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async centreDelete(requestParameters: CentreDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.centreDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async centreGetRaw(requestParameters: CentreGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/get`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCentreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async centreGet(requestParameters: CentreGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.centreGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async centreGetDisplayNameRaw(requestParameters: CentreGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async centreGetDisplayName(requestParameters: CentreGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.centreGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async centreGetSearchCriteriasRaw(requestParameters: CentreGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async centreGetSearchCriterias(requestParameters: CentreGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.centreGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async centreGetSelectItemsRaw(requestParameters: CentreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling centreGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async centreGetSelectItems(requestParameters: CentreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.centreGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async centreIsAnyExterieurRaw(requestParameters: CentreIsAnyExterieurRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/IsAnyExterieur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async centreIsAnyExterieur(requestParameters: CentreIsAnyExterieurRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.centreIsAnyExterieurRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async centreSaveRaw(requestParameters: CentreSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbCentreDtoToJSON(requestParameters.FcbCentreDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCentreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async centreSave(requestParameters: CentreSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.centreSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async centreSearchCentreIdsRaw(requestParameters: CentreSearchCentreIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Centre/searchCentresIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CentreSearchToJSON(requestParameters.CentreSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async centreSearchCentreIds(requestParameters: CentreSearchCentreIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.centreSearchCentreIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n ChangementClasseSearch,\n FcbChangementClasseDto,\n FcbChangementClasseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n ChangementClasseSearchFromJSON,\n ChangementClasseSearchToJSON,\n FcbChangementClasseDtoFromJSON,\n FcbChangementClasseDtoToJSON,\n FcbChangementClasseGridDtoPaginatedResultsFromJSON,\n FcbChangementClasseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ChangementClasseBaseSearchRequest {\n ChangementClasseSearch?: ChangementClasseSearch;\n}\n\nexport interface ChangementClasseCheckHasEvalsToDeleteRequest {\n idChangementClasse?: number;\n}\n\nexport interface ChangementClasseDeleteRequest {\n id?: number;\n}\n\nexport interface ChangementClasseGetRequest {\n id?: number;\n}\n\nexport interface ChangementClasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ChangementClasseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ChangementClasseOtherInscriptionForClasseExistsRequest {\n idinscription?: number;\n idclasse?: number;\n}\n\nexport interface ChangementClasseSaveRequest {\n FcbChangementClasseDto?: FcbChangementClasseDto;\n}\n\n/**\n * \n */\nexport class ChangementClasseApi extends runtime.BaseAPI {\n\n /**\n */\n async changementClasseBaseSearchRaw(requestParameters: ChangementClasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChangementClasse/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChangementClasseSearchToJSON(requestParameters.ChangementClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbChangementClasseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async changementClasseBaseSearch(requestParameters: ChangementClasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.changementClasseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async changementClasseCheckHasEvalsToDeleteRaw(requestParameters: ChangementClasseCheckHasEvalsToDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idChangementClasse !== undefined) {\n queryParameters['idChangementClasse'] = requestParameters.idChangementClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChangementClasse/CheckHasEvalsToDelete`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async changementClasseCheckHasEvalsToDelete(requestParameters: ChangementClasseCheckHasEvalsToDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.changementClasseCheckHasEvalsToDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async changementClasseDeleteRaw(requestParameters: ChangementClasseDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChangementClasse`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async changementClasseDelete(requestParameters: ChangementClasseDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.changementClasseDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async changementClasseGetRaw(requestParameters: ChangementClasseGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChangementClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbChangementClasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async changementClasseGet(requestParameters: ChangementClasseGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.changementClasseGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async changementClasseGetSearchCriteriasRaw(requestParameters: ChangementClasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChangementClasse/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async changementClasseGetSearchCriterias(requestParameters: ChangementClasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.changementClasseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async changementClasseGetSelectItemsRaw(requestParameters: ChangementClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling changementClasseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChangementClasse/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async changementClasseGetSelectItems(requestParameters: ChangementClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.changementClasseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async changementClasseOtherInscriptionForClasseExistsRaw(requestParameters: ChangementClasseOtherInscriptionForClasseExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idinscription !== undefined) {\n queryParameters['idinscription'] = requestParameters.idinscription;\n }\n\n if (requestParameters.idclasse !== undefined) {\n queryParameters['idclasse'] = requestParameters.idclasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChangementClasse/OtherInscriptionForClasseExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async changementClasseOtherInscriptionForClasseExists(requestParameters: ChangementClasseOtherInscriptionForClasseExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.changementClasseOtherInscriptionForClasseExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async changementClasseSaveRaw(requestParameters: ChangementClasseSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChangementClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbChangementClasseDtoToJSON(requestParameters.FcbChangementClasseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbChangementClasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async changementClasseSave(requestParameters: ChangementClasseSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.changementClasseSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChefEntrepriseEditDto,\n ChefEntrepriseGridDtoPaginatedResults,\n ChefEntrepriseSearchDto,\n ChefEntrepriseSiegeSocialGridDtoPaginatedResults,\n ChefEntrepriseSiegeSocialSearch,\n ChefsEntrepriseDoublonGridDtoPaginatedResults,\n ChefsEntrepriseDoublonSearchDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n ChefEntrepriseEditDtoFromJSON,\n ChefEntrepriseEditDtoToJSON,\n ChefEntrepriseGridDtoPaginatedResultsFromJSON,\n ChefEntrepriseGridDtoPaginatedResultsToJSON,\n ChefEntrepriseSearchDtoFromJSON,\n ChefEntrepriseSearchDtoToJSON,\n ChefEntrepriseSiegeSocialGridDtoPaginatedResultsFromJSON,\n ChefEntrepriseSiegeSocialGridDtoPaginatedResultsToJSON,\n ChefEntrepriseSiegeSocialSearchFromJSON,\n ChefEntrepriseSiegeSocialSearchToJSON,\n ChefsEntrepriseDoublonGridDtoPaginatedResultsFromJSON,\n ChefsEntrepriseDoublonGridDtoPaginatedResultsToJSON,\n ChefsEntrepriseDoublonSearchDtoFromJSON,\n ChefsEntrepriseDoublonSearchDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ChefEntrepriseBaseSearchRequest {\n ChefEntrepriseSearchDto?: ChefEntrepriseSearchDto;\n}\n\nexport interface ChefEntrepriseGetChefEntrepriseRequest {\n id?: number;\n}\n\nexport interface ChefEntrepriseGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ChefEntrepriseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ChefEntrepriseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ChefEntrepriseSaveChefEntrepriseRequest {\n ChefEntrepriseEditDto?: ChefEntrepriseEditDto;\n}\n\nexport interface ChefEntrepriseSearchChefEntrepriseIdsRequest {\n ChefEntrepriseSearchDto?: ChefEntrepriseSearchDto;\n}\n\nexport interface ChefEntrepriseSearchChefEntrepriseSiegeSocialRequest {\n ChefEntrepriseSiegeSocialSearch?: ChefEntrepriseSiegeSocialSearch;\n}\n\nexport interface ChefEntrepriseSearchDoublonsChefsEntrepriseRequest {\n ChefsEntrepriseDoublonSearchDto?: ChefsEntrepriseDoublonSearchDto;\n}\n\n/**\n * \n */\nexport class ChefEntrepriseApi extends runtime.BaseAPI {\n\n /**\n */\n async chefEntrepriseBaseSearchRaw(requestParameters: ChefEntrepriseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntreprise/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChefEntrepriseSearchDtoToJSON(requestParameters.ChefEntrepriseSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefEntrepriseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async chefEntrepriseBaseSearch(requestParameters: ChefEntrepriseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.chefEntrepriseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseGetChefEntrepriseRaw(requestParameters: ChefEntrepriseGetChefEntrepriseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntreprise`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefEntrepriseEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async chefEntrepriseGetChefEntreprise(requestParameters: ChefEntrepriseGetChefEntrepriseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.chefEntrepriseGetChefEntrepriseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseGetDisplayNameRaw(requestParameters: ChefEntrepriseGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntreprise/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async chefEntrepriseGetDisplayName(requestParameters: ChefEntrepriseGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.chefEntrepriseGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseGetSearchCriteriasRaw(requestParameters: ChefEntrepriseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntreprise/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async chefEntrepriseGetSearchCriterias(requestParameters: ChefEntrepriseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.chefEntrepriseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseGetSelectItemsRaw(requestParameters: ChefEntrepriseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling chefEntrepriseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntreprise/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async chefEntrepriseGetSelectItems(requestParameters: ChefEntrepriseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.chefEntrepriseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseSaveChefEntrepriseRaw(requestParameters: ChefEntrepriseSaveChefEntrepriseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntreprise`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChefEntrepriseEditDtoToJSON(requestParameters.ChefEntrepriseEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefEntrepriseEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async chefEntrepriseSaveChefEntreprise(requestParameters: ChefEntrepriseSaveChefEntrepriseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.chefEntrepriseSaveChefEntrepriseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseSearchChefEntrepriseIdsRaw(requestParameters: ChefEntrepriseSearchChefEntrepriseIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntreprise/SearchChefEntrepriseIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChefEntrepriseSearchDtoToJSON(requestParameters.ChefEntrepriseSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async chefEntrepriseSearchChefEntrepriseIds(requestParameters: ChefEntrepriseSearchChefEntrepriseIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.chefEntrepriseSearchChefEntrepriseIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseSearchChefEntrepriseSiegeSocialRaw(requestParameters: ChefEntrepriseSearchChefEntrepriseSiegeSocialRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntreprise/SearchChefEntrepriseSiegeSocial`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChefEntrepriseSiegeSocialSearchToJSON(requestParameters.ChefEntrepriseSiegeSocialSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefEntrepriseSiegeSocialGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async chefEntrepriseSearchChefEntrepriseSiegeSocial(requestParameters: ChefEntrepriseSearchChefEntrepriseSiegeSocialRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.chefEntrepriseSearchChefEntrepriseSiegeSocialRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseSearchDoublonsChefsEntrepriseRaw(requestParameters: ChefEntrepriseSearchDoublonsChefsEntrepriseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntreprise/SearchDoublons`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChefsEntrepriseDoublonSearchDtoToJSON(requestParameters.ChefsEntrepriseDoublonSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefsEntrepriseDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async chefEntrepriseSearchDoublonsChefsEntreprise(requestParameters: ChefEntrepriseSearchDoublonsChefsEntrepriseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.chefEntrepriseSearchDoublonsChefsEntrepriseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChefEntrepriseDisplayNameDto,\n ChefEntrepriseSelectorGridDtoPaginatedResults,\n ChefEntrepriseSelectorSearch,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n ChefEntrepriseDisplayNameDtoFromJSON,\n ChefEntrepriseDisplayNameDtoToJSON,\n ChefEntrepriseSelectorGridDtoPaginatedResultsFromJSON,\n ChefEntrepriseSelectorGridDtoPaginatedResultsToJSON,\n ChefEntrepriseSelectorSearchFromJSON,\n ChefEntrepriseSelectorSearchToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ChefEntrepriseSelectorBaseSearchRequest {\n ChefEntrepriseSelectorSearch?: ChefEntrepriseSelectorSearch;\n}\n\nexport interface ChefEntrepriseSelectorGetDisplayNamesRequest {\n idsiegeSocial?: number;\n request_body?: Array;\n}\n\nexport interface ChefEntrepriseSelectorGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ChefEntrepriseSelectorGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ChefEntrepriseSelectorApi extends runtime.BaseAPI {\n\n /**\n */\n async chefEntrepriseSelectorBaseSearchRaw(requestParameters: ChefEntrepriseSelectorBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntrepriseSelector/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChefEntrepriseSelectorSearchToJSON(requestParameters.ChefEntrepriseSelectorSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefEntrepriseSelectorGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async chefEntrepriseSelectorBaseSearch(requestParameters: ChefEntrepriseSelectorBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.chefEntrepriseSelectorBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseSelectorGetDisplayNamesRaw(requestParameters: ChefEntrepriseSelectorGetDisplayNamesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntrepriseSelector/GetDisplayNames`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ChefEntrepriseDisplayNameDtoFromJSON));\n }\n\n /**\n */\n async chefEntrepriseSelectorGetDisplayNames(requestParameters: ChefEntrepriseSelectorGetDisplayNamesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.chefEntrepriseSelectorGetDisplayNamesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseSelectorGetSearchCriteriasRaw(requestParameters: ChefEntrepriseSelectorGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntrepriseSelector/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async chefEntrepriseSelectorGetSearchCriterias(requestParameters: ChefEntrepriseSelectorGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.chefEntrepriseSelectorGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async chefEntrepriseSelectorGetSelectItemsRaw(requestParameters: ChefEntrepriseSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling chefEntrepriseSelectorGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ChefEntrepriseSelector/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async chefEntrepriseSelectorGetSelectItems(requestParameters: ChefEntrepriseSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.chefEntrepriseSelectorGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n ClasseInfosForSuiviDto,\n ClasseSearch,\n EmailAdressesDto,\n EvaluationEditableDto,\n FcbClasseCoutMatiereDto,\n FcbClasseDetailDto,\n FcbClasseGridDtoPaginatedResults,\n FcbCopyClasseDto,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n ClasseInfosForSuiviDtoFromJSON,\n ClasseInfosForSuiviDtoToJSON,\n ClasseSearchFromJSON,\n ClasseSearchToJSON,\n EmailAdressesDtoFromJSON,\n EmailAdressesDtoToJSON,\n EvaluationEditableDtoFromJSON,\n EvaluationEditableDtoToJSON,\n FcbClasseCoutMatiereDtoFromJSON,\n FcbClasseCoutMatiereDtoToJSON,\n FcbClasseDetailDtoFromJSON,\n FcbClasseDetailDtoToJSON,\n FcbClasseGridDtoPaginatedResultsFromJSON,\n FcbClasseGridDtoPaginatedResultsToJSON,\n FcbCopyClasseDtoFromJSON,\n FcbCopyClasseDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ClasseBaseSearchRequest {\n ClasseSearch?: ClasseSearch;\n}\n\nexport interface ClasseCopyClasseAsyncRequest {\n FcbCopyClasseDto?: FcbCopyClasseDto;\n}\n\nexport interface ClasseDeleteRequest {\n id?: number;\n}\n\nexport interface ClasseGetRequest {\n id?: number;\n}\n\nexport interface ClasseGetAllEmailsRequest {\n idClasse?: number;\n}\n\nexport interface ClasseGetApprenantEmailsRequest {\n idClasse?: number;\n}\n\nexport interface ClasseGetClasseGenreRequest {\n id?: number;\n}\n\nexport interface ClasseGetClasseInfosForSuiviRequest {\n idclasse?: number;\n}\n\nexport interface ClasseGetCoutClasseRequest {\n id?: number;\n}\n\nexport interface ClasseGetDegreIdRequest {\n classeId?: number;\n}\n\nexport interface ClasseGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ClasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ClasseGetTypeCoursRequest {\n classeId?: number;\n}\n\nexport interface ClasseIsEvaluationEditableRequest {\n idClasse?: number;\n typeEvaluation?: number;\n}\n\nexport interface ClasseIsJureRequest {\n id?: number;\n}\n\nexport interface ClasseIsReferentielEditableRequest {\n id?: number;\n}\n\nexport interface ClasseIsResultatLockRequest {\n idClasse?: number;\n}\n\nexport interface ClasseSaveRequest {\n FcbClasseDetailDto?: FcbClasseDetailDto;\n}\n\nexport interface ClasseSearchClasseIdsRequest {\n ClasseSearch?: ClasseSearch;\n}\n\nexport interface ClasseSocieteExterneUnauthorizedRequest {\n idClasse?: number;\n}\n\n/**\n * \n */\nexport class ClasseApi extends runtime.BaseAPI {\n\n /**\n */\n async classeBaseSearchRaw(requestParameters: ClasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseSearchToJSON(requestParameters.ClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeBaseSearch(requestParameters: ClasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeCopyClasseAsyncRaw(requestParameters: ClasseCopyClasseAsyncRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/CopyClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbCopyClasseDtoToJSON(requestParameters.FcbCopyClasseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCopyClasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeCopyClasseAsync(requestParameters: ClasseCopyClasseAsyncRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeCopyClasseAsyncRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeDeleteRaw(requestParameters: ClasseDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async classeDelete(requestParameters: ClasseDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetRaw(requestParameters: ClasseGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeGet(requestParameters: ClasseGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetAllEmailsRaw(requestParameters: ClasseGetAllEmailsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/GetAllEmails`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EmailAdressesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeGetAllEmails(requestParameters: ClasseGetAllEmailsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeGetAllEmailsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetApprenantEmailsRaw(requestParameters: ClasseGetApprenantEmailsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/GetApprenantEmails`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EmailAdressesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeGetApprenantEmails(requestParameters: ClasseGetApprenantEmailsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeGetApprenantEmailsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetClasseGenreRaw(requestParameters: ClasseGetClasseGenreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/GetClasseGenre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async classeGetClasseGenre(requestParameters: ClasseGetClasseGenreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeGetClasseGenreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetClasseInfosForSuiviRaw(requestParameters: ClasseGetClasseInfosForSuiviRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idclasse !== undefined) {\n queryParameters['idclasse'] = requestParameters.idclasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/GetClasseInfosForSuivi`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ClasseInfosForSuiviDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeGetClasseInfosForSuivi(requestParameters: ClasseGetClasseInfosForSuiviRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeGetClasseInfosForSuiviRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetCoutClasseRaw(requestParameters: ClasseGetCoutClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/CoutClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseCoutMatiereDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeGetCoutClasse(requestParameters: ClasseGetCoutClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeGetCoutClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetDegreIdRaw(requestParameters: ClasseGetDegreIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.classeId !== undefined) {\n queryParameters['classeId'] = requestParameters.classeId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/GetDegreId`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async classeGetDegreId(requestParameters: ClasseGetDegreIdRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeGetDegreIdRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetDisplayNameRaw(requestParameters: ClasseGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async classeGetDisplayName(requestParameters: ClasseGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetSearchCriteriasRaw(requestParameters: ClasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeGetSearchCriterias(requestParameters: ClasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetSelectItemsRaw(requestParameters: ClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeGetSelectItems(requestParameters: ClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeGetTypeCoursRaw(requestParameters: ClasseGetTypeCoursRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.classeId !== undefined) {\n queryParameters['classeId'] = requestParameters.classeId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/GetTypeCours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async classeGetTypeCours(requestParameters: ClasseGetTypeCoursRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeGetTypeCoursRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeIsEvaluationEditableRaw(requestParameters: ClasseIsEvaluationEditableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.typeEvaluation !== undefined) {\n queryParameters['typeEvaluation'] = requestParameters.typeEvaluation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/IsEvaluationEditable`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EvaluationEditableDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeIsEvaluationEditable(requestParameters: ClasseIsEvaluationEditableRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeIsEvaluationEditableRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeIsJureRaw(requestParameters: ClasseIsJureRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/IsJure`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeIsJure(requestParameters: ClasseIsJureRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeIsJureRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeIsReferentielEditableRaw(requestParameters: ClasseIsReferentielEditableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/IsReferentielEditable`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeIsReferentielEditable(requestParameters: ClasseIsReferentielEditableRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeIsReferentielEditableRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeIsResultatLockRaw(requestParameters: ClasseIsResultatLockRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/IsResultatLock`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async classeIsResultatLock(requestParameters: ClasseIsResultatLockRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeIsResultatLockRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeSaveRaw(requestParameters: ClasseSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClasseDetailDtoToJSON(requestParameters.FcbClasseDetailDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeSave(requestParameters: ClasseSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeSearchClasseIdsRaw(requestParameters: ClasseSearchClasseIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/SearchClasseIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseSearchToJSON(requestParameters.ClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async classeSearchClasseIds(requestParameters: ClasseSearchClasseIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeSearchClasseIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeSocieteExterneUnauthorizedRaw(requestParameters: ClasseSocieteExterneUnauthorizedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Classe/SocieteExterneUnauthorized`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeSocieteExterneUnauthorized(requestParameters: ClasseSocieteExterneUnauthorizedRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeSocieteExterneUnauthorizedRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ClasseApprenantSearch,\n FcbClasseApprenantGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ClasseApprenantSearchFromJSON,\n ClasseApprenantSearchToJSON,\n FcbClasseApprenantGridDtoPaginatedResultsFromJSON,\n FcbClasseApprenantGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ClasseApprenantBaseSearchRequest {\n ClasseApprenantSearch?: ClasseApprenantSearch;\n}\n\nexport interface ClasseApprenantGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseApprenantGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ClasseApprenantApi extends runtime.BaseAPI {\n\n /**\n */\n async classeApprenantBaseSearchRaw(requestParameters: ClasseApprenantBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseApprenant/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseApprenantSearchToJSON(requestParameters.ClasseApprenantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseApprenantGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeApprenantBaseSearch(requestParameters: ClasseApprenantBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeApprenantBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeApprenantGetSearchCriteriasRaw(requestParameters: ClasseApprenantGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseApprenant/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeApprenantGetSearchCriterias(requestParameters: ClasseApprenantGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeApprenantGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeApprenantGetSelectItemsRaw(requestParameters: ClasseApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeApprenantGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseApprenant/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeApprenantGetSelectItems(requestParameters: ClasseApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeApprenantGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n ClasseHoraireMatiereSearch,\n FcbClasseHoraireMatiereGridDtoPaginatedResults,\n FcbClasseHorairesDto,\n FcbHoraireGridDtoPaginatedResults,\n FilterCriteriaInfo,\n HoraireSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n ClasseHoraireMatiereSearchFromJSON,\n ClasseHoraireMatiereSearchToJSON,\n FcbClasseHoraireMatiereGridDtoPaginatedResultsFromJSON,\n FcbClasseHoraireMatiereGridDtoPaginatedResultsToJSON,\n FcbClasseHorairesDtoFromJSON,\n FcbClasseHorairesDtoToJSON,\n FcbHoraireGridDtoPaginatedResultsFromJSON,\n FcbHoraireGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n HoraireSearchFromJSON,\n HoraireSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ClasseHoraireAjoutDateHoraireRequest {\n idClasse?: number;\n dayToAdd?: Date;\n}\n\nexport interface ClasseHoraireBaseSearchRequest {\n HoraireSearch?: HoraireSearch;\n}\n\nexport interface ClasseHoraireCanSaveRequest {\n idClasse?: number;\n}\n\nexport interface ClasseHoraireCreateMissingHoraireRequest {\n idClasse?: number;\n}\n\nexport interface ClasseHoraireDeleteHoraireRequest {\n idClasse?: number;\n}\n\nexport interface ClasseHoraireFermetureClasseRequest {\n idClasse?: number;\n dateFermeture?: Date;\n}\n\nexport interface ClasseHoraireGetHoraireMatieresRequest {\n ClasseHoraireMatiereSearch?: ClasseHoraireMatiereSearch;\n}\n\nexport interface ClasseHoraireGetHorairesRequest {\n idClasse?: number;\n}\n\nexport interface ClasseHoraireGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseHoraireGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ClasseHoraireIsHoraireLinkedToGapRequest {\n idClasse?: number;\n}\n\nexport interface ClasseHoraireSaveRequest {\n FcbClasseHorairesDto?: FcbClasseHorairesDto;\n}\n\nexport interface ClasseHoraireSaveCheckRequest {\n FcbClasseHorairesDto?: FcbClasseHorairesDto;\n}\n\n/**\n * \n */\nexport class ClasseHoraireApi extends runtime.BaseAPI {\n\n /**\n */\n async classeHoraireAjoutDateHoraireRaw(requestParameters: ClasseHoraireAjoutDateHoraireRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.dayToAdd !== undefined) {\n queryParameters['dayToAdd'] = (requestParameters.dayToAdd as any).toISOString();\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/AjoutDateHoraire`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async classeHoraireAjoutDateHoraire(requestParameters: ClasseHoraireAjoutDateHoraireRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.classeHoraireAjoutDateHoraireRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async classeHoraireBaseSearchRaw(requestParameters: ClasseHoraireBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: HoraireSearchToJSON(requestParameters.HoraireSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbHoraireGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireBaseSearch(requestParameters: ClasseHoraireBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireCanSaveRaw(requestParameters: ClasseHoraireCanSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/CanSave`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireCanSave(requestParameters: ClasseHoraireCanSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireCanSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireCreateMissingHoraireRaw(requestParameters: ClasseHoraireCreateMissingHoraireRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/CreateMissingHoraire`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async classeHoraireCreateMissingHoraire(requestParameters: ClasseHoraireCreateMissingHoraireRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.classeHoraireCreateMissingHoraireRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async classeHoraireDeleteHoraireRaw(requestParameters: ClasseHoraireDeleteHoraireRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/DeleteHoraire`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async classeHoraireDeleteHoraire(requestParameters: ClasseHoraireDeleteHoraireRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.classeHoraireDeleteHoraireRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async classeHoraireFermetureClasseRaw(requestParameters: ClasseHoraireFermetureClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.dateFermeture !== undefined) {\n queryParameters['dateFermeture'] = (requestParameters.dateFermeture as any).toISOString();\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/FermetureClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async classeHoraireFermetureClasse(requestParameters: ClasseHoraireFermetureClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.classeHoraireFermetureClasseRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async classeHoraireGetHoraireMatieresRaw(requestParameters: ClasseHoraireGetHoraireMatieresRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/GetHoraireMatieres`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseHoraireMatiereSearchToJSON(requestParameters.ClasseHoraireMatiereSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseHoraireMatiereGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireGetHoraireMatieres(requestParameters: ClasseHoraireGetHoraireMatieresRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireGetHoraireMatieresRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireGetHorairesRaw(requestParameters: ClasseHoraireGetHorairesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/GetHoraires`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseHorairesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireGetHoraires(requestParameters: ClasseHoraireGetHorairesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireGetHorairesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireGetSearchCriteriasRaw(requestParameters: ClasseHoraireGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeHoraireGetSearchCriterias(requestParameters: ClasseHoraireGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeHoraireGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireGetSelectItemsRaw(requestParameters: ClasseHoraireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeHoraireGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeHoraireGetSelectItems(requestParameters: ClasseHoraireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeHoraireGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireIsHoraireLinkedToGapRaw(requestParameters: ClasseHoraireIsHoraireLinkedToGapRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/IsHoraireLinkedToGap`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireIsHoraireLinkedToGap(requestParameters: ClasseHoraireIsHoraireLinkedToGapRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireIsHoraireLinkedToGapRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireSaveRaw(requestParameters: ClasseHoraireSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/Save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClasseHorairesDtoToJSON(requestParameters.FcbClasseHorairesDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseHorairesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireSave(requestParameters: ClasseHoraireSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireSaveCheckRaw(requestParameters: ClasseHoraireSaveCheckRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraire/SaveCheck`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClasseHorairesDtoToJSON(requestParameters.FcbClasseHorairesDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireSaveCheck(requestParameters: ClasseHoraireSaveCheckRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireSaveCheckRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ClasseHoraireCoherenceSearch,\n FcbClasseHoraireCoherenceGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ClasseHoraireCoherenceSearchFromJSON,\n ClasseHoraireCoherenceSearchToJSON,\n FcbClasseHoraireCoherenceGridDtoPaginatedResultsFromJSON,\n FcbClasseHoraireCoherenceGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ClasseHoraireCoherenceBaseSearchRequest {\n ClasseHoraireCoherenceSearch?: ClasseHoraireCoherenceSearch;\n}\n\nexport interface ClasseHoraireCoherenceGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseHoraireCoherenceGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ClasseHoraireCoherenceApi extends runtime.BaseAPI {\n\n /**\n */\n async classeHoraireCoherenceBaseSearchRaw(requestParameters: ClasseHoraireCoherenceBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireCoherence/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseHoraireCoherenceSearchToJSON(requestParameters.ClasseHoraireCoherenceSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseHoraireCoherenceGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireCoherenceBaseSearch(requestParameters: ClasseHoraireCoherenceBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireCoherenceBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireCoherenceGetSearchCriteriasRaw(requestParameters: ClasseHoraireCoherenceGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireCoherence/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeHoraireCoherenceGetSearchCriterias(requestParameters: ClasseHoraireCoherenceGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeHoraireCoherenceGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireCoherenceGetSelectItemsRaw(requestParameters: ClasseHoraireCoherenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeHoraireCoherenceGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireCoherence/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeHoraireCoherenceGetSelectItems(requestParameters: ClasseHoraireCoherenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeHoraireCoherenceGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ClasseHoraireIncoherenceSearch,\n FcbClasseHoraireIncoherenceGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ClasseHoraireIncoherenceSearchFromJSON,\n ClasseHoraireIncoherenceSearchToJSON,\n FcbClasseHoraireIncoherenceGridDtoPaginatedResultsFromJSON,\n FcbClasseHoraireIncoherenceGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ClasseHoraireIncoherenceBaseSearchRequest {\n ClasseHoraireIncoherenceSearch?: ClasseHoraireIncoherenceSearch;\n}\n\nexport interface ClasseHoraireIncoherenceCalculCoherenceClasseRequest {\n idClasse?: number;\n}\n\nexport interface ClasseHoraireIncoherenceGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseHoraireIncoherenceGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ClasseHoraireIncoherenceApi extends runtime.BaseAPI {\n\n /**\n */\n async classeHoraireIncoherenceBaseSearchRaw(requestParameters: ClasseHoraireIncoherenceBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireIncoherence/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseHoraireIncoherenceSearchToJSON(requestParameters.ClasseHoraireIncoherenceSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseHoraireIncoherenceGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireIncoherenceBaseSearch(requestParameters: ClasseHoraireIncoherenceBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireIncoherenceBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireIncoherenceCalculCoherenceClasseRaw(requestParameters: ClasseHoraireIncoherenceCalculCoherenceClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireIncoherence/calculCoherence`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async classeHoraireIncoherenceCalculCoherenceClasse(requestParameters: ClasseHoraireIncoherenceCalculCoherenceClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireIncoherenceCalculCoherenceClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireIncoherenceGetSearchCriteriasRaw(requestParameters: ClasseHoraireIncoherenceGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireIncoherence/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeHoraireIncoherenceGetSearchCriterias(requestParameters: ClasseHoraireIncoherenceGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeHoraireIncoherenceGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireIncoherenceGetSelectItemsRaw(requestParameters: ClasseHoraireIncoherenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeHoraireIncoherenceGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireIncoherence/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeHoraireIncoherenceGetSelectItems(requestParameters: ClasseHoraireIncoherenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeHoraireIncoherenceGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n ClasseHoraireCoherenceSearch,\n FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n ClasseHoraireCoherenceSearchFromJSON,\n ClasseHoraireCoherenceSearchToJSON,\n FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResultsFromJSON,\n FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ClasseHoraireSemestreBaseSearchRequest {\n ClasseHoraireCoherenceSearch?: ClasseHoraireCoherenceSearch;\n}\n\nexport interface ClasseHoraireSemestreGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseHoraireSemestreGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ClasseHoraireSemestreIsClasseAgreeRequest {\n id?: number;\n}\n\n/**\n * \n */\nexport class ClasseHoraireSemestreApi extends runtime.BaseAPI {\n\n /**\n */\n async classeHoraireSemestreBaseSearchRaw(requestParameters: ClasseHoraireSemestreBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireSemestre/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseHoraireCoherenceSearchToJSON(requestParameters.ClasseHoraireCoherenceSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireSemestreBaseSearch(requestParameters: ClasseHoraireSemestreBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireSemestreBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireSemestreGetSearchCriteriasRaw(requestParameters: ClasseHoraireSemestreGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireSemestre/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeHoraireSemestreGetSearchCriterias(requestParameters: ClasseHoraireSemestreGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeHoraireSemestreGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireSemestreGetSelectItemsRaw(requestParameters: ClasseHoraireSemestreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeHoraireSemestreGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireSemestre/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeHoraireSemestreGetSelectItems(requestParameters: ClasseHoraireSemestreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeHoraireSemestreGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeHoraireSemestreIsClasseAgreeRaw(requestParameters: ClasseHoraireSemestreIsClasseAgreeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseHoraireSemestre/IsAgree`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeHoraireSemestreIsClasseAgree(requestParameters: ClasseHoraireSemestreIsClasseAgreeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeHoraireSemestreIsClasseAgreeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurGridDtoPaginatedResults,\n FilterCriteriaInfo,\n JureSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurGridDtoPaginatedResultsFromJSON,\n FcbFormateurGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n JureSearchFromJSON,\n JureSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ClasseJureBaseSearchRequest {\n JureSearch?: JureSearch;\n}\n\nexport interface ClasseJureGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseJureGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ClasseJureApi extends runtime.BaseAPI {\n\n /**\n */\n async classeJureBaseSearchRaw(requestParameters: ClasseJureBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseJure/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: JureSearchToJSON(requestParameters.JureSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeJureBaseSearch(requestParameters: ClasseJureBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeJureBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeJureGetSearchCriteriasRaw(requestParameters: ClasseJureGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseJure/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeJureGetSearchCriterias(requestParameters: ClasseJureGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeJureGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeJureGetSelectItemsRaw(requestParameters: ClasseJureGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeJureGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseJure/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeJureGetSelectItems(requestParameters: ClasseJureGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeJureGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ClasseMatiereSearch,\n FcbClasseMatiereCutDto,\n FcbClasseMatiereDto,\n FcbClasseMatiereGridDtoPaginatedResults,\n FcbClasseMatiereMultipleDto,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n ClasseMatiereSearchFromJSON,\n ClasseMatiereSearchToJSON,\n FcbClasseMatiereCutDtoFromJSON,\n FcbClasseMatiereCutDtoToJSON,\n FcbClasseMatiereDtoFromJSON,\n FcbClasseMatiereDtoToJSON,\n FcbClasseMatiereGridDtoPaginatedResultsFromJSON,\n FcbClasseMatiereGridDtoPaginatedResultsToJSON,\n FcbClasseMatiereMultipleDtoFromJSON,\n FcbClasseMatiereMultipleDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ClasseMatiereBaseSearchRequest {\n ClasseMatiereSearch?: ClasseMatiereSearch;\n}\n\nexport interface ClasseMatiereCheckCodeUniqueRequest {\n code?: string;\n idClasse?: number;\n idClasseMatiere?: number;\n}\n\nexport interface ClasseMatiereCheckDepassementContratRequest {\n idFormateurLocalisationContrat?: number;\n idClasseMatiere?: number;\n}\n\nexport interface ClasseMatiereCheckExamenRequiredRequest {\n idClasseMatiere?: number;\n}\n\nexport interface ClasseMatiereCheckFormateurAgrementMetierRequest {\n idFormateur?: number;\n idClasse?: number;\n}\n\nexport interface ClasseMatiereCheckHeuresReferentielRequest {\n idClasse?: number;\n idReferentiel?: number;\n}\n\nexport interface ClasseMatiereCheckOriginalityRequest {\n idClasse?: number;\n idReferentiel?: number;\n}\n\nexport interface ClasseMatiereCheckTJRequiredRequest {\n idClasseMatiere?: number;\n}\n\nexport interface ClasseMatiereDeleteRequest {\n id?: number;\n}\n\nexport interface ClasseMatiereGetRequest {\n id?: number;\n}\n\nexport interface ClasseMatiereGetCutRequest {\n idClasseMatiere?: number;\n}\n\nexport interface ClasseMatiereGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseMatiereGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ClasseMatiereReinitRequest {\n idClasse?: number;\n idReferentiel?: number;\n}\n\nexport interface ClasseMatiereSaveRequest {\n FcbClasseMatiereDto?: FcbClasseMatiereDto;\n}\n\nexport interface ClasseMatiereSaveCutRequest {\n FcbClasseMatiereCutDto?: FcbClasseMatiereCutDto;\n}\n\nexport interface ClasseMatiereSaveMultipleRequest {\n FcbClasseMatiereMultipleDto?: FcbClasseMatiereMultipleDto;\n}\n\n/**\n * \n */\nexport class ClasseMatiereApi extends runtime.BaseAPI {\n\n /**\n */\n async classeMatiereBaseSearchRaw(requestParameters: ClasseMatiereBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseMatiereSearchToJSON(requestParameters.ClasseMatiereSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseMatiereGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereBaseSearch(requestParameters: ClasseMatiereBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereCheckCodeUniqueRaw(requestParameters: ClasseMatiereCheckCodeUniqueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.idClasseMatiere !== undefined) {\n queryParameters['idClasseMatiere'] = requestParameters.idClasseMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/CheckCodeUnique`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereCheckCodeUnique(requestParameters: ClasseMatiereCheckCodeUniqueRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereCheckCodeUniqueRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereCheckDepassementContratRaw(requestParameters: ClasseMatiereCheckDepassementContratRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormateurLocalisationContrat !== undefined) {\n queryParameters['idFormateurLocalisationContrat'] = requestParameters.idFormateurLocalisationContrat;\n }\n\n if (requestParameters.idClasseMatiere !== undefined) {\n queryParameters['idClasseMatiere'] = requestParameters.idClasseMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/CheckDepassementContrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereCheckDepassementContrat(requestParameters: ClasseMatiereCheckDepassementContratRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereCheckDepassementContratRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereCheckExamenRequiredRaw(requestParameters: ClasseMatiereCheckExamenRequiredRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasseMatiere !== undefined) {\n queryParameters['idClasseMatiere'] = requestParameters.idClasseMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/CheckExamenRequired`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereCheckExamenRequired(requestParameters: ClasseMatiereCheckExamenRequiredRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereCheckExamenRequiredRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereCheckFormateurAgrementMetierRaw(requestParameters: ClasseMatiereCheckFormateurAgrementMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormateur !== undefined) {\n queryParameters['idFormateur'] = requestParameters.idFormateur;\n }\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/CheckFormateurAgrementMetier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereCheckFormateurAgrementMetier(requestParameters: ClasseMatiereCheckFormateurAgrementMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereCheckFormateurAgrementMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereCheckHeuresReferentielRaw(requestParameters: ClasseMatiereCheckHeuresReferentielRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.idReferentiel !== undefined) {\n queryParameters['idReferentiel'] = requestParameters.idReferentiel;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/CheckHeuresReferentiel`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereCheckHeuresReferentiel(requestParameters: ClasseMatiereCheckHeuresReferentielRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereCheckHeuresReferentielRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereCheckOriginalityRaw(requestParameters: ClasseMatiereCheckOriginalityRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.idReferentiel !== undefined) {\n queryParameters['idReferentiel'] = requestParameters.idReferentiel;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/CheckOriginality`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereCheckOriginality(requestParameters: ClasseMatiereCheckOriginalityRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereCheckOriginalityRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereCheckTJRequiredRaw(requestParameters: ClasseMatiereCheckTJRequiredRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasseMatiere !== undefined) {\n queryParameters['idClasseMatiere'] = requestParameters.idClasseMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/CheckTJRequired`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereCheckTJRequired(requestParameters: ClasseMatiereCheckTJRequiredRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereCheckTJRequiredRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereDeleteRaw(requestParameters: ClasseMatiereDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async classeMatiereDelete(requestParameters: ClasseMatiereDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereGetRaw(requestParameters: ClasseMatiereGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseMatiereDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereGet(requestParameters: ClasseMatiereGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereGetCutRaw(requestParameters: ClasseMatiereGetCutRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasseMatiere !== undefined) {\n queryParameters['idClasseMatiere'] = requestParameters.idClasseMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/GetCut`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseMatiereCutDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereGetCut(requestParameters: ClasseMatiereGetCutRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereGetCutRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereGetSearchCriteriasRaw(requestParameters: ClasseMatiereGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeMatiereGetSearchCriterias(requestParameters: ClasseMatiereGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeMatiereGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereGetSelectItemsRaw(requestParameters: ClasseMatiereGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeMatiereGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeMatiereGetSelectItems(requestParameters: ClasseMatiereGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeMatiereGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereReinitRaw(requestParameters: ClasseMatiereReinitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.idReferentiel !== undefined) {\n queryParameters['idReferentiel'] = requestParameters.idReferentiel;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/Reinit`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async classeMatiereReinit(requestParameters: ClasseMatiereReinitRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.classeMatiereReinitRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async classeMatiereSaveRaw(requestParameters: ClasseMatiereSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClasseMatiereDtoToJSON(requestParameters.FcbClasseMatiereDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseMatiereDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereSave(requestParameters: ClasseMatiereSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereSaveCutRaw(requestParameters: ClasseMatiereSaveCutRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/SaveCut`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClasseMatiereCutDtoToJSON(requestParameters.FcbClasseMatiereCutDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseMatiereCutDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereSaveCut(requestParameters: ClasseMatiereSaveCutRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereSaveCutRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMatiereSaveMultipleRaw(requestParameters: ClasseMatiereSaveMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMatiere/SaveMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClasseMatiereMultipleDtoToJSON(requestParameters.FcbClasseMatiereMultipleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseMatiereMultipleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMatiereSaveMultiple(requestParameters: ClasseMatiereSaveMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMatiereSaveMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ClasseMiseAJourMasseSearch,\n FcbClasseMiseAJourDto,\n FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ClasseMiseAJourMasseSearchFromJSON,\n ClasseMiseAJourMasseSearchToJSON,\n FcbClasseMiseAJourDtoFromJSON,\n FcbClasseMiseAJourDtoToJSON,\n FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResultsFromJSON,\n FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ClasseMiseAJourMasseBaseSearchRequest {\n ClasseMiseAJourMasseSearch?: ClasseMiseAJourMasseSearch;\n}\n\nexport interface ClasseMiseAJourMasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseMiseAJourMasseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ClasseMiseAJourMasseSaveRequest {\n FcbClasseMiseAJourDto?: FcbClasseMiseAJourDto;\n}\n\nexport interface ClasseMiseAJourMasseSearchClasseIdsRequest {\n ClasseMiseAJourMasseSearch?: ClasseMiseAJourMasseSearch;\n}\n\n/**\n * \n */\nexport class ClasseMiseAJourMasseApi extends runtime.BaseAPI {\n\n /**\n */\n async classeMiseAJourMasseBaseSearchRaw(requestParameters: ClasseMiseAJourMasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMiseAJourMasse/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseMiseAJourMasseSearchToJSON(requestParameters.ClasseMiseAJourMasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMiseAJourMasseBaseSearch(requestParameters: ClasseMiseAJourMasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMiseAJourMasseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMiseAJourMasseGetSearchCriteriasRaw(requestParameters: ClasseMiseAJourMasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMiseAJourMasse/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeMiseAJourMasseGetSearchCriterias(requestParameters: ClasseMiseAJourMasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeMiseAJourMasseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMiseAJourMasseGetSelectItemsRaw(requestParameters: ClasseMiseAJourMasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeMiseAJourMasseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMiseAJourMasse/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeMiseAJourMasseGetSelectItems(requestParameters: ClasseMiseAJourMasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeMiseAJourMasseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMiseAJourMasseSaveRaw(requestParameters: ClasseMiseAJourMasseSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMiseAJourMasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClasseMiseAJourDtoToJSON(requestParameters.FcbClasseMiseAJourDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseMiseAJourDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeMiseAJourMasseSave(requestParameters: ClasseMiseAJourMasseSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeMiseAJourMasseSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeMiseAJourMasseSearchClasseIdsRaw(requestParameters: ClasseMiseAJourMasseSearchClasseIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseMiseAJourMasse/SearchClasseIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseMiseAJourMasseSearchToJSON(requestParameters.ClasseMiseAJourMasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async classeMiseAJourMasseSearchClasseIds(requestParameters: ClasseMiseAJourMasseSearchClasseIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeMiseAJourMasseSearchClasseIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ClasseRemarqueSearch,\n FcbClasseRemarqueDto,\n FcbClasseRemarqueGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ClasseRemarqueSearchFromJSON,\n ClasseRemarqueSearchToJSON,\n FcbClasseRemarqueDtoFromJSON,\n FcbClasseRemarqueDtoToJSON,\n FcbClasseRemarqueGridDtoPaginatedResultsFromJSON,\n FcbClasseRemarqueGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ClasseRemarqueBaseSearchRequest {\n ClasseRemarqueSearch?: ClasseRemarqueSearch;\n}\n\nexport interface ClasseRemarqueGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClasseRemarqueGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ClasseRemarqueSaveRequest {\n FcbClasseRemarqueDto?: FcbClasseRemarqueDto;\n}\n\n/**\n * \n */\nexport class ClasseRemarqueApi extends runtime.BaseAPI {\n\n /**\n */\n async classeRemarqueBaseSearchRaw(requestParameters: ClasseRemarqueBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseRemarque/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClasseRemarqueSearchToJSON(requestParameters.ClasseRemarqueSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseRemarqueGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async classeRemarqueBaseSearch(requestParameters: ClasseRemarqueBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeRemarqueBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeRemarqueGetSearchCriteriasRaw(requestParameters: ClasseRemarqueGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseRemarque/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async classeRemarqueGetSearchCriterias(requestParameters: ClasseRemarqueGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeRemarqueGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeRemarqueGetSelectItemsRaw(requestParameters: ClasseRemarqueGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling classeRemarqueGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseRemarque/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async classeRemarqueGetSelectItems(requestParameters: ClasseRemarqueGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.classeRemarqueGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async classeRemarqueSaveRaw(requestParameters: ClasseRemarqueSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClasseRemarque/Save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClasseRemarqueDtoToJSON(requestParameters.FcbClasseRemarqueDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClasseRemarqueDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async classeRemarqueSave(requestParameters: ClasseRemarqueSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.classeRemarqueSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ClauseSearch,\n FcbClauseDto,\n FcbClauseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ClauseSearchFromJSON,\n ClauseSearchToJSON,\n FcbClauseDtoFromJSON,\n FcbClauseDtoToJSON,\n FcbClauseGridDtoPaginatedResultsFromJSON,\n FcbClauseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ClauseBaseSearchRequest {\n ClauseSearch?: ClauseSearch;\n}\n\nexport interface ClauseDeleteRequest {\n id?: number;\n}\n\nexport interface ClauseGetRequest {\n id?: number;\n}\n\nexport interface ClauseGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ClauseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClauseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ClauseSaveRequest {\n FcbClauseDto?: FcbClauseDto;\n}\n\nexport interface ClauseSearchClauseIdsRequest {\n ClauseSearch?: ClauseSearch;\n}\n\n/**\n * \n */\nexport class ClauseApi extends runtime.BaseAPI {\n\n /**\n */\n async clauseBaseSearchRaw(requestParameters: ClauseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Clause/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClauseSearchToJSON(requestParameters.ClauseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClauseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async clauseBaseSearch(requestParameters: ClauseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.clauseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseDeleteRaw(requestParameters: ClauseDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Clause`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async clauseDelete(requestParameters: ClauseDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.clauseDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseGetRaw(requestParameters: ClauseGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Clause`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClauseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async clauseGet(requestParameters: ClauseGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.clauseGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseGetDisplayNameRaw(requestParameters: ClauseGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Clause/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async clauseGetDisplayName(requestParameters: ClauseGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.clauseGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseGetSearchCriteriasRaw(requestParameters: ClauseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Clause/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async clauseGetSearchCriterias(requestParameters: ClauseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.clauseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseGetSelectItemsRaw(requestParameters: ClauseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling clauseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Clause/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async clauseGetSelectItems(requestParameters: ClauseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.clauseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseSaveRaw(requestParameters: ClauseSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Clause`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClauseDtoToJSON(requestParameters.FcbClauseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClauseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async clauseSave(requestParameters: ClauseSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.clauseSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseSearchClauseIdsRaw(requestParameters: ClauseSearchClauseIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Clause/searchClauseIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClauseSearchToJSON(requestParameters.ClauseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async clauseSearchClauseIds(requestParameters: ClauseSearchClauseIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.clauseSearchClauseIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ClauseMetierSearch,\n FcbClauseMetiersLiesDto,\n FcbMetierClauseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ClauseMetierSearchFromJSON,\n ClauseMetierSearchToJSON,\n FcbClauseMetiersLiesDtoFromJSON,\n FcbClauseMetiersLiesDtoToJSON,\n FcbMetierClauseGridDtoPaginatedResultsFromJSON,\n FcbMetierClauseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ClauseMetierLiesBaseSearchRequest {\n ClauseMetierSearch?: ClauseMetierSearch;\n}\n\nexport interface ClauseMetierLiesGetClauseMetierRequest {\n idClause?: number;\n}\n\nexport interface ClauseMetierLiesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ClauseMetierLiesGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ClauseMetierLiesSaveRequest {\n FcbClauseMetiersLiesDto?: FcbClauseMetiersLiesDto;\n}\n\n/**\n * \n */\nexport class ClauseMetierLiesApi extends runtime.BaseAPI {\n\n /**\n */\n async clauseMetierLiesBaseSearchRaw(requestParameters: ClauseMetierLiesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClauseMetierLies/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClauseMetierSearchToJSON(requestParameters.ClauseMetierSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierClauseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async clauseMetierLiesBaseSearch(requestParameters: ClauseMetierLiesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.clauseMetierLiesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseMetierLiesGetClauseMetierRaw(requestParameters: ClauseMetierLiesGetClauseMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClause !== undefined) {\n queryParameters['idClause'] = requestParameters.idClause;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClauseMetierLies`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClauseMetiersLiesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async clauseMetierLiesGetClauseMetier(requestParameters: ClauseMetierLiesGetClauseMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.clauseMetierLiesGetClauseMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseMetierLiesGetSearchCriteriasRaw(requestParameters: ClauseMetierLiesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClauseMetierLies/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async clauseMetierLiesGetSearchCriterias(requestParameters: ClauseMetierLiesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.clauseMetierLiesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseMetierLiesGetSelectItemsRaw(requestParameters: ClauseMetierLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling clauseMetierLiesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClauseMetierLies/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async clauseMetierLiesGetSelectItems(requestParameters: ClauseMetierLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.clauseMetierLiesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async clauseMetierLiesSaveRaw(requestParameters: ClauseMetierLiesSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ClauseMetierLies/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbClauseMetiersLiesDtoToJSON(requestParameters.FcbClauseMetiersLiesDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbClauseMetiersLiesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async clauseMetierLiesSave(requestParameters: ClauseMetierLiesSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.clauseMetierLiesSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n CodePostalSearch,\n FcbCodePostalDto,\n FcbCodePostalGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n CodePostalSearchFromJSON,\n CodePostalSearchToJSON,\n FcbCodePostalDtoFromJSON,\n FcbCodePostalDtoToJSON,\n FcbCodePostalGridDtoPaginatedResultsFromJSON,\n FcbCodePostalGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface CodePostalBaseSearchRequest {\n CodePostalSearch?: CodePostalSearch;\n}\n\nexport interface CodePostalDeleteRequest {\n id?: number;\n}\n\nexport interface CodePostalGetRequest {\n id?: number;\n}\n\nexport interface CodePostalGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface CodePostalGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface CodePostalGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface CodePostalSaveRequest {\n FcbCodePostalDto?: FcbCodePostalDto;\n}\n\nexport interface CodePostalSearchCodePostalIdsRequest {\n CodePostalSearch?: CodePostalSearch;\n}\n\n/**\n * \n */\nexport class CodePostalApi extends runtime.BaseAPI {\n\n /**\n */\n async codePostalBaseSearchRaw(requestParameters: CodePostalBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CodePostal/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CodePostalSearchToJSON(requestParameters.CodePostalSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCodePostalGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async codePostalBaseSearch(requestParameters: CodePostalBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.codePostalBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async codePostalDeleteRaw(requestParameters: CodePostalDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CodePostal`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async codePostalDelete(requestParameters: CodePostalDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.codePostalDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async codePostalGetRaw(requestParameters: CodePostalGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CodePostal`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCodePostalDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async codePostalGet(requestParameters: CodePostalGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.codePostalGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async codePostalGetAllRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CodePostal/GetAll`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FcbCodePostalDtoFromJSON));\n }\n\n /**\n */\n async codePostalGetAll(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.codePostalGetAllRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async codePostalGetDisplayNameRaw(requestParameters: CodePostalGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CodePostal/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async codePostalGetDisplayName(requestParameters: CodePostalGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.codePostalGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async codePostalGetSearchCriteriasRaw(requestParameters: CodePostalGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CodePostal/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async codePostalGetSearchCriterias(requestParameters: CodePostalGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.codePostalGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async codePostalGetSelectItemsRaw(requestParameters: CodePostalGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling codePostalGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CodePostal/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async codePostalGetSelectItems(requestParameters: CodePostalGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.codePostalGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async codePostalSaveRaw(requestParameters: CodePostalSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CodePostal`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbCodePostalDtoToJSON(requestParameters.FcbCodePostalDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbCodePostalDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async codePostalSave(requestParameters: CodePostalSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.codePostalSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async codePostalSearchCodePostalIdsRaw(requestParameters: CodePostalSearchCodePostalIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CodePostal/searchCodePostalIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CodePostalSearchToJSON(requestParameters.CodePostalSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async codePostalSearchCodePostalIds(requestParameters: CodePostalSearchCodePostalIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.codePostalSearchCodePostalIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n CommissionParitaireEditDto,\n CommissionParitaireGridDtoPaginatedResults,\n CommissionParitaireSearchDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n CommissionParitaireEditDtoFromJSON,\n CommissionParitaireEditDtoToJSON,\n CommissionParitaireGridDtoPaginatedResultsFromJSON,\n CommissionParitaireGridDtoPaginatedResultsToJSON,\n CommissionParitaireSearchDtoFromJSON,\n CommissionParitaireSearchDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface CommissionParitaireBaseSearchRequest {\n CommissionParitaireSearchDto?: CommissionParitaireSearchDto;\n}\n\nexport interface CommissionParitaireDeleteCommissionParitaireRequest {\n id?: number;\n}\n\nexport interface CommissionParitaireGetCommissionParitaireRequest {\n id?: number;\n}\n\nexport interface CommissionParitaireGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface CommissionParitaireGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface CommissionParitaireGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface CommissionParitaireSaveCommissionParitaireRequest {\n CommissionParitaireEditDto?: CommissionParitaireEditDto;\n}\n\n/**\n * \n */\nexport class CommissionParitaireApi extends runtime.BaseAPI {\n\n /**\n */\n async commissionParitaireBaseSearchRaw(requestParameters: CommissionParitaireBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CommissionParitaire/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CommissionParitaireSearchDtoToJSON(requestParameters.CommissionParitaireSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CommissionParitaireGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async commissionParitaireBaseSearch(requestParameters: CommissionParitaireBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.commissionParitaireBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async commissionParitaireDeleteCommissionParitaireRaw(requestParameters: CommissionParitaireDeleteCommissionParitaireRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CommissionParitaire/DeleteCommissionParitaire`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async commissionParitaireDeleteCommissionParitaire(requestParameters: CommissionParitaireDeleteCommissionParitaireRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.commissionParitaireDeleteCommissionParitaireRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async commissionParitaireGetCommissionParitaireRaw(requestParameters: CommissionParitaireGetCommissionParitaireRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CommissionParitaire`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CommissionParitaireEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async commissionParitaireGetCommissionParitaire(requestParameters: CommissionParitaireGetCommissionParitaireRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.commissionParitaireGetCommissionParitaireRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async commissionParitaireGetDisplayNameRaw(requestParameters: CommissionParitaireGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CommissionParitaire/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async commissionParitaireGetDisplayName(requestParameters: CommissionParitaireGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.commissionParitaireGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async commissionParitaireGetSearchCriteriasRaw(requestParameters: CommissionParitaireGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CommissionParitaire/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async commissionParitaireGetSearchCriterias(requestParameters: CommissionParitaireGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.commissionParitaireGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async commissionParitaireGetSelectItemsRaw(requestParameters: CommissionParitaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling commissionParitaireGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CommissionParitaire/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async commissionParitaireGetSelectItems(requestParameters: CommissionParitaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.commissionParitaireGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async commissionParitaireSaveCommissionParitaireRaw(requestParameters: CommissionParitaireSaveCommissionParitaireRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/CommissionParitaire`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CommissionParitaireEditDtoToJSON(requestParameters.CommissionParitaireEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CommissionParitaireEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async commissionParitaireSaveCommissionParitaire(requestParameters: CommissionParitaireSaveCommissionParitaireRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.commissionParitaireSaveCommissionParitaireRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ConseillerPedagogiqueSearch,\n FcbConseillerPedagogiqueDto,\n FcbConseillerPedagogiqueGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n ConseillerPedagogiqueSearchFromJSON,\n ConseillerPedagogiqueSearchToJSON,\n FcbConseillerPedagogiqueDtoFromJSON,\n FcbConseillerPedagogiqueDtoToJSON,\n FcbConseillerPedagogiqueGridDtoPaginatedResultsFromJSON,\n FcbConseillerPedagogiqueGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ConseillerPedagogiqueBaseSearchRequest {\n ConseillerPedagogiqueSearch?: ConseillerPedagogiqueSearch;\n}\n\nexport interface ConseillerPedagogiqueCodeExistsRequest {\n code?: string;\n}\n\nexport interface ConseillerPedagogiqueDeleteRequest {\n id?: string;\n}\n\nexport interface ConseillerPedagogiqueGetConseillerPedagogiqueRequest {\n id?: string;\n}\n\nexport interface ConseillerPedagogiqueGetDisplayNameRequest {\n id?: string;\n}\n\nexport interface ConseillerPedagogiqueGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ConseillerPedagogiqueGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ConseillerPedagogiqueIsNoNationalUniqueRequest {\n noNational?: string;\n}\n\nexport interface ConseillerPedagogiqueSaveRequest {\n FcbConseillerPedagogiqueDto?: FcbConseillerPedagogiqueDto;\n}\n\nexport interface ConseillerPedagogiqueSearchConseillerIdsRequest {\n ConseillerPedagogiqueSearch?: ConseillerPedagogiqueSearch;\n}\n\n/**\n * \n */\nexport class ConseillerPedagogiqueApi extends runtime.BaseAPI {\n\n /**\n */\n async conseillerPedagogiqueBaseSearchRaw(requestParameters: ConseillerPedagogiqueBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ConseillerPedagogiqueSearchToJSON(requestParameters.ConseillerPedagogiqueSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbConseillerPedagogiqueGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async conseillerPedagogiqueBaseSearch(requestParameters: ConseillerPedagogiqueBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueCodeExistsRaw(requestParameters: ConseillerPedagogiqueCodeExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique/codeExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async conseillerPedagogiqueCodeExists(requestParameters: ConseillerPedagogiqueCodeExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueCodeExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueDeleteRaw(requestParameters: ConseillerPedagogiqueDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique/delete`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async conseillerPedagogiqueDelete(requestParameters: ConseillerPedagogiqueDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueGetConseillerPedagogiqueRaw(requestParameters: ConseillerPedagogiqueGetConseillerPedagogiqueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbConseillerPedagogiqueDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async conseillerPedagogiqueGetConseillerPedagogique(requestParameters: ConseillerPedagogiqueGetConseillerPedagogiqueRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueGetConseillerPedagogiqueRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueGetDisplayNameRaw(requestParameters: ConseillerPedagogiqueGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async conseillerPedagogiqueGetDisplayName(requestParameters: ConseillerPedagogiqueGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueGetSearchCriteriasRaw(requestParameters: ConseillerPedagogiqueGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async conseillerPedagogiqueGetSearchCriterias(requestParameters: ConseillerPedagogiqueGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.conseillerPedagogiqueGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueGetSelectItemsRaw(requestParameters: ConseillerPedagogiqueGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling conseillerPedagogiqueGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async conseillerPedagogiqueGetSelectItems(requestParameters: ConseillerPedagogiqueGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.conseillerPedagogiqueGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueIsNoNationalUniqueRaw(requestParameters: ConseillerPedagogiqueIsNoNationalUniqueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.noNational !== undefined) {\n queryParameters['noNational'] = requestParameters.noNational;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique/IsNoNationalUnique`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async conseillerPedagogiqueIsNoNationalUnique(requestParameters: ConseillerPedagogiqueIsNoNationalUniqueRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueIsNoNationalUniqueRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueSaveRaw(requestParameters: ConseillerPedagogiqueSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbConseillerPedagogiqueDtoToJSON(requestParameters.FcbConseillerPedagogiqueDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbConseillerPedagogiqueDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async conseillerPedagogiqueSave(requestParameters: ConseillerPedagogiqueSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueSearchConseillerIdsRaw(requestParameters: ConseillerPedagogiqueSearchConseillerIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogique/searchConseillerIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ConseillerPedagogiqueSearchToJSON(requestParameters.ConseillerPedagogiqueSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async conseillerPedagogiqueSearchConseillerIds(requestParameters: ConseillerPedagogiqueSearchConseillerIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.conseillerPedagogiqueSearchConseillerIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ConseillerPedagogiqueMetierLiesSearch,\n FcbConseillerMetiersDto,\n FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ConseillerPedagogiqueMetierLiesSearchFromJSON,\n ConseillerPedagogiqueMetierLiesSearchToJSON,\n FcbConseillerMetiersDtoFromJSON,\n FcbConseillerMetiersDtoToJSON,\n FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResultsFromJSON,\n FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ConseillerPedagogiqueMetiersLiesBaseSearchRequest {\n ConseillerPedagogiqueMetierLiesSearch?: ConseillerPedagogiqueMetierLiesSearch;\n}\n\nexport interface ConseillerPedagogiqueMetiersLiesGetConseillerMetierRequest {\n codeConseiller?: string;\n}\n\nexport interface ConseillerPedagogiqueMetiersLiesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ConseillerPedagogiqueMetiersLiesGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ConseillerPedagogiqueMetiersLiesSaveRequest {\n FcbConseillerMetiersDto?: FcbConseillerMetiersDto;\n}\n\n/**\n * \n */\nexport class ConseillerPedagogiqueMetiersLiesApi extends runtime.BaseAPI {\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesBaseSearchRaw(requestParameters: ConseillerPedagogiqueMetiersLiesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogiqueMetiersLies/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ConseillerPedagogiqueMetierLiesSearchToJSON(requestParameters.ConseillerPedagogiqueMetierLiesSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesBaseSearch(requestParameters: ConseillerPedagogiqueMetiersLiesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueMetiersLiesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesGetConseillerMetierRaw(requestParameters: ConseillerPedagogiqueMetiersLiesGetConseillerMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.codeConseiller !== undefined) {\n queryParameters['codeConseiller'] = requestParameters.codeConseiller;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogiqueMetiersLies`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbConseillerMetiersDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesGetConseillerMetier(requestParameters: ConseillerPedagogiqueMetiersLiesGetConseillerMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueMetiersLiesGetConseillerMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesGetSearchCriteriasRaw(requestParameters: ConseillerPedagogiqueMetiersLiesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogiqueMetiersLies/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesGetSearchCriterias(requestParameters: ConseillerPedagogiqueMetiersLiesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.conseillerPedagogiqueMetiersLiesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesGetSelectItemsRaw(requestParameters: ConseillerPedagogiqueMetiersLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling conseillerPedagogiqueMetiersLiesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogiqueMetiersLies/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesGetSelectItems(requestParameters: ConseillerPedagogiqueMetiersLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.conseillerPedagogiqueMetiersLiesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesSaveRaw(requestParameters: ConseillerPedagogiqueMetiersLiesSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ConseillerPedagogiqueMetiersLies/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbConseillerMetiersDtoToJSON(requestParameters.FcbConseillerMetiersDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbConseillerMetiersDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async conseillerPedagogiqueMetiersLiesSave(requestParameters: ConseillerPedagogiqueMetiersLiesSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.conseillerPedagogiqueMetiersLiesSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ContactDoublonGridDtoPaginatedResults,\n ContactDoublonSearchDto,\n ContactEditDto,\n ContactGridDtoPaginatedResults,\n ContactLieuDoublonGridDtoPaginatedResults,\n ContactLieuDoublonSearch,\n ContactLieuEditDto,\n ContactLieuFormationGridDtoPaginatedResults,\n ContactLieuFormationSearchDto,\n ContactLieuGridDtoPaginatedResults,\n ContactLieuSearch,\n ContactSearch,\n ContactSiegeDoublonGridDtoPaginatedResults,\n ContactSiegeDoublonSearch,\n ContactSiegeEditDto,\n ContactSiegeGridDtoPaginatedResults,\n ContactSiegeSearch,\n ContactSiegeSocialGridDtoPaginatedResults,\n ContactSiegeSocialSearchDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n ContactDoublonGridDtoPaginatedResultsFromJSON,\n ContactDoublonGridDtoPaginatedResultsToJSON,\n ContactDoublonSearchDtoFromJSON,\n ContactDoublonSearchDtoToJSON,\n ContactEditDtoFromJSON,\n ContactEditDtoToJSON,\n ContactGridDtoPaginatedResultsFromJSON,\n ContactGridDtoPaginatedResultsToJSON,\n ContactLieuDoublonGridDtoPaginatedResultsFromJSON,\n ContactLieuDoublonGridDtoPaginatedResultsToJSON,\n ContactLieuDoublonSearchFromJSON,\n ContactLieuDoublonSearchToJSON,\n ContactLieuEditDtoFromJSON,\n ContactLieuEditDtoToJSON,\n ContactLieuFormationGridDtoPaginatedResultsFromJSON,\n ContactLieuFormationGridDtoPaginatedResultsToJSON,\n ContactLieuFormationSearchDtoFromJSON,\n ContactLieuFormationSearchDtoToJSON,\n ContactLieuGridDtoPaginatedResultsFromJSON,\n ContactLieuGridDtoPaginatedResultsToJSON,\n ContactLieuSearchFromJSON,\n ContactLieuSearchToJSON,\n ContactSearchFromJSON,\n ContactSearchToJSON,\n ContactSiegeDoublonGridDtoPaginatedResultsFromJSON,\n ContactSiegeDoublonGridDtoPaginatedResultsToJSON,\n ContactSiegeDoublonSearchFromJSON,\n ContactSiegeDoublonSearchToJSON,\n ContactSiegeEditDtoFromJSON,\n ContactSiegeEditDtoToJSON,\n ContactSiegeGridDtoPaginatedResultsFromJSON,\n ContactSiegeGridDtoPaginatedResultsToJSON,\n ContactSiegeSearchFromJSON,\n ContactSiegeSearchToJSON,\n ContactSiegeSocialGridDtoPaginatedResultsFromJSON,\n ContactSiegeSocialGridDtoPaginatedResultsToJSON,\n ContactSiegeSocialSearchDtoFromJSON,\n ContactSiegeSocialSearchDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ContactBaseSearchRequest {\n ContactSearch?: ContactSearch;\n}\n\nexport interface ContactDeleteContactLieuRequest {\n idcontactLieu?: number;\n}\n\nexport interface ContactDeleteContactSiegeRequest {\n idcontactSiege?: number;\n}\n\nexport interface ContactGetContactRequest {\n idcontact?: number;\n}\n\nexport interface ContactGetContactLieuRequest {\n idcontactLieu?: number;\n}\n\nexport interface ContactGetContactSiegeRequest {\n idcontactSiege?: number;\n}\n\nexport interface ContactGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ContactGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ContactGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ContactSaveContactRequest {\n ContactEditDto?: ContactEditDto;\n}\n\nexport interface ContactSaveContactLieuRequest {\n ContactLieuEditDto?: ContactLieuEditDto;\n}\n\nexport interface ContactSaveContactSiegeRequest {\n ContactSiegeEditDto?: ContactSiegeEditDto;\n}\n\nexport interface ContactSearchContactLieuRequest {\n ContactLieuSearch?: ContactLieuSearch;\n}\n\nexport interface ContactSearchContactLieuFormationRequest {\n ContactLieuFormationSearchDto?: ContactLieuFormationSearchDto;\n}\n\nexport interface ContactSearchContactSiegeRequest {\n ContactSiegeSearch?: ContactSiegeSearch;\n}\n\nexport interface ContactSearchContactSiegeSocialRequest {\n ContactSiegeSocialSearchDto?: ContactSiegeSocialSearchDto;\n}\n\nexport interface ContactSearchDoublonsRequest {\n ContactDoublonSearchDto?: ContactDoublonSearchDto;\n}\n\nexport interface ContactSearchDoublonsLieuRequest {\n ContactLieuDoublonSearch?: ContactLieuDoublonSearch;\n}\n\nexport interface ContactSearchDoublonsSiegeRequest {\n ContactSiegeDoublonSearch?: ContactSiegeDoublonSearch;\n}\n\n/**\n * \n */\nexport class ContactApi extends runtime.BaseAPI {\n\n /**\n */\n async contactBaseSearchRaw(requestParameters: ContactBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactSearchToJSON(requestParameters.ContactSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contactBaseSearch(requestParameters: ContactBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactDeleteContactLieuRaw(requestParameters: ContactDeleteContactLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontactLieu !== undefined) {\n queryParameters['idcontactLieu'] = requestParameters.idcontactLieu;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/DeleteContactLieu`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async contactDeleteContactLieu(requestParameters: ContactDeleteContactLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.contactDeleteContactLieuRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async contactDeleteContactSiegeRaw(requestParameters: ContactDeleteContactSiegeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontactSiege !== undefined) {\n queryParameters['idcontactSiege'] = requestParameters.idcontactSiege;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/DeleteContactSiege`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async contactDeleteContactSiege(requestParameters: ContactDeleteContactSiegeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.contactDeleteContactSiegeRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async contactGetContactRaw(requestParameters: ContactGetContactRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontact !== undefined) {\n queryParameters['idcontact'] = requestParameters.idcontact;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contactGetContact(requestParameters: ContactGetContactRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactGetContactRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactGetContactLieuRaw(requestParameters: ContactGetContactLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontactLieu !== undefined) {\n queryParameters['idcontactLieu'] = requestParameters.idcontactLieu;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/GetContactLieu`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactLieuEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contactGetContactLieu(requestParameters: ContactGetContactLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactGetContactLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactGetContactSiegeRaw(requestParameters: ContactGetContactSiegeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontactSiege !== undefined) {\n queryParameters['idcontactSiege'] = requestParameters.idcontactSiege;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/GetContactSiege`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactSiegeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contactGetContactSiege(requestParameters: ContactGetContactSiegeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactGetContactSiegeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactGetDisplayNameRaw(requestParameters: ContactGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async contactGetDisplayName(requestParameters: ContactGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactGetSearchCriteriasRaw(requestParameters: ContactGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async contactGetSearchCriterias(requestParameters: ContactGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contactGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactGetSelectItemsRaw(requestParameters: ContactGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling contactGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async contactGetSelectItems(requestParameters: ContactGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contactGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSaveContactRaw(requestParameters: ContactSaveContactRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactEditDtoToJSON(requestParameters.ContactEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSaveContact(requestParameters: ContactSaveContactRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSaveContactRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSaveContactLieuRaw(requestParameters: ContactSaveContactLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/SaveContactLieu`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactLieuEditDtoToJSON(requestParameters.ContactLieuEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactLieuEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSaveContactLieu(requestParameters: ContactSaveContactLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSaveContactLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSaveContactSiegeRaw(requestParameters: ContactSaveContactSiegeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/SaveContactSiege`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactSiegeEditDtoToJSON(requestParameters.ContactSiegeEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactSiegeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSaveContactSiege(requestParameters: ContactSaveContactSiegeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSaveContactSiegeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSearchContactLieuRaw(requestParameters: ContactSearchContactLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/SearchContactLieu`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactLieuSearchToJSON(requestParameters.ContactLieuSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactLieuGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSearchContactLieu(requestParameters: ContactSearchContactLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSearchContactLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSearchContactLieuFormationRaw(requestParameters: ContactSearchContactLieuFormationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/SearchContactLieuFormation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactLieuFormationSearchDtoToJSON(requestParameters.ContactLieuFormationSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactLieuFormationGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSearchContactLieuFormation(requestParameters: ContactSearchContactLieuFormationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSearchContactLieuFormationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSearchContactSiegeRaw(requestParameters: ContactSearchContactSiegeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/SearchContactSiege`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactSiegeSearchToJSON(requestParameters.ContactSiegeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactSiegeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSearchContactSiege(requestParameters: ContactSearchContactSiegeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSearchContactSiegeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSearchContactSiegeSocialRaw(requestParameters: ContactSearchContactSiegeSocialRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/SearchContactSiegeSocial`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactSiegeSocialSearchDtoToJSON(requestParameters.ContactSiegeSocialSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactSiegeSocialGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSearchContactSiegeSocial(requestParameters: ContactSearchContactSiegeSocialRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSearchContactSiegeSocialRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSearchDoublonsRaw(requestParameters: ContactSearchDoublonsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/SearchContactDoublon`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactDoublonSearchDtoToJSON(requestParameters.ContactDoublonSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSearchDoublons(requestParameters: ContactSearchDoublonsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSearchDoublonsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSearchDoublonsLieuRaw(requestParameters: ContactSearchDoublonsLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/SearchContactDoublonLieu`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactLieuDoublonSearchToJSON(requestParameters.ContactLieuDoublonSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactLieuDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSearchDoublonsLieu(requestParameters: ContactSearchDoublonsLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSearchDoublonsLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contactSearchDoublonsSiegeRaw(requestParameters: ContactSearchDoublonsSiegeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contact/SearchContactDoublonSiege`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContactSiegeDoublonSearchToJSON(requestParameters.ContactSiegeDoublonSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContactSiegeDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contactSearchDoublonsSiege(requestParameters: ContactSearchDoublonsSiegeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contactSearchDoublonsSiegeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BaremeTheoriqueDto,\n BooleanDto,\n ContratApprenantInfosDto,\n ContratAvenantEditDto,\n ContratAvenantGridDtoPaginatedResults,\n ContratAvenantSearchDto,\n ContratClasseInfosDto,\n ContratEditDto,\n ContratGridDtoPaginatedResults,\n ContratHistoryGridDtoPaginatedResults,\n ContratHistorySearchDto,\n ContratInfosForSuiviDto,\n ContratLieuxFormationGridDtoPaginatedResults,\n ContratLieuxFormationSearchDto,\n ContratSearchDto,\n ContratSiegeSocialDto,\n ContratSuspensionDto,\n EIfapmeSide,\n EStatutContrat,\n ETypeContrat,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n BaremeTheoriqueDtoFromJSON,\n BaremeTheoriqueDtoToJSON,\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n ContratApprenantInfosDtoFromJSON,\n ContratApprenantInfosDtoToJSON,\n ContratAvenantEditDtoFromJSON,\n ContratAvenantEditDtoToJSON,\n ContratAvenantGridDtoPaginatedResultsFromJSON,\n ContratAvenantGridDtoPaginatedResultsToJSON,\n ContratAvenantSearchDtoFromJSON,\n ContratAvenantSearchDtoToJSON,\n ContratClasseInfosDtoFromJSON,\n ContratClasseInfosDtoToJSON,\n ContratEditDtoFromJSON,\n ContratEditDtoToJSON,\n ContratGridDtoPaginatedResultsFromJSON,\n ContratGridDtoPaginatedResultsToJSON,\n ContratHistoryGridDtoPaginatedResultsFromJSON,\n ContratHistoryGridDtoPaginatedResultsToJSON,\n ContratHistorySearchDtoFromJSON,\n ContratHistorySearchDtoToJSON,\n ContratInfosForSuiviDtoFromJSON,\n ContratInfosForSuiviDtoToJSON,\n ContratLieuxFormationGridDtoPaginatedResultsFromJSON,\n ContratLieuxFormationGridDtoPaginatedResultsToJSON,\n ContratLieuxFormationSearchDtoFromJSON,\n ContratLieuxFormationSearchDtoToJSON,\n ContratSearchDtoFromJSON,\n ContratSearchDtoToJSON,\n ContratSiegeSocialDtoFromJSON,\n ContratSiegeSocialDtoToJSON,\n ContratSuspensionDtoFromJSON,\n ContratSuspensionDtoToJSON,\n EIfapmeSideFromJSON,\n EIfapmeSideToJSON,\n EStatutContratFromJSON,\n EStatutContratToJSON,\n ETypeContratFromJSON,\n ETypeContratToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ContratBaseSearchRequest {\n ContratSearchDto?: ContratSearchDto;\n}\n\nexport interface ContratCanSortirApprenantRequest {\n idApprenant?: number;\n ifapmeSide?: EIfapmeSide;\n}\n\nexport interface ContratDeleteAvenantRequest {\n idavenant?: number;\n}\n\nexport interface ContratEditSuspensionRequest {\n ContratSuspensionDto?: ContratSuspensionDto;\n}\n\nexport interface ContratGetApprenantInfosRequest {\n idapprenant?: number;\n}\n\nexport interface ContratGetBaremesByDureeRequest {\n iddureeContrat?: number;\n oldCs?: boolean;\n}\n\nexport interface ContratGetClasseInfosRequest {\n idclasse?: number;\n idapprenant?: number;\n}\n\nexport interface ContratGetContratRequest {\n id?: number;\n typeContrat?: ETypeContrat;\n idapprenant?: number;\n}\n\nexport interface ContratGetContratAvenantRequest {\n idavenant?: number;\n}\n\nexport interface ContratGetContratInfosForSuiviRequest {\n idcontrat?: number;\n}\n\nexport interface ContratGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ContratGetMainLieuFormationCPRequest {\n idcontrat?: number;\n}\n\nexport interface ContratGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ContratGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ContratGetSiegeSocialInfosRequest {\n idsiegeSocial?: number;\n}\n\nexport interface ContratGetStatutRequest {\n idcontrat?: number;\n}\n\nexport interface ContratGetSuspensionRequest {\n idcontratSuspension?: number;\n}\n\nexport interface ContratGetTypeRequest {\n idcontrat?: number;\n}\n\nexport interface ContratHasOffreActiveRequest {\n idcontrat?: number;\n}\n\nexport interface ContratRuptureContratRequest {\n ContratEditDto?: ContratEditDto;\n}\n\nexport interface ContratSaveAvenantsRequest {\n ContratAvenantEditDto?: ContratAvenantEditDto;\n}\n\nexport interface ContratSaveContratRequest {\n ContratEditDto?: ContratEditDto;\n}\n\nexport interface ContratSearchAvenantsRequest {\n ContratAvenantSearchDto?: ContratAvenantSearchDto;\n}\n\nexport interface ContratSearchHistoryRequest {\n ContratHistorySearchDto?: ContratHistorySearchDto;\n}\n\nexport interface ContratSearchLieuxFormationRequest {\n ContratLieuxFormationSearchDto?: ContratLieuxFormationSearchDto;\n}\n\n/**\n * \n */\nexport class ContratApi extends runtime.BaseAPI {\n\n /**\n */\n async contratBaseSearchRaw(requestParameters: ContratBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratSearchDtoToJSON(requestParameters.ContratSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contratBaseSearch(requestParameters: ContratBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratCanSortirApprenantRaw(requestParameters: ContratCanSortirApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.ifapmeSide !== undefined) {\n queryParameters['ifapmeSide'] = requestParameters.ifapmeSide;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/CanSortirApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratCanSortirApprenant(requestParameters: ContratCanSortirApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratCanSortirApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratDeleteAvenantRaw(requestParameters: ContratDeleteAvenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idavenant !== undefined) {\n queryParameters['idavenant'] = requestParameters.idavenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/DeleteAvenant`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async contratDeleteAvenant(requestParameters: ContratDeleteAvenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.contratDeleteAvenantRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async contratEditSuspensionRaw(requestParameters: ContratEditSuspensionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/EditSuspension`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratSuspensionDtoToJSON(requestParameters.ContratSuspensionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratSuspensionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratEditSuspension(requestParameters: ContratEditSuspensionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratEditSuspensionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetApprenantInfosRaw(requestParameters: ContratGetApprenantInfosRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetApprenantInfos`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratApprenantInfosDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratGetApprenantInfos(requestParameters: ContratGetApprenantInfosRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetApprenantInfosRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetBaremesByDureeRaw(requestParameters: ContratGetBaremesByDureeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.iddureeContrat !== undefined) {\n queryParameters['iddureeContrat'] = requestParameters.iddureeContrat;\n }\n\n if (requestParameters.oldCs !== undefined) {\n queryParameters['oldCs'] = requestParameters.oldCs;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetBaremesByDuree`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(BaremeTheoriqueDtoFromJSON));\n }\n\n /**\n */\n async contratGetBaremesByDuree(requestParameters: ContratGetBaremesByDureeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contratGetBaremesByDureeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetClasseInfosRaw(requestParameters: ContratGetClasseInfosRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idclasse !== undefined) {\n queryParameters['idclasse'] = requestParameters.idclasse;\n }\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetClasseInfos`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratClasseInfosDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratGetClasseInfos(requestParameters: ContratGetClasseInfosRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetClasseInfosRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetContratRaw(requestParameters: ContratGetContratRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.typeContrat !== undefined) {\n queryParameters['typeContrat'] = requestParameters.typeContrat;\n }\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratGetContrat(requestParameters: ContratGetContratRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetContratRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetContratAvenantRaw(requestParameters: ContratGetContratAvenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idavenant !== undefined) {\n queryParameters['idavenant'] = requestParameters.idavenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetContratAvenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratAvenantEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratGetContratAvenant(requestParameters: ContratGetContratAvenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetContratAvenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetContratInfosForSuiviRaw(requestParameters: ContratGetContratInfosForSuiviRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontrat !== undefined) {\n queryParameters['idcontrat'] = requestParameters.idcontrat;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetContratInfosForSuivi`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratInfosForSuiviDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratGetContratInfosForSuivi(requestParameters: ContratGetContratInfosForSuiviRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetContratInfosForSuiviRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetDisplayNameRaw(requestParameters: ContratGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async contratGetDisplayName(requestParameters: ContratGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetMainLieuFormationCPRaw(requestParameters: ContratGetMainLieuFormationCPRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontrat !== undefined) {\n queryParameters['idcontrat'] = requestParameters.idcontrat;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetMainLieuFormationCP`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async contratGetMainLieuFormationCP(requestParameters: ContratGetMainLieuFormationCPRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetMainLieuFormationCPRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetSearchCriteriasRaw(requestParameters: ContratGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async contratGetSearchCriterias(requestParameters: ContratGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contratGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetSelectItemsRaw(requestParameters: ContratGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling contratGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async contratGetSelectItems(requestParameters: ContratGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contratGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetSiegeSocialInfosRaw(requestParameters: ContratGetSiegeSocialInfosRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetSiegeSocialInfos`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratSiegeSocialDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratGetSiegeSocialInfos(requestParameters: ContratGetSiegeSocialInfosRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetSiegeSocialInfosRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetStatutRaw(requestParameters: ContratGetStatutRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontrat !== undefined) {\n queryParameters['idcontrat'] = requestParameters.idcontrat;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetStatut`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EStatutContratFromJSON(jsonValue));\n }\n\n /**\n */\n async contratGetStatut(requestParameters: ContratGetStatutRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetStatutRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetSuspensionRaw(requestParameters: ContratGetSuspensionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontratSuspension !== undefined) {\n queryParameters['idcontratSuspension'] = requestParameters.idcontratSuspension;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetSuspension`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratSuspensionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratGetSuspension(requestParameters: ContratGetSuspensionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetSuspensionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratGetTypeRaw(requestParameters: ContratGetTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontrat !== undefined) {\n queryParameters['idcontrat'] = requestParameters.idcontrat;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/GetType`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ETypeContratFromJSON(jsonValue));\n }\n\n /**\n */\n async contratGetType(requestParameters: ContratGetTypeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratGetTypeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratHasOffreActiveRaw(requestParameters: ContratHasOffreActiveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontrat !== undefined) {\n queryParameters['idcontrat'] = requestParameters.idcontrat;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/HasOffreActive`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratHasOffreActive(requestParameters: ContratHasOffreActiveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratHasOffreActiveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratRuptureContratRaw(requestParameters: ContratRuptureContratRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/Rupture`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratEditDtoToJSON(requestParameters.ContratEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratRuptureContrat(requestParameters: ContratRuptureContratRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratRuptureContratRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratSaveAvenantsRaw(requestParameters: ContratSaveAvenantsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/SaveAvenants`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratAvenantEditDtoToJSON(requestParameters.ContratAvenantEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratAvenantEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratSaveAvenants(requestParameters: ContratSaveAvenantsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratSaveAvenantsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratSaveContratRaw(requestParameters: ContratSaveContratRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratEditDtoToJSON(requestParameters.ContratEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratSaveContrat(requestParameters: ContratSaveContratRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratSaveContratRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratSearchAvenantsRaw(requestParameters: ContratSearchAvenantsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/SearchAvenants`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratAvenantSearchDtoToJSON(requestParameters.ContratAvenantSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratAvenantGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contratSearchAvenants(requestParameters: ContratSearchAvenantsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratSearchAvenantsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratSearchHistoryRaw(requestParameters: ContratSearchHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/SearchHistory`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratHistorySearchDtoToJSON(requestParameters.ContratHistorySearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratHistoryGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contratSearchHistory(requestParameters: ContratSearchHistoryRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratSearchHistoryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratSearchLieuxFormationRaw(requestParameters: ContratSearchLieuxFormationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Contrat/SearchLieuxFormation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratLieuxFormationSearchDtoToJSON(requestParameters.ContratLieuxFormationSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratLieuxFormationGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contratSearchLieuxFormation(requestParameters: ContratSearchLieuxFormationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratSearchLieuxFormationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ContratFichierDto,\n ContratFichierGridDtoPaginatedResults,\n ContratFichierSearchDto,\n ContratFichierUploadDto,\n FileDownloadDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n ContratFichierDtoFromJSON,\n ContratFichierDtoToJSON,\n ContratFichierGridDtoPaginatedResultsFromJSON,\n ContratFichierGridDtoPaginatedResultsToJSON,\n ContratFichierSearchDtoFromJSON,\n ContratFichierSearchDtoToJSON,\n ContratFichierUploadDtoFromJSON,\n ContratFichierUploadDtoToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ContratFichierBaseSearchRequest {\n ContratFichierSearchDto?: ContratFichierSearchDto;\n}\n\nexport interface ContratFichierDeleteContratFichierRequest {\n id?: number;\n}\n\nexport interface ContratFichierDownloadContratFichierRequest {\n id?: number;\n}\n\nexport interface ContratFichierGetContratFichierRequest {\n id?: number;\n}\n\nexport interface ContratFichierGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ContratFichierGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ContratFichierSaveContratFichierRequest {\n ContratFichierDto?: ContratFichierDto;\n}\n\nexport interface ContratFichierUploadContratFichierRequest {\n ContratFichierUploadDto?: ContratFichierUploadDto;\n}\n\n/**\n * \n */\nexport class ContratFichierApi extends runtime.BaseAPI {\n\n /**\n */\n async contratFichierBaseSearchRaw(requestParameters: ContratFichierBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFichier/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratFichierSearchDtoToJSON(requestParameters.ContratFichierSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratFichierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contratFichierBaseSearch(requestParameters: ContratFichierBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFichierBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFichierDeleteContratFichierRaw(requestParameters: ContratFichierDeleteContratFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async contratFichierDeleteContratFichier(requestParameters: ContratFichierDeleteContratFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.contratFichierDeleteContratFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async contratFichierDownloadContratFichierRaw(requestParameters: ContratFichierDownloadContratFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFichier/Download`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratFichierDownloadContratFichier(requestParameters: ContratFichierDownloadContratFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFichierDownloadContratFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFichierGetContratFichierRaw(requestParameters: ContratFichierGetContratFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratFichierGetContratFichier(requestParameters: ContratFichierGetContratFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFichierGetContratFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFichierGetSearchCriteriasRaw(requestParameters: ContratFichierGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFichier/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async contratFichierGetSearchCriterias(requestParameters: ContratFichierGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contratFichierGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFichierGetSelectItemsRaw(requestParameters: ContratFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling contratFichierGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFichier/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async contratFichierGetSelectItems(requestParameters: ContratFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contratFichierGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFichierSaveContratFichierRaw(requestParameters: ContratFichierSaveContratFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratFichierDtoToJSON(requestParameters.ContratFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratFichierSaveContratFichier(requestParameters: ContratFichierSaveContratFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFichierSaveContratFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFichierUploadContratFichierRaw(requestParameters: ContratFichierUploadContratFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFichier/Upload`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratFichierUploadDtoToJSON(requestParameters.ContratFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratFichierUploadContratFichier(requestParameters: ContratFichierUploadContratFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFichierUploadContratFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ContratFormateurSearch,\n FcbContratFormateurDto,\n FcbContratFormateurGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n ContratFormateurSearchFromJSON,\n ContratFormateurSearchToJSON,\n FcbContratFormateurDtoFromJSON,\n FcbContratFormateurDtoToJSON,\n FcbContratFormateurGridDtoPaginatedResultsFromJSON,\n FcbContratFormateurGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ContratFormateurBaseSearchRequest {\n ContratFormateurSearch?: ContratFormateurSearch;\n}\n\nexport interface ContratFormateurCodeContratFormateurExistsRequest {\n code?: string;\n}\n\nexport interface ContratFormateurDeleteRequest {\n id?: number;\n}\n\nexport interface ContratFormateurGetRequest {\n id?: number;\n}\n\nexport interface ContratFormateurGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ContratFormateurGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ContratFormateurGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ContratFormateurSaveRequest {\n FcbContratFormateurDto?: FcbContratFormateurDto;\n}\n\n/**\n * \n */\nexport class ContratFormateurApi extends runtime.BaseAPI {\n\n /**\n */\n async contratFormateurBaseSearchRaw(requestParameters: ContratFormateurBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFormateur/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratFormateurSearchToJSON(requestParameters.ContratFormateurSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbContratFormateurGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contratFormateurBaseSearch(requestParameters: ContratFormateurBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFormateurBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFormateurCodeContratFormateurExistsRaw(requestParameters: ContratFormateurCodeContratFormateurExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFormateur/codeExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async contratFormateurCodeContratFormateurExists(requestParameters: ContratFormateurCodeContratFormateurExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFormateurCodeContratFormateurExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFormateurDeleteRaw(requestParameters: ContratFormateurDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFormateur`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async contratFormateurDelete(requestParameters: ContratFormateurDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFormateurDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFormateurGetRaw(requestParameters: ContratFormateurGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFormateur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbContratFormateurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratFormateurGet(requestParameters: ContratFormateurGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFormateurGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFormateurGetDisplayNameRaw(requestParameters: ContratFormateurGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFormateur/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async contratFormateurGetDisplayName(requestParameters: ContratFormateurGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFormateurGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFormateurGetSearchCriteriasRaw(requestParameters: ContratFormateurGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFormateur/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async contratFormateurGetSearchCriterias(requestParameters: ContratFormateurGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contratFormateurGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFormateurGetSelectItemsRaw(requestParameters: ContratFormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling contratFormateurGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFormateur/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async contratFormateurGetSelectItems(requestParameters: ContratFormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contratFormateurGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratFormateurSaveRaw(requestParameters: ContratFormateurSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratFormateur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbContratFormateurDtoToJSON(requestParameters.FcbContratFormateurDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbContratFormateurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratFormateurSave(requestParameters: ContratFormateurSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratFormateurSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ContratSuspensionDto,\n ContratSuspensionDtoPaginatedResults,\n ContratSuspensionSearchDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n ContratSuspensionDtoFromJSON,\n ContratSuspensionDtoToJSON,\n ContratSuspensionDtoPaginatedResultsFromJSON,\n ContratSuspensionDtoPaginatedResultsToJSON,\n ContratSuspensionSearchDtoFromJSON,\n ContratSuspensionSearchDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ContratSuspensionBaseSearchRequest {\n ContratSuspensionSearchDto?: ContratSuspensionSearchDto;\n}\n\nexport interface ContratSuspensionDeleteContratSuspensionRequest {\n idcontratSuspension?: number;\n}\n\nexport interface ContratSuspensionGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ContratSuspensionGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ContratSuspensionSaveContratSuspensionRequest {\n ContratSuspensionDto?: ContratSuspensionDto;\n}\n\n/**\n * \n */\nexport class ContratSuspensionApi extends runtime.BaseAPI {\n\n /**\n */\n async contratSuspensionBaseSearchRaw(requestParameters: ContratSuspensionBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratSuspension/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratSuspensionSearchDtoToJSON(requestParameters.ContratSuspensionSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratSuspensionDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async contratSuspensionBaseSearch(requestParameters: ContratSuspensionBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratSuspensionBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratSuspensionDeleteContratSuspensionRaw(requestParameters: ContratSuspensionDeleteContratSuspensionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontratSuspension !== undefined) {\n queryParameters['idcontratSuspension'] = requestParameters.idcontratSuspension;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratSuspension`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async contratSuspensionDeleteContratSuspension(requestParameters: ContratSuspensionDeleteContratSuspensionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.contratSuspensionDeleteContratSuspensionRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async contratSuspensionGetSearchCriteriasRaw(requestParameters: ContratSuspensionGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratSuspension/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async contratSuspensionGetSearchCriterias(requestParameters: ContratSuspensionGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contratSuspensionGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratSuspensionGetSelectItemsRaw(requestParameters: ContratSuspensionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling contratSuspensionGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratSuspension/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async contratSuspensionGetSelectItems(requestParameters: ContratSuspensionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.contratSuspensionGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async contratSuspensionSaveContratSuspensionRaw(requestParameters: ContratSuspensionSaveContratSuspensionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ContratSuspension`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratSuspensionDtoToJSON(requestParameters.ContratSuspensionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratSuspensionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async contratSuspensionSaveContratSuspension(requestParameters: ContratSuspensionSaveContratSuspensionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.contratSuspensionSaveContratSuspensionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n DashboardAbsenceDto,\n DashboardAbsenceDtoPaginatedResults,\n DashboardAbsenceSearch,\n DashboardAbsencesVuReturnDto,\n DashboardDossierDto,\n DashboardDossierDtoPaginatedResults,\n DashboardDossierSearch,\n DashboardInscriptionGridDtoPaginatedResults,\n DashboardInscriptionSearch,\n DashboardPratiqueProDtoPaginatedResults,\n DashboardPratiqueProSearch,\n DashboardSuiviSearch,\n DashboardSuiviSiegeLieuSearch,\n DemandeInscriptionInvalidationDto,\n EDashboard,\n EIfapmeSide,\n FilterCriteriaInfo,\n SuiviGridDtoPaginatedResults,\n SuiviSiegeLieuGridDtoPaginatedResults,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n DashboardAbsenceDtoFromJSON,\n DashboardAbsenceDtoToJSON,\n DashboardAbsenceDtoPaginatedResultsFromJSON,\n DashboardAbsenceDtoPaginatedResultsToJSON,\n DashboardAbsenceSearchFromJSON,\n DashboardAbsenceSearchToJSON,\n DashboardAbsencesVuReturnDtoFromJSON,\n DashboardAbsencesVuReturnDtoToJSON,\n DashboardDossierDtoFromJSON,\n DashboardDossierDtoToJSON,\n DashboardDossierDtoPaginatedResultsFromJSON,\n DashboardDossierDtoPaginatedResultsToJSON,\n DashboardDossierSearchFromJSON,\n DashboardDossierSearchToJSON,\n DashboardInscriptionGridDtoPaginatedResultsFromJSON,\n DashboardInscriptionGridDtoPaginatedResultsToJSON,\n DashboardInscriptionSearchFromJSON,\n DashboardInscriptionSearchToJSON,\n DashboardPratiqueProDtoPaginatedResultsFromJSON,\n DashboardPratiqueProDtoPaginatedResultsToJSON,\n DashboardPratiqueProSearchFromJSON,\n DashboardPratiqueProSearchToJSON,\n DashboardSuiviSearchFromJSON,\n DashboardSuiviSearchToJSON,\n DashboardSuiviSiegeLieuSearchFromJSON,\n DashboardSuiviSiegeLieuSearchToJSON,\n DemandeInscriptionInvalidationDtoFromJSON,\n DemandeInscriptionInvalidationDtoToJSON,\n EDashboardFromJSON,\n EDashboardToJSON,\n EIfapmeSideFromJSON,\n EIfapmeSideToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SuiviGridDtoPaginatedResultsFromJSON,\n SuiviGridDtoPaginatedResultsToJSON,\n SuiviSiegeLieuGridDtoPaginatedResultsFromJSON,\n SuiviSiegeLieuGridDtoPaginatedResultsToJSON,\n} from '../models/index';\n\nexport interface DashboardGetCountsRequest {\n ifapmeSide?: EIfapmeSide;\n dashboard?: EDashboard;\n}\n\nexport interface DashboardInvaliderDemandeInscriptionRequest {\n DemandeInscriptionInvalidationDto?: DemandeInscriptionInvalidationDto;\n}\n\nexport interface DashboardMarquerAbsenceVueRequest {\n DashboardAbsenceDto?: DashboardAbsenceDto;\n}\n\nexport interface DashboardMarquerSortieApprenantRequest {\n DashboardDossierDto?: DashboardDossierDto;\n}\n\nexport interface DashboardMarquerSuiviFaitRequest {\n idsuivi?: number;\n ifapmeSide?: EIfapmeSide;\n}\n\nexport interface DashboardMarquerSuiviSiegeLieuFaitRequest {\n idsuiviSiegeLieu?: number;\n}\n\nexport interface DashboardMasquerAbsenceRequest {\n idapprenant?: number;\n anneeScolaire?: string;\n}\n\nexport interface DashboardMasquerDemandeInscriptionsRequest {\n iddemande?: number;\n}\n\nexport interface DashboardMasquerDossierAgrementRequest {\n idlieuFormationAgrement?: number;\n}\n\nexport interface DashboardMasquerPratiqueProRequest {\n idcontrat?: number;\n statut?: string;\n}\n\nexport interface DashboardMasquerSortieRequest {\n idstatutApprenant?: number;\n}\n\nexport interface DashboardMasquerStatutApprenantRequest {\n idstatutApprenant?: number;\n}\n\nexport interface DashboardMasquerSuiviRequest {\n idsuivi?: number;\n ifapmeSide?: EIfapmeSide;\n}\n\nexport interface DashboardMasquerSuiviSiegeLieuRequest {\n idsuiviSiegeLieu?: number;\n}\n\nexport interface DashboardRefuserSortieApprenantRequest {\n DashboardDossierDto?: DashboardDossierDto;\n}\n\nexport interface DashboardSearchAbsencesRequest {\n DashboardAbsenceSearch?: DashboardAbsenceSearch;\n}\n\nexport interface DashboardSearchDossiersFinAgrementRequest {\n DashboardDossierSearch?: DashboardDossierSearch;\n}\n\nexport interface DashboardSearchDossiersPostFormationRequest {\n DashboardDossierSearch?: DashboardDossierSearch;\n}\n\nexport interface DashboardSearchDossiersSortieRequest {\n DashboardDossierSearch?: DashboardDossierSearch;\n}\n\nexport interface DashboardSearchInscriptionsRequest {\n DashboardInscriptionSearch?: DashboardInscriptionSearch;\n}\n\nexport interface DashboardSearchPratiqueProRequest {\n DashboardPratiqueProSearch?: DashboardPratiqueProSearch;\n}\n\nexport interface DashboardSearchSuivisRequest {\n DashboardSuiviSearch?: DashboardSuiviSearch;\n}\n\nexport interface DashboardSearchSuivisSiegeLieuRequest {\n DashboardSuiviSiegeLieuSearch?: DashboardSuiviSiegeLieuSearch;\n}\n\n/**\n * \n */\nexport class DashboardApi extends runtime.BaseAPI {\n\n /**\n */\n async dashboardGetAbsencesCriteriasRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/GetAbsencesCriterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async dashboardGetAbsencesCriterias(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.dashboardGetAbsencesCriteriasRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardGetCountsRaw(requestParameters: DashboardGetCountsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.ifapmeSide !== undefined) {\n queryParameters['ifapmeSide'] = requestParameters.ifapmeSide;\n }\n\n if (requestParameters.dashboard !== undefined) {\n queryParameters['dashboard'] = requestParameters.dashboard;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/GetCounts`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async dashboardGetCounts(requestParameters: DashboardGetCountsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardGetCountsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardGetDossierCriteriasRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/GetDossierCriterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async dashboardGetDossierCriterias(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.dashboardGetDossierCriteriasRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardGetInscriptionCriteriasRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/GetInscriptionCriterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async dashboardGetInscriptionCriterias(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.dashboardGetInscriptionCriteriasRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardGetPratiqueProCriteriasRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/GetPratiqueProCriterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async dashboardGetPratiqueProCriterias(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.dashboardGetPratiqueProCriteriasRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardGetSuiviSiegeLieuCriteriasRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/GetSuiviSiegeLieuCriterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async dashboardGetSuiviSiegeLieuCriterias(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.dashboardGetSuiviSiegeLieuCriteriasRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardGetSuivisCriteriasRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/GetSuivisCriterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async dashboardGetSuivisCriterias(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.dashboardGetSuivisCriteriasRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardInvaliderDemandeInscriptionRaw(requestParameters: DashboardInvaliderDemandeInscriptionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/InvaliderDemandeInscription`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DemandeInscriptionInvalidationDtoToJSON(requestParameters.DemandeInscriptionInvalidationDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardInvaliderDemandeInscription(requestParameters: DashboardInvaliderDemandeInscriptionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardInvaliderDemandeInscriptionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMarquerAbsenceVueRaw(requestParameters: DashboardMarquerAbsenceVueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MarquerAbsenceVue`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardAbsenceDtoToJSON(requestParameters.DashboardAbsenceDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DashboardAbsencesVuReturnDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMarquerAbsenceVue(requestParameters: DashboardMarquerAbsenceVueRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMarquerAbsenceVueRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMarquerSortieApprenantRaw(requestParameters: DashboardMarquerSortieApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MarquerSortieApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardDossierDtoToJSON(requestParameters.DashboardDossierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMarquerSortieApprenant(requestParameters: DashboardMarquerSortieApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMarquerSortieApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMarquerSuiviFaitRaw(requestParameters: DashboardMarquerSuiviFaitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idsuivi !== undefined) {\n queryParameters['idsuivi'] = requestParameters.idsuivi;\n }\n\n if (requestParameters.ifapmeSide !== undefined) {\n queryParameters['ifapmeSide'] = requestParameters.ifapmeSide;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MarquerSuiviFait`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMarquerSuiviFait(requestParameters: DashboardMarquerSuiviFaitRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMarquerSuiviFaitRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMarquerSuiviSiegeLieuFaitRaw(requestParameters: DashboardMarquerSuiviSiegeLieuFaitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idsuiviSiegeLieu !== undefined) {\n queryParameters['idsuiviSiegeLieu'] = requestParameters.idsuiviSiegeLieu;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MarquerSuiviSiegeLieuFait`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMarquerSuiviSiegeLieuFait(requestParameters: DashboardMarquerSuiviSiegeLieuFaitRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMarquerSuiviSiegeLieuFaitRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMasquerAbsenceRaw(requestParameters: DashboardMasquerAbsenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MasquerAbsence`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMasquerAbsence(requestParameters: DashboardMasquerAbsenceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMasquerAbsenceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMasquerDemandeInscriptionsRaw(requestParameters: DashboardMasquerDemandeInscriptionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.iddemande !== undefined) {\n queryParameters['iddemande'] = requestParameters.iddemande;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MasquerDemandeInscriptions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMasquerDemandeInscriptions(requestParameters: DashboardMasquerDemandeInscriptionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMasquerDemandeInscriptionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMasquerDossierAgrementRaw(requestParameters: DashboardMasquerDossierAgrementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idlieuFormationAgrement !== undefined) {\n queryParameters['idlieuFormationAgrement'] = requestParameters.idlieuFormationAgrement;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MasquerDossierAgrement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMasquerDossierAgrement(requestParameters: DashboardMasquerDossierAgrementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMasquerDossierAgrementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMasquerPratiqueProRaw(requestParameters: DashboardMasquerPratiqueProRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcontrat !== undefined) {\n queryParameters['idcontrat'] = requestParameters.idcontrat;\n }\n\n if (requestParameters.statut !== undefined) {\n queryParameters['statut'] = requestParameters.statut;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MasquerPratiquePro`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMasquerPratiquePro(requestParameters: DashboardMasquerPratiqueProRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMasquerPratiqueProRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMasquerSortieRaw(requestParameters: DashboardMasquerSortieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idstatutApprenant !== undefined) {\n queryParameters['idstatutApprenant'] = requestParameters.idstatutApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MasquerSortie`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMasquerSortie(requestParameters: DashboardMasquerSortieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMasquerSortieRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMasquerStatutApprenantRaw(requestParameters: DashboardMasquerStatutApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idstatutApprenant !== undefined) {\n queryParameters['idstatutApprenant'] = requestParameters.idstatutApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MasquerStatutApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMasquerStatutApprenant(requestParameters: DashboardMasquerStatutApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMasquerStatutApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMasquerSuiviRaw(requestParameters: DashboardMasquerSuiviRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idsuivi !== undefined) {\n queryParameters['idsuivi'] = requestParameters.idsuivi;\n }\n\n if (requestParameters.ifapmeSide !== undefined) {\n queryParameters['ifapmeSide'] = requestParameters.ifapmeSide;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MasquerSuivi`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMasquerSuivi(requestParameters: DashboardMasquerSuiviRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMasquerSuiviRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardMasquerSuiviSiegeLieuRaw(requestParameters: DashboardMasquerSuiviSiegeLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idsuiviSiegeLieu !== undefined) {\n queryParameters['idsuiviSiegeLieu'] = requestParameters.idsuiviSiegeLieu;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/MasquerSuiviSiegeLieu`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardMasquerSuiviSiegeLieu(requestParameters: DashboardMasquerSuiviSiegeLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardMasquerSuiviSiegeLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardRefuserSortieApprenantRaw(requestParameters: DashboardRefuserSortieApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/RefuserSortieApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardDossierDtoToJSON(requestParameters.DashboardDossierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardRefuserSortieApprenant(requestParameters: DashboardRefuserSortieApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardRefuserSortieApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardSearchAbsencesRaw(requestParameters: DashboardSearchAbsencesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/SearchAbsences`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardAbsenceSearchToJSON(requestParameters.DashboardAbsenceSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DashboardAbsenceDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardSearchAbsences(requestParameters: DashboardSearchAbsencesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardSearchAbsencesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardSearchDossiersFinAgrementRaw(requestParameters: DashboardSearchDossiersFinAgrementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/SearchDossiersFinAgrement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardDossierSearchToJSON(requestParameters.DashboardDossierSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DashboardDossierDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardSearchDossiersFinAgrement(requestParameters: DashboardSearchDossiersFinAgrementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardSearchDossiersFinAgrementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardSearchDossiersPostFormationRaw(requestParameters: DashboardSearchDossiersPostFormationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/SearchDossiersPostFormation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardDossierSearchToJSON(requestParameters.DashboardDossierSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DashboardDossierDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardSearchDossiersPostFormation(requestParameters: DashboardSearchDossiersPostFormationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardSearchDossiersPostFormationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardSearchDossiersSortieRaw(requestParameters: DashboardSearchDossiersSortieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/SearchDossiersSortie`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardDossierSearchToJSON(requestParameters.DashboardDossierSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DashboardDossierDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardSearchDossiersSortie(requestParameters: DashboardSearchDossiersSortieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardSearchDossiersSortieRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardSearchInscriptionsRaw(requestParameters: DashboardSearchInscriptionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/SearchInscriptions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardInscriptionSearchToJSON(requestParameters.DashboardInscriptionSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DashboardInscriptionGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardSearchInscriptions(requestParameters: DashboardSearchInscriptionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardSearchInscriptionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardSearchPratiqueProRaw(requestParameters: DashboardSearchPratiqueProRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/SearchPratiquePro`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardPratiqueProSearchToJSON(requestParameters.DashboardPratiqueProSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DashboardPratiqueProDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardSearchPratiquePro(requestParameters: DashboardSearchPratiqueProRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardSearchPratiqueProRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardSearchSuivisRaw(requestParameters: DashboardSearchSuivisRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/SearchSuivis`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardSuiviSearchToJSON(requestParameters.DashboardSuiviSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardSearchSuivis(requestParameters: DashboardSearchSuivisRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardSearchSuivisRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dashboardSearchSuivisSiegeLieuRaw(requestParameters: DashboardSearchSuivisSiegeLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dashboard/SearchSuivisSiegeLieu`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DashboardSuiviSiegeLieuSearchToJSON(requestParameters.DashboardSuiviSiegeLieuSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviSiegeLieuGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async dashboardSearchSuivisSiegeLieu(requestParameters: DashboardSearchSuivisSiegeLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dashboardSearchSuivisSiegeLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DegreSearch,\n FcbDegreDto,\n FcbDegreGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n DegreSearchFromJSON,\n DegreSearchToJSON,\n FcbDegreDtoFromJSON,\n FcbDegreDtoToJSON,\n FcbDegreGridDtoPaginatedResultsFromJSON,\n FcbDegreGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface DegreBaseSearchRequest {\n DegreSearch?: DegreSearch;\n}\n\nexport interface DegreCodeDegreExistsRequest {\n code?: string;\n}\n\nexport interface DegreDeleteRequest {\n id?: string;\n}\n\nexport interface DegreGetRequest {\n id?: string;\n}\n\nexport interface DegreGetDisplayNameRequest {\n id?: string;\n}\n\nexport interface DegreGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface DegreGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface DegreSaveRequest {\n FcbDegreDto?: FcbDegreDto;\n}\n\n/**\n * \n */\nexport class DegreApi extends runtime.BaseAPI {\n\n /**\n */\n async degreBaseSearchRaw(requestParameters: DegreBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Degre/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DegreSearchToJSON(requestParameters.DegreSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDegreGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async degreBaseSearch(requestParameters: DegreBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.degreBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async degreCodeDegreExistsRaw(requestParameters: DegreCodeDegreExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Degre/codeExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async degreCodeDegreExists(requestParameters: DegreCodeDegreExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.degreCodeDegreExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async degreDeleteRaw(requestParameters: DegreDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Degre`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async degreDelete(requestParameters: DegreDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.degreDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async degreGetRaw(requestParameters: DegreGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Degre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDegreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async degreGet(requestParameters: DegreGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.degreGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async degreGetDisplayNameRaw(requestParameters: DegreGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Degre/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async degreGetDisplayName(requestParameters: DegreGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.degreGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async degreGetSearchCriteriasRaw(requestParameters: DegreGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Degre/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async degreGetSearchCriterias(requestParameters: DegreGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.degreGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async degreGetSelectItemsRaw(requestParameters: DegreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling degreGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Degre/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async degreGetSelectItems(requestParameters: DegreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.degreGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async degreSaveRaw(requestParameters: DegreSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Degre`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbDegreDtoToJSON(requestParameters.FcbDegreDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDegreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async degreSave(requestParameters: DegreSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.degreSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DeliberationMasseSearch,\n FcbDeliberationMasseDto,\n FcbDeliberationMasseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n DeliberationMasseSearchFromJSON,\n DeliberationMasseSearchToJSON,\n FcbDeliberationMasseDtoFromJSON,\n FcbDeliberationMasseDtoToJSON,\n FcbDeliberationMasseGridDtoPaginatedResultsFromJSON,\n FcbDeliberationMasseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface DeliberationMasseBaseSearchRequest {\n DeliberationMasseSearch?: DeliberationMasseSearch;\n}\n\nexport interface DeliberationMasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface DeliberationMasseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface DeliberationMasseSaveRequest {\n FcbDeliberationMasseDto?: FcbDeliberationMasseDto;\n}\n\nexport interface DeliberationMasseSearchBatIdsRequest {\n DeliberationMasseSearch?: DeliberationMasseSearch;\n}\n\n/**\n * \n */\nexport class DeliberationMasseApi extends runtime.BaseAPI {\n\n /**\n */\n async deliberationMasseBaseSearchRaw(requestParameters: DeliberationMasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationMasse/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DeliberationMasseSearchToJSON(requestParameters.DeliberationMasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDeliberationMasseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async deliberationMasseBaseSearch(requestParameters: DeliberationMasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.deliberationMasseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationMasseGetSearchCriteriasRaw(requestParameters: DeliberationMasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationMasse/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async deliberationMasseGetSearchCriterias(requestParameters: DeliberationMasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.deliberationMasseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationMasseGetSelectItemsRaw(requestParameters: DeliberationMasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling deliberationMasseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationMasse/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async deliberationMasseGetSelectItems(requestParameters: DeliberationMasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.deliberationMasseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationMasseSaveRaw(requestParameters: DeliberationMasseSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationMasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbDeliberationMasseDtoToJSON(requestParameters.FcbDeliberationMasseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDeliberationMasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async deliberationMasseSave(requestParameters: DeliberationMasseSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.deliberationMasseSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationMasseSearchBatIdsRaw(requestParameters: DeliberationMasseSearchBatIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationMasse/SearchBatIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DeliberationMasseSearchToJSON(requestParameters.DeliberationMasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async deliberationMasseSearchBatIds(requestParameters: DeliberationMasseSearchBatIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.deliberationMasseSearchBatIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BulletinDeliberationNavigationDto,\n DeliberationTypeSearch,\n DeliberationValidateIdsDto,\n FcbBulletinApprenantDto,\n FcbBulletinApprenantTypeDetailDto,\n FcbRechercheApprenantDeliberationTypeDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n BulletinDeliberationNavigationDtoFromJSON,\n BulletinDeliberationNavigationDtoToJSON,\n DeliberationTypeSearchFromJSON,\n DeliberationTypeSearchToJSON,\n DeliberationValidateIdsDtoFromJSON,\n DeliberationValidateIdsDtoToJSON,\n FcbBulletinApprenantDtoFromJSON,\n FcbBulletinApprenantDtoToJSON,\n FcbBulletinApprenantTypeDetailDtoFromJSON,\n FcbBulletinApprenantTypeDetailDtoToJSON,\n FcbRechercheApprenantDeliberationTypeDtoPaginatedResultsFromJSON,\n FcbRechercheApprenantDeliberationTypeDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface DeliberationTypeBaseSearchRequest {\n DeliberationTypeSearch?: DeliberationTypeSearch;\n}\n\nexport interface DeliberationTypeDeleteRequest {\n id?: number;\n}\n\nexport interface DeliberationTypeGetRequest {\n id?: number;\n}\n\nexport interface DeliberationTypeGetAnneesInscriptionsRequest {\n id?: number;\n}\n\nexport interface DeliberationTypeGetAvisResultatsIdsFichierRequest {\n sess2?: boolean;\n DeliberationTypeSearch?: DeliberationTypeSearch;\n}\n\nexport interface DeliberationTypeGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface DeliberationTypeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface DeliberationTypeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface DeliberationTypeInvalidateBulletinsRequest {\n DeliberationValidateIdsDto?: DeliberationValidateIdsDto;\n}\n\nexport interface DeliberationTypeSaveRequest {\n FcbBulletinApprenantDto?: FcbBulletinApprenantDto;\n}\n\nexport interface DeliberationTypeSearchDeliberationIdsRequest {\n DeliberationTypeSearch?: DeliberationTypeSearch;\n}\n\nexport interface DeliberationTypeSearchIdsRequest {\n DeliberationTypeSearch?: DeliberationTypeSearch;\n}\n\nexport interface DeliberationTypeSendToPrintingQueueRequest {\n generate2Sess?: boolean;\n validate?: boolean;\n DeliberationTypeSearch?: DeliberationTypeSearch;\n}\n\nexport interface DeliberationTypeValidateBulletinsRequest {\n DeliberationValidateIdsDto?: DeliberationValidateIdsDto;\n}\n\n/**\n * \n */\nexport class DeliberationTypeApi extends runtime.BaseAPI {\n\n /**\n */\n async deliberationTypeBaseSearchRaw(requestParameters: DeliberationTypeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DeliberationTypeSearchToJSON(requestParameters.DeliberationTypeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheApprenantDeliberationTypeDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async deliberationTypeBaseSearch(requestParameters: DeliberationTypeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.deliberationTypeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeDeleteRaw(requestParameters: DeliberationTypeDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async deliberationTypeDelete(requestParameters: DeliberationTypeDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.deliberationTypeDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeGetRaw(requestParameters: DeliberationTypeGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbBulletinApprenantTypeDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async deliberationTypeGet(requestParameters: DeliberationTypeGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.deliberationTypeGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeGetAnneesInscriptionsRaw(requestParameters: DeliberationTypeGetAnneesInscriptionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/GetAnneesInscriptions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async deliberationTypeGetAnneesInscriptions(requestParameters: DeliberationTypeGetAnneesInscriptionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.deliberationTypeGetAnneesInscriptionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeGetAvisResultatsIdsFichierRaw(requestParameters: DeliberationTypeGetAvisResultatsIdsFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.sess2 !== undefined) {\n queryParameters['sess2'] = requestParameters.sess2;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/GetAvisResultatsIdsFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DeliberationTypeSearchToJSON(requestParameters.DeliberationTypeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async deliberationTypeGetAvisResultatsIdsFichier(requestParameters: DeliberationTypeGetAvisResultatsIdsFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.deliberationTypeGetAvisResultatsIdsFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeGetDisplayNameRaw(requestParameters: DeliberationTypeGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async deliberationTypeGetDisplayName(requestParameters: DeliberationTypeGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.deliberationTypeGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeGetSearchCriteriasRaw(requestParameters: DeliberationTypeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async deliberationTypeGetSearchCriterias(requestParameters: DeliberationTypeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.deliberationTypeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeGetSelectItemsRaw(requestParameters: DeliberationTypeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling deliberationTypeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async deliberationTypeGetSelectItems(requestParameters: DeliberationTypeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.deliberationTypeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeInvalidateBulletinsRaw(requestParameters: DeliberationTypeInvalidateBulletinsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/InvalidateBulletins`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DeliberationValidateIdsDtoToJSON(requestParameters.DeliberationValidateIdsDto),\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async deliberationTypeInvalidateBulletins(requestParameters: DeliberationTypeInvalidateBulletinsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.deliberationTypeInvalidateBulletinsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeSaveRaw(requestParameters: DeliberationTypeSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbBulletinApprenantDtoToJSON(requestParameters.FcbBulletinApprenantDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbBulletinApprenantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async deliberationTypeSave(requestParameters: DeliberationTypeSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.deliberationTypeSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeSearchDeliberationIdsRaw(requestParameters: DeliberationTypeSearchDeliberationIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/SearchDeliberationIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DeliberationTypeSearchToJSON(requestParameters.DeliberationTypeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DeliberationValidateIdsDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async deliberationTypeSearchDeliberationIds(requestParameters: DeliberationTypeSearchDeliberationIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.deliberationTypeSearchDeliberationIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeSearchIdsRaw(requestParameters: DeliberationTypeSearchIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/searchIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DeliberationTypeSearchToJSON(requestParameters.DeliberationTypeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(BulletinDeliberationNavigationDtoFromJSON));\n }\n\n /**\n */\n async deliberationTypeSearchIds(requestParameters: DeliberationTypeSearchIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.deliberationTypeSearchIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async deliberationTypeSendToPrintingQueueRaw(requestParameters: DeliberationTypeSendToPrintingQueueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.generate2Sess !== undefined) {\n queryParameters['generate2Sess'] = requestParameters.generate2Sess;\n }\n\n if (requestParameters.validate !== undefined) {\n queryParameters['validate'] = requestParameters.validate;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/SendToPrintingQueue`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DeliberationTypeSearchToJSON(requestParameters.DeliberationTypeSearch),\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async deliberationTypeSendToPrintingQueue(requestParameters: DeliberationTypeSendToPrintingQueueRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.deliberationTypeSendToPrintingQueueRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async deliberationTypeValidateBulletinsRaw(requestParameters: DeliberationTypeValidateBulletinsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DeliberationType/ValidateBulletins`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DeliberationValidateIdsDtoToJSON(requestParameters.DeliberationValidateIdsDto),\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async deliberationTypeValidateBulletins(requestParameters: DeliberationTypeValidateBulletinsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.deliberationTypeValidateBulletinsRaw(requestParameters, initOverrides);\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DiplomeSearch,\n FcbDiplomeDto,\n FcbDiplomeGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n DiplomeSearchFromJSON,\n DiplomeSearchToJSON,\n FcbDiplomeDtoFromJSON,\n FcbDiplomeDtoToJSON,\n FcbDiplomeGridDtoPaginatedResultsFromJSON,\n FcbDiplomeGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface DiplomeBaseSearchRequest {\n DiplomeSearch?: DiplomeSearch;\n}\n\nexport interface DiplomeDeleteRequest {\n id?: number;\n}\n\nexport interface DiplomeGetRequest {\n id?: number;\n}\n\nexport interface DiplomeGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface DiplomeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface DiplomeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface DiplomeSaveRequest {\n FcbDiplomeDto?: FcbDiplomeDto;\n}\n\n/**\n * \n */\nexport class DiplomeApi extends runtime.BaseAPI {\n\n /**\n */\n async diplomeBaseSearchRaw(requestParameters: DiplomeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Diplome/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DiplomeSearchToJSON(requestParameters.DiplomeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDiplomeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async diplomeBaseSearch(requestParameters: DiplomeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.diplomeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async diplomeDeleteRaw(requestParameters: DiplomeDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Diplome`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async diplomeDelete(requestParameters: DiplomeDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.diplomeDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async diplomeGetRaw(requestParameters: DiplomeGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Diplome`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDiplomeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async diplomeGet(requestParameters: DiplomeGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.diplomeGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async diplomeGetDisplayNameRaw(requestParameters: DiplomeGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Diplome/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async diplomeGetDisplayName(requestParameters: DiplomeGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.diplomeGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async diplomeGetSearchCriteriasRaw(requestParameters: DiplomeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Diplome/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async diplomeGetSearchCriterias(requestParameters: DiplomeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.diplomeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async diplomeGetSelectItemsRaw(requestParameters: DiplomeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling diplomeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Diplome/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async diplomeGetSelectItems(requestParameters: DiplomeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.diplomeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async diplomeSaveRaw(requestParameters: DiplomeSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Diplome`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbDiplomeDtoToJSON(requestParameters.FcbDiplomeDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDiplomeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async diplomeSave(requestParameters: DiplomeSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.diplomeSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DirectionTerritorialeSearch,\n FcbDirectionTerritorialeDto,\n FcbDirectionTerritorialeGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n DirectionTerritorialeSearchFromJSON,\n DirectionTerritorialeSearchToJSON,\n FcbDirectionTerritorialeDtoFromJSON,\n FcbDirectionTerritorialeDtoToJSON,\n FcbDirectionTerritorialeGridDtoPaginatedResultsFromJSON,\n FcbDirectionTerritorialeGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface DirectionTerritorialeBaseSearchRequest {\n DirectionTerritorialeSearch?: DirectionTerritorialeSearch;\n}\n\nexport interface DirectionTerritorialeDeleteRequest {\n id?: number;\n}\n\nexport interface DirectionTerritorialeDirectionTerritorialeCodeExistsRequest {\n id?: number;\n code?: string;\n}\n\nexport interface DirectionTerritorialeGetRequest {\n id?: number;\n}\n\nexport interface DirectionTerritorialeGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface DirectionTerritorialeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface DirectionTerritorialeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface DirectionTerritorialeSaveRequest {\n FcbDirectionTerritorialeDto?: FcbDirectionTerritorialeDto;\n}\n\n/**\n * \n */\nexport class DirectionTerritorialeApi extends runtime.BaseAPI {\n\n /**\n */\n async directionTerritorialeBaseSearchRaw(requestParameters: DirectionTerritorialeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DirectionTerritoriale/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DirectionTerritorialeSearchToJSON(requestParameters.DirectionTerritorialeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDirectionTerritorialeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async directionTerritorialeBaseSearch(requestParameters: DirectionTerritorialeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.directionTerritorialeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async directionTerritorialeDeleteRaw(requestParameters: DirectionTerritorialeDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DirectionTerritoriale`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async directionTerritorialeDelete(requestParameters: DirectionTerritorialeDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.directionTerritorialeDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async directionTerritorialeDirectionTerritorialeCodeExistsRaw(requestParameters: DirectionTerritorialeDirectionTerritorialeCodeExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DirectionTerritoriale/nomExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async directionTerritorialeDirectionTerritorialeCodeExists(requestParameters: DirectionTerritorialeDirectionTerritorialeCodeExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.directionTerritorialeDirectionTerritorialeCodeExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async directionTerritorialeGetRaw(requestParameters: DirectionTerritorialeGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DirectionTerritoriale`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDirectionTerritorialeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async directionTerritorialeGet(requestParameters: DirectionTerritorialeGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.directionTerritorialeGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async directionTerritorialeGetDisplayNameRaw(requestParameters: DirectionTerritorialeGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DirectionTerritoriale/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async directionTerritorialeGetDisplayName(requestParameters: DirectionTerritorialeGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.directionTerritorialeGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async directionTerritorialeGetSearchCriteriasRaw(requestParameters: DirectionTerritorialeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DirectionTerritoriale/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async directionTerritorialeGetSearchCriterias(requestParameters: DirectionTerritorialeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.directionTerritorialeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async directionTerritorialeGetSelectItemsRaw(requestParameters: DirectionTerritorialeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling directionTerritorialeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DirectionTerritoriale/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async directionTerritorialeGetSelectItems(requestParameters: DirectionTerritorialeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.directionTerritorialeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async directionTerritorialeSaveRaw(requestParameters: DirectionTerritorialeSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DirectionTerritoriale`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbDirectionTerritorialeDtoToJSON(requestParameters.FcbDirectionTerritorialeDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDirectionTerritorialeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async directionTerritorialeSave(requestParameters: DirectionTerritorialeSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.directionTerritorialeSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DispenseSearch,\n FcbDispenseDetailDto,\n FcbDispenseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n DispenseSearchFromJSON,\n DispenseSearchToJSON,\n FcbDispenseDetailDtoFromJSON,\n FcbDispenseDetailDtoToJSON,\n FcbDispenseGridDtoPaginatedResultsFromJSON,\n FcbDispenseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface DispenseBaseSearchRequest {\n DispenseSearch?: DispenseSearch;\n}\n\nexport interface DispenseDeleteRequest {\n id?: number;\n}\n\nexport interface DispenseGetRequest {\n id?: number;\n}\n\nexport interface DispenseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface DispenseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface DispenseSaveRequest {\n FcbDispenseDetailDto?: FcbDispenseDetailDto;\n}\n\n/**\n * \n */\nexport class DispenseApi extends runtime.BaseAPI {\n\n /**\n */\n async dispenseBaseSearchRaw(requestParameters: DispenseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dispense/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DispenseSearchToJSON(requestParameters.DispenseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDispenseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async dispenseBaseSearch(requestParameters: DispenseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dispenseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dispenseDeleteRaw(requestParameters: DispenseDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dispense`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async dispenseDelete(requestParameters: DispenseDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dispenseDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dispenseGetRaw(requestParameters: DispenseGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dispense`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDispenseDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dispenseGet(requestParameters: DispenseGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dispenseGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dispenseGetSearchCriteriasRaw(requestParameters: DispenseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dispense/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async dispenseGetSearchCriterias(requestParameters: DispenseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.dispenseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dispenseGetSelectItemsRaw(requestParameters: DispenseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling dispenseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dispense/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async dispenseGetSelectItems(requestParameters: DispenseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.dispenseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async dispenseSaveRaw(requestParameters: DispenseSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Dispense`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbDispenseDetailDtoToJSON(requestParameters.FcbDispenseDetailDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDispenseDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async dispenseSave(requestParameters: DispenseSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.dispenseSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DoublonEditDto,\n DoublonsGridDtoPaginatedResults,\n DoublonsPersonneGridDtoPaginatedResults,\n DoublonsPersonneSearchDto,\n DoublonsSearchDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n DoublonEditDtoFromJSON,\n DoublonEditDtoToJSON,\n DoublonsGridDtoPaginatedResultsFromJSON,\n DoublonsGridDtoPaginatedResultsToJSON,\n DoublonsPersonneGridDtoPaginatedResultsFromJSON,\n DoublonsPersonneGridDtoPaginatedResultsToJSON,\n DoublonsPersonneSearchDtoFromJSON,\n DoublonsPersonneSearchDtoToJSON,\n DoublonsSearchDtoFromJSON,\n DoublonsSearchDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface DoublonsBaseSearchRequest {\n DoublonsSearchDto?: DoublonsSearchDto;\n}\n\nexport interface DoublonsFusionRequest {\n DoublonEditDto?: DoublonEditDto;\n}\n\nexport interface DoublonsGetDoublonRequest {\n idpersonne1?: number;\n idpersonne2?: number;\n}\n\nexport interface DoublonsGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface DoublonsGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface DoublonsHomonymeRequest {\n DoublonEditDto?: DoublonEditDto;\n}\n\nexport interface DoublonsSearchPersonneRequest {\n DoublonsPersonneSearchDto?: DoublonsPersonneSearchDto;\n}\n\n/**\n * \n */\nexport class DoublonsApi extends runtime.BaseAPI {\n\n /**\n */\n async doublonsBaseSearchRaw(requestParameters: DoublonsBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Doublons/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DoublonsSearchDtoToJSON(requestParameters.DoublonsSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DoublonsGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async doublonsBaseSearch(requestParameters: DoublonsBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.doublonsBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async doublonsFusionRaw(requestParameters: DoublonsFusionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Doublons/Fusion`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DoublonEditDtoToJSON(requestParameters.DoublonEditDto),\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async doublonsFusion(requestParameters: DoublonsFusionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.doublonsFusionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async doublonsGetDoublonRaw(requestParameters: DoublonsGetDoublonRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idpersonne1 !== undefined) {\n queryParameters['idpersonne1'] = requestParameters.idpersonne1;\n }\n\n if (requestParameters.idpersonne2 !== undefined) {\n queryParameters['idpersonne2'] = requestParameters.idpersonne2;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Doublons`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DoublonEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async doublonsGetDoublon(requestParameters: DoublonsGetDoublonRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.doublonsGetDoublonRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async doublonsGetSearchCriteriasRaw(requestParameters: DoublonsGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Doublons/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async doublonsGetSearchCriterias(requestParameters: DoublonsGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.doublonsGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async doublonsGetSearchPersonneCriteriasRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Doublons/GetSearchPersonneCriterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async doublonsGetSearchPersonneCriterias(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.doublonsGetSearchPersonneCriteriasRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async doublonsGetSelectItemsRaw(requestParameters: DoublonsGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling doublonsGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Doublons/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async doublonsGetSelectItems(requestParameters: DoublonsGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.doublonsGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async doublonsHomonymeRaw(requestParameters: DoublonsHomonymeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Doublons/Homonyme`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DoublonEditDtoToJSON(requestParameters.DoublonEditDto),\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async doublonsHomonyme(requestParameters: DoublonsHomonymeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.doublonsHomonymeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async doublonsSearchPersonneRaw(requestParameters: DoublonsSearchPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Doublons/SearchPersonne`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DoublonsPersonneSearchDtoToJSON(requestParameters.DoublonsPersonneSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DoublonsPersonneGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async doublonsSearchPersonne(requestParameters: DoublonsSearchPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.doublonsSearchPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n EcoleSearch,\n FcbEcoleDto,\n FcbEcoleGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n EcoleSearchFromJSON,\n EcoleSearchToJSON,\n FcbEcoleDtoFromJSON,\n FcbEcoleDtoToJSON,\n FcbEcoleGridDtoPaginatedResultsFromJSON,\n FcbEcoleGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface EcoleBaseSearchRequest {\n EcoleSearch?: EcoleSearch;\n}\n\nexport interface EcoleDeleteRequest {\n id?: number;\n}\n\nexport interface EcoleGetRequest {\n id?: number;\n}\n\nexport interface EcoleGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface EcoleGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface EcoleGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface EcoleSaveRequest {\n FcbEcoleDto?: FcbEcoleDto;\n}\n\n/**\n * \n */\nexport class EcoleApi extends runtime.BaseAPI {\n\n /**\n */\n async ecoleBaseSearchRaw(requestParameters: EcoleBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Ecole/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: EcoleSearchToJSON(requestParameters.EcoleSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEcoleGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async ecoleBaseSearch(requestParameters: EcoleBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.ecoleBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async ecoleDeleteRaw(requestParameters: EcoleDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Ecole`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async ecoleDelete(requestParameters: EcoleDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.ecoleDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async ecoleGetRaw(requestParameters: EcoleGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Ecole`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEcoleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async ecoleGet(requestParameters: EcoleGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.ecoleGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async ecoleGetDisplayNameRaw(requestParameters: EcoleGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Ecole/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async ecoleGetDisplayName(requestParameters: EcoleGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.ecoleGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async ecoleGetSearchCriteriasRaw(requestParameters: EcoleGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Ecole/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async ecoleGetSearchCriterias(requestParameters: EcoleGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.ecoleGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async ecoleGetSelectItemsRaw(requestParameters: EcoleGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling ecoleGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Ecole/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async ecoleGetSelectItems(requestParameters: EcoleGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.ecoleGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async ecoleSaveRaw(requestParameters: EcoleSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Ecole`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbEcoleDtoToJSON(requestParameters.FcbEcoleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEcoleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async ecoleSave(requestParameters: EcoleSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.ecoleSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n EntiteCentreSearch,\n FcbEntitecentreDto,\n FcbEntitecentreDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n EntiteCentreSearchFromJSON,\n EntiteCentreSearchToJSON,\n FcbEntitecentreDtoFromJSON,\n FcbEntitecentreDtoToJSON,\n FcbEntitecentreDtoPaginatedResultsFromJSON,\n FcbEntitecentreDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface EntiteCentreBaseSearchRequest {\n EntiteCentreSearch?: EntiteCentreSearch;\n}\n\nexport interface EntiteCentreDeleteRequest {\n id?: number;\n}\n\nexport interface EntiteCentreGetRequest {\n id?: number;\n}\n\nexport interface EntiteCentreGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface EntiteCentreGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface EntiteCentreGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface EntiteCentreSaveRequest {\n FcbEntitecentreDto?: FcbEntitecentreDto;\n}\n\n/**\n * \n */\nexport class EntiteCentreApi extends runtime.BaseAPI {\n\n /**\n */\n async entiteCentreBaseSearchRaw(requestParameters: EntiteCentreBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EntiteCentre/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: EntiteCentreSearchToJSON(requestParameters.EntiteCentreSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEntitecentreDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async entiteCentreBaseSearch(requestParameters: EntiteCentreBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.entiteCentreBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async entiteCentreDeleteRaw(requestParameters: EntiteCentreDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EntiteCentre`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async entiteCentreDelete(requestParameters: EntiteCentreDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.entiteCentreDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async entiteCentreGetRaw(requestParameters: EntiteCentreGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EntiteCentre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEntitecentreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async entiteCentreGet(requestParameters: EntiteCentreGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.entiteCentreGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async entiteCentreGetDisplayNameRaw(requestParameters: EntiteCentreGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EntiteCentre/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async entiteCentreGetDisplayName(requestParameters: EntiteCentreGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.entiteCentreGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async entiteCentreGetSearchCriteriasRaw(requestParameters: EntiteCentreGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EntiteCentre/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async entiteCentreGetSearchCriterias(requestParameters: EntiteCentreGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.entiteCentreGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async entiteCentreGetSelectItemsRaw(requestParameters: EntiteCentreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling entiteCentreGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EntiteCentre/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async entiteCentreGetSelectItems(requestParameters: EntiteCentreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.entiteCentreGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async entiteCentreSaveRaw(requestParameters: EntiteCentreSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EntiteCentre`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbEntitecentreDtoToJSON(requestParameters.FcbEntitecentreDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEntitecentreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async entiteCentreSave(requestParameters: EntiteCentreSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.entiteCentreSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n EnveloppeProjetFinancementSearch,\n FcbEnveloppeProjetFinancementDto,\n FcbEnveloppeProjetFinancementGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n EnveloppeProjetFinancementSearchFromJSON,\n EnveloppeProjetFinancementSearchToJSON,\n FcbEnveloppeProjetFinancementDtoFromJSON,\n FcbEnveloppeProjetFinancementDtoToJSON,\n FcbEnveloppeProjetFinancementGridDtoPaginatedResultsFromJSON,\n FcbEnveloppeProjetFinancementGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface EnveloppeProjetFinancementBaseSearchRequest {\n EnveloppeProjetFinancementSearch?: EnveloppeProjetFinancementSearch;\n}\n\nexport interface EnveloppeProjetFinancementDeleteRequest {\n id?: number;\n}\n\nexport interface EnveloppeProjetFinancementGetRequest {\n id?: number;\n}\n\nexport interface EnveloppeProjetFinancementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface EnveloppeProjetFinancementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface EnveloppeProjetFinancementSaveRequest {\n FcbEnveloppeProjetFinancementDto?: FcbEnveloppeProjetFinancementDto;\n}\n\n/**\n * \n */\nexport class EnveloppeProjetFinancementApi extends runtime.BaseAPI {\n\n /**\n */\n async enveloppeProjetFinancementBaseSearchRaw(requestParameters: EnveloppeProjetFinancementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeProjetFinancement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: EnveloppeProjetFinancementSearchToJSON(requestParameters.EnveloppeProjetFinancementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEnveloppeProjetFinancementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async enveloppeProjetFinancementBaseSearch(requestParameters: EnveloppeProjetFinancementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.enveloppeProjetFinancementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeProjetFinancementDeleteRaw(requestParameters: EnveloppeProjetFinancementDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeProjetFinancement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async enveloppeProjetFinancementDelete(requestParameters: EnveloppeProjetFinancementDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.enveloppeProjetFinancementDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeProjetFinancementGetRaw(requestParameters: EnveloppeProjetFinancementGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeProjetFinancement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEnveloppeProjetFinancementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async enveloppeProjetFinancementGet(requestParameters: EnveloppeProjetFinancementGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.enveloppeProjetFinancementGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeProjetFinancementGetSearchCriteriasRaw(requestParameters: EnveloppeProjetFinancementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeProjetFinancement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async enveloppeProjetFinancementGetSearchCriterias(requestParameters: EnveloppeProjetFinancementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.enveloppeProjetFinancementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeProjetFinancementGetSelectItemsRaw(requestParameters: EnveloppeProjetFinancementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling enveloppeProjetFinancementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeProjetFinancement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async enveloppeProjetFinancementGetSelectItems(requestParameters: EnveloppeProjetFinancementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.enveloppeProjetFinancementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeProjetFinancementSaveRaw(requestParameters: EnveloppeProjetFinancementSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeProjetFinancement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbEnveloppeProjetFinancementDtoToJSON(requestParameters.FcbEnveloppeProjetFinancementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEnveloppeProjetFinancementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async enveloppeProjetFinancementSave(requestParameters: EnveloppeProjetFinancementSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.enveloppeProjetFinancementSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n EnveloppeTypeFinancementSearch,\n FcbEnveloppeTypeFinancementDto,\n FcbEnveloppeTypeFinancementGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n EnveloppeTypeFinancementSearchFromJSON,\n EnveloppeTypeFinancementSearchToJSON,\n FcbEnveloppeTypeFinancementDtoFromJSON,\n FcbEnveloppeTypeFinancementDtoToJSON,\n FcbEnveloppeTypeFinancementGridDtoPaginatedResultsFromJSON,\n FcbEnveloppeTypeFinancementGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface EnveloppeTypeFinancementBaseSearchRequest {\n EnveloppeTypeFinancementSearch?: EnveloppeTypeFinancementSearch;\n}\n\nexport interface EnveloppeTypeFinancementDeleteRequest {\n id?: number;\n}\n\nexport interface EnveloppeTypeFinancementGetRequest {\n id?: number;\n}\n\nexport interface EnveloppeTypeFinancementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface EnveloppeTypeFinancementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface EnveloppeTypeFinancementSaveRequest {\n FcbEnveloppeTypeFinancementDto?: FcbEnveloppeTypeFinancementDto;\n}\n\n/**\n * \n */\nexport class EnveloppeTypeFinancementApi extends runtime.BaseAPI {\n\n /**\n */\n async enveloppeTypeFinancementBaseSearchRaw(requestParameters: EnveloppeTypeFinancementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeTypeFinancement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: EnveloppeTypeFinancementSearchToJSON(requestParameters.EnveloppeTypeFinancementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEnveloppeTypeFinancementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async enveloppeTypeFinancementBaseSearch(requestParameters: EnveloppeTypeFinancementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.enveloppeTypeFinancementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeTypeFinancementDeleteRaw(requestParameters: EnveloppeTypeFinancementDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeTypeFinancement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async enveloppeTypeFinancementDelete(requestParameters: EnveloppeTypeFinancementDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.enveloppeTypeFinancementDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeTypeFinancementGetRaw(requestParameters: EnveloppeTypeFinancementGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeTypeFinancement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEnveloppeTypeFinancementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async enveloppeTypeFinancementGet(requestParameters: EnveloppeTypeFinancementGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.enveloppeTypeFinancementGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeTypeFinancementGetSearchCriteriasRaw(requestParameters: EnveloppeTypeFinancementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeTypeFinancement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async enveloppeTypeFinancementGetSearchCriterias(requestParameters: EnveloppeTypeFinancementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.enveloppeTypeFinancementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeTypeFinancementGetSelectItemsRaw(requestParameters: EnveloppeTypeFinancementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling enveloppeTypeFinancementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeTypeFinancement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async enveloppeTypeFinancementGetSelectItems(requestParameters: EnveloppeTypeFinancementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.enveloppeTypeFinancementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async enveloppeTypeFinancementSaveRaw(requestParameters: EnveloppeTypeFinancementSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/EnveloppeTypeFinancement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbEnveloppeTypeFinancementDtoToJSON(requestParameters.FcbEnveloppeTypeFinancementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEnveloppeTypeFinancementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async enveloppeTypeFinancementSave(requestParameters: EnveloppeTypeFinancementSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.enveloppeTypeFinancementSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n EvaluationSearch,\n FcbEvaluationApprenantListGetDto,\n FcbEvaluationDto,\n FcbEvaluationGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n EvaluationSearchFromJSON,\n EvaluationSearchToJSON,\n FcbEvaluationApprenantListGetDtoFromJSON,\n FcbEvaluationApprenantListGetDtoToJSON,\n FcbEvaluationDtoFromJSON,\n FcbEvaluationDtoToJSON,\n FcbEvaluationGridDtoPaginatedResultsFromJSON,\n FcbEvaluationGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface EvaluationBaseSearchRequest {\n EvaluationSearch?: EvaluationSearch;\n}\n\nexport interface EvaluationDeleteRequest {\n id?: number;\n}\n\nexport interface EvaluationGetRequest {\n id?: number;\n}\n\nexport interface EvaluationGetApprenantListRequest {\n id: number;\n idClasse?: number;\n}\n\nexport interface EvaluationGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface EvaluationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface EvaluationGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface EvaluationIsFromWalterRequest {\n idEvaluation: number;\n}\n\nexport interface EvaluationSaveRequest {\n FcbEvaluationDto?: FcbEvaluationDto;\n}\n\nexport interface EvaluationSaveEvaluationDetailsRequest {\n FcbEvaluationApprenantListGetDto?: FcbEvaluationApprenantListGetDto;\n}\n\n/**\n * \n */\nexport class EvaluationApi extends runtime.BaseAPI {\n\n /**\n */\n async evaluationBaseSearchRaw(requestParameters: EvaluationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: EvaluationSearchToJSON(requestParameters.EvaluationSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEvaluationGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async evaluationBaseSearch(requestParameters: EvaluationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.evaluationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async evaluationDeleteRaw(requestParameters: EvaluationDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async evaluationDelete(requestParameters: EvaluationDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.evaluationDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async evaluationGetRaw(requestParameters: EvaluationGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEvaluationDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async evaluationGet(requestParameters: EvaluationGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.evaluationGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async evaluationGetApprenantListRaw(requestParameters: EvaluationGetApprenantListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n if (requestParameters.id === null || requestParameters.id === undefined) {\n throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling evaluationGetApprenantList.');\n }\n\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation/GetApprenantList/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters.id))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEvaluationApprenantListGetDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async evaluationGetApprenantList(requestParameters: EvaluationGetApprenantListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.evaluationGetApprenantListRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async evaluationGetDisplayNameRaw(requestParameters: EvaluationGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async evaluationGetDisplayName(requestParameters: EvaluationGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.evaluationGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async evaluationGetSearchCriteriasRaw(requestParameters: EvaluationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async evaluationGetSearchCriterias(requestParameters: EvaluationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.evaluationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async evaluationGetSelectItemsRaw(requestParameters: EvaluationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling evaluationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async evaluationGetSelectItems(requestParameters: EvaluationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.evaluationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async evaluationIsFromWalterRaw(requestParameters: EvaluationIsFromWalterRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n if (requestParameters.idEvaluation === null || requestParameters.idEvaluation === undefined) {\n throw new runtime.RequiredError('idEvaluation','Required parameter requestParameters.idEvaluation was null or undefined when calling evaluationIsFromWalter.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation/IsFromWalter/{idEvaluation}`.replace(`{${\"idEvaluation\"}}`, encodeURIComponent(String(requestParameters.idEvaluation))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async evaluationIsFromWalter(requestParameters: EvaluationIsFromWalterRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.evaluationIsFromWalterRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async evaluationSaveRaw(requestParameters: EvaluationSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbEvaluationDtoToJSON(requestParameters.FcbEvaluationDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEvaluationDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async evaluationSave(requestParameters: EvaluationSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.evaluationSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async evaluationSaveEvaluationDetailsRaw(requestParameters: EvaluationSaveEvaluationDetailsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Evaluation/SaveEvaluationDetails`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbEvaluationApprenantListGetDtoToJSON(requestParameters.FcbEvaluationApprenantListGetDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbEvaluationApprenantListGetDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async evaluationSaveEvaluationDetails(requestParameters: EvaluationSaveEvaluationDetailsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.evaluationSaveEvaluationDetailsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ExamenEntreeSearch,\n FcbExamenEntreeDto,\n FcbExamenEntreeGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ExamenEntreeSearchFromJSON,\n ExamenEntreeSearchToJSON,\n FcbExamenEntreeDtoFromJSON,\n FcbExamenEntreeDtoToJSON,\n FcbExamenEntreeGridDtoPaginatedResultsFromJSON,\n FcbExamenEntreeGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExamenEntreeBaseSearchRequest {\n ExamenEntreeSearch?: ExamenEntreeSearch;\n}\n\nexport interface ExamenEntreeDeleteRequest {\n id?: number;\n}\n\nexport interface ExamenEntreeGetRequest {\n id?: number;\n}\n\nexport interface ExamenEntreeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExamenEntreeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ExamenEntreeSaveRequest {\n FcbExamenEntreeDto?: FcbExamenEntreeDto;\n}\n\n/**\n * \n */\nexport class ExamenEntreeApi extends runtime.BaseAPI {\n\n /**\n */\n async examenEntreeBaseSearchRaw(requestParameters: ExamenEntreeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExamenEntree/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExamenEntreeSearchToJSON(requestParameters.ExamenEntreeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExamenEntreeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async examenEntreeBaseSearch(requestParameters: ExamenEntreeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.examenEntreeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async examenEntreeDeleteRaw(requestParameters: ExamenEntreeDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExamenEntree`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async examenEntreeDelete(requestParameters: ExamenEntreeDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.examenEntreeDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async examenEntreeGetRaw(requestParameters: ExamenEntreeGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExamenEntree`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExamenEntreeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async examenEntreeGet(requestParameters: ExamenEntreeGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.examenEntreeGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async examenEntreeGetSearchCriteriasRaw(requestParameters: ExamenEntreeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExamenEntree/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async examenEntreeGetSearchCriterias(requestParameters: ExamenEntreeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.examenEntreeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async examenEntreeGetSelectItemsRaw(requestParameters: ExamenEntreeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling examenEntreeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExamenEntree/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async examenEntreeGetSelectItems(requestParameters: ExamenEntreeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.examenEntreeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async examenEntreeSaveRaw(requestParameters: ExamenEntreeSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExamenEntree`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbExamenEntreeDtoToJSON(requestParameters.FcbExamenEntreeDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExamenEntreeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async examenEntreeSave(requestParameters: ExamenEntreeSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.examenEntreeSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ExperienceProfessionnelleEditDto,\n ExperienceProfessionnelleFichierDto,\n ExperienceProfessionnelleFichierUploadDto,\n ExperienceProfessionnelleGridDtoPaginatedResults,\n ExperienceProfessionnelleSearchDto,\n FileDownloadDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n ExperienceProfessionnelleEditDtoFromJSON,\n ExperienceProfessionnelleEditDtoToJSON,\n ExperienceProfessionnelleFichierDtoFromJSON,\n ExperienceProfessionnelleFichierDtoToJSON,\n ExperienceProfessionnelleFichierUploadDtoFromJSON,\n ExperienceProfessionnelleFichierUploadDtoToJSON,\n ExperienceProfessionnelleGridDtoPaginatedResultsFromJSON,\n ExperienceProfessionnelleGridDtoPaginatedResultsToJSON,\n ExperienceProfessionnelleSearchDtoFromJSON,\n ExperienceProfessionnelleSearchDtoToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface ExperienceProfessionnelleBaseSearchRequest {\n ExperienceProfessionnelleSearchDto?: ExperienceProfessionnelleSearchDto;\n}\n\nexport interface ExperienceProfessionnelleDeleteExperienceProfessionnelleRequest {\n id?: number;\n}\n\nexport interface ExperienceProfessionnelleDeleteExperienceProfessionnelleFichierRequest {\n id?: number;\n}\n\nexport interface ExperienceProfessionnelleDownloadExperienceProfessionnelleFichierRequest {\n id?: number;\n}\n\nexport interface ExperienceProfessionnelleGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ExperienceProfessionnelleGetExperienceProfessionnelleRequest {\n id?: number;\n}\n\nexport interface ExperienceProfessionnelleGetExperienceProfessionnelleFichierRequest {\n id?: number;\n}\n\nexport interface ExperienceProfessionnelleGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExperienceProfessionnelleGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ExperienceProfessionnelleSaveExperienceProfessionnelleRequest {\n ExperienceProfessionnelleEditDto?: ExperienceProfessionnelleEditDto;\n}\n\nexport interface ExperienceProfessionnelleSaveExperienceProfessionnelleFichierRequest {\n ExperienceProfessionnelleFichierDto?: ExperienceProfessionnelleFichierDto;\n}\n\nexport interface ExperienceProfessionnelleUploadExperienceProfessionnelleFichierRequest {\n ExperienceProfessionnelleFichierUploadDto?: ExperienceProfessionnelleFichierUploadDto;\n}\n\n/**\n * \n */\nexport class ExperienceProfessionnelleApi extends runtime.BaseAPI {\n\n /**\n */\n async experienceProfessionnelleBaseSearchRaw(requestParameters: ExperienceProfessionnelleBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExperienceProfessionnelleSearchDtoToJSON(requestParameters.ExperienceProfessionnelleSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExperienceProfessionnelleGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async experienceProfessionnelleBaseSearch(requestParameters: ExperienceProfessionnelleBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.experienceProfessionnelleBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async experienceProfessionnelleDeleteExperienceProfessionnelleRaw(requestParameters: ExperienceProfessionnelleDeleteExperienceProfessionnelleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/DeleteExperienceProfessionnelle`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async experienceProfessionnelleDeleteExperienceProfessionnelle(requestParameters: ExperienceProfessionnelleDeleteExperienceProfessionnelleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.experienceProfessionnelleDeleteExperienceProfessionnelleRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async experienceProfessionnelleDeleteExperienceProfessionnelleFichierRaw(requestParameters: ExperienceProfessionnelleDeleteExperienceProfessionnelleFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/DeleteExperienceProfessionnelleFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async experienceProfessionnelleDeleteExperienceProfessionnelleFichier(requestParameters: ExperienceProfessionnelleDeleteExperienceProfessionnelleFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.experienceProfessionnelleDeleteExperienceProfessionnelleFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async experienceProfessionnelleDownloadExperienceProfessionnelleFichierRaw(requestParameters: ExperienceProfessionnelleDownloadExperienceProfessionnelleFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/DownloadExperienceProfessionnelleFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async experienceProfessionnelleDownloadExperienceProfessionnelleFichier(requestParameters: ExperienceProfessionnelleDownloadExperienceProfessionnelleFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.experienceProfessionnelleDownloadExperienceProfessionnelleFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async experienceProfessionnelleGetDisplayNameRaw(requestParameters: ExperienceProfessionnelleGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async experienceProfessionnelleGetDisplayName(requestParameters: ExperienceProfessionnelleGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.experienceProfessionnelleGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async experienceProfessionnelleGetExperienceProfessionnelleRaw(requestParameters: ExperienceProfessionnelleGetExperienceProfessionnelleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExperienceProfessionnelleEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async experienceProfessionnelleGetExperienceProfessionnelle(requestParameters: ExperienceProfessionnelleGetExperienceProfessionnelleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.experienceProfessionnelleGetExperienceProfessionnelleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async experienceProfessionnelleGetExperienceProfessionnelleFichierRaw(requestParameters: ExperienceProfessionnelleGetExperienceProfessionnelleFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/GetExperienceProfessionnelleFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExperienceProfessionnelleFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async experienceProfessionnelleGetExperienceProfessionnelleFichier(requestParameters: ExperienceProfessionnelleGetExperienceProfessionnelleFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.experienceProfessionnelleGetExperienceProfessionnelleFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async experienceProfessionnelleGetSearchCriteriasRaw(requestParameters: ExperienceProfessionnelleGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async experienceProfessionnelleGetSearchCriterias(requestParameters: ExperienceProfessionnelleGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.experienceProfessionnelleGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async experienceProfessionnelleGetSelectItemsRaw(requestParameters: ExperienceProfessionnelleGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling experienceProfessionnelleGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async experienceProfessionnelleGetSelectItems(requestParameters: ExperienceProfessionnelleGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.experienceProfessionnelleGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async experienceProfessionnelleSaveExperienceProfessionnelleRaw(requestParameters: ExperienceProfessionnelleSaveExperienceProfessionnelleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExperienceProfessionnelleEditDtoToJSON(requestParameters.ExperienceProfessionnelleEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExperienceProfessionnelleEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async experienceProfessionnelleSaveExperienceProfessionnelle(requestParameters: ExperienceProfessionnelleSaveExperienceProfessionnelleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.experienceProfessionnelleSaveExperienceProfessionnelleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async experienceProfessionnelleSaveExperienceProfessionnelleFichierRaw(requestParameters: ExperienceProfessionnelleSaveExperienceProfessionnelleFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/SaveExperienceProfessionnelleFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExperienceProfessionnelleFichierDtoToJSON(requestParameters.ExperienceProfessionnelleFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExperienceProfessionnelleFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async experienceProfessionnelleSaveExperienceProfessionnelleFichier(requestParameters: ExperienceProfessionnelleSaveExperienceProfessionnelleFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.experienceProfessionnelleSaveExperienceProfessionnelleFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async experienceProfessionnelleUploadExperienceProfessionnelleFichierRaw(requestParameters: ExperienceProfessionnelleUploadExperienceProfessionnelleFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExperienceProfessionnelle/UploadExperienceProfessionnelleFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExperienceProfessionnelleFichierUploadDtoToJSON(requestParameters.ExperienceProfessionnelleFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExperienceProfessionnelleFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async experienceProfessionnelleUploadExperienceProfessionnelleFichier(requestParameters: ExperienceProfessionnelleUploadExperienceProfessionnelleFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.experienceProfessionnelleUploadExperienceProfessionnelleFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbExportAccesPermissionDto,\n FcbExportCentrePermissionDto,\n FcbExportDto,\n FcbExportModulePermissionDto,\n FcbExportPermissionsDto,\n FcbRechercheexportDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheexportSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbExportAccesPermissionDtoFromJSON,\n FcbExportAccesPermissionDtoToJSON,\n FcbExportCentrePermissionDtoFromJSON,\n FcbExportCentrePermissionDtoToJSON,\n FcbExportDtoFromJSON,\n FcbExportDtoToJSON,\n FcbExportModulePermissionDtoFromJSON,\n FcbExportModulePermissionDtoToJSON,\n FcbExportPermissionsDtoFromJSON,\n FcbExportPermissionsDtoToJSON,\n FcbRechercheexportDtoPaginatedResultsFromJSON,\n FcbRechercheexportDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheexportSearchFromJSON,\n RechercheexportSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExportBaseSearchRequest {\n RechercheexportSearch?: RechercheexportSearch;\n}\n\nexport interface ExportDeleteRequest {\n id?: number;\n}\n\nexport interface ExportGetRequest {\n id?: number;\n}\n\nexport interface ExportGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ExportGetPermissionsRequest {\n id?: number;\n}\n\nexport interface ExportGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExportGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ExportSaveRequest {\n FcbExportDto?: FcbExportDto;\n}\n\nexport interface ExportSaveAccesPermissionsRequest {\n FcbExportAccesPermissionDto?: FcbExportAccesPermissionDto;\n}\n\nexport interface ExportSaveCentrePermissionsRequest {\n FcbExportCentrePermissionDto?: FcbExportCentrePermissionDto;\n}\n\nexport interface ExportSaveModulePermissionsRequest {\n FcbExportModulePermissionDto?: FcbExportModulePermissionDto;\n}\n\n/**\n * \n */\nexport class ExportApi extends runtime.BaseAPI {\n\n /**\n */\n async exportBaseSearchRaw(requestParameters: ExportBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheexportSearchToJSON(requestParameters.RechercheexportSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheexportDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async exportBaseSearch(requestParameters: ExportBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportDeleteRaw(requestParameters: ExportDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async exportDelete(requestParameters: ExportDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGetRaw(requestParameters: ExportGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGet(requestParameters: ExportGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGetDisplayNameRaw(requestParameters: ExportGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async exportGetDisplayName(requestParameters: ExportGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGetPermissionsRaw(requestParameters: ExportGetPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export/GetPermissions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportPermissionsDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGetPermissions(requestParameters: ExportGetPermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGetPermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGetSearchCriteriasRaw(requestParameters: ExportGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async exportGetSearchCriterias(requestParameters: ExportGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGetSelectItemsRaw(requestParameters: ExportGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling exportGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async exportGetSelectItems(requestParameters: ExportGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportSaveRaw(requestParameters: ExportSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbExportDtoToJSON(requestParameters.FcbExportDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportSave(requestParameters: ExportSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportSaveAccesPermissionsRaw(requestParameters: ExportSaveAccesPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export/SaveAccesPermissions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbExportAccesPermissionDtoToJSON(requestParameters.FcbExportAccesPermissionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportAccesPermissionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportSaveAccesPermissions(requestParameters: ExportSaveAccesPermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportSaveAccesPermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportSaveCentrePermissionsRaw(requestParameters: ExportSaveCentrePermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export/SaveCentrePermissions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbExportCentrePermissionDtoToJSON(requestParameters.FcbExportCentrePermissionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportCentrePermissionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportSaveCentrePermissions(requestParameters: ExportSaveCentrePermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportSaveCentrePermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportSaveModulePermissionsRaw(requestParameters: ExportSaveModulePermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Export/SaveModulePermissions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbExportModulePermissionDtoToJSON(requestParameters.FcbExportModulePermissionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportModulePermissionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportSaveModulePermissions(requestParameters: ExportSaveModulePermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportSaveModulePermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbExportGapDto,\n FcbRechercheExportGapDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheExportGapSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbExportGapDtoFromJSON,\n FcbExportGapDtoToJSON,\n FcbRechercheExportGapDtoPaginatedResultsFromJSON,\n FcbRechercheExportGapDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheExportGapSearchFromJSON,\n RechercheExportGapSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExportGapBaseSearchRequest {\n RechercheExportGapSearch?: RechercheExportGapSearch;\n}\n\nexport interface ExportGapDeleteRequest {\n id?: number;\n}\n\nexport interface ExportGapGetRequest {\n id?: number;\n}\n\nexport interface ExportGapGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ExportGapGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExportGapGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ExportGapSaveRequest {\n FcbExportGapDto?: FcbExportGapDto;\n}\n\n/**\n * \n */\nexport class ExportGapApi extends runtime.BaseAPI {\n\n /**\n */\n async exportGapBaseSearchRaw(requestParameters: ExportGapBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGap/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheExportGapSearchToJSON(requestParameters.RechercheExportGapSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheExportGapDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGapBaseSearch(requestParameters: ExportGapBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapDeleteRaw(requestParameters: ExportGapDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGap`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async exportGapDelete(requestParameters: ExportGapDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapGetRaw(requestParameters: ExportGapGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGap`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportGapDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGapGet(requestParameters: ExportGapGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapGetDisplayNameRaw(requestParameters: ExportGapGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGap/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async exportGapGetDisplayName(requestParameters: ExportGapGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapGetSearchCriteriasRaw(requestParameters: ExportGapGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGap/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async exportGapGetSearchCriterias(requestParameters: ExportGapGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapGetSelectItemsRaw(requestParameters: ExportGapGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling exportGapGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGap/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async exportGapGetSelectItems(requestParameters: ExportGapGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapSaveRaw(requestParameters: ExportGapSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGap`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbExportGapDtoToJSON(requestParameters.FcbExportGapDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportGapDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGapSave(requestParameters: ExportGapSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbExportGapClassesGridDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheExportGapSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbExportGapClassesGridDtoPaginatedResultsFromJSON,\n FcbExportGapClassesGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheExportGapSearchFromJSON,\n RechercheExportGapSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExportGapClassesBaseSearchRequest {\n RechercheExportGapSearch?: RechercheExportGapSearch;\n}\n\nexport interface ExportGapClassesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExportGapClassesGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ExportGapClassesApi extends runtime.BaseAPI {\n\n /**\n */\n async exportGapClassesBaseSearchRaw(requestParameters: ExportGapClassesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapClasses/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheExportGapSearchToJSON(requestParameters.RechercheExportGapSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportGapClassesGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGapClassesBaseSearch(requestParameters: ExportGapClassesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapClassesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapClassesGetSearchCriteriasRaw(requestParameters: ExportGapClassesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapClasses/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async exportGapClassesGetSearchCriterias(requestParameters: ExportGapClassesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapClassesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapClassesGetSelectItemsRaw(requestParameters: ExportGapClassesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling exportGapClassesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapClasses/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async exportGapClassesGetSelectItems(requestParameters: ExportGapClassesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapClassesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbExportGapFormateursGridDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheExportGapSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbExportGapFormateursGridDtoPaginatedResultsFromJSON,\n FcbExportGapFormateursGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheExportGapSearchFromJSON,\n RechercheExportGapSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExportGapFormateurBaseSearchRequest {\n RechercheExportGapSearch?: RechercheExportGapSearch;\n}\n\nexport interface ExportGapFormateurGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExportGapFormateurGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ExportGapFormateurApi extends runtime.BaseAPI {\n\n /**\n */\n async exportGapFormateurBaseSearchRaw(requestParameters: ExportGapFormateurBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapFormateur/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheExportGapSearchToJSON(requestParameters.RechercheExportGapSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportGapFormateursGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGapFormateurBaseSearch(requestParameters: ExportGapFormateurBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapFormateurBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapFormateurGetSearchCriteriasRaw(requestParameters: ExportGapFormateurGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapFormateur/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async exportGapFormateurGetSearchCriterias(requestParameters: ExportGapFormateurGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapFormateurGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapFormateurGetSelectItemsRaw(requestParameters: ExportGapFormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling exportGapFormateurGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapFormateur/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async exportGapFormateurGetSelectItems(requestParameters: ExportGapFormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapFormateurGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRechercheExportGapPrestationDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheExportGapSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRechercheExportGapPrestationDtoPaginatedResultsFromJSON,\n FcbRechercheExportGapPrestationDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheExportGapSearchFromJSON,\n RechercheExportGapSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExportGapPrestationBaseSearchRequest {\n RechercheExportGapSearch?: RechercheExportGapSearch;\n}\n\nexport interface ExportGapPrestationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExportGapPrestationGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ExportGapPrestationApi extends runtime.BaseAPI {\n\n /**\n */\n async exportGapPrestationBaseSearchRaw(requestParameters: ExportGapPrestationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapPrestation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheExportGapSearchToJSON(requestParameters.RechercheExportGapSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheExportGapPrestationDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGapPrestationBaseSearch(requestParameters: ExportGapPrestationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapPrestationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapPrestationGetSearchCriteriasRaw(requestParameters: ExportGapPrestationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapPrestation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async exportGapPrestationGetSearchCriterias(requestParameters: ExportGapPrestationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapPrestationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapPrestationGetSelectItemsRaw(requestParameters: ExportGapPrestationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling exportGapPrestationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapPrestation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async exportGapPrestationGetSelectItems(requestParameters: ExportGapPrestationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapPrestationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRechercheExportGapRemplacementDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheExportGapSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRechercheExportGapRemplacementDtoPaginatedResultsFromJSON,\n FcbRechercheExportGapRemplacementDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheExportGapSearchFromJSON,\n RechercheExportGapSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExportGapRemplacementBaseSearchRequest {\n RechercheExportGapSearch?: RechercheExportGapSearch;\n}\n\nexport interface ExportGapRemplacementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExportGapRemplacementGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ExportGapRemplacementApi extends runtime.BaseAPI {\n\n /**\n */\n async exportGapRemplacementBaseSearchRaw(requestParameters: ExportGapRemplacementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapRemplacement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheExportGapSearchToJSON(requestParameters.RechercheExportGapSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheExportGapRemplacementDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGapRemplacementBaseSearch(requestParameters: ExportGapRemplacementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapRemplacementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapRemplacementGetSearchCriteriasRaw(requestParameters: ExportGapRemplacementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapRemplacement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async exportGapRemplacementGetSearchCriterias(requestParameters: ExportGapRemplacementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapRemplacementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapRemplacementGetSelectItemsRaw(requestParameters: ExportGapRemplacementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling exportGapRemplacementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapRemplacement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async exportGapRemplacementGetSelectItems(requestParameters: ExportGapRemplacementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapRemplacementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbExportGapStatsGridDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheExportGapSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbExportGapStatsGridDtoPaginatedResultsFromJSON,\n FcbExportGapStatsGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheExportGapSearchFromJSON,\n RechercheExportGapSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExportGapStatBaseSearchRequest {\n RechercheExportGapSearch?: RechercheExportGapSearch;\n}\n\nexport interface ExportGapStatGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExportGapStatGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ExportGapStatApi extends runtime.BaseAPI {\n\n /**\n */\n async exportGapStatBaseSearchRaw(requestParameters: ExportGapStatBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapStat/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheExportGapSearchToJSON(requestParameters.RechercheExportGapSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportGapStatsGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGapStatBaseSearch(requestParameters: ExportGapStatBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapStatBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapStatGetSearchCriteriasRaw(requestParameters: ExportGapStatGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapStat/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async exportGapStatGetSearchCriterias(requestParameters: ExportGapStatGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapStatGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapStatGetSelectItemsRaw(requestParameters: ExportGapStatGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling exportGapStatGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapStat/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async exportGapStatGetSelectItems(requestParameters: ExportGapStatGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapStatGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbExportGapStatsGridDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheExportGapSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbExportGapStatsGridDtoPaginatedResultsFromJSON,\n FcbExportGapStatsGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheExportGapSearchFromJSON,\n RechercheExportGapSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExportGapStatsVacataireBaseSearchRequest {\n RechercheExportGapSearch?: RechercheExportGapSearch;\n}\n\nexport interface ExportGapStatsVacataireGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExportGapStatsVacataireGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ExportGapStatsVacataireApi extends runtime.BaseAPI {\n\n /**\n */\n async exportGapStatsVacataireBaseSearchRaw(requestParameters: ExportGapStatsVacataireBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapStatsVacataire/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheExportGapSearchToJSON(requestParameters.RechercheExportGapSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportGapStatsGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async exportGapStatsVacataireBaseSearch(requestParameters: ExportGapStatsVacataireBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportGapStatsVacataireBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapStatsVacataireGetSearchCriteriasRaw(requestParameters: ExportGapStatsVacataireGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapStatsVacataire/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async exportGapStatsVacataireGetSearchCriterias(requestParameters: ExportGapStatsVacataireGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapStatsVacataireGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportGapStatsVacataireGetSelectItemsRaw(requestParameters: ExportGapStatsVacataireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling exportGapStatsVacataireGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportGapStatsVacataire/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async exportGapStatsVacataireGetSelectItems(requestParameters: ExportGapStatsVacataireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportGapStatsVacataireGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ExportExcelInfoDto,\n ExportSearch,\n FcbExportDetailDto,\n FcbExportGridDtoPaginatedResults,\n FileDownloadDto,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ExportExcelInfoDtoFromJSON,\n ExportExcelInfoDtoToJSON,\n ExportSearchFromJSON,\n ExportSearchToJSON,\n FcbExportDetailDtoFromJSON,\n FcbExportDetailDtoToJSON,\n FcbExportGridDtoPaginatedResultsFromJSON,\n FcbExportGridDtoPaginatedResultsToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ExportUtilitaireBaseSearchRequest {\n ExportSearch?: ExportSearch;\n}\n\nexport interface ExportUtilitaireExportExcelRequest {\n ExportExcelInfoDto?: ExportExcelInfoDto;\n}\n\nexport interface ExportUtilitaireGetExportWithParamsRequest {\n idExport?: number;\n}\n\nexport interface ExportUtilitaireGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ExportUtilitaireGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class ExportUtilitaireApi extends runtime.BaseAPI {\n\n /**\n */\n async exportUtilitaireBaseSearchRaw(requestParameters: ExportUtilitaireBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportUtilitaire/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExportSearchToJSON(requestParameters.ExportSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async exportUtilitaireBaseSearch(requestParameters: ExportUtilitaireBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportUtilitaireBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportUtilitaireExportExcelRaw(requestParameters: ExportUtilitaireExportExcelRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportUtilitaire/exportExcel`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ExportExcelInfoDtoToJSON(requestParameters.ExportExcelInfoDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportUtilitaireExportExcel(requestParameters: ExportUtilitaireExportExcelRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportUtilitaireExportExcelRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportUtilitaireGetExportWithParamsRaw(requestParameters: ExportUtilitaireGetExportWithParamsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idExport !== undefined) {\n queryParameters['idExport'] = requestParameters.idExport;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportUtilitaire/exportWithParam`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbExportDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async exportUtilitaireGetExportWithParams(requestParameters: ExportUtilitaireGetExportWithParamsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.exportUtilitaireGetExportWithParamsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportUtilitaireGetSearchCriteriasRaw(requestParameters: ExportUtilitaireGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportUtilitaire/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async exportUtilitaireGetSearchCriterias(requestParameters: ExportUtilitaireGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportUtilitaireGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async exportUtilitaireGetSelectItemsRaw(requestParameters: ExportUtilitaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling exportUtilitaireGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ExportUtilitaire/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async exportUtilitaireGetSelectItems(requestParameters: ExportUtilitaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.exportUtilitaireGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ClasseHoraireJourColumnsDto,\n ClasseJourDto,\n FcbApprenantPresenceDetailDto,\n FcbFeuillePresenceGridDtoPaginatedResults,\n FeuillePresenceInfoDto,\n FeuillePresencePrintRequestDto,\n FeuillePresenceSaveDto,\n FeuillePresenceSearch,\n FeuillePresencesPrintDatesDto,\n FileDownloadDto,\n FilterCriteriaInfo,\n MinDatePresenceDto,\n SelectItem,\n} from '../models/index';\nimport {\n ClasseHoraireJourColumnsDtoFromJSON,\n ClasseHoraireJourColumnsDtoToJSON,\n ClasseJourDtoFromJSON,\n ClasseJourDtoToJSON,\n FcbApprenantPresenceDetailDtoFromJSON,\n FcbApprenantPresenceDetailDtoToJSON,\n FcbFeuillePresenceGridDtoPaginatedResultsFromJSON,\n FcbFeuillePresenceGridDtoPaginatedResultsToJSON,\n FeuillePresenceInfoDtoFromJSON,\n FeuillePresenceInfoDtoToJSON,\n FeuillePresencePrintRequestDtoFromJSON,\n FeuillePresencePrintRequestDtoToJSON,\n FeuillePresenceSaveDtoFromJSON,\n FeuillePresenceSaveDtoToJSON,\n FeuillePresenceSearchFromJSON,\n FeuillePresenceSearchToJSON,\n FeuillePresencesPrintDatesDtoFromJSON,\n FeuillePresencesPrintDatesDtoToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n MinDatePresenceDtoFromJSON,\n MinDatePresenceDtoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FeuillePresenceBaseSearchRequest {\n FeuillePresenceSearch?: FeuillePresenceSearch;\n}\n\nexport interface FeuillePresenceExportAsyncRequest {\n FeuillePresencePrintRequestDto?: FeuillePresencePrintRequestDto;\n}\n\nexport interface FeuillePresenceGetApprenantListRequest {\n idClasse?: number;\n dateClasse?: Date;\n}\n\nexport interface FeuillePresenceGetDatesRequest {\n idClasse?: number;\n periodeImpression?: number;\n}\n\nexport interface FeuillePresenceGetDatesForClasseRequest {\n idClasse?: number;\n}\n\nexport interface FeuillePresenceGetFeuillePresenceInfoRequest {\n idClasse?: number;\n dateClasse?: Date;\n}\n\nexport interface FeuillePresenceGetHoraireClasseJourColumnsRequest {\n idClasse?: number;\n dateClasse?: Date;\n}\n\nexport interface FeuillePresenceGetMaxDatesRequest {\n idClasse?: number;\n}\n\nexport interface FeuillePresenceGetMinDatePresenceRequest {\n idClasse?: number;\n}\n\nexport interface FeuillePresenceGetPrintRequest {\n idClasse?: number;\n}\n\nexport interface FeuillePresenceGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FeuillePresenceGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FeuillePresenceSaveRequest {\n FeuillePresenceSaveDto?: FeuillePresenceSaveDto;\n}\n\n/**\n * \n */\nexport class FeuillePresenceApi extends runtime.BaseAPI {\n\n /**\n */\n async feuillePresenceBaseSearchRaw(requestParameters: FeuillePresenceBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FeuillePresenceSearchToJSON(requestParameters.FeuillePresenceSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFeuillePresenceGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async feuillePresenceBaseSearch(requestParameters: FeuillePresenceBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.feuillePresenceBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceExportAsyncRaw(requestParameters: FeuillePresenceExportAsyncRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/Export`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FeuillePresencePrintRequestDtoToJSON(requestParameters.FeuillePresencePrintRequestDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async feuillePresenceExportAsync(requestParameters: FeuillePresenceExportAsyncRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.feuillePresenceExportAsyncRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetApprenantListRaw(requestParameters: FeuillePresenceGetApprenantListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.dateClasse !== undefined) {\n queryParameters['dateClasse'] = (requestParameters.dateClasse as any).toISOString();\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/GetApprenantList`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FcbApprenantPresenceDetailDtoFromJSON));\n }\n\n /**\n */\n async feuillePresenceGetApprenantList(requestParameters: FeuillePresenceGetApprenantListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.feuillePresenceGetApprenantListRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetDatesRaw(requestParameters: FeuillePresenceGetDatesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.periodeImpression !== undefined) {\n queryParameters['periodeImpression'] = requestParameters.periodeImpression;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/GetDates`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FeuillePresencesPrintDatesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async feuillePresenceGetDates(requestParameters: FeuillePresenceGetDatesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.feuillePresenceGetDatesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetDatesForClasseRaw(requestParameters: FeuillePresenceGetDatesForClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/GetDateForClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ClasseJourDtoFromJSON));\n }\n\n /**\n */\n async feuillePresenceGetDatesForClasse(requestParameters: FeuillePresenceGetDatesForClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.feuillePresenceGetDatesForClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetFeuillePresenceInfoRaw(requestParameters: FeuillePresenceGetFeuillePresenceInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.dateClasse !== undefined) {\n queryParameters['dateClasse'] = (requestParameters.dateClasse as any).toISOString();\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/GetFeuillePresenceInfo`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FeuillePresenceInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async feuillePresenceGetFeuillePresenceInfo(requestParameters: FeuillePresenceGetFeuillePresenceInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.feuillePresenceGetFeuillePresenceInfoRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetHoraireClasseJourColumnsRaw(requestParameters: FeuillePresenceGetHoraireClasseJourColumnsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.dateClasse !== undefined) {\n queryParameters['dateClasse'] = (requestParameters.dateClasse as any).toISOString();\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/GetHoraireClasseJourColumns`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ClasseHoraireJourColumnsDtoFromJSON));\n }\n\n /**\n */\n async feuillePresenceGetHoraireClasseJourColumns(requestParameters: FeuillePresenceGetHoraireClasseJourColumnsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.feuillePresenceGetHoraireClasseJourColumnsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetMaxDatesRaw(requestParameters: FeuillePresenceGetMaxDatesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/GetMaxDates`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FeuillePresencesPrintDatesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async feuillePresenceGetMaxDates(requestParameters: FeuillePresenceGetMaxDatesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.feuillePresenceGetMaxDatesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetMinDatePresenceRaw(requestParameters: FeuillePresenceGetMinDatePresenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/GetMinDatePresence`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => MinDatePresenceDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async feuillePresenceGetMinDatePresence(requestParameters: FeuillePresenceGetMinDatePresenceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.feuillePresenceGetMinDatePresenceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetPrintRaw(requestParameters: FeuillePresenceGetPrintRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/GetPrint`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FeuillePresencePrintRequestDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async feuillePresenceGetPrint(requestParameters: FeuillePresenceGetPrintRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.feuillePresenceGetPrintRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetSearchCriteriasRaw(requestParameters: FeuillePresenceGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async feuillePresenceGetSearchCriterias(requestParameters: FeuillePresenceGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.feuillePresenceGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceGetSelectItemsRaw(requestParameters: FeuillePresenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling feuillePresenceGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async feuillePresenceGetSelectItems(requestParameters: FeuillePresenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.feuillePresenceGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async feuillePresenceSaveRaw(requestParameters: FeuillePresenceSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FeuillePresence/Save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FeuillePresenceSaveDtoToJSON(requestParameters.FeuillePresenceSaveDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FeuillePresenceSaveDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async feuillePresenceSave(requestParameters: FeuillePresenceSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.feuillePresenceSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FichierGridDtoPaginatedResults,\n FichierSearchDto,\n FileDownloadDto,\n FilterCriteriaInfo,\n MassDownloadRequestDto,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n FichierGridDtoPaginatedResultsFromJSON,\n FichierGridDtoPaginatedResultsToJSON,\n FichierSearchDtoFromJSON,\n FichierSearchDtoToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n MassDownloadRequestDtoFromJSON,\n MassDownloadRequestDtoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface FichierBaseSearchRequest {\n FichierSearchDto?: FichierSearchDto;\n}\n\nexport interface FichierDownloadRequest {\n id?: number;\n}\n\nexport interface FichierGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FichierGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FichierMassDownloadRequest {\n MassDownloadRequestDto?: MassDownloadRequestDto;\n}\n\nexport interface FichierMassDownloadPdfRequest {\n MassDownloadRequestDto?: MassDownloadRequestDto;\n}\n\n/**\n * \n */\nexport class FichierApi extends runtime.BaseAPI {\n\n /**\n */\n async fichierBaseSearchRaw(requestParameters: FichierBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Fichier/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FichierSearchDtoToJSON(requestParameters.FichierSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FichierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async fichierBaseSearch(requestParameters: FichierBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.fichierBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async fichierDownloadRaw(requestParameters: FichierDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Fichier/Download`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async fichierDownload(requestParameters: FichierDownloadRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.fichierDownloadRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async fichierGetSearchCriteriasRaw(requestParameters: FichierGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Fichier/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async fichierGetSearchCriterias(requestParameters: FichierGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.fichierGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async fichierGetSelectItemsRaw(requestParameters: FichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling fichierGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Fichier/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async fichierGetSelectItems(requestParameters: FichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.fichierGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async fichierMassDownloadRaw(requestParameters: FichierMassDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Fichier/MassDownload`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MassDownloadRequestDtoToJSON(requestParameters.MassDownloadRequestDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FileDownloadDtoFromJSON));\n }\n\n /**\n */\n async fichierMassDownload(requestParameters: FichierMassDownloadRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.fichierMassDownloadRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async fichierMassDownloadPdfRaw(requestParameters: FichierMassDownloadPdfRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Fichier/MassDownloadPdf`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MassDownloadRequestDtoToJSON(requestParameters.MassDownloadRequestDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async fichierMassDownloadPdf(requestParameters: FichierMassDownloadPdfRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.fichierMassDownloadPdfRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFinancementClasseDto,\n FcbFinancementClasseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FinancementClasseSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFinancementClasseDtoFromJSON,\n FcbFinancementClasseDtoToJSON,\n FcbFinancementClasseGridDtoPaginatedResultsFromJSON,\n FcbFinancementClasseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FinancementClasseSearchFromJSON,\n FinancementClasseSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FinancementClasseBaseSearchRequest {\n FinancementClasseSearch?: FinancementClasseSearch;\n}\n\nexport interface FinancementClasseDeleteRequest {\n id?: number;\n}\n\nexport interface FinancementClasseGetRequest {\n id?: number;\n}\n\nexport interface FinancementClasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FinancementClasseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FinancementClasseSaveRequest {\n FcbFinancementClasseDto?: FcbFinancementClasseDto;\n}\n\n/**\n * \n */\nexport class FinancementClasseApi extends runtime.BaseAPI {\n\n /**\n */\n async financementClasseBaseSearchRaw(requestParameters: FinancementClasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FinancementClasse/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FinancementClasseSearchToJSON(requestParameters.FinancementClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFinancementClasseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async financementClasseBaseSearch(requestParameters: FinancementClasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.financementClasseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async financementClasseDeleteRaw(requestParameters: FinancementClasseDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FinancementClasse`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async financementClasseDelete(requestParameters: FinancementClasseDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.financementClasseDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async financementClasseGetRaw(requestParameters: FinancementClasseGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FinancementClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFinancementClasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async financementClasseGet(requestParameters: FinancementClasseGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.financementClasseGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async financementClasseGetSearchCriteriasRaw(requestParameters: FinancementClasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FinancementClasse/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async financementClasseGetSearchCriterias(requestParameters: FinancementClasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.financementClasseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async financementClasseGetSelectItemsRaw(requestParameters: FinancementClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling financementClasseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FinancementClasse/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async financementClasseGetSelectItems(requestParameters: FinancementClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.financementClasseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async financementClasseSaveRaw(requestParameters: FinancementClasseSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FinancementClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFinancementClasseDtoToJSON(requestParameters.FcbFinancementClasseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFinancementClasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async financementClasseSave(requestParameters: FinancementClasseSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.financementClasseSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbForfaitAuditeurDto,\n FcbForfaitAuditeurDtoPaginatedResults,\n FilterCriteriaInfo,\n ForfaitAuditeurSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbForfaitAuditeurDtoFromJSON,\n FcbForfaitAuditeurDtoToJSON,\n FcbForfaitAuditeurDtoPaginatedResultsFromJSON,\n FcbForfaitAuditeurDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ForfaitAuditeurSearchFromJSON,\n ForfaitAuditeurSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ForfaitAuditeurBaseSearchRequest {\n ForfaitAuditeurSearch?: ForfaitAuditeurSearch;\n}\n\nexport interface ForfaitAuditeurDeleteRequest {\n id?: number;\n}\n\nexport interface ForfaitAuditeurGetRequest {\n id?: number;\n}\n\nexport interface ForfaitAuditeurGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ForfaitAuditeurGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ForfaitAuditeurGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ForfaitAuditeurSaveRequest {\n FcbForfaitAuditeurDto?: FcbForfaitAuditeurDto;\n}\n\n/**\n * \n */\nexport class ForfaitAuditeurApi extends runtime.BaseAPI {\n\n /**\n */\n async forfaitAuditeurBaseSearchRaw(requestParameters: ForfaitAuditeurBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ForfaitAuditeur/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ForfaitAuditeurSearchToJSON(requestParameters.ForfaitAuditeurSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbForfaitAuditeurDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async forfaitAuditeurBaseSearch(requestParameters: ForfaitAuditeurBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.forfaitAuditeurBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async forfaitAuditeurDeleteRaw(requestParameters: ForfaitAuditeurDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ForfaitAuditeur`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async forfaitAuditeurDelete(requestParameters: ForfaitAuditeurDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.forfaitAuditeurDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async forfaitAuditeurGetRaw(requestParameters: ForfaitAuditeurGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ForfaitAuditeur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbForfaitAuditeurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async forfaitAuditeurGet(requestParameters: ForfaitAuditeurGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.forfaitAuditeurGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async forfaitAuditeurGetDisplayNameRaw(requestParameters: ForfaitAuditeurGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ForfaitAuditeur/displayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async forfaitAuditeurGetDisplayName(requestParameters: ForfaitAuditeurGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.forfaitAuditeurGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async forfaitAuditeurGetSearchCriteriasRaw(requestParameters: ForfaitAuditeurGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ForfaitAuditeur/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async forfaitAuditeurGetSearchCriterias(requestParameters: ForfaitAuditeurGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.forfaitAuditeurGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async forfaitAuditeurGetSelectItemsRaw(requestParameters: ForfaitAuditeurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling forfaitAuditeurGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ForfaitAuditeur/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async forfaitAuditeurGetSelectItems(requestParameters: ForfaitAuditeurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.forfaitAuditeurGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async forfaitAuditeurSaveRaw(requestParameters: ForfaitAuditeurSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ForfaitAuditeur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbForfaitAuditeurDtoToJSON(requestParameters.FcbForfaitAuditeurDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbForfaitAuditeurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async forfaitAuditeurSave(requestParameters: ForfaitAuditeurSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.forfaitAuditeurSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n FcbFormateurDetailDto,\n FcbFormateurDto,\n FcbFormateurGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FcbFormateurDetailDtoFromJSON,\n FcbFormateurDetailDtoToJSON,\n FcbFormateurDtoFromJSON,\n FcbFormateurDtoToJSON,\n FcbFormateurGridDtoPaginatedResultsFromJSON,\n FcbFormateurGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurSearchFromJSON,\n FormateurSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface FormateurBaseSearchRequest {\n FormateurSearch?: FormateurSearch;\n}\n\nexport interface FormateurCalculDateActiviteRequest {\n idFormateur?: number;\n}\n\nexport interface FormateurCheckDoublonsRequest {\n FcbFormateurDto?: FcbFormateurDto;\n}\n\nexport interface FormateurDeleteRequest {\n id?: number;\n}\n\nexport interface FormateurGetRequest {\n id?: number;\n}\n\nexport interface FormateurGetBicFromAccountRequest {\n account?: string;\n}\n\nexport interface FormateurGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface FormateurGetIdPersonneRequest {\n id?: number;\n}\n\nexport interface FormateurGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurIsAzureActiveRequest {\n idFormateur?: number;\n}\n\nexport interface FormateurIsDeceasedRequest {\n idFormateur?: number;\n}\n\nexport interface FormateurSaveRequest {\n FcbFormateurDetailDto?: FcbFormateurDetailDto;\n}\n\nexport interface FormateurSearchFormateurIdsRequest {\n FormateurSearch?: FormateurSearch;\n}\n\n/**\n * \n */\nexport class FormateurApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurBaseSearchRaw(requestParameters: FormateurBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurSearchToJSON(requestParameters.FormateurSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurBaseSearch(requestParameters: FormateurBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurCalculDateActiviteRaw(requestParameters: FormateurCalculDateActiviteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormateur !== undefined) {\n queryParameters['idFormateur'] = requestParameters.idFormateur;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/CalculDateActivite`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurCalculDateActivite(requestParameters: FormateurCalculDateActiviteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurCalculDateActiviteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurCheckDoublonsRaw(requestParameters: FormateurCheckDoublonsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/CheckDoublons`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurDtoToJSON(requestParameters.FcbFormateurDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurCheckDoublons(requestParameters: FormateurCheckDoublonsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurCheckDoublonsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDeleteRaw(requestParameters: FormateurDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurDelete(requestParameters: FormateurDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurGetRaw(requestParameters: FormateurGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurGet(requestParameters: FormateurGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurGetBicFromAccountRaw(requestParameters: FormateurGetBicFromAccountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.account !== undefined) {\n queryParameters['account'] = requestParameters.account;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/GetBicFromAccount`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurGetBicFromAccount(requestParameters: FormateurGetBicFromAccountRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurGetBicFromAccountRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurGetDisplayNameRaw(requestParameters: FormateurGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/displayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurGetDisplayName(requestParameters: FormateurGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurGetIdPersonneRaw(requestParameters: FormateurGetIdPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/GetIdPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurGetIdPersonne(requestParameters: FormateurGetIdPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurGetIdPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurGetSearchCriteriasRaw(requestParameters: FormateurGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurGetSearchCriterias(requestParameters: FormateurGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurGetSelectItemsRaw(requestParameters: FormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurGetSelectItems(requestParameters: FormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurIsAzureActiveRaw(requestParameters: FormateurIsAzureActiveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormateur !== undefined) {\n queryParameters['idFormateur'] = requestParameters.idFormateur;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/IsAzureActive`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurIsAzureActive(requestParameters: FormateurIsAzureActiveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurIsAzureActiveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurIsDeceasedRaw(requestParameters: FormateurIsDeceasedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormateur !== undefined) {\n queryParameters['idFormateur'] = requestParameters.idFormateur;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/IsDeceased`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurIsDeceased(requestParameters: FormateurIsDeceasedRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurIsDeceasedRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSaveRaw(requestParameters: FormateurSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurDetailDtoToJSON(requestParameters.FcbFormateurDetailDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurSave(requestParameters: FormateurSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSearchFormateurIdsRaw(requestParameters: FormateurSearchFormateurIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formateur/searchFormateurIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurSearchToJSON(requestParameters.FormateurSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async formateurSearchFormateurIds(requestParameters: FormateurSearchFormateurIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurSearchFormateurIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurAgrementDto,\n FcbFormateurAgrementGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurAgrementSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FcbFormateurAgrementDtoFromJSON,\n FcbFormateurAgrementDtoToJSON,\n FcbFormateurAgrementGridDtoPaginatedResultsFromJSON,\n FcbFormateurAgrementGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurAgrementSearchFromJSON,\n FormateurAgrementSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface FormateurAgrementBaseSearchRequest {\n FormateurAgrementSearch?: FormateurAgrementSearch;\n}\n\nexport interface FormateurAgrementCheckDateDemandeRequest {\n dateDemande?: Date;\n dateDebut?: Date;\n}\n\nexport interface FormateurAgrementDeleteRequest {\n id?: number;\n}\n\nexport interface FormateurAgrementGetRequest {\n id?: number;\n}\n\nexport interface FormateurAgrementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurAgrementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurAgrementSaveRequest {\n FcbFormateurAgrementDto?: FcbFormateurAgrementDto;\n}\n\n/**\n * \n */\nexport class FormateurAgrementApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurAgrementBaseSearchRaw(requestParameters: FormateurAgrementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAgrement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurAgrementSearchToJSON(requestParameters.FormateurAgrementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurAgrementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurAgrementBaseSearch(requestParameters: FormateurAgrementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurAgrementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurAgrementCheckDateDemandeRaw(requestParameters: FormateurAgrementCheckDateDemandeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.dateDemande !== undefined) {\n queryParameters['dateDemande'] = (requestParameters.dateDemande as any).toISOString();\n }\n\n if (requestParameters.dateDebut !== undefined) {\n queryParameters['dateDebut'] = (requestParameters.dateDebut as any).toISOString();\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAgrement/checkDateDemande`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurAgrementCheckDateDemande(requestParameters: FormateurAgrementCheckDateDemandeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurAgrementCheckDateDemandeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurAgrementDeleteRaw(requestParameters: FormateurAgrementDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAgrement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurAgrementDelete(requestParameters: FormateurAgrementDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurAgrementDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurAgrementGetRaw(requestParameters: FormateurAgrementGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAgrement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurAgrementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurAgrementGet(requestParameters: FormateurAgrementGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurAgrementGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurAgrementGetSearchCriteriasRaw(requestParameters: FormateurAgrementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAgrement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurAgrementGetSearchCriterias(requestParameters: FormateurAgrementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurAgrementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurAgrementGetSelectItemsRaw(requestParameters: FormateurAgrementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurAgrementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAgrement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurAgrementGetSelectItems(requestParameters: FormateurAgrementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurAgrementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurAgrementSaveRaw(requestParameters: FormateurAgrementSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAgrement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurAgrementDtoToJSON(requestParameters.FcbFormateurAgrementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurAgrementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurAgrementSave(requestParameters: FormateurAgrementSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurAgrementSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurAzureGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurAzureSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurAzureGridDtoPaginatedResultsFromJSON,\n FcbFormateurAzureGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurAzureSearchFromJSON,\n FormateurAzureSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurAzureBaseSearchRequest {\n FormateurAzureSearch?: FormateurAzureSearch;\n}\n\nexport interface FormateurAzureGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurAzureGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class FormateurAzureApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurAzureBaseSearchRaw(requestParameters: FormateurAzureBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAzure/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurAzureSearchToJSON(requestParameters.FormateurAzureSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurAzureGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurAzureBaseSearch(requestParameters: FormateurAzureBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurAzureBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurAzureGetSearchCriteriasRaw(requestParameters: FormateurAzureGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAzure/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurAzureGetSearchCriterias(requestParameters: FormateurAzureGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurAzureGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurAzureGetSelectItemsRaw(requestParameters: FormateurAzureGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurAzureGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurAzure/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurAzureGetSelectItems(requestParameters: FormateurAzureGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurAzureGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurClasseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurClasseSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurClasseGridDtoPaginatedResultsFromJSON,\n FcbFormateurClasseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurClasseSearchFromJSON,\n FormateurClasseSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurClasseBaseSearchRequest {\n FormateurClasseSearch?: FormateurClasseSearch;\n}\n\nexport interface FormateurClasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurClasseGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class FormateurClasseApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurClasseBaseSearchRaw(requestParameters: FormateurClasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurClasse/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurClasseSearchToJSON(requestParameters.FormateurClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurClasseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurClasseBaseSearch(requestParameters: FormateurClasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurClasseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurClasseGetSearchCriteriasRaw(requestParameters: FormateurClasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurClasse/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurClasseGetSearchCriterias(requestParameters: FormateurClasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurClasseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurClasseGetSelectItemsRaw(requestParameters: FormateurClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurClasseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurClasse/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurClasseGetSelectItems(requestParameters: FormateurClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurClasseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurDesideratumDto,\n FcbFormateurDesideratumGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurDesideratumSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurDesideratumDtoFromJSON,\n FcbFormateurDesideratumDtoToJSON,\n FcbFormateurDesideratumGridDtoPaginatedResultsFromJSON,\n FcbFormateurDesideratumGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurDesideratumSearchFromJSON,\n FormateurDesideratumSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurDesideratumBaseSearchRequest {\n FormateurDesideratumSearch?: FormateurDesideratumSearch;\n}\n\nexport interface FormateurDesideratumDeleteRequest {\n id?: number;\n}\n\nexport interface FormateurDesideratumGetRequest {\n id?: number;\n}\n\nexport interface FormateurDesideratumGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurDesideratumGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurDesideratumSaveRequest {\n FcbFormateurDesideratumDto?: FcbFormateurDesideratumDto;\n}\n\n/**\n * \n */\nexport class FormateurDesideratumApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurDesideratumBaseSearchRaw(requestParameters: FormateurDesideratumBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDesideratum/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurDesideratumSearchToJSON(requestParameters.FormateurDesideratumSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurDesideratumGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurDesideratumBaseSearch(requestParameters: FormateurDesideratumBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDesideratumBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDesideratumDeleteRaw(requestParameters: FormateurDesideratumDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDesideratum`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurDesideratumDelete(requestParameters: FormateurDesideratumDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDesideratumDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDesideratumGetRaw(requestParameters: FormateurDesideratumGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDesideratum`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurDesideratumDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurDesideratumGet(requestParameters: FormateurDesideratumGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDesideratumGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDesideratumGetSearchCriteriasRaw(requestParameters: FormateurDesideratumGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDesideratum/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurDesideratumGetSearchCriterias(requestParameters: FormateurDesideratumGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurDesideratumGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDesideratumGetSelectItemsRaw(requestParameters: FormateurDesideratumGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurDesideratumGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDesideratum/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurDesideratumGetSelectItems(requestParameters: FormateurDesideratumGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurDesideratumGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDesideratumSaveRaw(requestParameters: FormateurDesideratumSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDesideratum`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurDesideratumDtoToJSON(requestParameters.FcbFormateurDesideratumDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurDesideratumDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurDesideratumSave(requestParameters: FormateurDesideratumSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDesideratumSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurDiplomeDto,\n FcbFormateurDiplomeGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurDiplomeSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurDiplomeDtoFromJSON,\n FcbFormateurDiplomeDtoToJSON,\n FcbFormateurDiplomeGridDtoPaginatedResultsFromJSON,\n FcbFormateurDiplomeGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurDiplomeSearchFromJSON,\n FormateurDiplomeSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurDiplomeBaseSearchRequest {\n FormateurDiplomeSearch?: FormateurDiplomeSearch;\n}\n\nexport interface FormateurDiplomeDeleteRequest {\n id?: number;\n}\n\nexport interface FormateurDiplomeGetRequest {\n id?: number;\n}\n\nexport interface FormateurDiplomeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurDiplomeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurDiplomeSaveRequest {\n FcbFormateurDiplomeDto?: FcbFormateurDiplomeDto;\n}\n\n/**\n * \n */\nexport class FormateurDiplomeApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurDiplomeBaseSearchRaw(requestParameters: FormateurDiplomeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDiplome/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurDiplomeSearchToJSON(requestParameters.FormateurDiplomeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurDiplomeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurDiplomeBaseSearch(requestParameters: FormateurDiplomeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDiplomeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDiplomeDeleteRaw(requestParameters: FormateurDiplomeDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDiplome`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurDiplomeDelete(requestParameters: FormateurDiplomeDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDiplomeDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDiplomeGetRaw(requestParameters: FormateurDiplomeGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDiplome`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurDiplomeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurDiplomeGet(requestParameters: FormateurDiplomeGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDiplomeGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDiplomeGetSearchCriteriasRaw(requestParameters: FormateurDiplomeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDiplome/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurDiplomeGetSearchCriterias(requestParameters: FormateurDiplomeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurDiplomeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDiplomeGetSelectItemsRaw(requestParameters: FormateurDiplomeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurDiplomeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDiplome/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurDiplomeGetSelectItems(requestParameters: FormateurDiplomeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurDiplomeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDiplomeSaveRaw(requestParameters: FormateurDiplomeSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDiplome`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurDiplomeDtoToJSON(requestParameters.FcbFormateurDiplomeDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurDiplomeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurDiplomeSave(requestParameters: FormateurDiplomeSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDiplomeSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurDoublonGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurDoublonSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurDoublonGridDtoPaginatedResultsFromJSON,\n FcbFormateurDoublonGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurDoublonSearchFromJSON,\n FormateurDoublonSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurDoublonBaseSearchRequest {\n FormateurDoublonSearch?: FormateurDoublonSearch;\n}\n\nexport interface FormateurDoublonGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurDoublonGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class FormateurDoublonApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurDoublonBaseSearchRaw(requestParameters: FormateurDoublonBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDoublon/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurDoublonSearchToJSON(requestParameters.FormateurDoublonSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurDoublonBaseSearch(requestParameters: FormateurDoublonBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurDoublonBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDoublonGetSearchCriteriasRaw(requestParameters: FormateurDoublonGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDoublon/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurDoublonGetSearchCriterias(requestParameters: FormateurDoublonGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurDoublonGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurDoublonGetSelectItemsRaw(requestParameters: FormateurDoublonGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurDoublonGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurDoublon/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurDoublonGetSelectItems(requestParameters: FormateurDoublonGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurDoublonGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n FormateurHoraireGridDtoPaginatedResults,\n FormateurHoraireSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurHoraireGridDtoPaginatedResultsFromJSON,\n FormateurHoraireGridDtoPaginatedResultsToJSON,\n FormateurHoraireSearchFromJSON,\n FormateurHoraireSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurHoraireBaseSearchRequest {\n FormateurHoraireSearch?: FormateurHoraireSearch;\n}\n\nexport interface FormateurHoraireGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurHoraireGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class FormateurHoraireApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurHoraireBaseSearchRaw(requestParameters: FormateurHoraireBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurHoraire/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurHoraireSearchToJSON(requestParameters.FormateurHoraireSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FormateurHoraireGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurHoraireBaseSearch(requestParameters: FormateurHoraireBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurHoraireBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurHoraireGetSearchCriteriasRaw(requestParameters: FormateurHoraireGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurHoraire/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurHoraireGetSearchCriterias(requestParameters: FormateurHoraireGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurHoraireGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurHoraireGetSelectItemsRaw(requestParameters: FormateurHoraireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurHoraireGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurHoraire/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurHoraireGetSelectItems(requestParameters: FormateurHoraireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurHoraireGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurLocalisationContratDetailDto,\n FcbFormateurLocalisationContratGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurLocalisationContratSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurLocalisationContratDetailDtoFromJSON,\n FcbFormateurLocalisationContratDetailDtoToJSON,\n FcbFormateurLocalisationContratGridDtoPaginatedResultsFromJSON,\n FcbFormateurLocalisationContratGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurLocalisationContratSearchFromJSON,\n FormateurLocalisationContratSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurLocalisationContratBaseSearchRequest {\n FormateurLocalisationContratSearch?: FormateurLocalisationContratSearch;\n}\n\nexport interface FormateurLocalisationContratGetRequest {\n id?: number;\n}\n\nexport interface FormateurLocalisationContratGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurLocalisationContratGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurLocalisationContratSaveRequest {\n FcbFormateurLocalisationContratDetailDto?: FcbFormateurLocalisationContratDetailDto;\n}\n\n/**\n * \n */\nexport class FormateurLocalisationContratApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurLocalisationContratBaseSearchRaw(requestParameters: FormateurLocalisationContratBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurLocalisationContrat/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurLocalisationContratSearchToJSON(requestParameters.FormateurLocalisationContratSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurLocalisationContratGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurLocalisationContratBaseSearch(requestParameters: FormateurLocalisationContratBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurLocalisationContratBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurLocalisationContratGetRaw(requestParameters: FormateurLocalisationContratGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurLocalisationContrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurLocalisationContratDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurLocalisationContratGet(requestParameters: FormateurLocalisationContratGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurLocalisationContratGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurLocalisationContratGetSearchCriteriasRaw(requestParameters: FormateurLocalisationContratGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurLocalisationContrat/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurLocalisationContratGetSearchCriterias(requestParameters: FormateurLocalisationContratGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurLocalisationContratGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurLocalisationContratGetSelectItemsRaw(requestParameters: FormateurLocalisationContratGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurLocalisationContratGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurLocalisationContrat/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurLocalisationContratGetSelectItems(requestParameters: FormateurLocalisationContratGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurLocalisationContratGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurLocalisationContratSaveRaw(requestParameters: FormateurLocalisationContratSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurLocalisationContrat`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurLocalisationContratDetailDtoToJSON(requestParameters.FcbFormateurLocalisationContratDetailDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurLocalisationContratDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurLocalisationContratSave(requestParameters: FormateurLocalisationContratSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurLocalisationContratSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurMetierAgrementLiesDto,\n FcbMetierAgrementGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateursMetiersAgrementSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurMetierAgrementLiesDtoFromJSON,\n FcbFormateurMetierAgrementLiesDtoToJSON,\n FcbMetierAgrementGridDtoPaginatedResultsFromJSON,\n FcbMetierAgrementGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateursMetiersAgrementSearchFromJSON,\n FormateursMetiersAgrementSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurMetierAgrementBaseSearchRequest {\n FormateursMetiersAgrementSearch?: FormateursMetiersAgrementSearch;\n}\n\nexport interface FormateurMetierAgrementGetMetiersAgrementRequest {\n idformateurAgrement?: number;\n}\n\nexport interface FormateurMetierAgrementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurMetierAgrementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurMetierAgrementSaveMetierAgrementRequest {\n FcbFormateurMetierAgrementLiesDto?: FcbFormateurMetierAgrementLiesDto;\n}\n\n/**\n * \n */\nexport class FormateurMetierAgrementApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurMetierAgrementBaseSearchRaw(requestParameters: FormateurMetierAgrementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurMetierAgrement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateursMetiersAgrementSearchToJSON(requestParameters.FormateursMetiersAgrementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierAgrementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurMetierAgrementBaseSearch(requestParameters: FormateurMetierAgrementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurMetierAgrementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurMetierAgrementGetMetiersAgrementRaw(requestParameters: FormateurMetierAgrementGetMetiersAgrementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idformateurAgrement !== undefined) {\n queryParameters['idformateurAgrement'] = requestParameters.idformateurAgrement;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurMetierAgrement/GetMetierAgrement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurMetierAgrementLiesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurMetierAgrementGetMetiersAgrement(requestParameters: FormateurMetierAgrementGetMetiersAgrementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurMetierAgrementGetMetiersAgrementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurMetierAgrementGetSearchCriteriasRaw(requestParameters: FormateurMetierAgrementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurMetierAgrement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurMetierAgrementGetSearchCriterias(requestParameters: FormateurMetierAgrementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurMetierAgrementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurMetierAgrementGetSelectItemsRaw(requestParameters: FormateurMetierAgrementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurMetierAgrementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurMetierAgrement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurMetierAgrementGetSelectItems(requestParameters: FormateurMetierAgrementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurMetierAgrementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurMetierAgrementSaveMetierAgrementRaw(requestParameters: FormateurMetierAgrementSaveMetierAgrementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurMetierAgrement/SaveMetierAgrement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurMetierAgrementLiesDtoToJSON(requestParameters.FcbFormateurMetierAgrementLiesDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurMetierAgrementLiesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurMetierAgrementSaveMetierAgrement(requestParameters: FormateurMetierAgrementSaveMetierAgrementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurMetierAgrementSaveMetierAgrementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurPrestationsContratGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurPrestationContratSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurPrestationsContratGridDtoPaginatedResultsFromJSON,\n FcbFormateurPrestationsContratGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurPrestationContratSearchFromJSON,\n FormateurPrestationContratSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurPrestationsContratBaseSearchRequest {\n FormateurPrestationContratSearch?: FormateurPrestationContratSearch;\n}\n\nexport interface FormateurPrestationsContratGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurPrestationsContratGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class FormateurPrestationsContratApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurPrestationsContratBaseSearchRaw(requestParameters: FormateurPrestationsContratBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurPrestationsContrat/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurPrestationContratSearchToJSON(requestParameters.FormateurPrestationContratSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurPrestationsContratGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurPrestationsContratBaseSearch(requestParameters: FormateurPrestationsContratBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurPrestationsContratBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurPrestationsContratGetSearchCriteriasRaw(requestParameters: FormateurPrestationsContratGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurPrestationsContrat/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurPrestationsContratGetSearchCriterias(requestParameters: FormateurPrestationsContratGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurPrestationsContratGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurPrestationsContratGetSelectItemsRaw(requestParameters: FormateurPrestationsContratGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurPrestationsContratGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurPrestationsContrat/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurPrestationsContratGetSelectItems(requestParameters: FormateurPrestationsContratGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurPrestationsContratGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurPrestationsGlobalesGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurPrestationsGlobalesSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurPrestationsGlobalesGridDtoPaginatedResultsFromJSON,\n FcbFormateurPrestationsGlobalesGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurPrestationsGlobalesSearchFromJSON,\n FormateurPrestationsGlobalesSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurPrestationsGlobalesBaseSearchRequest {\n FormateurPrestationsGlobalesSearch?: FormateurPrestationsGlobalesSearch;\n}\n\nexport interface FormateurPrestationsGlobalesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurPrestationsGlobalesGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class FormateurPrestationsGlobalesApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurPrestationsGlobalesBaseSearchRaw(requestParameters: FormateurPrestationsGlobalesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurPrestationsGlobales/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurPrestationsGlobalesSearchToJSON(requestParameters.FormateurPrestationsGlobalesSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurPrestationsGlobalesGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurPrestationsGlobalesBaseSearch(requestParameters: FormateurPrestationsGlobalesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurPrestationsGlobalesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurPrestationsGlobalesGetSearchCriteriasRaw(requestParameters: FormateurPrestationsGlobalesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurPrestationsGlobales/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurPrestationsGlobalesGetSearchCriterias(requestParameters: FormateurPrestationsGlobalesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurPrestationsGlobalesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurPrestationsGlobalesGetSelectItemsRaw(requestParameters: FormateurPrestationsGlobalesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurPrestationsGlobalesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurPrestationsGlobales/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurPrestationsGlobalesGetSelectItems(requestParameters: FormateurPrestationsGlobalesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurPrestationsGlobalesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurProfessionDto,\n FcbFormateurProfessionGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurProfessionSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurProfessionDtoFromJSON,\n FcbFormateurProfessionDtoToJSON,\n FcbFormateurProfessionGridDtoPaginatedResultsFromJSON,\n FcbFormateurProfessionGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurProfessionSearchFromJSON,\n FormateurProfessionSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurProfessionBaseSearchRequest {\n FormateurProfessionSearch?: FormateurProfessionSearch;\n}\n\nexport interface FormateurProfessionDeleteRequest {\n idFormateur?: number;\n idProfession?: number;\n}\n\nexport interface FormateurProfessionGetRequest {\n idFormateur?: number;\n idProfession?: number;\n}\n\nexport interface FormateurProfessionGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurProfessionGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurProfessionSaveRequest {\n FcbFormateurProfessionDto?: FcbFormateurProfessionDto;\n}\n\n/**\n * \n */\nexport class FormateurProfessionApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurProfessionBaseSearchRaw(requestParameters: FormateurProfessionBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurProfession/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurProfessionSearchToJSON(requestParameters.FormateurProfessionSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurProfessionGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurProfessionBaseSearch(requestParameters: FormateurProfessionBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurProfessionBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurProfessionDeleteRaw(requestParameters: FormateurProfessionDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormateur !== undefined) {\n queryParameters['idFormateur'] = requestParameters.idFormateur;\n }\n\n if (requestParameters.idProfession !== undefined) {\n queryParameters['idProfession'] = requestParameters.idProfession;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurProfession`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurProfessionDelete(requestParameters: FormateurProfessionDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurProfessionDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurProfessionGetRaw(requestParameters: FormateurProfessionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormateur !== undefined) {\n queryParameters['idFormateur'] = requestParameters.idFormateur;\n }\n\n if (requestParameters.idProfession !== undefined) {\n queryParameters['idProfession'] = requestParameters.idProfession;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurProfession`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurProfessionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurProfessionGet(requestParameters: FormateurProfessionGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurProfessionGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurProfessionGetSearchCriteriasRaw(requestParameters: FormateurProfessionGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurProfession/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurProfessionGetSearchCriterias(requestParameters: FormateurProfessionGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurProfessionGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurProfessionGetSelectItemsRaw(requestParameters: FormateurProfessionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurProfessionGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurProfession/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurProfessionGetSelectItems(requestParameters: FormateurProfessionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurProfessionGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurProfessionSaveRaw(requestParameters: FormateurProfessionSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurProfession`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurProfessionDtoToJSON(requestParameters.FcbFormateurProfessionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurProfessionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurProfessionSave(requestParameters: FormateurProfessionSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurProfessionSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRemplacementDto,\n FcbRemplacementGridDtoPaginatedResults,\n FilterCriteriaInfo,\n RemplacementSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRemplacementDtoFromJSON,\n FcbRemplacementDtoToJSON,\n FcbRemplacementGridDtoPaginatedResultsFromJSON,\n FcbRemplacementGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RemplacementSearchFromJSON,\n RemplacementSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurRemplacementBaseSearchRequest {\n RemplacementSearch?: RemplacementSearch;\n}\n\nexport interface FormateurRemplacementDeleteRequest {\n id?: number;\n}\n\nexport interface FormateurRemplacementGetRequest {\n id?: number;\n}\n\nexport interface FormateurRemplacementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurRemplacementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurRemplacementSaveRequest {\n FcbRemplacementDto?: FcbRemplacementDto;\n}\n\n/**\n * \n */\nexport class FormateurRemplacementApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurRemplacementBaseSearchRaw(requestParameters: FormateurRemplacementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurRemplacement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RemplacementSearchToJSON(requestParameters.RemplacementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRemplacementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurRemplacementBaseSearch(requestParameters: FormateurRemplacementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurRemplacementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurRemplacementDeleteRaw(requestParameters: FormateurRemplacementDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurRemplacement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurRemplacementDelete(requestParameters: FormateurRemplacementDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurRemplacementDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurRemplacementGetRaw(requestParameters: FormateurRemplacementGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurRemplacement/get`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRemplacementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurRemplacementGet(requestParameters: FormateurRemplacementGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurRemplacementGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurRemplacementGetSearchCriteriasRaw(requestParameters: FormateurRemplacementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurRemplacement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurRemplacementGetSearchCriterias(requestParameters: FormateurRemplacementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurRemplacementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurRemplacementGetSelectItemsRaw(requestParameters: FormateurRemplacementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurRemplacementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurRemplacement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurRemplacementGetSelectItems(requestParameters: FormateurRemplacementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurRemplacementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurRemplacementSaveRaw(requestParameters: FormateurRemplacementSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurRemplacement/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbRemplacementDtoToJSON(requestParameters.FcbRemplacementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRemplacementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurRemplacementSave(requestParameters: FormateurRemplacementSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurRemplacementSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurSuiviDto,\n FcbFormateurSuiviGridDtoPaginatedResults,\n FileDownloadDto,\n FilterCriteriaInfo,\n FormateurSuiviFichierDto,\n FormateurSuiviFichierUploadDto,\n FormateurSuiviSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurSuiviDtoFromJSON,\n FcbFormateurSuiviDtoToJSON,\n FcbFormateurSuiviGridDtoPaginatedResultsFromJSON,\n FcbFormateurSuiviGridDtoPaginatedResultsToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurSuiviFichierDtoFromJSON,\n FormateurSuiviFichierDtoToJSON,\n FormateurSuiviFichierUploadDtoFromJSON,\n FormateurSuiviFichierUploadDtoToJSON,\n FormateurSuiviSearchFromJSON,\n FormateurSuiviSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurSuiviBaseSearchRequest {\n FormateurSuiviSearch?: FormateurSuiviSearch;\n}\n\nexport interface FormateurSuiviDeleteRequest {\n id?: number;\n}\n\nexport interface FormateurSuiviDeleteFormateurSuiviFichierRequest {\n id?: number;\n}\n\nexport interface FormateurSuiviDownloadFormateurSuiviFichierRequest {\n id?: number;\n}\n\nexport interface FormateurSuiviGetRequest {\n id?: number;\n}\n\nexport interface FormateurSuiviGetFormateurSuiviFichierRequest {\n id?: number;\n}\n\nexport interface FormateurSuiviGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurSuiviGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurSuiviSaveRequest {\n FcbFormateurSuiviDto?: FcbFormateurSuiviDto;\n}\n\nexport interface FormateurSuiviSaveFormateurSuiviFichierRequest {\n FormateurSuiviFichierDto?: FormateurSuiviFichierDto;\n}\n\nexport interface FormateurSuiviUploadFormateurSuiviFichierRequest {\n FormateurSuiviFichierUploadDto?: FormateurSuiviFichierUploadDto;\n}\n\n/**\n * \n */\nexport class FormateurSuiviApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurSuiviBaseSearchRaw(requestParameters: FormateurSuiviBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurSuiviSearchToJSON(requestParameters.FormateurSuiviSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurSuiviGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurSuiviBaseSearch(requestParameters: FormateurSuiviBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurSuiviBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSuiviDeleteRaw(requestParameters: FormateurSuiviDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurSuiviDelete(requestParameters: FormateurSuiviDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurSuiviDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSuiviDeleteFormateurSuiviFichierRaw(requestParameters: FormateurSuiviDeleteFormateurSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi/DeleteFormateurSuiviFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async formateurSuiviDeleteFormateurSuiviFichier(requestParameters: FormateurSuiviDeleteFormateurSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.formateurSuiviDeleteFormateurSuiviFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async formateurSuiviDownloadFormateurSuiviFichierRaw(requestParameters: FormateurSuiviDownloadFormateurSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi/DownloadFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurSuiviDownloadFormateurSuiviFichier(requestParameters: FormateurSuiviDownloadFormateurSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurSuiviDownloadFormateurSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSuiviGetRaw(requestParameters: FormateurSuiviGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurSuiviDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurSuiviGet(requestParameters: FormateurSuiviGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurSuiviGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSuiviGetFormateurSuiviFichierRaw(requestParameters: FormateurSuiviGetFormateurSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi/GetFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FormateurSuiviFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurSuiviGetFormateurSuiviFichier(requestParameters: FormateurSuiviGetFormateurSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurSuiviGetFormateurSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSuiviGetSearchCriteriasRaw(requestParameters: FormateurSuiviGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurSuiviGetSearchCriterias(requestParameters: FormateurSuiviGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurSuiviGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSuiviGetSelectItemsRaw(requestParameters: FormateurSuiviGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurSuiviGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurSuiviGetSelectItems(requestParameters: FormateurSuiviGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurSuiviGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSuiviSaveRaw(requestParameters: FormateurSuiviSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurSuiviDtoToJSON(requestParameters.FcbFormateurSuiviDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurSuiviDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurSuiviSave(requestParameters: FormateurSuiviSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurSuiviSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSuiviSaveFormateurSuiviFichierRaw(requestParameters: FormateurSuiviSaveFormateurSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi/SaveFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurSuiviFichierDtoToJSON(requestParameters.FormateurSuiviFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FormateurSuiviFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurSuiviSaveFormateurSuiviFichier(requestParameters: FormateurSuiviSaveFormateurSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurSuiviSaveFormateurSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurSuiviUploadFormateurSuiviFichierRaw(requestParameters: FormateurSuiviUploadFormateurSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurSuivi/UploadFormateurSuiviFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurSuiviFichierUploadDtoToJSON(requestParameters.FormateurSuiviFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FormateurSuiviFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurSuiviUploadFormateurSuiviFichier(requestParameters: FormateurSuiviUploadFormateurSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurSuiviUploadFormateurSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormateurTitreDto,\n FcbFormateurTitreGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormateurTitreSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormateurTitreDtoFromJSON,\n FcbFormateurTitreDtoToJSON,\n FcbFormateurTitreGridDtoPaginatedResultsFromJSON,\n FcbFormateurTitreGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormateurTitreSearchFromJSON,\n FormateurTitreSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormateurTitreBaseSearchRequest {\n FormateurTitreSearch?: FormateurTitreSearch;\n}\n\nexport interface FormateurTitreDeleteRequest {\n id?: number;\n}\n\nexport interface FormateurTitreGetRequest {\n id?: number;\n}\n\nexport interface FormateurTitreGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormateurTitreGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormateurTitreSaveRequest {\n FcbFormateurTitreDto?: FcbFormateurTitreDto;\n}\n\n/**\n * \n */\nexport class FormateurTitreApi extends runtime.BaseAPI {\n\n /**\n */\n async formateurTitreBaseSearchRaw(requestParameters: FormateurTitreBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurTitre/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormateurTitreSearchToJSON(requestParameters.FormateurTitreSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurTitreGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurTitreBaseSearch(requestParameters: FormateurTitreBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurTitreBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurTitreDeleteRaw(requestParameters: FormateurTitreDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurTitre`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formateurTitreDelete(requestParameters: FormateurTitreDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurTitreDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurTitreGetRaw(requestParameters: FormateurTitreGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurTitre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurTitreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurTitreGet(requestParameters: FormateurTitreGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurTitreGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurTitreGetSearchCriteriasRaw(requestParameters: FormateurTitreGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurTitre/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formateurTitreGetSearchCriterias(requestParameters: FormateurTitreGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurTitreGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurTitreGetSelectItemsRaw(requestParameters: FormateurTitreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formateurTitreGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurTitre/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formateurTitreGetSelectItems(requestParameters: FormateurTitreGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formateurTitreGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formateurTitreSaveRaw(requestParameters: FormateurTitreSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/FormateurTitre`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormateurTitreDtoToJSON(requestParameters.FcbFormateurTitreDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormateurTitreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formateurTitreSave(requestParameters: FormateurTitreSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formateurTitreSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbFormationDto,\n FcbFormationGridDtoPaginatedResults,\n FilterCriteriaInfo,\n FormationSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbFormationDtoFromJSON,\n FcbFormationDtoToJSON,\n FcbFormationGridDtoPaginatedResultsFromJSON,\n FcbFormationGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n FormationSearchFromJSON,\n FormationSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface FormationBaseSearchRequest {\n FormationSearch?: FormationSearch;\n}\n\nexport interface FormationDeleteRequest {\n id?: number;\n}\n\nexport interface FormationGetRequest {\n id?: number;\n}\n\nexport interface FormationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface FormationGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface FormationSaveRequest {\n FcbFormationDto?: FcbFormationDto;\n}\n\n/**\n * \n */\nexport class FormationApi extends runtime.BaseAPI {\n\n /**\n */\n async formationBaseSearchRaw(requestParameters: FormationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FormationSearchToJSON(requestParameters.FormationSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormationGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async formationBaseSearch(requestParameters: FormationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formationDeleteRaw(requestParameters: FormationDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formation`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async formationDelete(requestParameters: FormationDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formationDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formationGetRaw(requestParameters: FormationGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormationDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formationGet(requestParameters: FormationGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formationGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formationGetSearchCriteriasRaw(requestParameters: FormationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async formationGetSearchCriterias(requestParameters: FormationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formationGetSelectItemsRaw(requestParameters: FormationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling formationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async formationGetSelectItems(requestParameters: FormationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.formationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async formationSaveRaw(requestParameters: FormationSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Formation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbFormationDtoToJSON(requestParameters.FcbFormationDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbFormationDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async formationSave(requestParameters: FormationSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.formationSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbGestionDroitsGridDto,\n FcbGestionDroitsGridDtoPaginatedResults,\n FilterCriteriaInfo,\n GestionDroitsSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbGestionDroitsGridDtoFromJSON,\n FcbGestionDroitsGridDtoToJSON,\n FcbGestionDroitsGridDtoPaginatedResultsFromJSON,\n FcbGestionDroitsGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n GestionDroitsSearchFromJSON,\n GestionDroitsSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface GestionDroitsBaseSearchRequest {\n GestionDroitsSearch?: GestionDroitsSearch;\n}\n\nexport interface GestionDroitsGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface GestionDroitsGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface GestionDroitsSavePermissionRequest {\n FcbGestionDroitsGridDto?: FcbGestionDroitsGridDto;\n}\n\n/**\n * \n */\nexport class GestionDroitsApi extends runtime.BaseAPI {\n\n /**\n */\n async gestionDroitsBaseSearchRaw(requestParameters: GestionDroitsBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/GestionDroits/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: GestionDroitsSearchToJSON(requestParameters.GestionDroitsSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbGestionDroitsGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async gestionDroitsBaseSearch(requestParameters: GestionDroitsBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.gestionDroitsBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async gestionDroitsGetSearchCriteriasRaw(requestParameters: GestionDroitsGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/GestionDroits/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async gestionDroitsGetSearchCriterias(requestParameters: GestionDroitsGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.gestionDroitsGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async gestionDroitsGetSelectItemsRaw(requestParameters: GestionDroitsGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling gestionDroitsGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/GestionDroits/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async gestionDroitsGetSelectItems(requestParameters: GestionDroitsGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.gestionDroitsGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async gestionDroitsSavePermissionRaw(requestParameters: GestionDroitsSavePermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/GestionDroits/SavePermission`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbGestionDroitsGridDtoToJSON(requestParameters.FcbGestionDroitsGridDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbGestionDroitsGridDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async gestionDroitsSavePermission(requestParameters: GestionDroitsSavePermissionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.gestionDroitsSavePermissionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n HealthCheckViewModel,\n} from '../models/index';\nimport {\n HealthCheckViewModelFromJSON,\n HealthCheckViewModelToJSON,\n} from '../models/index';\n\n/**\n * \n */\nexport class HealthCheckApi extends runtime.BaseAPI {\n\n /**\n */\n async healthCheckGetHealthCheckRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/monitoring/_hc`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => HealthCheckViewModelFromJSON(jsonValue));\n }\n\n /**\n */\n async healthCheckGetHealthCheck(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.healthCheckGetHealthCheckRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async healthCheckGetLiveHealthCheckRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/monitoring/_hc/live`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => HealthCheckViewModelFromJSON(jsonValue));\n }\n\n /**\n */\n async healthCheckGetLiveHealthCheck(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.healthCheckGetLiveHealthCheckRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async healthCheckGetReadyHealthCheckRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/monitoring/_hc/ready`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => HealthCheckViewModelFromJSON(jsonValue));\n }\n\n /**\n */\n async healthCheckGetReadyHealthCheck(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.healthCheckGetReadyHealthCheckRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async healthCheckGetStartupHealthCheckRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/monitoring/_hc/startup`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => HealthCheckViewModelFromJSON(jsonValue));\n }\n\n /**\n */\n async healthCheckGetStartupHealthCheck(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.healthCheckGetStartupHealthCheckRaw(initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbImpressionDto,\n FcbRechercheImpressionDtoPaginatedResults,\n FilterCriteriaInfo,\n RechercheImpressionSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbImpressionDtoFromJSON,\n FcbImpressionDtoToJSON,\n FcbRechercheImpressionDtoPaginatedResultsFromJSON,\n FcbRechercheImpressionDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheImpressionSearchFromJSON,\n RechercheImpressionSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ImpressionBaseSearchRequest {\n RechercheImpressionSearch?: RechercheImpressionSearch;\n}\n\nexport interface ImpressionDeleteRequest {\n id?: number;\n}\n\nexport interface ImpressionGetRequest {\n id?: number;\n}\n\nexport interface ImpressionGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ImpressionGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ImpressionGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ImpressionSaveRequest {\n FcbImpressionDto?: FcbImpressionDto;\n}\n\n/**\n * \n */\nexport class ImpressionApi extends runtime.BaseAPI {\n\n /**\n */\n async impressionBaseSearchRaw(requestParameters: ImpressionBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Impression/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheImpressionSearchToJSON(requestParameters.RechercheImpressionSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheImpressionDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async impressionBaseSearch(requestParameters: ImpressionBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.impressionBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async impressionDeleteRaw(requestParameters: ImpressionDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Impression`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async impressionDelete(requestParameters: ImpressionDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.impressionDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async impressionGetRaw(requestParameters: ImpressionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Impression`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbImpressionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async impressionGet(requestParameters: ImpressionGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.impressionGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async impressionGetDisplayNameRaw(requestParameters: ImpressionGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Impression/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async impressionGetDisplayName(requestParameters: ImpressionGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.impressionGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async impressionGetSearchCriteriasRaw(requestParameters: ImpressionGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Impression/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async impressionGetSearchCriterias(requestParameters: ImpressionGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.impressionGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async impressionGetSelectItemsRaw(requestParameters: ImpressionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling impressionGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Impression/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async impressionGetSelectItems(requestParameters: ImpressionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.impressionGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async impressionSaveRaw(requestParameters: ImpressionSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Impression`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbImpressionDtoToJSON(requestParameters.FcbImpressionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbImpressionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async impressionSave(requestParameters: ImpressionSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.impressionSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n FcbInscriptionDetailDto,\n FcbInscriptionGridDtoPaginatedResults,\n FileDownloadDto,\n FilterCriteriaInfo,\n InscriptionAbandonDto,\n InscriptionFichierDto,\n InscriptionFichierUploadDto,\n InscriptionSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FcbInscriptionDetailDtoFromJSON,\n FcbInscriptionDetailDtoToJSON,\n FcbInscriptionGridDtoPaginatedResultsFromJSON,\n FcbInscriptionGridDtoPaginatedResultsToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n InscriptionAbandonDtoFromJSON,\n InscriptionAbandonDtoToJSON,\n InscriptionFichierDtoFromJSON,\n InscriptionFichierDtoToJSON,\n InscriptionFichierUploadDtoFromJSON,\n InscriptionFichierUploadDtoToJSON,\n InscriptionSearchFromJSON,\n InscriptionSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface InscriptionAbandonRequest {\n InscriptionAbandonDto?: InscriptionAbandonDto;\n}\n\nexport interface InscriptionBaseSearchRequest {\n InscriptionSearch?: InscriptionSearch;\n}\n\nexport interface InscriptionCanEditInscriptionRequest {\n idInscription?: number;\n idClasse?: number;\n}\n\nexport interface InscriptionCheckSoftDeleteRequest {\n id?: number;\n}\n\nexport interface InscriptionCheckStadesRequest {\n idFormation?: number;\n idClasse?: number;\n}\n\nexport interface InscriptionComputeDegreFinalRequest {\n idFormation?: number;\n idDegre?: string;\n}\n\nexport interface InscriptionDeleteRequest {\n id?: number;\n}\n\nexport interface InscriptionDeleteFichierRequest {\n id?: number;\n}\n\nexport interface InscriptionDownloadFichierRequest {\n id?: number;\n}\n\nexport interface InscriptionGetRequest {\n id?: number;\n idapprenant?: number;\n iddemandeInscription?: number;\n}\n\nexport interface InscriptionGetFichierRequest {\n id?: number;\n}\n\nexport interface InscriptionGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface InscriptionGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface InscriptionGetStatutRequest {\n id?: number;\n}\n\nexport interface InscriptionHasDispenseRequest {\n idInscription?: number;\n}\n\nexport interface InscriptionSaveRequest {\n FcbInscriptionDetailDto?: FcbInscriptionDetailDto;\n}\n\nexport interface InscriptionSaveFichierRequest {\n InscriptionFichierDto?: InscriptionFichierDto;\n}\n\nexport interface InscriptionSearchIdsRequest {\n InscriptionSearch?: InscriptionSearch;\n}\n\nexport interface InscriptionSoftDeleteRequest {\n id?: number;\n}\n\nexport interface InscriptionSuspendueByClasseRequest {\n idClasse?: number;\n idApprenant?: number;\n}\n\nexport interface InscriptionTerminerRequest {\n request_body?: Array;\n}\n\nexport interface InscriptionUploadFichierRequest {\n InscriptionFichierUploadDto?: InscriptionFichierUploadDto;\n}\n\nexport interface InscriptionUserSocieteExterneCanEditRequest {\n idInscription?: number;\n}\n\n/**\n * \n */\nexport class InscriptionApi extends runtime.BaseAPI {\n\n /**\n */\n async inscriptionAbandonRaw(requestParameters: InscriptionAbandonRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/Abandon`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionAbandonDtoToJSON(requestParameters.InscriptionAbandonDto),\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async inscriptionAbandon(requestParameters: InscriptionAbandonRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.inscriptionAbandonRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async inscriptionBaseSearchRaw(requestParameters: InscriptionBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionSearchToJSON(requestParameters.InscriptionSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbInscriptionGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionBaseSearch(requestParameters: InscriptionBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionCanEditInscriptionRaw(requestParameters: InscriptionCanEditInscriptionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idInscription !== undefined) {\n queryParameters['idInscription'] = requestParameters.idInscription;\n }\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/canEditInscription`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionCanEditInscription(requestParameters: InscriptionCanEditInscriptionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionCanEditInscriptionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionCheckSoftDeleteRaw(requestParameters: InscriptionCheckSoftDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/CheckSoftDelete`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionCheckSoftDelete(requestParameters: InscriptionCheckSoftDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionCheckSoftDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionCheckStadesRaw(requestParameters: InscriptionCheckStadesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormation !== undefined) {\n queryParameters['idFormation'] = requestParameters.idFormation;\n }\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/CheckStades`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionCheckStades(requestParameters: InscriptionCheckStadesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionCheckStadesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionComputeDegreFinalRaw(requestParameters: InscriptionComputeDegreFinalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormation !== undefined) {\n queryParameters['idFormation'] = requestParameters.idFormation;\n }\n\n if (requestParameters.idDegre !== undefined) {\n queryParameters['idDegre'] = requestParameters.idDegre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/ComputeDegreFinal`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionComputeDegreFinal(requestParameters: InscriptionComputeDegreFinalRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionComputeDegreFinalRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionDeleteRaw(requestParameters: InscriptionDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async inscriptionDelete(requestParameters: InscriptionDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionDeleteFichierRaw(requestParameters: InscriptionDeleteFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/DeleteFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async inscriptionDeleteFichier(requestParameters: InscriptionDeleteFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.inscriptionDeleteFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async inscriptionDownloadFichierRaw(requestParameters: InscriptionDownloadFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/DownloadFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionDownloadFichier(requestParameters: InscriptionDownloadFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionDownloadFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionGetRaw(requestParameters: InscriptionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n if (requestParameters.iddemandeInscription !== undefined) {\n queryParameters['iddemandeInscription'] = requestParameters.iddemandeInscription;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbInscriptionDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionGet(requestParameters: InscriptionGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionGetFichierRaw(requestParameters: InscriptionGetFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/GetFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InscriptionFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionGetFichier(requestParameters: InscriptionGetFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionGetFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionGetSearchCriteriasRaw(requestParameters: InscriptionGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async inscriptionGetSearchCriterias(requestParameters: InscriptionGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.inscriptionGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionGetSelectItemsRaw(requestParameters: InscriptionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling inscriptionGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async inscriptionGetSelectItems(requestParameters: InscriptionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.inscriptionGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionGetStatutRaw(requestParameters: InscriptionGetStatutRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/GetStatut`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async inscriptionGetStatut(requestParameters: InscriptionGetStatutRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionGetStatutRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionHasDispenseRaw(requestParameters: InscriptionHasDispenseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idInscription !== undefined) {\n queryParameters['idInscription'] = requestParameters.idInscription;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/HasDispense`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionHasDispense(requestParameters: InscriptionHasDispenseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionHasDispenseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSaveRaw(requestParameters: InscriptionSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbInscriptionDetailDtoToJSON(requestParameters.FcbInscriptionDetailDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbInscriptionDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionSave(requestParameters: InscriptionSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSaveFichierRaw(requestParameters: InscriptionSaveFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/SaveFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionFichierDtoToJSON(requestParameters.InscriptionFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InscriptionFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionSaveFichier(requestParameters: InscriptionSaveFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionSaveFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSearchIdsRaw(requestParameters: InscriptionSearchIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/SearchIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionSearchToJSON(requestParameters.InscriptionSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async inscriptionSearchIds(requestParameters: InscriptionSearchIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.inscriptionSearchIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSoftDeleteRaw(requestParameters: InscriptionSoftDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/SoftDelete`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async inscriptionSoftDelete(requestParameters: InscriptionSoftDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionSoftDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSuspendueByClasseRaw(requestParameters: InscriptionSuspendueByClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/SuspendueByClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async inscriptionSuspendueByClasse(requestParameters: InscriptionSuspendueByClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionSuspendueByClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionTerminerRaw(requestParameters: InscriptionTerminerRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/Terminer`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async inscriptionTerminer(requestParameters: InscriptionTerminerRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.inscriptionTerminerRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async inscriptionUploadFichierRaw(requestParameters: InscriptionUploadFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/UploadFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionFichierUploadDtoToJSON(requestParameters.InscriptionFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InscriptionFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionUploadFichier(requestParameters: InscriptionUploadFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionUploadFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionUserSocieteExterneCanEditRaw(requestParameters: InscriptionUserSocieteExterneCanEditRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idInscription !== undefined) {\n queryParameters['idInscription'] = requestParameters.idInscription;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Inscription/UserSocieteExterneCanEdit`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionUserSocieteExterneCanEdit(requestParameters: InscriptionUserSocieteExterneCanEditRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionUserSocieteExterneCanEditRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbInscriptionMasseDto,\n FcbInscriptionMasseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n InscriptionMasseSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbInscriptionMasseDtoFromJSON,\n FcbInscriptionMasseDtoToJSON,\n FcbInscriptionMasseGridDtoPaginatedResultsFromJSON,\n FcbInscriptionMasseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n InscriptionMasseSearchFromJSON,\n InscriptionMasseSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface InscriptionMasseBaseSearchRequest {\n InscriptionMasseSearch?: InscriptionMasseSearch;\n}\n\nexport interface InscriptionMasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface InscriptionMasseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface InscriptionMasseSaveOneByOneRequest {\n FcbInscriptionMasseDto?: FcbInscriptionMasseDto;\n}\n\nexport interface InscriptionMasseSearchApprenantNotInClasseRequest {\n InscriptionMasseSearch?: InscriptionMasseSearch;\n}\n\nexport interface InscriptionMasseSearchInscriptionIdsRequest {\n InscriptionMasseSearch?: InscriptionMasseSearch;\n}\n\n/**\n * \n */\nexport class InscriptionMasseApi extends runtime.BaseAPI {\n\n /**\n */\n async inscriptionMasseBaseSearchRaw(requestParameters: InscriptionMasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionMasse/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionMasseSearchToJSON(requestParameters.InscriptionMasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbInscriptionMasseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionMasseBaseSearch(requestParameters: InscriptionMasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionMasseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionMasseGetBaseDataRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionMasse/GetBaseData`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbInscriptionMasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionMasseGetBaseData(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionMasseGetBaseDataRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionMasseGetSearchCriteriasRaw(requestParameters: InscriptionMasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionMasse/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async inscriptionMasseGetSearchCriterias(requestParameters: InscriptionMasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.inscriptionMasseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionMasseGetSelectItemsRaw(requestParameters: InscriptionMasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling inscriptionMasseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionMasse/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async inscriptionMasseGetSelectItems(requestParameters: InscriptionMasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.inscriptionMasseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionMasseSaveOneByOneRaw(requestParameters: InscriptionMasseSaveOneByOneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionMasse/SaveOneByOne`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbInscriptionMasseDtoToJSON(requestParameters.FcbInscriptionMasseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbInscriptionMasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionMasseSaveOneByOne(requestParameters: InscriptionMasseSaveOneByOneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionMasseSaveOneByOneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionMasseSearchApprenantNotInClasseRaw(requestParameters: InscriptionMasseSearchApprenantNotInClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionMasse/SearchApprenantNotInClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionMasseSearchToJSON(requestParameters.InscriptionMasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbInscriptionMasseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionMasseSearchApprenantNotInClasse(requestParameters: InscriptionMasseSearchApprenantNotInClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionMasseSearchApprenantNotInClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionMasseSearchInscriptionIdsRaw(requestParameters: InscriptionMasseSearchInscriptionIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionMasse/SearchInscriptionIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionMasseSearchToJSON(requestParameters.InscriptionMasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async inscriptionMasseSearchInscriptionIds(requestParameters: InscriptionMasseSearchInscriptionIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.inscriptionMasseSearchInscriptionIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n InscriptionSuspensionDto,\n InscriptionSuspensionDtoPaginatedResults,\n InscriptionSuspensionMultipleDto,\n InscriptionSuspensionSearchDto,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n InscriptionSuspensionDtoFromJSON,\n InscriptionSuspensionDtoToJSON,\n InscriptionSuspensionDtoPaginatedResultsFromJSON,\n InscriptionSuspensionDtoPaginatedResultsToJSON,\n InscriptionSuspensionMultipleDtoFromJSON,\n InscriptionSuspensionMultipleDtoToJSON,\n InscriptionSuspensionSearchDtoFromJSON,\n InscriptionSuspensionSearchDtoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface InscriptionSuspensionBaseSearchRequest {\n InscriptionSuspensionSearchDto?: InscriptionSuspensionSearchDto;\n}\n\nexport interface InscriptionSuspensionCanEditSuspensionsMultipleRequest {\n request_body?: Array;\n}\n\nexport interface InscriptionSuspensionDeleteInscriptionSuspensionRequest {\n idinscriptionSuspension?: number;\n}\n\nexport interface InscriptionSuspensionGetByInscriptionIdRequest {\n idinscription?: number;\n}\n\nexport interface InscriptionSuspensionGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface InscriptionSuspensionGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface InscriptionSuspensionSaveInscriptionSuspensionRequest {\n InscriptionSuspensionDto?: InscriptionSuspensionDto;\n}\n\nexport interface InscriptionSuspensionSaveInscriptionSuspensionMultipleRequest {\n InscriptionSuspensionMultipleDto?: InscriptionSuspensionMultipleDto;\n}\n\n/**\n * \n */\nexport class InscriptionSuspensionApi extends runtime.BaseAPI {\n\n /**\n */\n async inscriptionSuspensionBaseSearchRaw(requestParameters: InscriptionSuspensionBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionSuspension/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionSuspensionSearchDtoToJSON(requestParameters.InscriptionSuspensionSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InscriptionSuspensionDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionSuspensionBaseSearch(requestParameters: InscriptionSuspensionBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionSuspensionBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSuspensionCanEditSuspensionsMultipleRaw(requestParameters: InscriptionSuspensionCanEditSuspensionsMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionSuspension/CanEditSuspensionsMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async inscriptionSuspensionCanEditSuspensionsMultiple(requestParameters: InscriptionSuspensionCanEditSuspensionsMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.inscriptionSuspensionCanEditSuspensionsMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSuspensionDeleteInscriptionSuspensionRaw(requestParameters: InscriptionSuspensionDeleteInscriptionSuspensionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idinscriptionSuspension !== undefined) {\n queryParameters['idinscriptionSuspension'] = requestParameters.idinscriptionSuspension;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionSuspension`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async inscriptionSuspensionDeleteInscriptionSuspension(requestParameters: InscriptionSuspensionDeleteInscriptionSuspensionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.inscriptionSuspensionDeleteInscriptionSuspensionRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async inscriptionSuspensionGetByInscriptionIdRaw(requestParameters: InscriptionSuspensionGetByInscriptionIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idinscription !== undefined) {\n queryParameters['idinscription'] = requestParameters.idinscription;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionSuspension/GetByInscriptionId`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InscriptionSuspensionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionSuspensionGetByInscriptionId(requestParameters: InscriptionSuspensionGetByInscriptionIdRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionSuspensionGetByInscriptionIdRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSuspensionGetSearchCriteriasRaw(requestParameters: InscriptionSuspensionGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionSuspension/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async inscriptionSuspensionGetSearchCriterias(requestParameters: InscriptionSuspensionGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.inscriptionSuspensionGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSuspensionGetSelectItemsRaw(requestParameters: InscriptionSuspensionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling inscriptionSuspensionGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionSuspension/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async inscriptionSuspensionGetSelectItems(requestParameters: InscriptionSuspensionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.inscriptionSuspensionGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSuspensionSaveInscriptionSuspensionRaw(requestParameters: InscriptionSuspensionSaveInscriptionSuspensionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionSuspension`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionSuspensionDtoToJSON(requestParameters.InscriptionSuspensionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InscriptionSuspensionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionSuspensionSaveInscriptionSuspension(requestParameters: InscriptionSuspensionSaveInscriptionSuspensionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionSuspensionSaveInscriptionSuspensionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async inscriptionSuspensionSaveInscriptionSuspensionMultipleRaw(requestParameters: InscriptionSuspensionSaveInscriptionSuspensionMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InscriptionSuspension/Multiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InscriptionSuspensionMultipleDtoToJSON(requestParameters.InscriptionSuspensionMultipleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InscriptionSuspensionMultipleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async inscriptionSuspensionSaveInscriptionSuspensionMultiple(requestParameters: InscriptionSuspensionSaveInscriptionSuspensionMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.inscriptionSuspensionSaveInscriptionSuspensionMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n InstitutionApprenantLiesGridDtoPaginatedResults,\n InstitutionApprenantLiesSearchDto,\n InstitutionEditDto,\n InstitutionGridDtoPaginatedResults,\n InstitutionSearchDto,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n InstitutionApprenantLiesGridDtoPaginatedResultsFromJSON,\n InstitutionApprenantLiesGridDtoPaginatedResultsToJSON,\n InstitutionApprenantLiesSearchDtoFromJSON,\n InstitutionApprenantLiesSearchDtoToJSON,\n InstitutionEditDtoFromJSON,\n InstitutionEditDtoToJSON,\n InstitutionGridDtoPaginatedResultsFromJSON,\n InstitutionGridDtoPaginatedResultsToJSON,\n InstitutionSearchDtoFromJSON,\n InstitutionSearchDtoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface InstitutionBaseSearchRequest {\n InstitutionSearchDto?: InstitutionSearchDto;\n}\n\nexport interface InstitutionDeleteInstitutionRequest {\n id?: number;\n}\n\nexport interface InstitutionGetApprenantLiesRequest {\n InstitutionApprenantLiesSearchDto?: InstitutionApprenantLiesSearchDto;\n}\n\nexport interface InstitutionGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface InstitutionGetInstitutionRequest {\n id?: number;\n}\n\nexport interface InstitutionGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface InstitutionGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface InstitutionSaveInstitutionRequest {\n InstitutionEditDto?: InstitutionEditDto;\n}\n\n/**\n * \n */\nexport class InstitutionApi extends runtime.BaseAPI {\n\n /**\n */\n async institutionBaseSearchRaw(requestParameters: InstitutionBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Institution/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InstitutionSearchDtoToJSON(requestParameters.InstitutionSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InstitutionGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async institutionBaseSearch(requestParameters: InstitutionBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.institutionBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async institutionDeleteInstitutionRaw(requestParameters: InstitutionDeleteInstitutionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Institution/DeleteInstitution`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async institutionDeleteInstitution(requestParameters: InstitutionDeleteInstitutionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.institutionDeleteInstitutionRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async institutionGetApprenantLiesRaw(requestParameters: InstitutionGetApprenantLiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Institution/GetApprenantLies`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InstitutionApprenantLiesSearchDtoToJSON(requestParameters.InstitutionApprenantLiesSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InstitutionApprenantLiesGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async institutionGetApprenantLies(requestParameters: InstitutionGetApprenantLiesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.institutionGetApprenantLiesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async institutionGetDisplayNameRaw(requestParameters: InstitutionGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Institution/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async institutionGetDisplayName(requestParameters: InstitutionGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.institutionGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async institutionGetInstitutionRaw(requestParameters: InstitutionGetInstitutionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Institution`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InstitutionEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async institutionGetInstitution(requestParameters: InstitutionGetInstitutionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.institutionGetInstitutionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async institutionGetSearchCriteriasRaw(requestParameters: InstitutionGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Institution/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async institutionGetSearchCriterias(requestParameters: InstitutionGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.institutionGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async institutionGetSelectItemsRaw(requestParameters: InstitutionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling institutionGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Institution/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async institutionGetSelectItems(requestParameters: InstitutionGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.institutionGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async institutionSaveInstitutionRaw(requestParameters: InstitutionSaveInstitutionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Institution`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InstitutionEditDtoToJSON(requestParameters.InstitutionEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InstitutionEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async institutionSaveInstitution(requestParameters: InstitutionSaveInstitutionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.institutionSaveInstitutionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DisplayNameDto,\n FilterCriteriaInfo,\n InstitutionSelectorGridDtoPaginatedResults,\n InstitutionSelectorSearch,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n DisplayNameDtoFromJSON,\n DisplayNameDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n InstitutionSelectorGridDtoPaginatedResultsFromJSON,\n InstitutionSelectorGridDtoPaginatedResultsToJSON,\n InstitutionSelectorSearchFromJSON,\n InstitutionSelectorSearchToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface InstitutionSelectorBaseSearchRequest {\n InstitutionSelectorSearch?: InstitutionSelectorSearch;\n}\n\nexport interface InstitutionSelectorGetDisplayNamesRequest {\n request_body?: Array;\n}\n\nexport interface InstitutionSelectorGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface InstitutionSelectorGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class InstitutionSelectorApi extends runtime.BaseAPI {\n\n /**\n */\n async institutionSelectorBaseSearchRaw(requestParameters: InstitutionSelectorBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InstitutionSelector/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InstitutionSelectorSearchToJSON(requestParameters.InstitutionSelectorSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => InstitutionSelectorGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async institutionSelectorBaseSearch(requestParameters: InstitutionSelectorBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.institutionSelectorBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async institutionSelectorGetDisplayNamesRaw(requestParameters: InstitutionSelectorGetDisplayNamesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InstitutionSelector/GetDisplayNames`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DisplayNameDtoFromJSON));\n }\n\n /**\n */\n async institutionSelectorGetDisplayNames(requestParameters: InstitutionSelectorGetDisplayNamesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.institutionSelectorGetDisplayNamesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async institutionSelectorGetSearchCriteriasRaw(requestParameters: InstitutionSelectorGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InstitutionSelector/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async institutionSelectorGetSearchCriterias(requestParameters: InstitutionSelectorGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.institutionSelectorGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async institutionSelectorGetSelectItemsRaw(requestParameters: InstitutionSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling institutionSelectorGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/InstitutionSelector/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async institutionSelectorGetSelectItems(requestParameters: InstitutionSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.institutionSelectorGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n FcbJustificatifAbsenceGridDtoPaginatedResults,\n FcbJustificatifsAbsenceDetailsDto,\n FilterCriteriaInfo,\n JustificatifAbsenceSearch,\n SelectItem,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FcbJustificatifAbsenceGridDtoPaginatedResultsFromJSON,\n FcbJustificatifAbsenceGridDtoPaginatedResultsToJSON,\n FcbJustificatifsAbsenceDetailsDtoFromJSON,\n FcbJustificatifsAbsenceDetailsDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n JustificatifAbsenceSearchFromJSON,\n JustificatifAbsenceSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface JustificatifAbsenceBaseSearchRequest {\n JustificatifAbsenceSearch?: JustificatifAbsenceSearch;\n}\n\nexport interface JustificatifAbsenceDeleteRequest {\n id?: number;\n}\n\nexport interface JustificatifAbsenceGetRequest {\n id?: number;\n}\n\nexport interface JustificatifAbsenceGetLegaliteRequest {\n id?: number;\n}\n\nexport interface JustificatifAbsenceGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface JustificatifAbsenceGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface JustificatifAbsenceSaveRequest {\n FcbJustificatifsAbsenceDetailsDto?: FcbJustificatifsAbsenceDetailsDto;\n}\n\n/**\n * \n */\nexport class JustificatifAbsenceApi extends runtime.BaseAPI {\n\n /**\n */\n async justificatifAbsenceBaseSearchRaw(requestParameters: JustificatifAbsenceBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/JustificatifAbsence/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: JustificatifAbsenceSearchToJSON(requestParameters.JustificatifAbsenceSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbJustificatifAbsenceGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async justificatifAbsenceBaseSearch(requestParameters: JustificatifAbsenceBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.justificatifAbsenceBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async justificatifAbsenceDeleteRaw(requestParameters: JustificatifAbsenceDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/JustificatifAbsence`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async justificatifAbsenceDelete(requestParameters: JustificatifAbsenceDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.justificatifAbsenceDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async justificatifAbsenceGetRaw(requestParameters: JustificatifAbsenceGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/JustificatifAbsence`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbJustificatifsAbsenceDetailsDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async justificatifAbsenceGet(requestParameters: JustificatifAbsenceGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.justificatifAbsenceGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async justificatifAbsenceGetLegaliteRaw(requestParameters: JustificatifAbsenceGetLegaliteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/JustificatifAbsence/legalite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async justificatifAbsenceGetLegalite(requestParameters: JustificatifAbsenceGetLegaliteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.justificatifAbsenceGetLegaliteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async justificatifAbsenceGetSearchCriteriasRaw(requestParameters: JustificatifAbsenceGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/JustificatifAbsence/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async justificatifAbsenceGetSearchCriterias(requestParameters: JustificatifAbsenceGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.justificatifAbsenceGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async justificatifAbsenceGetSelectItemsRaw(requestParameters: JustificatifAbsenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling justificatifAbsenceGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/JustificatifAbsence/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async justificatifAbsenceGetSelectItems(requestParameters: JustificatifAbsenceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.justificatifAbsenceGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async justificatifAbsenceSaveRaw(requestParameters: JustificatifAbsenceSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/JustificatifAbsence`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbJustificatifsAbsenceDetailsDtoToJSON(requestParameters.FcbJustificatifsAbsenceDetailsDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbJustificatifsAbsenceDetailsDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async justificatifAbsenceSave(requestParameters: JustificatifAbsenceSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.justificatifAbsenceSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n CanDisableOffreRequestDto,\n ContratLieuxFormationGridDtoPaginatedResults,\n ContratLieuxFormationSearchDto,\n DisplayNameDto,\n FilterCriteriaInfo,\n LieuFormationCapaciteFormativeDto,\n LieuFormationEditDto,\n LieuFormationGridDtoPaginatedResults,\n LieuFormationHistoryGridDtoPaginatedResults,\n LieuFormationHistorySearch,\n LieuFormationSearchDto,\n LieuFormationSelectorGridDtoPaginatedResults,\n LieuFormationSelectorSearch,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n CanDisableOffreRequestDtoFromJSON,\n CanDisableOffreRequestDtoToJSON,\n ContratLieuxFormationGridDtoPaginatedResultsFromJSON,\n ContratLieuxFormationGridDtoPaginatedResultsToJSON,\n ContratLieuxFormationSearchDtoFromJSON,\n ContratLieuxFormationSearchDtoToJSON,\n DisplayNameDtoFromJSON,\n DisplayNameDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n LieuFormationCapaciteFormativeDtoFromJSON,\n LieuFormationCapaciteFormativeDtoToJSON,\n LieuFormationEditDtoFromJSON,\n LieuFormationEditDtoToJSON,\n LieuFormationGridDtoPaginatedResultsFromJSON,\n LieuFormationGridDtoPaginatedResultsToJSON,\n LieuFormationHistoryGridDtoPaginatedResultsFromJSON,\n LieuFormationHistoryGridDtoPaginatedResultsToJSON,\n LieuFormationHistorySearchFromJSON,\n LieuFormationHistorySearchToJSON,\n LieuFormationSearchDtoFromJSON,\n LieuFormationSearchDtoToJSON,\n LieuFormationSelectorGridDtoPaginatedResultsFromJSON,\n LieuFormationSelectorGridDtoPaginatedResultsToJSON,\n LieuFormationSelectorSearchFromJSON,\n LieuFormationSelectorSearchToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface LieuFormationBaseSearchRequest {\n LieuFormationSearchDto?: LieuFormationSearchDto;\n}\n\nexport interface LieuFormationCheckCanDisableOffreRequest {\n CanDisableOffreRequestDto?: CanDisableOffreRequestDto;\n}\n\nexport interface LieuFormationGetCapaciteFormativeRequest {\n id?: number;\n}\n\nexport interface LieuFormationGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface LieuFormationGetDisplayNamesRequest {\n request_body?: Array;\n}\n\nexport interface LieuFormationGetIdSiegeSocialRequest {\n id?: number;\n}\n\nexport interface LieuFormationGetLieuFormationRequest {\n id?: number;\n idsiegeSocial?: number;\n}\n\nexport interface LieuFormationGetNbContratsRequest {\n id?: number;\n idmetier?: number;\n}\n\nexport interface LieuFormationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface LieuFormationGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface LieuFormationHasContratsEnCoursRequest {\n idlieuFormation?: number;\n}\n\nexport interface LieuFormationIsActifRequest {\n id?: number;\n}\n\nexport interface LieuFormationSaveLieuFormationRequest {\n LieuFormationEditDto?: LieuFormationEditDto;\n}\n\nexport interface LieuFormationSearchForApprenantRequest {\n ContratLieuxFormationSearchDto?: ContratLieuxFormationSearchDto;\n}\n\nexport interface LieuFormationSearchHistoryRequest {\n LieuFormationHistorySearch?: LieuFormationHistorySearch;\n}\n\nexport interface LieuFormationSearchLieuFormationIdsRequest {\n LieuFormationSearchDto?: LieuFormationSearchDto;\n}\n\nexport interface LieuFormationSearchSelectorRequest {\n LieuFormationSelectorSearch?: LieuFormationSelectorSearch;\n}\n\n/**\n * \n */\nexport class LieuFormationApi extends runtime.BaseAPI {\n\n /**\n */\n async lieuFormationBaseSearchRaw(requestParameters: LieuFormationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationSearchDtoToJSON(requestParameters.LieuFormationSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationBaseSearch(requestParameters: LieuFormationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationCheckCanDisableOffreRaw(requestParameters: LieuFormationCheckCanDisableOffreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/CheckCanDisableOffre`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CanDisableOffreRequestDtoToJSON(requestParameters.CanDisableOffreRequestDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationCheckCanDisableOffre(requestParameters: LieuFormationCheckCanDisableOffreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationCheckCanDisableOffreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationGetCapaciteFormativeRaw(requestParameters: LieuFormationGetCapaciteFormativeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/GetCapaciteFormative`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationCapaciteFormativeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationGetCapaciteFormative(requestParameters: LieuFormationGetCapaciteFormativeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationGetCapaciteFormativeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationGetDisplayNameRaw(requestParameters: LieuFormationGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async lieuFormationGetDisplayName(requestParameters: LieuFormationGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationGetDisplayNamesRaw(requestParameters: LieuFormationGetDisplayNamesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/GetDisplayNames`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DisplayNameDtoFromJSON));\n }\n\n /**\n */\n async lieuFormationGetDisplayNames(requestParameters: LieuFormationGetDisplayNamesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationGetDisplayNamesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationGetIdSiegeSocialRaw(requestParameters: LieuFormationGetIdSiegeSocialRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/GetIdSiegeSocial`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async lieuFormationGetIdSiegeSocial(requestParameters: LieuFormationGetIdSiegeSocialRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationGetIdSiegeSocialRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationGetLieuFormationRaw(requestParameters: LieuFormationGetLieuFormationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationGetLieuFormation(requestParameters: LieuFormationGetLieuFormationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationGetLieuFormationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationGetNbContratsRaw(requestParameters: LieuFormationGetNbContratsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.idmetier !== undefined) {\n queryParameters['idmetier'] = requestParameters.idmetier;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/GetNbContrats`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async lieuFormationGetNbContrats(requestParameters: LieuFormationGetNbContratsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationGetNbContratsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationGetSearchCriteriasRaw(requestParameters: LieuFormationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async lieuFormationGetSearchCriterias(requestParameters: LieuFormationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationGetSelectItemsRaw(requestParameters: LieuFormationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling lieuFormationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async lieuFormationGetSelectItems(requestParameters: LieuFormationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationHasContratsEnCoursRaw(requestParameters: LieuFormationHasContratsEnCoursRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idlieuFormation !== undefined) {\n queryParameters['idlieuFormation'] = requestParameters.idlieuFormation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/HasContratsEnCours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationHasContratsEnCours(requestParameters: LieuFormationHasContratsEnCoursRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationHasContratsEnCoursRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationIsActifRaw(requestParameters: LieuFormationIsActifRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/IsActif`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationIsActif(requestParameters: LieuFormationIsActifRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationIsActifRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationSaveLieuFormationRaw(requestParameters: LieuFormationSaveLieuFormationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationEditDtoToJSON(requestParameters.LieuFormationEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationSaveLieuFormation(requestParameters: LieuFormationSaveLieuFormationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationSaveLieuFormationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationSearchForApprenantRaw(requestParameters: LieuFormationSearchForApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/SearchForApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContratLieuxFormationSearchDtoToJSON(requestParameters.ContratLieuxFormationSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ContratLieuxFormationGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationSearchForApprenant(requestParameters: LieuFormationSearchForApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationSearchForApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationSearchHistoryRaw(requestParameters: LieuFormationSearchHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/SearchHistory`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationHistorySearchToJSON(requestParameters.LieuFormationHistorySearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationHistoryGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationSearchHistory(requestParameters: LieuFormationSearchHistoryRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationSearchHistoryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationSearchLieuFormationIdsRaw(requestParameters: LieuFormationSearchLieuFormationIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/SearchLieuFormationIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationSearchDtoToJSON(requestParameters.LieuFormationSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async lieuFormationSearchLieuFormationIds(requestParameters: LieuFormationSearchLieuFormationIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationSearchLieuFormationIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationSearchSelectorRaw(requestParameters: LieuFormationSearchSelectorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormation/SearchSelector`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationSelectorSearchToJSON(requestParameters.LieuFormationSelectorSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationSelectorGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationSearchSelector(requestParameters: LieuFormationSearchSelectorRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationSearchSelectorRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n FilterCriteriaInfo,\n LieuFormationAgrementDecisionMultipleDto,\n LieuFormationAgrementDemandeSectorielleMultipleDto,\n LieuFormationAgrementEditDto,\n LieuFormationAgrementGridDtoPaginatedResults,\n LieuFormationAgrementOffreDto,\n LieuFormationAgrementRetraitMultipleDto,\n LieuFormationAgrementSearchDto,\n LieuFormationAgrementSuspensionDto,\n LieuFormationAgrementSuspensionMultipleDto,\n LieuFormationAgrementVisiteMultipleDto,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n LieuFormationAgrementDecisionMultipleDtoFromJSON,\n LieuFormationAgrementDecisionMultipleDtoToJSON,\n LieuFormationAgrementDemandeSectorielleMultipleDtoFromJSON,\n LieuFormationAgrementDemandeSectorielleMultipleDtoToJSON,\n LieuFormationAgrementEditDtoFromJSON,\n LieuFormationAgrementEditDtoToJSON,\n LieuFormationAgrementGridDtoPaginatedResultsFromJSON,\n LieuFormationAgrementGridDtoPaginatedResultsToJSON,\n LieuFormationAgrementOffreDtoFromJSON,\n LieuFormationAgrementOffreDtoToJSON,\n LieuFormationAgrementRetraitMultipleDtoFromJSON,\n LieuFormationAgrementRetraitMultipleDtoToJSON,\n LieuFormationAgrementSearchDtoFromJSON,\n LieuFormationAgrementSearchDtoToJSON,\n LieuFormationAgrementSuspensionDtoFromJSON,\n LieuFormationAgrementSuspensionDtoToJSON,\n LieuFormationAgrementSuspensionMultipleDtoFromJSON,\n LieuFormationAgrementSuspensionMultipleDtoToJSON,\n LieuFormationAgrementVisiteMultipleDtoFromJSON,\n LieuFormationAgrementVisiteMultipleDtoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface LieuFormationAgrementBaseSearchRequest {\n LieuFormationAgrementSearchDto?: LieuFormationAgrementSearchDto;\n}\n\nexport interface LieuFormationAgrementCanEditSuspensionsMultipleRequest {\n request_body?: Array;\n}\n\nexport interface LieuFormationAgrementCheckCapaciteFormativeAtteinteRequest {\n idlieuFormationAgrementOffre?: number;\n}\n\nexport interface LieuFormationAgrementCheckStatutRetraitRequest {\n request_body?: Array;\n}\n\nexport interface LieuFormationAgrementDecisionMultipleRequest {\n LieuFormationAgrementDecisionMultipleDto?: LieuFormationAgrementDecisionMultipleDto;\n}\n\nexport interface LieuFormationAgrementDeleteLieuFormationAgrementRequest {\n idlieuFormationAgrement?: number;\n}\n\nexport interface LieuFormationAgrementDemandeSectorielleMultipleRequest {\n LieuFormationAgrementDemandeSectorielleMultipleDto?: LieuFormationAgrementDemandeSectorielleMultipleDto;\n}\n\nexport interface LieuFormationAgrementEditSuspensionRequest {\n LieuFormationAgrementSuspensionDto?: LieuFormationAgrementSuspensionDto;\n}\n\nexport interface LieuFormationAgrementGetLieuFormationAgrementRequest {\n idlieuFormationAgrement?: number;\n}\n\nexport interface LieuFormationAgrementGetOffreRequest {\n idlieuFormationAgrementOffre?: number;\n}\n\nexport interface LieuFormationAgrementGetOffreDisplayNameRequest {\n idlieuFormationAgrementOffre?: number;\n}\n\nexport interface LieuFormationAgrementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface LieuFormationAgrementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface LieuFormationAgrementGetSuspensionRequest {\n idlieuFormationAgrementSuspension?: number;\n}\n\nexport interface LieuFormationAgrementRetraitMultipleRequest {\n LieuFormationAgrementRetraitMultipleDto?: LieuFormationAgrementRetraitMultipleDto;\n}\n\nexport interface LieuFormationAgrementSaveLieuFormationAgrementRequest {\n LieuFormationAgrementEditDto?: LieuFormationAgrementEditDto;\n}\n\nexport interface LieuFormationAgrementSaveOffreRequest {\n LieuFormationAgrementOffreDto?: LieuFormationAgrementOffreDto;\n}\n\nexport interface LieuFormationAgrementSearchIdsRequest {\n LieuFormationAgrementSearchDto?: LieuFormationAgrementSearchDto;\n}\n\nexport interface LieuFormationAgrementSuspensionMultipleRequest {\n LieuFormationAgrementSuspensionMultipleDto?: LieuFormationAgrementSuspensionMultipleDto;\n}\n\nexport interface LieuFormationAgrementUpdateOffreRequest {\n newValue?: boolean;\n idlieuFormationAgrement?: number;\n}\n\nexport interface LieuFormationAgrementVisiteMultipleRequest {\n LieuFormationAgrementVisiteMultipleDto?: LieuFormationAgrementVisiteMultipleDto;\n}\n\n/**\n * \n */\nexport class LieuFormationAgrementApi extends runtime.BaseAPI {\n\n /**\n */\n async lieuFormationAgrementBaseSearchRaw(requestParameters: LieuFormationAgrementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementSearchDtoToJSON(requestParameters.LieuFormationAgrementSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementBaseSearch(requestParameters: LieuFormationAgrementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementCanEditSuspensionsMultipleRaw(requestParameters: LieuFormationAgrementCanEditSuspensionsMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/CanEditSuspensionsMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async lieuFormationAgrementCanEditSuspensionsMultiple(requestParameters: LieuFormationAgrementCanEditSuspensionsMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationAgrementCanEditSuspensionsMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementCheckCapaciteFormativeAtteinteRaw(requestParameters: LieuFormationAgrementCheckCapaciteFormativeAtteinteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idlieuFormationAgrementOffre !== undefined) {\n queryParameters['idlieuFormationAgrementOffre'] = requestParameters.idlieuFormationAgrementOffre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/CheckCapaciteFormativeAtteinte`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementCheckCapaciteFormativeAtteinte(requestParameters: LieuFormationAgrementCheckCapaciteFormativeAtteinteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementCheckCapaciteFormativeAtteinteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementCheckStatutRetraitRaw(requestParameters: LieuFormationAgrementCheckStatutRetraitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/CheckStatutRetrait`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementCheckStatutRetrait(requestParameters: LieuFormationAgrementCheckStatutRetraitRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementCheckStatutRetraitRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementDecisionMultipleRaw(requestParameters: LieuFormationAgrementDecisionMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/DecisionMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementDecisionMultipleDtoToJSON(requestParameters.LieuFormationAgrementDecisionMultipleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementDecisionMultipleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementDecisionMultiple(requestParameters: LieuFormationAgrementDecisionMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementDecisionMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementDeleteLieuFormationAgrementRaw(requestParameters: LieuFormationAgrementDeleteLieuFormationAgrementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idlieuFormationAgrement !== undefined) {\n queryParameters['idlieuFormationAgrement'] = requestParameters.idlieuFormationAgrement;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async lieuFormationAgrementDeleteLieuFormationAgrement(requestParameters: LieuFormationAgrementDeleteLieuFormationAgrementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.lieuFormationAgrementDeleteLieuFormationAgrementRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async lieuFormationAgrementDemandeSectorielleMultipleRaw(requestParameters: LieuFormationAgrementDemandeSectorielleMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/DemandeSectorielleMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementDemandeSectorielleMultipleDtoToJSON(requestParameters.LieuFormationAgrementDemandeSectorielleMultipleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementDemandeSectorielleMultipleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementDemandeSectorielleMultiple(requestParameters: LieuFormationAgrementDemandeSectorielleMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementDemandeSectorielleMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementEditSuspensionRaw(requestParameters: LieuFormationAgrementEditSuspensionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/EditSuspension`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementSuspensionDtoToJSON(requestParameters.LieuFormationAgrementSuspensionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementSuspensionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementEditSuspension(requestParameters: LieuFormationAgrementEditSuspensionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementEditSuspensionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementGetLieuFormationAgrementRaw(requestParameters: LieuFormationAgrementGetLieuFormationAgrementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idlieuFormationAgrement !== undefined) {\n queryParameters['idlieuFormationAgrement'] = requestParameters.idlieuFormationAgrement;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementGetLieuFormationAgrement(requestParameters: LieuFormationAgrementGetLieuFormationAgrementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementGetLieuFormationAgrementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementGetOffreRaw(requestParameters: LieuFormationAgrementGetOffreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idlieuFormationAgrementOffre !== undefined) {\n queryParameters['idlieuFormationAgrementOffre'] = requestParameters.idlieuFormationAgrementOffre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/GetOffre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementOffreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementGetOffre(requestParameters: LieuFormationAgrementGetOffreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementGetOffreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementGetOffreDisplayNameRaw(requestParameters: LieuFormationAgrementGetOffreDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idlieuFormationAgrementOffre !== undefined) {\n queryParameters['idlieuFormationAgrementOffre'] = requestParameters.idlieuFormationAgrementOffre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/GetOffreDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async lieuFormationAgrementGetOffreDisplayName(requestParameters: LieuFormationAgrementGetOffreDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementGetOffreDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementGetSearchCriteriasRaw(requestParameters: LieuFormationAgrementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async lieuFormationAgrementGetSearchCriterias(requestParameters: LieuFormationAgrementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationAgrementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementGetSelectItemsRaw(requestParameters: LieuFormationAgrementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling lieuFormationAgrementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async lieuFormationAgrementGetSelectItems(requestParameters: LieuFormationAgrementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationAgrementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementGetSuspensionRaw(requestParameters: LieuFormationAgrementGetSuspensionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idlieuFormationAgrementSuspension !== undefined) {\n queryParameters['idlieuFormationAgrementSuspension'] = requestParameters.idlieuFormationAgrementSuspension;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/GetSuspension`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementSuspensionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementGetSuspension(requestParameters: LieuFormationAgrementGetSuspensionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementGetSuspensionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementRetraitMultipleRaw(requestParameters: LieuFormationAgrementRetraitMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/RetraitMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementRetraitMultipleDtoToJSON(requestParameters.LieuFormationAgrementRetraitMultipleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementRetraitMultipleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementRetraitMultiple(requestParameters: LieuFormationAgrementRetraitMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementRetraitMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementSaveLieuFormationAgrementRaw(requestParameters: LieuFormationAgrementSaveLieuFormationAgrementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementEditDtoToJSON(requestParameters.LieuFormationAgrementEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementSaveLieuFormationAgrement(requestParameters: LieuFormationAgrementSaveLieuFormationAgrementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementSaveLieuFormationAgrementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementSaveOffreRaw(requestParameters: LieuFormationAgrementSaveOffreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/SaveOffre`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementOffreDtoToJSON(requestParameters.LieuFormationAgrementOffreDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementOffreDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementSaveOffre(requestParameters: LieuFormationAgrementSaveOffreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementSaveOffreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementSearchIdsRaw(requestParameters: LieuFormationAgrementSearchIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/SearchIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementSearchDtoToJSON(requestParameters.LieuFormationAgrementSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async lieuFormationAgrementSearchIds(requestParameters: LieuFormationAgrementSearchIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationAgrementSearchIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementSuspensionMultipleRaw(requestParameters: LieuFormationAgrementSuspensionMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/SuspensionMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementSuspensionMultipleDtoToJSON(requestParameters.LieuFormationAgrementSuspensionMultipleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementSuspensionMultipleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementSuspensionMultiple(requestParameters: LieuFormationAgrementSuspensionMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementSuspensionMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementUpdateOffreRaw(requestParameters: LieuFormationAgrementUpdateOffreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.newValue !== undefined) {\n queryParameters['newValue'] = requestParameters.newValue;\n }\n\n if (requestParameters.idlieuFormationAgrement !== undefined) {\n queryParameters['idlieuFormationAgrement'] = requestParameters.idlieuFormationAgrement;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/UpdateOffre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async lieuFormationAgrementUpdateOffre(requestParameters: LieuFormationAgrementUpdateOffreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementUpdateOffreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationAgrementVisiteMultipleRaw(requestParameters: LieuFormationAgrementVisiteMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationAgrement/VisiteMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationAgrementVisiteMultipleDtoToJSON(requestParameters.LieuFormationAgrementVisiteMultipleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationAgrementVisiteMultipleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationAgrementVisiteMultiple(requestParameters: LieuFormationAgrementVisiteMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationAgrementVisiteMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FileDownloadDto,\n FilterCriteriaInfo,\n LieuFormationFichierDto,\n LieuFormationFichierGridDtoPaginatedResults,\n LieuFormationFichierSearchDto,\n LieuFormationFichierUploadDto,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n LieuFormationFichierDtoFromJSON,\n LieuFormationFichierDtoToJSON,\n LieuFormationFichierGridDtoPaginatedResultsFromJSON,\n LieuFormationFichierGridDtoPaginatedResultsToJSON,\n LieuFormationFichierSearchDtoFromJSON,\n LieuFormationFichierSearchDtoToJSON,\n LieuFormationFichierUploadDtoFromJSON,\n LieuFormationFichierUploadDtoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface LieuFormationFichierBaseSearchRequest {\n LieuFormationFichierSearchDto?: LieuFormationFichierSearchDto;\n}\n\nexport interface LieuFormationFichierDeleteLieuFormationFichierRequest {\n id?: number;\n}\n\nexport interface LieuFormationFichierDownloadLieuFormationFichierRequest {\n id?: number;\n}\n\nexport interface LieuFormationFichierGetLieuFormationFichierRequest {\n id?: number;\n}\n\nexport interface LieuFormationFichierGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface LieuFormationFichierGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface LieuFormationFichierSaveLieuFormationFichierRequest {\n LieuFormationFichierDto?: LieuFormationFichierDto;\n}\n\nexport interface LieuFormationFichierUploadLieuFormationFichierRequest {\n LieuFormationFichierUploadDto?: LieuFormationFichierUploadDto;\n}\n\n/**\n * \n */\nexport class LieuFormationFichierApi extends runtime.BaseAPI {\n\n /**\n */\n async lieuFormationFichierBaseSearchRaw(requestParameters: LieuFormationFichierBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationFichier/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationFichierSearchDtoToJSON(requestParameters.LieuFormationFichierSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationFichierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationFichierBaseSearch(requestParameters: LieuFormationFichierBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationFichierBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationFichierDeleteLieuFormationFichierRaw(requestParameters: LieuFormationFichierDeleteLieuFormationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async lieuFormationFichierDeleteLieuFormationFichier(requestParameters: LieuFormationFichierDeleteLieuFormationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.lieuFormationFichierDeleteLieuFormationFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async lieuFormationFichierDownloadLieuFormationFichierRaw(requestParameters: LieuFormationFichierDownloadLieuFormationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationFichier/Download`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationFichierDownloadLieuFormationFichier(requestParameters: LieuFormationFichierDownloadLieuFormationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationFichierDownloadLieuFormationFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationFichierGetLieuFormationFichierRaw(requestParameters: LieuFormationFichierGetLieuFormationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationFichierGetLieuFormationFichier(requestParameters: LieuFormationFichierGetLieuFormationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationFichierGetLieuFormationFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationFichierGetSearchCriteriasRaw(requestParameters: LieuFormationFichierGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationFichier/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async lieuFormationFichierGetSearchCriterias(requestParameters: LieuFormationFichierGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationFichierGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationFichierGetSelectItemsRaw(requestParameters: LieuFormationFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling lieuFormationFichierGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationFichier/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async lieuFormationFichierGetSelectItems(requestParameters: LieuFormationFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuFormationFichierGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationFichierSaveLieuFormationFichierRaw(requestParameters: LieuFormationFichierSaveLieuFormationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationFichierDtoToJSON(requestParameters.LieuFormationFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationFichierSaveLieuFormationFichier(requestParameters: LieuFormationFichierSaveLieuFormationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationFichierSaveLieuFormationFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuFormationFichierUploadLieuFormationFichierRaw(requestParameters: LieuFormationFichierUploadLieuFormationFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuFormationFichier/Upload`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuFormationFichierUploadDtoToJSON(requestParameters.LieuFormationFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => LieuFormationFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuFormationFichierUploadLieuFormationFichier(requestParameters: LieuFormationFichierUploadLieuFormationFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuFormationFichierUploadLieuFormationFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbLieuxCoursDto,\n FcbLieuxCoursGridDtoPaginatedResults,\n FilterCriteriaInfo,\n LieuxCoursSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FcbLieuxCoursDtoFromJSON,\n FcbLieuxCoursDtoToJSON,\n FcbLieuxCoursGridDtoPaginatedResultsFromJSON,\n FcbLieuxCoursGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n LieuxCoursSearchFromJSON,\n LieuxCoursSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface LieuxCoursBaseSearchRequest {\n LieuxCoursSearch?: LieuxCoursSearch;\n}\n\nexport interface LieuxCoursCodeExistsRequest {\n code?: string;\n}\n\nexport interface LieuxCoursDeleteRequest {\n id?: number;\n}\n\nexport interface LieuxCoursGetRequest {\n id?: number;\n}\n\nexport interface LieuxCoursGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface LieuxCoursGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface LieuxCoursSaveRequest {\n FcbLieuxCoursDto?: FcbLieuxCoursDto;\n}\n\n/**\n * \n */\nexport class LieuxCoursApi extends runtime.BaseAPI {\n\n /**\n */\n async lieuxCoursBaseSearchRaw(requestParameters: LieuxCoursBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuxCours/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LieuxCoursSearchToJSON(requestParameters.LieuxCoursSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbLieuxCoursGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuxCoursBaseSearch(requestParameters: LieuxCoursBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuxCoursBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuxCoursCodeExistsRaw(requestParameters: LieuxCoursCodeExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuxCours/uniqueCode`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuxCoursCodeExists(requestParameters: LieuxCoursCodeExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuxCoursCodeExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuxCoursDeleteRaw(requestParameters: LieuxCoursDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuxCours`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async lieuxCoursDelete(requestParameters: LieuxCoursDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuxCoursDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuxCoursGetRaw(requestParameters: LieuxCoursGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuxCours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbLieuxCoursDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuxCoursGet(requestParameters: LieuxCoursGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuxCoursGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuxCoursGetSearchCriteriasRaw(requestParameters: LieuxCoursGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuxCours/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async lieuxCoursGetSearchCriterias(requestParameters: LieuxCoursGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuxCoursGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuxCoursGetSelectItemsRaw(requestParameters: LieuxCoursGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling lieuxCoursGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuxCours/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async lieuxCoursGetSelectItems(requestParameters: LieuxCoursGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.lieuxCoursGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async lieuxCoursSaveRaw(requestParameters: LieuxCoursSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/LieuxCours`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbLieuxCoursDtoToJSON(requestParameters.FcbLieuxCoursDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbLieuxCoursDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async lieuxCoursSave(requestParameters: LieuxCoursSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.lieuxCoursSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbLocalDto,\n FcbLocalGridDtoPaginatedResults,\n FilterCriteriaInfo,\n LocalSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbLocalDtoFromJSON,\n FcbLocalDtoToJSON,\n FcbLocalGridDtoPaginatedResultsFromJSON,\n FcbLocalGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n LocalSearchFromJSON,\n LocalSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface LocalBaseSearchRequest {\n LocalSearch?: LocalSearch;\n}\n\nexport interface LocalDeleteRequest {\n id?: number;\n}\n\nexport interface LocalGetRequest {\n id?: number;\n}\n\nexport interface LocalGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface LocalGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface LocalGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface LocalSaveRequest {\n FcbLocalDto?: FcbLocalDto;\n}\n\n/**\n * \n */\nexport class LocalApi extends runtime.BaseAPI {\n\n /**\n */\n async localBaseSearchRaw(requestParameters: LocalBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Local/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: LocalSearchToJSON(requestParameters.LocalSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbLocalGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async localBaseSearch(requestParameters: LocalBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.localBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async localDeleteRaw(requestParameters: LocalDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Local`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async localDelete(requestParameters: LocalDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.localDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async localGetRaw(requestParameters: LocalGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Local`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbLocalDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async localGet(requestParameters: LocalGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.localGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async localGetDisplayNameRaw(requestParameters: LocalGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Local/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async localGetDisplayName(requestParameters: LocalGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.localGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async localGetSearchCriteriasRaw(requestParameters: LocalGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Local/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async localGetSearchCriterias(requestParameters: LocalGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.localGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async localGetSelectItemsRaw(requestParameters: LocalGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling localGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Local/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async localGetSelectItems(requestParameters: LocalGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.localGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async localSaveRaw(requestParameters: LocalSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Local`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbLocalDtoToJSON(requestParameters.FcbLocalDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbLocalDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async localSave(requestParameters: LocalSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.localSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbMatiereReferentielDto,\n FcbMatiereReferentielGridDtoPaginatedResults,\n FilterCriteriaInfo,\n MatiereHeureDto,\n MatiereReferentielSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbMatiereReferentielDtoFromJSON,\n FcbMatiereReferentielDtoToJSON,\n FcbMatiereReferentielGridDtoPaginatedResultsFromJSON,\n FcbMatiereReferentielGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n MatiereHeureDtoFromJSON,\n MatiereHeureDtoToJSON,\n MatiereReferentielSearchFromJSON,\n MatiereReferentielSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface MatiereReferentielBaseSearchRequest {\n MatiereReferentielSearch?: MatiereReferentielSearch;\n}\n\nexport interface MatiereReferentielDeleteRequest {\n idReferentiel?: number;\n idMatiere?: string;\n}\n\nexport interface MatiereReferentielGetRequest {\n idReferentiel?: number;\n idMatiere?: string;\n}\n\nexport interface MatiereReferentielGetHoursRequest {\n idReferentiel?: number;\n}\n\nexport interface MatiereReferentielGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface MatiereReferentielGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface MatiereReferentielSaveRequest {\n FcbMatiereReferentielDto?: FcbMatiereReferentielDto;\n}\n\n/**\n * \n */\nexport class MatiereReferentielApi extends runtime.BaseAPI {\n\n /**\n */\n async matiereReferentielBaseSearchRaw(requestParameters: MatiereReferentielBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MatiereReferentiel/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MatiereReferentielSearchToJSON(requestParameters.MatiereReferentielSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMatiereReferentielGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async matiereReferentielBaseSearch(requestParameters: MatiereReferentielBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.matiereReferentielBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async matiereReferentielDeleteRaw(requestParameters: MatiereReferentielDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idReferentiel !== undefined) {\n queryParameters['idReferentiel'] = requestParameters.idReferentiel;\n }\n\n if (requestParameters.idMatiere !== undefined) {\n queryParameters['idMatiere'] = requestParameters.idMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MatiereReferentiel`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async matiereReferentielDelete(requestParameters: MatiereReferentielDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.matiereReferentielDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async matiereReferentielGetRaw(requestParameters: MatiereReferentielGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idReferentiel !== undefined) {\n queryParameters['idReferentiel'] = requestParameters.idReferentiel;\n }\n\n if (requestParameters.idMatiere !== undefined) {\n queryParameters['idMatiere'] = requestParameters.idMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MatiereReferentiel`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMatiereReferentielDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async matiereReferentielGet(requestParameters: MatiereReferentielGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.matiereReferentielGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async matiereReferentielGetHoursRaw(requestParameters: MatiereReferentielGetHoursRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idReferentiel !== undefined) {\n queryParameters['idReferentiel'] = requestParameters.idReferentiel;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MatiereReferentiel/GetHours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => MatiereHeureDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async matiereReferentielGetHours(requestParameters: MatiereReferentielGetHoursRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.matiereReferentielGetHoursRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async matiereReferentielGetSearchCriteriasRaw(requestParameters: MatiereReferentielGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MatiereReferentiel/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async matiereReferentielGetSearchCriterias(requestParameters: MatiereReferentielGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.matiereReferentielGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async matiereReferentielGetSelectItemsRaw(requestParameters: MatiereReferentielGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling matiereReferentielGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MatiereReferentiel/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async matiereReferentielGetSelectItems(requestParameters: MatiereReferentielGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.matiereReferentielGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async matiereReferentielSaveRaw(requestParameters: MatiereReferentielSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MatiereReferentiel`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbMatiereReferentielDtoToJSON(requestParameters.FcbMatiereReferentielDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMatiereReferentielDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async matiereReferentielSave(requestParameters: MatiereReferentielSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.matiereReferentielSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbMetierDetailDto,\n FcbMetierDto,\n FcbMetierGridDtoPaginatedResults,\n FilterCriteriaInfo,\n MetierSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FcbMetierDetailDtoFromJSON,\n FcbMetierDetailDtoToJSON,\n FcbMetierDtoFromJSON,\n FcbMetierDtoToJSON,\n FcbMetierGridDtoPaginatedResultsFromJSON,\n FcbMetierGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n MetierSearchFromJSON,\n MetierSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface MetierBaseSearchRequest {\n MetierSearch?: MetierSearch;\n}\n\nexport interface MetierDeleteRequest {\n id?: number;\n}\n\nexport interface MetierGetRequest {\n id?: number;\n}\n\nexport interface MetierGetCodeMetierRequest {\n id?: number;\n}\n\nexport interface MetierGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface MetierGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface MetierGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface MetierSaveRequest {\n FcbMetierDto?: FcbMetierDto;\n}\n\nexport interface MetierSearchMetierIdsRequest {\n MetierSearch?: MetierSearch;\n}\n\nexport interface MetierStadeIndiceMetierExistsRequest {\n code?: string;\n idStade?: number;\n}\n\n/**\n * \n */\nexport class MetierApi extends runtime.BaseAPI {\n\n /**\n */\n async metierBaseSearchRaw(requestParameters: MetierBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MetierSearchToJSON(requestParameters.MetierSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async metierBaseSearch(requestParameters: MetierBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierDeleteRaw(requestParameters: MetierDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async metierDelete(requestParameters: MetierDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierGetRaw(requestParameters: MetierGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async metierGet(requestParameters: MetierGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierGetCodeMetierRaw(requestParameters: MetierGetCodeMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier/GetCodeMetier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async metierGetCodeMetier(requestParameters: MetierGetCodeMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierGetCodeMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierGetDisplayNameRaw(requestParameters: MetierGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async metierGetDisplayName(requestParameters: MetierGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierGetSearchCriteriasRaw(requestParameters: MetierGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async metierGetSearchCriterias(requestParameters: MetierGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.metierGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierGetSelectItemsRaw(requestParameters: MetierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling metierGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async metierGetSelectItems(requestParameters: MetierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.metierGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierSaveRaw(requestParameters: MetierSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbMetierDtoToJSON(requestParameters.FcbMetierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async metierSave(requestParameters: MetierSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierSearchMetierIdsRaw(requestParameters: MetierSearchMetierIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier/searchMetierIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MetierSearchToJSON(requestParameters.MetierSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async metierSearchMetierIds(requestParameters: MetierSearchMetierIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.metierSearchMetierIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierStadeIndiceMetierExistsRaw(requestParameters: MetierStadeIndiceMetierExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n if (requestParameters.idStade !== undefined) {\n queryParameters['idStade'] = requestParameters.idStade;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Metier/stadeIndiceExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async metierStadeIndiceMetierExists(requestParameters: MetierStadeIndiceMetierExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierStadeIndiceMetierExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbMetierClauseLiesGridDtoPaginatedResults,\n FcbMetierClausesLieesDto,\n FilterCriteriaInfo,\n MetierClauseLieeSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbMetierClauseLiesGridDtoPaginatedResultsFromJSON,\n FcbMetierClauseLiesGridDtoPaginatedResultsToJSON,\n FcbMetierClausesLieesDtoFromJSON,\n FcbMetierClausesLieesDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n MetierClauseLieeSearchFromJSON,\n MetierClauseLieeSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface MetierClausesLieesBaseSearchRequest {\n MetierClauseLieeSearch?: MetierClauseLieeSearch;\n}\n\nexport interface MetierClausesLieesGetClauseMetierRequest {\n idMetier?: number;\n}\n\nexport interface MetierClausesLieesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface MetierClausesLieesGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface MetierClausesLieesSaveClauseMetierRequest {\n FcbMetierClausesLieesDto?: FcbMetierClausesLieesDto;\n}\n\n/**\n * \n */\nexport class MetierClausesLieesApi extends runtime.BaseAPI {\n\n /**\n */\n async metierClausesLieesBaseSearchRaw(requestParameters: MetierClausesLieesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierClausesLiees/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MetierClauseLieeSearchToJSON(requestParameters.MetierClauseLieeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierClauseLiesGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async metierClausesLieesBaseSearch(requestParameters: MetierClausesLieesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierClausesLieesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierClausesLieesGetClauseMetierRaw(requestParameters: MetierClausesLieesGetClauseMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idMetier !== undefined) {\n queryParameters['idMetier'] = requestParameters.idMetier;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierClausesLiees`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierClausesLieesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async metierClausesLieesGetClauseMetier(requestParameters: MetierClausesLieesGetClauseMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierClausesLieesGetClauseMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierClausesLieesGetSearchCriteriasRaw(requestParameters: MetierClausesLieesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierClausesLiees/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async metierClausesLieesGetSearchCriterias(requestParameters: MetierClausesLieesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.metierClausesLieesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierClausesLieesGetSelectItemsRaw(requestParameters: MetierClausesLieesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling metierClausesLieesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierClausesLiees/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async metierClausesLieesGetSelectItems(requestParameters: MetierClausesLieesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.metierClausesLieesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierClausesLieesSaveClauseMetierRaw(requestParameters: MetierClausesLieesSaveClauseMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierClausesLiees/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbMetierClausesLieesDtoToJSON(requestParameters.FcbMetierClausesLieesDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierClausesLieesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async metierClausesLieesSaveClauseMetier(requestParameters: MetierClausesLieesSaveClauseMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierClausesLieesSaveClauseMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbMetierConseillersLiesDto,\n FcbMetierConseillersLiesGridDtoPaginatedResults,\n FilterCriteriaInfo,\n MetierConseillersLiesSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbMetierConseillersLiesDtoFromJSON,\n FcbMetierConseillersLiesDtoToJSON,\n FcbMetierConseillersLiesGridDtoPaginatedResultsFromJSON,\n FcbMetierConseillersLiesGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n MetierConseillersLiesSearchFromJSON,\n MetierConseillersLiesSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface MetierConseillersLiesBaseSearchRequest {\n MetierConseillersLiesSearch?: MetierConseillersLiesSearch;\n}\n\nexport interface MetierConseillersLiesGetConseillerMetierRequest {\n id?: number;\n}\n\nexport interface MetierConseillersLiesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface MetierConseillersLiesGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface MetierConseillersLiesSaveConseillerMetierRequest {\n FcbMetierConseillersLiesDto?: FcbMetierConseillersLiesDto;\n}\n\n/**\n * \n */\nexport class MetierConseillersLiesApi extends runtime.BaseAPI {\n\n /**\n */\n async metierConseillersLiesBaseSearchRaw(requestParameters: MetierConseillersLiesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierConseillersLies/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MetierConseillersLiesSearchToJSON(requestParameters.MetierConseillersLiesSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierConseillersLiesGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async metierConseillersLiesBaseSearch(requestParameters: MetierConseillersLiesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierConseillersLiesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierConseillersLiesGetConseillerMetierRaw(requestParameters: MetierConseillersLiesGetConseillerMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierConseillersLies`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierConseillersLiesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async metierConseillersLiesGetConseillerMetier(requestParameters: MetierConseillersLiesGetConseillerMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierConseillersLiesGetConseillerMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierConseillersLiesGetSearchCriteriasRaw(requestParameters: MetierConseillersLiesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierConseillersLies/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async metierConseillersLiesGetSearchCriterias(requestParameters: MetierConseillersLiesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.metierConseillersLiesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierConseillersLiesGetSelectItemsRaw(requestParameters: MetierConseillersLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling metierConseillersLiesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierConseillersLies/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async metierConseillersLiesGetSelectItems(requestParameters: MetierConseillersLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.metierConseillersLiesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierConseillersLiesSaveConseillerMetierRaw(requestParameters: MetierConseillersLiesSaveConseillerMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierConseillersLies/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbMetierConseillersLiesDtoToJSON(requestParameters.FcbMetierConseillersLiesDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierConseillersLiesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async metierConseillersLiesSaveConseillerMetier(requestParameters: MetierConseillersLiesSaveConseillerMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierConseillersLiesSaveConseillerMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbMetiersLocalisationGridDtoPaginatedResults,\n FilterCriteriaInfo,\n MetierLocalisationSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbMetiersLocalisationGridDtoPaginatedResultsFromJSON,\n FcbMetiersLocalisationGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n MetierLocalisationSearchFromJSON,\n MetierLocalisationSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface MetierLocalisationBaseSearchRequest {\n MetierLocalisationSearch?: MetierLocalisationSearch;\n}\n\nexport interface MetierLocalisationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface MetierLocalisationGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class MetierLocalisationApi extends runtime.BaseAPI {\n\n /**\n */\n async metierLocalisationBaseSearchRaw(requestParameters: MetierLocalisationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierLocalisation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MetierLocalisationSearchToJSON(requestParameters.MetierLocalisationSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetiersLocalisationGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async metierLocalisationBaseSearch(requestParameters: MetierLocalisationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.metierLocalisationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierLocalisationGetSearchCriteriasRaw(requestParameters: MetierLocalisationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierLocalisation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async metierLocalisationGetSearchCriterias(requestParameters: MetierLocalisationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.metierLocalisationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async metierLocalisationGetSelectItemsRaw(requestParameters: MetierLocalisationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling metierLocalisationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/MetierLocalisation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async metierLocalisationGetSelectItems(requestParameters: MetierLocalisationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.metierLocalisationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbMinervalGridDtoPaginatedResults,\n FilterCriteriaInfo,\n MinervalSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbMinervalGridDtoPaginatedResultsFromJSON,\n FcbMinervalGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n MinervalSearchFromJSON,\n MinervalSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface MinervalBaseSearchRequest {\n MinervalSearch?: MinervalSearch;\n}\n\nexport interface MinervalGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface MinervalGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class MinervalApi extends runtime.BaseAPI {\n\n /**\n */\n async minervalBaseSearchRaw(requestParameters: MinervalBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Minerval/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MinervalSearchToJSON(requestParameters.MinervalSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMinervalGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async minervalBaseSearch(requestParameters: MinervalBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.minervalBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async minervalGetSearchCriteriasRaw(requestParameters: MinervalGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Minerval/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async minervalGetSearchCriterias(requestParameters: MinervalGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.minervalGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async minervalGetSelectItemsRaw(requestParameters: MinervalGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling minervalGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Minerval/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async minervalGetSelectItems(requestParameters: MinervalGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.minervalGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n OffreDemandeGridDtoPaginatedResults,\n OffreDemandeSearchDto,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n OffreDemandeGridDtoPaginatedResultsFromJSON,\n OffreDemandeGridDtoPaginatedResultsToJSON,\n OffreDemandeSearchDtoFromJSON,\n OffreDemandeSearchDtoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface OffreDemandeBaseSearchRequest {\n OffreDemandeSearchDto?: OffreDemandeSearchDto;\n}\n\nexport interface OffreDemandeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface OffreDemandeGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class OffreDemandeApi extends runtime.BaseAPI {\n\n /**\n */\n async offreDemandeBaseSearchRaw(requestParameters: OffreDemandeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/OffreDemande/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: OffreDemandeSearchDtoToJSON(requestParameters.OffreDemandeSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => OffreDemandeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async offreDemandeBaseSearch(requestParameters: OffreDemandeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.offreDemandeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async offreDemandeGetSearchCriteriasRaw(requestParameters: OffreDemandeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/OffreDemande/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async offreDemandeGetSearchCriterias(requestParameters: OffreDemandeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.offreDemandeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async offreDemandeGetSelectItemsRaw(requestParameters: OffreDemandeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling offreDemandeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/OffreDemande/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async offreDemandeGetSelectItems(requestParameters: OffreDemandeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.offreDemandeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbPaiementDto,\n FcbPaiementGridDtoPaginatedResults,\n FilterCriteriaInfo,\n PaiementSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbPaiementDtoFromJSON,\n FcbPaiementDtoToJSON,\n FcbPaiementGridDtoPaginatedResultsFromJSON,\n FcbPaiementGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PaiementSearchFromJSON,\n PaiementSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface PaiementBaseSearchRequest {\n PaiementSearch?: PaiementSearch;\n}\n\nexport interface PaiementDeletePaiementRequest {\n id?: number;\n}\n\nexport interface PaiementGetPaiementRequest {\n id?: number;\n}\n\nexport interface PaiementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface PaiementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface PaiementSavePaiementRequest {\n FcbPaiementDto?: FcbPaiementDto;\n}\n\n/**\n * \n */\nexport class PaiementApi extends runtime.BaseAPI {\n\n /**\n */\n async paiementBaseSearchRaw(requestParameters: PaiementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Paiement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PaiementSearchToJSON(requestParameters.PaiementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPaiementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async paiementBaseSearch(requestParameters: PaiementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paiementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paiementDeletePaiementRaw(requestParameters: PaiementDeletePaiementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Paiement/delete`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPaiementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async paiementDeletePaiement(requestParameters: PaiementDeletePaiementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paiementDeletePaiementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paiementGetPaiementRaw(requestParameters: PaiementGetPaiementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Paiement/get`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPaiementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async paiementGetPaiement(requestParameters: PaiementGetPaiementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paiementGetPaiementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paiementGetSearchCriteriasRaw(requestParameters: PaiementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Paiement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async paiementGetSearchCriterias(requestParameters: PaiementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.paiementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paiementGetSelectItemsRaw(requestParameters: PaiementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling paiementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Paiement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async paiementGetSelectItems(requestParameters: PaiementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.paiementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paiementSavePaiementRaw(requestParameters: PaiementSavePaiementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Paiement/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbPaiementDtoToJSON(requestParameters.FcbPaiementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPaiementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async paiementSavePaiement(requestParameters: PaiementSavePaiementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paiementSavePaiementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n ChangeStatutMultipleDto,\n DemandeInscriptionCreateDto,\n DemandeInscriptionEditDto,\n DemandeInscriptionFichierDto,\n DemandeInscriptionFichierUploadDto,\n DemandeInscriptionGridDtoPaginatedResults,\n FileDownloadDto,\n FilterCriteriaInfo,\n ParcoursFormationDto,\n ParcoursFormationEditDto,\n ParcoursFormationGridDtoPaginatedResults,\n ParcoursFormationSearch,\n ParcoursInterneSearch,\n ReferentialItemDto,\n StatutDemandeCodeIdDto,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n ChangeStatutMultipleDtoFromJSON,\n ChangeStatutMultipleDtoToJSON,\n DemandeInscriptionCreateDtoFromJSON,\n DemandeInscriptionCreateDtoToJSON,\n DemandeInscriptionEditDtoFromJSON,\n DemandeInscriptionEditDtoToJSON,\n DemandeInscriptionFichierDtoFromJSON,\n DemandeInscriptionFichierDtoToJSON,\n DemandeInscriptionFichierUploadDtoFromJSON,\n DemandeInscriptionFichierUploadDtoToJSON,\n DemandeInscriptionGridDtoPaginatedResultsFromJSON,\n DemandeInscriptionGridDtoPaginatedResultsToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ParcoursFormationDtoFromJSON,\n ParcoursFormationDtoToJSON,\n ParcoursFormationEditDtoFromJSON,\n ParcoursFormationEditDtoToJSON,\n ParcoursFormationGridDtoPaginatedResultsFromJSON,\n ParcoursFormationGridDtoPaginatedResultsToJSON,\n ParcoursFormationSearchFromJSON,\n ParcoursFormationSearchToJSON,\n ParcoursInterneSearchFromJSON,\n ParcoursInterneSearchToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n StatutDemandeCodeIdDtoFromJSON,\n StatutDemandeCodeIdDtoToJSON,\n} from '../models/index';\n\nexport interface ParcoursFormationBaseSearchRequest {\n ParcoursFormationSearch?: ParcoursFormationSearch;\n}\n\nexport interface ParcoursFormationCanAddParcoursRequest {\n idApprenant?: number;\n idParcoursFormation?: number;\n}\n\nexport interface ParcoursFormationCancelDemandeInscriptionRequest {\n idDemande?: number;\n}\n\nexport interface ParcoursFormationChangeStatutMultipleDemandeRequest {\n ChangeStatutMultipleDto?: ChangeStatutMultipleDto;\n}\n\nexport interface ParcoursFormationCreateDemandeInscriptionMultipleRequest {\n DemandeInscriptionCreateDto?: DemandeInscriptionCreateDto;\n}\n\nexport interface ParcoursFormationDeleteDemandeInscriptionFichierRequest {\n id?: number;\n}\n\nexport interface ParcoursFormationDownloadDemandeInscriptionFichierRequest {\n id?: number;\n}\n\nexport interface ParcoursFormationGetDemandeInscriptionRequest {\n idDemande?: number;\n}\n\nexport interface ParcoursFormationGetDemandeInscriptionFichierRequest {\n id?: number;\n}\n\nexport interface ParcoursFormationGetParcoursFormationRequest {\n idApprenant?: number;\n idParcoursFormation?: number;\n}\n\nexport interface ParcoursFormationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ParcoursFormationGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ParcoursFormationSaveDemandeInscriptionRequest {\n DemandeInscriptionEditDto?: DemandeInscriptionEditDto;\n}\n\nexport interface ParcoursFormationSaveDemandeInscriptionFichierRequest {\n DemandeInscriptionFichierDto?: DemandeInscriptionFichierDto;\n}\n\nexport interface ParcoursFormationSaveParcoursFormationRequest {\n ParcoursFormationEditDto?: ParcoursFormationEditDto;\n}\n\nexport interface ParcoursFormationSearchParcoursInterneRequest {\n ParcoursInterneSearch?: ParcoursInterneSearch;\n}\n\nexport interface ParcoursFormationUploadDemandeInscriptionFichierRequest {\n DemandeInscriptionFichierUploadDto?: DemandeInscriptionFichierUploadDto;\n}\n\n/**\n * \n */\nexport class ParcoursFormationApi extends runtime.BaseAPI {\n\n /**\n */\n async parcoursFormationBaseSearchRaw(requestParameters: ParcoursFormationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ParcoursFormationSearchToJSON(requestParameters.ParcoursFormationSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ParcoursFormationGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationBaseSearch(requestParameters: ParcoursFormationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationCanAddParcoursRaw(requestParameters: ParcoursFormationCanAddParcoursRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.idParcoursFormation !== undefined) {\n queryParameters['idParcoursFormation'] = requestParameters.idParcoursFormation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/CanAddParcours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationCanAddParcours(requestParameters: ParcoursFormationCanAddParcoursRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationCanAddParcoursRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationCancelDemandeInscriptionRaw(requestParameters: ParcoursFormationCancelDemandeInscriptionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idDemande !== undefined) {\n queryParameters['idDemande'] = requestParameters.idDemande;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/CancelDemandeInscription`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async parcoursFormationCancelDemandeInscription(requestParameters: ParcoursFormationCancelDemandeInscriptionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.parcoursFormationCancelDemandeInscriptionRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async parcoursFormationChangeStatutMultipleDemandeRaw(requestParameters: ParcoursFormationChangeStatutMultipleDemandeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/ChangeStatutMultipleDemande`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChangeStatutMultipleDtoToJSON(requestParameters.ChangeStatutMultipleDto),\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async parcoursFormationChangeStatutMultipleDemande(requestParameters: ParcoursFormationChangeStatutMultipleDemandeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.parcoursFormationChangeStatutMultipleDemandeRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async parcoursFormationCreateDemandeInscriptionMultipleRaw(requestParameters: ParcoursFormationCreateDemandeInscriptionMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/CreateDemandeInscriptionMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DemandeInscriptionCreateDtoToJSON(requestParameters.DemandeInscriptionCreateDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DemandeInscriptionCreateDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationCreateDemandeInscriptionMultiple(requestParameters: ParcoursFormationCreateDemandeInscriptionMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationCreateDemandeInscriptionMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationDeleteDemandeInscriptionFichierRaw(requestParameters: ParcoursFormationDeleteDemandeInscriptionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/DeleteDemandeInscriptionFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async parcoursFormationDeleteDemandeInscriptionFichier(requestParameters: ParcoursFormationDeleteDemandeInscriptionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.parcoursFormationDeleteDemandeInscriptionFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async parcoursFormationDownloadDemandeInscriptionFichierRaw(requestParameters: ParcoursFormationDownloadDemandeInscriptionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/DownloadDemandeInscriptionFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationDownloadDemandeInscriptionFichier(requestParameters: ParcoursFormationDownloadDemandeInscriptionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationDownloadDemandeInscriptionFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationGetDemandeInscriptionRaw(requestParameters: ParcoursFormationGetDemandeInscriptionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idDemande !== undefined) {\n queryParameters['idDemande'] = requestParameters.idDemande;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/GetDemandeInscription`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DemandeInscriptionEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationGetDemandeInscription(requestParameters: ParcoursFormationGetDemandeInscriptionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationGetDemandeInscriptionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationGetDemandeInscriptionFichierRaw(requestParameters: ParcoursFormationGetDemandeInscriptionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/GetDemandeInscriptionFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DemandeInscriptionFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationGetDemandeInscriptionFichier(requestParameters: ParcoursFormationGetDemandeInscriptionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationGetDemandeInscriptionFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationGetParcoursFormationRaw(requestParameters: ParcoursFormationGetParcoursFormationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.idParcoursFormation !== undefined) {\n queryParameters['idParcoursFormation'] = requestParameters.idParcoursFormation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/GetParcoursFormation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ParcoursFormationDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationGetParcoursFormation(requestParameters: ParcoursFormationGetParcoursFormationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationGetParcoursFormationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationGetSearchCriteriasRaw(requestParameters: ParcoursFormationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async parcoursFormationGetSearchCriterias(requestParameters: ParcoursFormationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.parcoursFormationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationGetSelectItemsRaw(requestParameters: ParcoursFormationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling parcoursFormationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async parcoursFormationGetSelectItems(requestParameters: ParcoursFormationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.parcoursFormationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationGetStatutDemandeCodeIdRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/GetStatutDemandeCodeId`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(StatutDemandeCodeIdDtoFromJSON));\n }\n\n /**\n */\n async parcoursFormationGetStatutDemandeCodeId(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.parcoursFormationGetStatutDemandeCodeIdRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationSaveDemandeInscriptionRaw(requestParameters: ParcoursFormationSaveDemandeInscriptionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/SaveDemandeInscription`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DemandeInscriptionEditDtoToJSON(requestParameters.DemandeInscriptionEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DemandeInscriptionEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationSaveDemandeInscription(requestParameters: ParcoursFormationSaveDemandeInscriptionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationSaveDemandeInscriptionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationSaveDemandeInscriptionFichierRaw(requestParameters: ParcoursFormationSaveDemandeInscriptionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/SaveDemandeInscriptionFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DemandeInscriptionFichierDtoToJSON(requestParameters.DemandeInscriptionFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DemandeInscriptionFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationSaveDemandeInscriptionFichier(requestParameters: ParcoursFormationSaveDemandeInscriptionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationSaveDemandeInscriptionFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationSaveParcoursFormationRaw(requestParameters: ParcoursFormationSaveParcoursFormationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/SaveParcoursFormation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ParcoursFormationEditDtoToJSON(requestParameters.ParcoursFormationEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ParcoursFormationEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationSaveParcoursFormation(requestParameters: ParcoursFormationSaveParcoursFormationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationSaveParcoursFormationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationSearchParcoursInterneRaw(requestParameters: ParcoursFormationSearchParcoursInterneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/SearchParcoursInterne`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ParcoursInterneSearchToJSON(requestParameters.ParcoursInterneSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DemandeInscriptionGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationSearchParcoursInterne(requestParameters: ParcoursFormationSearchParcoursInterneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationSearchParcoursInterneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async parcoursFormationUploadDemandeInscriptionFichierRaw(requestParameters: ParcoursFormationUploadDemandeInscriptionFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ParcoursFormation/UploadDemandeInscriptionFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DemandeInscriptionFichierUploadDtoToJSON(requestParameters.DemandeInscriptionFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DemandeInscriptionFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async parcoursFormationUploadDemandeInscriptionFichier(requestParameters: ParcoursFormationUploadDemandeInscriptionFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.parcoursFormationUploadDemandeInscriptionFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbPaysDto,\n FcbPaysGridDtoPaginatedResults,\n FilterCriteriaInfo,\n PaysSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FcbPaysDtoFromJSON,\n FcbPaysDtoToJSON,\n FcbPaysGridDtoPaginatedResultsFromJSON,\n FcbPaysGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PaysSearchFromJSON,\n PaysSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface PaysBaseSearchRequest {\n PaysSearch?: PaysSearch;\n}\n\nexport interface PaysCodePaysExistsRequest {\n codePays?: string;\n}\n\nexport interface PaysDeleteRequest {\n codePays?: string;\n}\n\nexport interface PaysGetRequest {\n codePays?: string;\n}\n\nexport interface PaysGetDisplayNameRequest {\n id?: string;\n}\n\nexport interface PaysGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface PaysGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface PaysPaysNomExistsRequest {\n codePays?: string;\n nomPays?: string;\n}\n\nexport interface PaysSaveRequest {\n FcbPaysDto?: FcbPaysDto;\n}\n\n/**\n * \n */\nexport class PaysApi extends runtime.BaseAPI {\n\n /**\n */\n async paysBaseSearchRaw(requestParameters: PaysBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Pays/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PaysSearchToJSON(requestParameters.PaysSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPaysGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async paysBaseSearch(requestParameters: PaysBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paysBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paysCodePaysExistsRaw(requestParameters: PaysCodePaysExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.codePays !== undefined) {\n queryParameters['codePays'] = requestParameters.codePays;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Pays/codeExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async paysCodePaysExists(requestParameters: PaysCodePaysExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paysCodePaysExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paysDeleteRaw(requestParameters: PaysDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.codePays !== undefined) {\n queryParameters['codePays'] = requestParameters.codePays;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Pays`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async paysDelete(requestParameters: PaysDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paysDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paysGetRaw(requestParameters: PaysGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.codePays !== undefined) {\n queryParameters['codePays'] = requestParameters.codePays;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Pays`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPaysDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async paysGet(requestParameters: PaysGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paysGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paysGetDisplayNameRaw(requestParameters: PaysGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Pays/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async paysGetDisplayName(requestParameters: PaysGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paysGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paysGetSearchCriteriasRaw(requestParameters: PaysGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Pays/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async paysGetSearchCriterias(requestParameters: PaysGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.paysGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paysGetSelectItemsRaw(requestParameters: PaysGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling paysGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Pays/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async paysGetSelectItems(requestParameters: PaysGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.paysGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paysPaysNomExistsRaw(requestParameters: PaysPaysNomExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.codePays !== undefined) {\n queryParameters['codePays'] = requestParameters.codePays;\n }\n\n if (requestParameters.nomPays !== undefined) {\n queryParameters['nomPays'] = requestParameters.nomPays;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Pays/nomExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async paysPaysNomExists(requestParameters: PaysPaysNomExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paysPaysNomExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async paysSaveRaw(requestParameters: PaysSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Pays`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbPaysDtoToJSON(requestParameters.FcbPaysDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPaysDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async paysSave(requestParameters: PaysSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.paysSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n EmailReplaceDto,\n FilterCriteriaInfo,\n PersonneEditDto,\n PersonneGridDtoPaginatedResults,\n PersonneHistoryGridDtoPaginatedResults,\n PersonneHistorySearch,\n PersonneSearchDto,\n ReferentialItemDto,\n TelephoneReplaceDto,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n EmailReplaceDtoFromJSON,\n EmailReplaceDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PersonneEditDtoFromJSON,\n PersonneEditDtoToJSON,\n PersonneGridDtoPaginatedResultsFromJSON,\n PersonneGridDtoPaginatedResultsToJSON,\n PersonneHistoryGridDtoPaginatedResultsFromJSON,\n PersonneHistoryGridDtoPaginatedResultsToJSON,\n PersonneHistorySearchFromJSON,\n PersonneHistorySearchToJSON,\n PersonneSearchDtoFromJSON,\n PersonneSearchDtoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n TelephoneReplaceDtoFromJSON,\n TelephoneReplaceDtoToJSON,\n} from '../models/index';\n\nexport interface PersonneBaseSearchRequest {\n PersonneSearchDto?: PersonneSearchDto;\n}\n\nexport interface PersonneDeleteEmailRequest {\n idemail?: number;\n}\n\nexport interface PersonneDeleteTelRequest {\n idtelephone?: number;\n}\n\nexport interface PersonneGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface PersonneGetPersonneRequest {\n id?: number;\n}\n\nexport interface PersonneGetPhotoRequest {\n id?: number;\n}\n\nexport interface PersonneGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface PersonneGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface PersonneIsEmailUsedRequest {\n idemail?: number;\n}\n\nexport interface PersonneIsPhoneUsedRequest {\n idtelephone?: number;\n}\n\nexport interface PersonneReplaceEmailRequest {\n EmailReplaceDto?: EmailReplaceDto;\n}\n\nexport interface PersonneReplacePhoneRequest {\n TelephoneReplaceDto?: TelephoneReplaceDto;\n}\n\nexport interface PersonneSavePersonneRequest {\n PersonneEditDto?: PersonneEditDto;\n}\n\nexport interface PersonneSearchHistoryRequest {\n PersonneHistorySearch?: PersonneHistorySearch;\n}\n\n/**\n * \n */\nexport class PersonneApi extends runtime.BaseAPI {\n\n /**\n */\n async personneBaseSearchRaw(requestParameters: PersonneBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PersonneSearchDtoToJSON(requestParameters.PersonneSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PersonneGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async personneBaseSearch(requestParameters: PersonneBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneDeleteEmailRaw(requestParameters: PersonneDeleteEmailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idemail !== undefined) {\n queryParameters['idemail'] = requestParameters.idemail;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/DeleteEmail`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async personneDeleteEmail(requestParameters: PersonneDeleteEmailRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.personneDeleteEmailRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async personneDeleteTelRaw(requestParameters: PersonneDeleteTelRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtelephone !== undefined) {\n queryParameters['idtelephone'] = requestParameters.idtelephone;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/DeleteTel`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async personneDeleteTel(requestParameters: PersonneDeleteTelRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.personneDeleteTelRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async personneGetDisplayNameRaw(requestParameters: PersonneGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async personneGetDisplayName(requestParameters: PersonneGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneGetPersonneRaw(requestParameters: PersonneGetPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PersonneEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async personneGetPersonne(requestParameters: PersonneGetPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneGetPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneGetPhotoRaw(requestParameters: PersonneGetPhotoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/photo`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async personneGetPhoto(requestParameters: PersonneGetPhotoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneGetPhotoRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneGetSearchCriteriasRaw(requestParameters: PersonneGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async personneGetSearchCriterias(requestParameters: PersonneGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.personneGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneGetSelectItemsRaw(requestParameters: PersonneGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling personneGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async personneGetSelectItems(requestParameters: PersonneGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.personneGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneIsEmailUsedRaw(requestParameters: PersonneIsEmailUsedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idemail !== undefined) {\n queryParameters['idemail'] = requestParameters.idemail;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/IsEmailUsed`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async personneIsEmailUsed(requestParameters: PersonneIsEmailUsedRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneIsEmailUsedRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneIsPhoneUsedRaw(requestParameters: PersonneIsPhoneUsedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtelephone !== undefined) {\n queryParameters['idtelephone'] = requestParameters.idtelephone;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/IsPhoneUsed`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async personneIsPhoneUsed(requestParameters: PersonneIsPhoneUsedRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneIsPhoneUsedRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneReplaceEmailRaw(requestParameters: PersonneReplaceEmailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/ReplaceEmail`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: EmailReplaceDtoToJSON(requestParameters.EmailReplaceDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EmailReplaceDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async personneReplaceEmail(requestParameters: PersonneReplaceEmailRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneReplaceEmailRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneReplacePhoneRaw(requestParameters: PersonneReplacePhoneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/ReplacePhone`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TelephoneReplaceDtoToJSON(requestParameters.TelephoneReplaceDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TelephoneReplaceDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async personneReplacePhone(requestParameters: PersonneReplacePhoneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneReplacePhoneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneSavePersonneRaw(requestParameters: PersonneSavePersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PersonneEditDtoToJSON(requestParameters.PersonneEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PersonneEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async personneSavePersonne(requestParameters: PersonneSavePersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneSavePersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personneSearchHistoryRaw(requestParameters: PersonneSearchHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Personne/SearchHistory`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PersonneHistorySearchToJSON(requestParameters.PersonneHistorySearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PersonneHistoryGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async personneSearchHistory(requestParameters: PersonneSearchHistoryRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personneSearchHistoryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbPersonnelTutelleDto,\n FcbPersonnelTutelleGridDtoPaginatedResults,\n FilterCriteriaInfo,\n PersonnelTutelleSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FcbPersonnelTutelleDtoFromJSON,\n FcbPersonnelTutelleDtoToJSON,\n FcbPersonnelTutelleGridDtoPaginatedResultsFromJSON,\n FcbPersonnelTutelleGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PersonnelTutelleSearchFromJSON,\n PersonnelTutelleSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface PersonnelTutelleBaseSearchRequest {\n PersonnelTutelleSearch?: PersonnelTutelleSearch;\n}\n\nexport interface PersonnelTutelleDeleteRequest {\n id?: number;\n}\n\nexport interface PersonnelTutelleExistsRequest {\n code?: string;\n}\n\nexport interface PersonnelTutelleGetRequest {\n id?: number;\n}\n\nexport interface PersonnelTutelleGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface PersonnelTutelleGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface PersonnelTutelleGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface PersonnelTutelleSaveRequest {\n FcbPersonnelTutelleDto?: FcbPersonnelTutelleDto;\n}\n\n/**\n * \n */\nexport class PersonnelTutelleApi extends runtime.BaseAPI {\n\n /**\n */\n async personnelTutelleBaseSearchRaw(requestParameters: PersonnelTutelleBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PersonnelTutelle/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PersonnelTutelleSearchToJSON(requestParameters.PersonnelTutelleSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPersonnelTutelleGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async personnelTutelleBaseSearch(requestParameters: PersonnelTutelleBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personnelTutelleBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personnelTutelleDeleteRaw(requestParameters: PersonnelTutelleDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PersonnelTutelle/delete`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async personnelTutelleDelete(requestParameters: PersonnelTutelleDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personnelTutelleDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personnelTutelleExistsRaw(requestParameters: PersonnelTutelleExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PersonnelTutelle/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async personnelTutelleExists(requestParameters: PersonnelTutelleExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personnelTutelleExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personnelTutelleGetRaw(requestParameters: PersonnelTutelleGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PersonnelTutelle/get`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPersonnelTutelleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async personnelTutelleGet(requestParameters: PersonnelTutelleGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personnelTutelleGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personnelTutelleGetDisplayNameRaw(requestParameters: PersonnelTutelleGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PersonnelTutelle/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async personnelTutelleGetDisplayName(requestParameters: PersonnelTutelleGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personnelTutelleGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personnelTutelleGetSearchCriteriasRaw(requestParameters: PersonnelTutelleGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PersonnelTutelle/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async personnelTutelleGetSearchCriterias(requestParameters: PersonnelTutelleGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.personnelTutelleGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personnelTutelleGetSelectItemsRaw(requestParameters: PersonnelTutelleGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling personnelTutelleGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PersonnelTutelle/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async personnelTutelleGetSelectItems(requestParameters: PersonnelTutelleGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.personnelTutelleGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async personnelTutelleSaveRaw(requestParameters: PersonnelTutelleSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PersonnelTutelle/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbPersonnelTutelleDtoToJSON(requestParameters.FcbPersonnelTutelleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPersonnelTutelleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async personnelTutelleSave(requestParameters: PersonnelTutelleSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.personnelTutelleSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbPlageHoraireDto,\n FcbPlageHoraireGridDtoPaginatedResults,\n FilterCriteriaInfo,\n PlageHoraireSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbPlageHoraireDtoFromJSON,\n FcbPlageHoraireDtoToJSON,\n FcbPlageHoraireGridDtoPaginatedResultsFromJSON,\n FcbPlageHoraireGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PlageHoraireSearchFromJSON,\n PlageHoraireSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface PlageHoraireBaseSearchRequest {\n PlageHoraireSearch?: PlageHoraireSearch;\n}\n\nexport interface PlageHoraireDeleteRequest {\n id?: number;\n}\n\nexport interface PlageHoraireGetRequest {\n id?: number;\n nbPlages?: number;\n idCentre?: number;\n}\n\nexport interface PlageHoraireGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface PlageHoraireGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface PlageHoraireSaveRequest {\n FcbPlageHoraireDto?: FcbPlageHoraireDto;\n}\n\n/**\n * \n */\nexport class PlageHoraireApi extends runtime.BaseAPI {\n\n /**\n */\n async plageHoraireBaseSearchRaw(requestParameters: PlageHoraireBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlageHoraire/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PlageHoraireSearchToJSON(requestParameters.PlageHoraireSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPlageHoraireGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async plageHoraireBaseSearch(requestParameters: PlageHoraireBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.plageHoraireBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async plageHoraireDeleteRaw(requestParameters: PlageHoraireDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlageHoraire`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async plageHoraireDelete(requestParameters: PlageHoraireDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.plageHoraireDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async plageHoraireGetRaw(requestParameters: PlageHoraireGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.nbPlages !== undefined) {\n queryParameters['nbPlages'] = requestParameters.nbPlages;\n }\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlageHoraire`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPlageHoraireDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async plageHoraireGet(requestParameters: PlageHoraireGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.plageHoraireGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async plageHoraireGetSearchCriteriasRaw(requestParameters: PlageHoraireGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlageHoraire/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async plageHoraireGetSearchCriterias(requestParameters: PlageHoraireGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.plageHoraireGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async plageHoraireGetSelectItemsRaw(requestParameters: PlageHoraireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling plageHoraireGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlageHoraire/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async plageHoraireGetSelectItems(requestParameters: PlageHoraireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.plageHoraireGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async plageHoraireSaveRaw(requestParameters: PlageHoraireSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlageHoraire`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbPlageHoraireDtoToJSON(requestParameters.FcbPlageHoraireDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPlageHoraireDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async plageHoraireSave(requestParameters: PlageHoraireSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.plageHoraireSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbPlanLocalisationDto,\n FcbRecherchePlanLocalisationClasseDtoPaginatedResults,\n FcbRecherchePlanLocalisationDtoPaginatedResults,\n FilterCriteriaInfo,\n PlanLocalisationClasseSearch,\n PlanLocalisationSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbPlanLocalisationDtoFromJSON,\n FcbPlanLocalisationDtoToJSON,\n FcbRecherchePlanLocalisationClasseDtoPaginatedResultsFromJSON,\n FcbRecherchePlanLocalisationClasseDtoPaginatedResultsToJSON,\n FcbRecherchePlanLocalisationDtoPaginatedResultsFromJSON,\n FcbRecherchePlanLocalisationDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PlanLocalisationClasseSearchFromJSON,\n PlanLocalisationClasseSearchToJSON,\n PlanLocalisationSearchFromJSON,\n PlanLocalisationSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface PlanLocalisationBaseSearchRequest {\n PlanLocalisationSearch?: PlanLocalisationSearch;\n}\n\nexport interface PlanLocalisationDeleteRequest {\n id?: number;\n}\n\nexport interface PlanLocalisationGetRequest {\n id?: number;\n}\n\nexport interface PlanLocalisationGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface PlanLocalisationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface PlanLocalisationGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface PlanLocalisationLockClasseRequest {\n idPlan?: number;\n}\n\nexport interface PlanLocalisationSaveRequest {\n FcbPlanLocalisationDto?: FcbPlanLocalisationDto;\n}\n\nexport interface PlanLocalisationSearchClassesRequest {\n PlanLocalisationClasseSearch?: PlanLocalisationClasseSearch;\n}\n\nexport interface PlanLocalisationToValidatePlanRequest {\n idPlan?: number;\n}\n\nexport interface PlanLocalisationUnlockClasseRequest {\n idPlan?: number;\n}\n\nexport interface PlanLocalisationValidatePlanRequest {\n idPlan?: number;\n}\n\n/**\n * \n */\nexport class PlanLocalisationApi extends runtime.BaseAPI {\n\n /**\n */\n async planLocalisationBaseSearchRaw(requestParameters: PlanLocalisationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PlanLocalisationSearchToJSON(requestParameters.PlanLocalisationSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchePlanLocalisationDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async planLocalisationBaseSearch(requestParameters: PlanLocalisationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationDeleteRaw(requestParameters: PlanLocalisationDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async planLocalisationDelete(requestParameters: PlanLocalisationDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationGetRaw(requestParameters: PlanLocalisationGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPlanLocalisationDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async planLocalisationGet(requestParameters: PlanLocalisationGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationGetDisplayNameRaw(requestParameters: PlanLocalisationGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async planLocalisationGetDisplayName(requestParameters: PlanLocalisationGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationGetSearchCriteriasRaw(requestParameters: PlanLocalisationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async planLocalisationGetSearchCriterias(requestParameters: PlanLocalisationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.planLocalisationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationGetSelectItemsRaw(requestParameters: PlanLocalisationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling planLocalisationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async planLocalisationGetSelectItems(requestParameters: PlanLocalisationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.planLocalisationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationLockClasseRaw(requestParameters: PlanLocalisationLockClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idPlan !== undefined) {\n queryParameters['idPlan'] = requestParameters.idPlan;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation/LockClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async planLocalisationLockClasse(requestParameters: PlanLocalisationLockClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationLockClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationSaveRaw(requestParameters: PlanLocalisationSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbPlanLocalisationDtoToJSON(requestParameters.FcbPlanLocalisationDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbPlanLocalisationDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async planLocalisationSave(requestParameters: PlanLocalisationSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationSearchClassesRaw(requestParameters: PlanLocalisationSearchClassesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation/SearchClasses`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PlanLocalisationClasseSearchToJSON(requestParameters.PlanLocalisationClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchePlanLocalisationClasseDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async planLocalisationSearchClasses(requestParameters: PlanLocalisationSearchClassesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationSearchClassesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationToValidatePlanRaw(requestParameters: PlanLocalisationToValidatePlanRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idPlan !== undefined) {\n queryParameters['idPlan'] = requestParameters.idPlan;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation/ToValidatePlan`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async planLocalisationToValidatePlan(requestParameters: PlanLocalisationToValidatePlanRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationToValidatePlanRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationUnlockClasseRaw(requestParameters: PlanLocalisationUnlockClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idPlan !== undefined) {\n queryParameters['idPlan'] = requestParameters.idPlan;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation/UnlockClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async planLocalisationUnlockClasse(requestParameters: PlanLocalisationUnlockClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationUnlockClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationValidatePlanRaw(requestParameters: PlanLocalisationValidatePlanRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idPlan !== undefined) {\n queryParameters['idPlan'] = requestParameters.idPlan;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisation/ValidatePlan`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async planLocalisationValidatePlan(requestParameters: PlanLocalisationValidatePlanRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationValidatePlanRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRecherchePlanLocalisationClasseDto,\n FcbRecherchePlanLocalisationClasseDtoPaginatedResults,\n FilterCriteriaInfo,\n PlanLocalisationClasseSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRecherchePlanLocalisationClasseDtoFromJSON,\n FcbRecherchePlanLocalisationClasseDtoToJSON,\n FcbRecherchePlanLocalisationClasseDtoPaginatedResultsFromJSON,\n FcbRecherchePlanLocalisationClasseDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PlanLocalisationClasseSearchFromJSON,\n PlanLocalisationClasseSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface PlanLocalisationClasseBaseSearchRequest {\n PlanLocalisationClasseSearch?: PlanLocalisationClasseSearch;\n}\n\nexport interface PlanLocalisationClasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface PlanLocalisationClasseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface PlanLocalisationClasseSaveRequest {\n FcbRecherchePlanLocalisationClasseDto?: FcbRecherchePlanLocalisationClasseDto;\n}\n\n/**\n * \n */\nexport class PlanLocalisationClasseApi extends runtime.BaseAPI {\n\n /**\n */\n async planLocalisationClasseBaseSearchRaw(requestParameters: PlanLocalisationClasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisationClasse/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PlanLocalisationClasseSearchToJSON(requestParameters.PlanLocalisationClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchePlanLocalisationClasseDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async planLocalisationClasseBaseSearch(requestParameters: PlanLocalisationClasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationClasseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationClasseGetSearchCriteriasRaw(requestParameters: PlanLocalisationClasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisationClasse/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async planLocalisationClasseGetSearchCriterias(requestParameters: PlanLocalisationClasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.planLocalisationClasseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationClasseGetSelectItemsRaw(requestParameters: PlanLocalisationClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling planLocalisationClasseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisationClasse/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async planLocalisationClasseGetSelectItems(requestParameters: PlanLocalisationClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.planLocalisationClasseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async planLocalisationClasseSaveRaw(requestParameters: PlanLocalisationClasseSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PlanLocalisationClasse`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbRecherchePlanLocalisationClasseDtoToJSON(requestParameters.FcbRecherchePlanLocalisationClasseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRecherchePlanLocalisationClasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async planLocalisationClasseSave(requestParameters: PlanLocalisationClasseSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.planLocalisationClasseSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n PrintingQueueDto,\n PrintingQueueGridDtoPaginatedResults,\n PrintingQueueIdsDto,\n PrintingQueueSearchDto,\n ReferentialItemDto,\n SelectedPrintingsDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n PrintingQueueDtoFromJSON,\n PrintingQueueDtoToJSON,\n PrintingQueueGridDtoPaginatedResultsFromJSON,\n PrintingQueueGridDtoPaginatedResultsToJSON,\n PrintingQueueIdsDtoFromJSON,\n PrintingQueueIdsDtoToJSON,\n PrintingQueueSearchDtoFromJSON,\n PrintingQueueSearchDtoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SelectedPrintingsDtoFromJSON,\n SelectedPrintingsDtoToJSON,\n} from '../models/index';\n\nexport interface PrintingQueueBaseSearchRequest {\n PrintingQueueSearchDto?: PrintingQueueSearchDto;\n}\n\nexport interface PrintingQueueCancelPrintingRequest {\n idprintingQueue: number;\n}\n\nexport interface PrintingQueueCancelSelectedRequest {\n SelectedPrintingsDto?: SelectedPrintingsDto;\n}\n\nexport interface PrintingQueueDeletePrintingRequest {\n idprintingQueue?: number;\n}\n\nexport interface PrintingQueueDeleteSelectedRequest {\n SelectedPrintingsDto?: SelectedPrintingsDto;\n}\n\nexport interface PrintingQueueGetPrintingQueueRequest {\n showHidden?: boolean;\n}\n\nexport interface PrintingQueueGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface PrintingQueueGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface PrintingQueueMaskSelectedRequest {\n SelectedPrintingsDto?: SelectedPrintingsDto;\n}\n\nexport interface PrintingQueueRetryPrintingRequest {\n idprintingQueue: number;\n}\n\nexport interface PrintingQueueSearchIdsRequest {\n PrintingQueueSearchDto?: PrintingQueueSearchDto;\n}\n\nexport interface PrintingQueueShowPrintingRequest {\n idprintingQueue: number;\n}\n\n/**\n * \n */\nexport class PrintingQueueApi extends runtime.BaseAPI {\n\n /**\n */\n async printingQueueBaseSearchRaw(requestParameters: PrintingQueueBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PrintingQueueSearchDtoToJSON(requestParameters.PrintingQueueSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PrintingQueueGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async printingQueueBaseSearch(requestParameters: PrintingQueueBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.printingQueueBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async printingQueueCancelPrintingRaw(requestParameters: PrintingQueueCancelPrintingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n if (requestParameters.idprintingQueue === null || requestParameters.idprintingQueue === undefined) {\n throw new runtime.RequiredError('idprintingQueue','Required parameter requestParameters.idprintingQueue was null or undefined when calling printingQueueCancelPrinting.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/{idprintingQueue}/cancel`.replace(`{${\"idprintingQueue\"}}`, encodeURIComponent(String(requestParameters.idprintingQueue))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async printingQueueCancelPrinting(requestParameters: PrintingQueueCancelPrintingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.printingQueueCancelPrintingRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async printingQueueCancelSelectedRaw(requestParameters: PrintingQueueCancelSelectedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/cancel-selected`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SelectedPrintingsDtoToJSON(requestParameters.SelectedPrintingsDto),\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async printingQueueCancelSelected(requestParameters: PrintingQueueCancelSelectedRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.printingQueueCancelSelectedRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async printingQueueDeletePrintingRaw(requestParameters: PrintingQueueDeletePrintingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idprintingQueue !== undefined) {\n queryParameters['idprintingQueue'] = requestParameters.idprintingQueue;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async printingQueueDeletePrinting(requestParameters: PrintingQueueDeletePrintingRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.printingQueueDeletePrintingRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async printingQueueDeleteSelectedRaw(requestParameters: PrintingQueueDeleteSelectedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/delete-selected`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SelectedPrintingsDtoToJSON(requestParameters.SelectedPrintingsDto),\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async printingQueueDeleteSelected(requestParameters: PrintingQueueDeleteSelectedRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.printingQueueDeleteSelectedRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async printingQueueGetPrintingQueueRaw(requestParameters: PrintingQueueGetPrintingQueueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.showHidden !== undefined) {\n queryParameters['showHidden'] = requestParameters.showHidden;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(PrintingQueueDtoFromJSON));\n }\n\n /**\n */\n async printingQueueGetPrintingQueue(requestParameters: PrintingQueueGetPrintingQueueRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.printingQueueGetPrintingQueueRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async printingQueueGetSearchCriteriasRaw(requestParameters: PrintingQueueGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async printingQueueGetSearchCriterias(requestParameters: PrintingQueueGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.printingQueueGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async printingQueueGetSelectItemsRaw(requestParameters: PrintingQueueGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling printingQueueGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async printingQueueGetSelectItems(requestParameters: PrintingQueueGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.printingQueueGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async printingQueueMaskSelectedRaw(requestParameters: PrintingQueueMaskSelectedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/mask-selected`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SelectedPrintingsDtoToJSON(requestParameters.SelectedPrintingsDto),\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async printingQueueMaskSelected(requestParameters: PrintingQueueMaskSelectedRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.printingQueueMaskSelectedRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async printingQueueRetryPrintingRaw(requestParameters: PrintingQueueRetryPrintingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n if (requestParameters.idprintingQueue === null || requestParameters.idprintingQueue === undefined) {\n throw new runtime.RequiredError('idprintingQueue','Required parameter requestParameters.idprintingQueue was null or undefined when calling printingQueueRetryPrinting.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/{idprintingQueue}/retry`.replace(`{${\"idprintingQueue\"}}`, encodeURIComponent(String(requestParameters.idprintingQueue))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async printingQueueRetryPrinting(requestParameters: PrintingQueueRetryPrintingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.printingQueueRetryPrintingRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async printingQueueSearchIdsRaw(requestParameters: PrintingQueueSearchIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/SearchIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PrintingQueueSearchDtoToJSON(requestParameters.PrintingQueueSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PrintingQueueIdsDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async printingQueueSearchIds(requestParameters: PrintingQueueSearchIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.printingQueueSearchIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async printingQueueShowPrintingRaw(requestParameters: PrintingQueueShowPrintingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n if (requestParameters.idprintingQueue === null || requestParameters.idprintingQueue === undefined) {\n throw new runtime.RequiredError('idprintingQueue','Required parameter requestParameters.idprintingQueue was null or undefined when calling printingQueueShowPrinting.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/PrintingQueue/{idprintingQueue}/show`.replace(`{${\"idprintingQueue\"}}`, encodeURIComponent(String(requestParameters.idprintingQueue))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async printingQueueShowPrinting(requestParameters: PrintingQueueShowPrintingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.printingQueueShowPrintingRaw(requestParameters, initOverrides);\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbProfessionFormateurDto,\n FcbProfessionFormateurDtoPaginatedResults,\n FilterCriteriaInfo,\n ProfessionFormateurSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FcbProfessionFormateurDtoFromJSON,\n FcbProfessionFormateurDtoToJSON,\n FcbProfessionFormateurDtoPaginatedResultsFromJSON,\n FcbProfessionFormateurDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ProfessionFormateurSearchFromJSON,\n ProfessionFormateurSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ProfessionFormateurBaseSearchRequest {\n ProfessionFormateurSearch?: ProfessionFormateurSearch;\n}\n\nexport interface ProfessionFormateurDeleteRequest {\n id?: number;\n}\n\nexport interface ProfessionFormateurGetRequest {\n id?: number;\n}\n\nexport interface ProfessionFormateurGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ProfessionFormateurGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ProfessionFormateurGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ProfessionFormateurLibelleProfessionFormateurExistsRequest {\n libelle?: string;\n}\n\nexport interface ProfessionFormateurSaveRequest {\n FcbProfessionFormateurDto?: FcbProfessionFormateurDto;\n}\n\n/**\n * \n */\nexport class ProfessionFormateurApi extends runtime.BaseAPI {\n\n /**\n */\n async professionFormateurBaseSearchRaw(requestParameters: ProfessionFormateurBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProfessionFormateur/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ProfessionFormateurSearchToJSON(requestParameters.ProfessionFormateurSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbProfessionFormateurDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async professionFormateurBaseSearch(requestParameters: ProfessionFormateurBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.professionFormateurBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async professionFormateurDeleteRaw(requestParameters: ProfessionFormateurDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProfessionFormateur`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async professionFormateurDelete(requestParameters: ProfessionFormateurDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.professionFormateurDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async professionFormateurGetRaw(requestParameters: ProfessionFormateurGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProfessionFormateur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbProfessionFormateurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async professionFormateurGet(requestParameters: ProfessionFormateurGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.professionFormateurGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async professionFormateurGetDisplayNameRaw(requestParameters: ProfessionFormateurGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProfessionFormateur/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async professionFormateurGetDisplayName(requestParameters: ProfessionFormateurGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.professionFormateurGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async professionFormateurGetSearchCriteriasRaw(requestParameters: ProfessionFormateurGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProfessionFormateur/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async professionFormateurGetSearchCriterias(requestParameters: ProfessionFormateurGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.professionFormateurGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async professionFormateurGetSelectItemsRaw(requestParameters: ProfessionFormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling professionFormateurGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProfessionFormateur/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async professionFormateurGetSelectItems(requestParameters: ProfessionFormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.professionFormateurGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async professionFormateurLibelleProfessionFormateurExistsRaw(requestParameters: ProfessionFormateurLibelleProfessionFormateurExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.libelle !== undefined) {\n queryParameters['libelle'] = requestParameters.libelle;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProfessionFormateur/libelleExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async professionFormateurLibelleProfessionFormateurExists(requestParameters: ProfessionFormateurLibelleProfessionFormateurExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.professionFormateurLibelleProfessionFormateurExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async professionFormateurSaveRaw(requestParameters: ProfessionFormateurSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProfessionFormateur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbProfessionFormateurDtoToJSON(requestParameters.FcbProfessionFormateurDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbProfessionFormateurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async professionFormateurSave(requestParameters: ProfessionFormateurSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.professionFormateurSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbProjetFinancementDto,\n FcbProjetFinancementGridDtoPaginatedResults,\n FilterCriteriaInfo,\n ProjetFinancementSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbProjetFinancementDtoFromJSON,\n FcbProjetFinancementDtoToJSON,\n FcbProjetFinancementGridDtoPaginatedResultsFromJSON,\n FcbProjetFinancementGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ProjetFinancementSearchFromJSON,\n ProjetFinancementSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ProjetFinancementBaseSearchRequest {\n ProjetFinancementSearch?: ProjetFinancementSearch;\n}\n\nexport interface ProjetFinancementDeleteRequest {\n id?: number;\n}\n\nexport interface ProjetFinancementGetRequest {\n id?: number;\n}\n\nexport interface ProjetFinancementGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ProjetFinancementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ProjetFinancementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ProjetFinancementSaveRequest {\n FcbProjetFinancementDto?: FcbProjetFinancementDto;\n}\n\n/**\n * \n */\nexport class ProjetFinancementApi extends runtime.BaseAPI {\n\n /**\n */\n async projetFinancementBaseSearchRaw(requestParameters: ProjetFinancementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProjetFinancement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ProjetFinancementSearchToJSON(requestParameters.ProjetFinancementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbProjetFinancementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async projetFinancementBaseSearch(requestParameters: ProjetFinancementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.projetFinancementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async projetFinancementDeleteRaw(requestParameters: ProjetFinancementDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProjetFinancement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async projetFinancementDelete(requestParameters: ProjetFinancementDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.projetFinancementDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async projetFinancementGetRaw(requestParameters: ProjetFinancementGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProjetFinancement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbProjetFinancementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async projetFinancementGet(requestParameters: ProjetFinancementGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.projetFinancementGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async projetFinancementGetDisplayNameRaw(requestParameters: ProjetFinancementGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProjetFinancement/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async projetFinancementGetDisplayName(requestParameters: ProjetFinancementGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.projetFinancementGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async projetFinancementGetSearchCriteriasRaw(requestParameters: ProjetFinancementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProjetFinancement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async projetFinancementGetSearchCriterias(requestParameters: ProjetFinancementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.projetFinancementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async projetFinancementGetSelectItemsRaw(requestParameters: ProjetFinancementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling projetFinancementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProjetFinancement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async projetFinancementGetSelectItems(requestParameters: ProjetFinancementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.projetFinancementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async projetFinancementSaveRaw(requestParameters: ProjetFinancementSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ProjetFinancement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbProjetFinancementDtoToJSON(requestParameters.FcbProjetFinancementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbProjetFinancementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async projetFinancementSave(requestParameters: ProjetFinancementSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.projetFinancementSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n GenerateMultipleRapportHopeCommand,\n GenerateRapportHopeCommand,\n GetRapportHopeForViewQuery,\n RapportHopeAccesPermissionDto,\n RapportHopeDownloadDto,\n RapportHopeEditDto,\n RapportHopeForViewDto,\n RapportHopeGetIdsrapportContrat200Response,\n RapportHopeGridDtoPaginatedResults,\n RapportHopeModulePermissionDto,\n RapportHopePermissionsDto,\n RapportHopeSearchDto,\n RapportHopeServicePermissionDto,\n ReferentialItemDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n GenerateMultipleRapportHopeCommandFromJSON,\n GenerateMultipleRapportHopeCommandToJSON,\n GenerateRapportHopeCommandFromJSON,\n GenerateRapportHopeCommandToJSON,\n GetRapportHopeForViewQueryFromJSON,\n GetRapportHopeForViewQueryToJSON,\n RapportHopeAccesPermissionDtoFromJSON,\n RapportHopeAccesPermissionDtoToJSON,\n RapportHopeDownloadDtoFromJSON,\n RapportHopeDownloadDtoToJSON,\n RapportHopeEditDtoFromJSON,\n RapportHopeEditDtoToJSON,\n RapportHopeForViewDtoFromJSON,\n RapportHopeForViewDtoToJSON,\n RapportHopeGetIdsrapportContrat200ResponseFromJSON,\n RapportHopeGetIdsrapportContrat200ResponseToJSON,\n RapportHopeGridDtoPaginatedResultsFromJSON,\n RapportHopeGridDtoPaginatedResultsToJSON,\n RapportHopeModulePermissionDtoFromJSON,\n RapportHopeModulePermissionDtoToJSON,\n RapportHopePermissionsDtoFromJSON,\n RapportHopePermissionsDtoToJSON,\n RapportHopeSearchDtoFromJSON,\n RapportHopeSearchDtoToJSON,\n RapportHopeServicePermissionDtoFromJSON,\n RapportHopeServicePermissionDtoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n} from '../models/index';\n\nexport interface RapportHopeBaseSearchRequest {\n RapportHopeSearchDto?: RapportHopeSearchDto;\n}\n\nexport interface RapportHopeDeleteRapportHopeRequest {\n idrapportHope?: number;\n}\n\nexport interface RapportHopeGenerateRequest {\n GenerateRapportHopeCommand?: GenerateRapportHopeCommand;\n}\n\nexport interface RapportHopeGenerateMultipleRequest {\n GenerateMultipleRapportHopeCommand?: GenerateMultipleRapportHopeCommand;\n}\n\nexport interface RapportHopeGetDisplayNameRequest {\n idrapportHope?: number;\n}\n\nexport interface RapportHopeGetForViewRequest {\n GetRapportHopeForViewQuery?: GetRapportHopeForViewQuery;\n}\n\nexport interface RapportHopeGetPermissionsRequest {\n idrapportHope?: number;\n}\n\nexport interface RapportHopeGetRapportHopeRequest {\n idrapportHope?: number;\n}\n\nexport interface RapportHopeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface RapportHopeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface RapportHopeSaveAccesPermissionsRequest {\n RapportHopeAccesPermissionDto?: RapportHopeAccesPermissionDto;\n}\n\nexport interface RapportHopeSaveModulePermissionsRequest {\n RapportHopeModulePermissionDto?: RapportHopeModulePermissionDto;\n}\n\nexport interface RapportHopeSaveRapportHopeRequest {\n RapportHopeEditDto?: RapportHopeEditDto;\n}\n\nexport interface RapportHopeSaveServicePermissionsRequest {\n RapportHopeServicePermissionDto?: RapportHopeServicePermissionDto;\n}\n\n/**\n * \n */\nexport class RapportHopeApi extends runtime.BaseAPI {\n\n /**\n */\n async rapportHopeBaseSearchRaw(requestParameters: RapportHopeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RapportHopeSearchDtoToJSON(requestParameters.RapportHopeSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeBaseSearch(requestParameters: RapportHopeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeDeleteRapportHopeRaw(requestParameters: RapportHopeDeleteRapportHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idrapportHope !== undefined) {\n queryParameters['idrapportHope'] = requestParameters.idrapportHope;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async rapportHopeDeleteRapportHope(requestParameters: RapportHopeDeleteRapportHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.rapportHopeDeleteRapportHopeRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async rapportHopeGenerateRaw(requestParameters: RapportHopeGenerateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/Generate`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: GenerateRapportHopeCommandToJSON(requestParameters.GenerateRapportHopeCommand),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeGenerate(requestParameters: RapportHopeGenerateRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGenerateRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGenerateMultipleRaw(requestParameters: RapportHopeGenerateMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/GenerateMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: GenerateMultipleRapportHopeCommandToJSON(requestParameters.GenerateMultipleRapportHopeCommand),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeGenerateMultiple(requestParameters: RapportHopeGenerateMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGenerateMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetDisplayNameRaw(requestParameters: RapportHopeGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idrapportHope !== undefined) {\n queryParameters['idrapportHope'] = requestParameters.idrapportHope;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async rapportHopeGetDisplayName(requestParameters: RapportHopeGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetForViewRaw(requestParameters: RapportHopeGetForViewRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/GetForView`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: GetRapportHopeForViewQueryToJSON(requestParameters.GetRapportHopeForViewQuery),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeForViewDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeGetForView(requestParameters: RapportHopeGetForViewRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGetForViewRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetIdrapportFicheTutelleRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/GetIdrapportFicheTutelle`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async rapportHopeGetIdrapportFicheTutelle(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGetIdrapportFicheTutelleRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetIdrapportLieuFormationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/GetIdrapportLieuFormation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async rapportHopeGetIdrapportLieuFormation(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGetIdrapportLieuFormationRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetIdrapportSiegeSocialRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/GetIdrapportSiegeSocial`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async rapportHopeGetIdrapportSiegeSocial(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGetIdrapportSiegeSocialRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetIdsrapportContratRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/GetIdsrapportContrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeGetIdsrapportContrat200ResponseFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeGetIdsrapportContrat(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGetIdsrapportContratRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetPermissionsRaw(requestParameters: RapportHopeGetPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idrapportHope !== undefined) {\n queryParameters['idrapportHope'] = requestParameters.idrapportHope;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/GetPermissions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopePermissionsDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeGetPermissions(requestParameters: RapportHopeGetPermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGetPermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetRapportHopeRaw(requestParameters: RapportHopeGetRapportHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idrapportHope !== undefined) {\n queryParameters['idrapportHope'] = requestParameters.idrapportHope;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeGetRapportHope(requestParameters: RapportHopeGetRapportHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeGetRapportHopeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetSearchCriteriasRaw(requestParameters: RapportHopeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async rapportHopeGetSearchCriterias(requestParameters: RapportHopeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.rapportHopeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeGetSelectItemsRaw(requestParameters: RapportHopeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling rapportHopeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async rapportHopeGetSelectItems(requestParameters: RapportHopeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.rapportHopeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeSaveAccesPermissionsRaw(requestParameters: RapportHopeSaveAccesPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/SaveAccesPermissions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RapportHopeAccesPermissionDtoToJSON(requestParameters.RapportHopeAccesPermissionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeAccesPermissionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeSaveAccesPermissions(requestParameters: RapportHopeSaveAccesPermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeSaveAccesPermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeSaveModulePermissionsRaw(requestParameters: RapportHopeSaveModulePermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/SaveModulePermissions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RapportHopeModulePermissionDtoToJSON(requestParameters.RapportHopeModulePermissionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeModulePermissionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeSaveModulePermissions(requestParameters: RapportHopeSaveModulePermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeSaveModulePermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeSaveRapportHopeRaw(requestParameters: RapportHopeSaveRapportHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RapportHopeEditDtoToJSON(requestParameters.RapportHopeEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeSaveRapportHope(requestParameters: RapportHopeSaveRapportHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeSaveRapportHopeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async rapportHopeSaveServicePermissionsRaw(requestParameters: RapportHopeSaveServicePermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RapportHope/SaveServicePermissions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RapportHopeServicePermissionDtoToJSON(requestParameters.RapportHopeServicePermissionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RapportHopeServicePermissionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async rapportHopeSaveServicePermissions(requestParameters: RapportHopeSaveServicePermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.rapportHopeSaveServicePermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AdresseReferentialResultInfoDto,\n CentreDemandeRequestDto,\n EIfapmeSide,\n ELevelName,\n EPermis,\n ETypeApprenantFichier,\n ETypeContrat,\n ETypeDeliberation,\n GetInscriptionDatesConvocationRequestDto,\n ReferentialResultInfoDto,\n} from '../models/index';\nimport {\n AdresseReferentialResultInfoDtoFromJSON,\n AdresseReferentialResultInfoDtoToJSON,\n CentreDemandeRequestDtoFromJSON,\n CentreDemandeRequestDtoToJSON,\n EIfapmeSideFromJSON,\n EIfapmeSideToJSON,\n ELevelNameFromJSON,\n ELevelNameToJSON,\n EPermisFromJSON,\n EPermisToJSON,\n ETypeApprenantFichierFromJSON,\n ETypeApprenantFichierToJSON,\n ETypeContratFromJSON,\n ETypeContratToJSON,\n ETypeDeliberationFromJSON,\n ETypeDeliberationToJSON,\n GetInscriptionDatesConvocationRequestDtoFromJSON,\n GetInscriptionDatesConvocationRequestDtoToJSON,\n ReferentialResultInfoDtoFromJSON,\n ReferentialResultInfoDtoToJSON,\n} from '../models/index';\n\nexport interface ReferentialContratsByMatiereRequest {\n idClasseMatiere?: number;\n idFormateur?: number;\n}\n\nexport interface ReferentialDegreIdsByStadeRequest {\n idStade?: number;\n}\n\nexport interface ReferentialGetAdressesPersonneRequest {\n idpersonne?: number;\n}\n\nexport interface ReferentialGetAllTelephonesPersonneRequest {\n idpersonne?: number;\n}\n\nexport interface ReferentialGetAnneesPrestationsRequest {\n idFormateur?: number;\n}\n\nexport interface ReferentialGetApprenantContratsRequest {\n idApprenant?: number;\n ETypeContrat?: Array;\n}\n\nexport interface ReferentialGetAutoecolesRequest {\n permisCode?: EPermis;\n}\n\nexport interface ReferentialGetCalcsForServiceRequest {\n idService?: number;\n}\n\nexport interface ReferentialGetCalendriersRequest {\n idClasse?: number;\n}\n\nexport interface ReferentialGetCentreByApprenantRequest {\n idApprenant?: number;\n}\n\nexport interface ReferentialGetCentreByUserRequest {\n idCentre?: number;\n}\n\nexport interface ReferentialGetCentreGlobalUsersRequest {\n currentIduser?: number;\n}\n\nexport interface ReferentialGetCentreUsersRequest {\n request_body?: Array;\n}\n\nexport interface ReferentialGetCentresDemandeRequest {\n CentreDemandeRequestDto?: CentreDemandeRequestDto;\n}\n\nexport interface ReferentialGetClasseRequest {\n idCentre?: number;\n anneeScolaire?: string;\n typeCours?: string;\n idMetier?: number;\n}\n\nexport interface ReferentialGetClasseApprenantRequest {\n idApprenant?: number;\n}\n\nexport interface ReferentialGetClasseApprenantCurrentYearRequest {\n idApprenant?: number;\n idCentre?: number;\n}\n\nexport interface ReferentialGetClasseByInscriptionRequest {\n idInscription?: number;\n isForChangementClasseTable?: boolean;\n}\n\nexport interface ReferentialGetClasseForContratRequest {\n idapprenant?: number;\n}\n\nexport interface ReferentialGetClasseForEvaluationRequest {\n idEvaluation?: number;\n}\n\nexport interface ReferentialGetClasseForInscriptionRequest {\n idCentre?: number;\n anneeScolaire?: string;\n typeCours?: string;\n idApprenant?: number;\n idClasse?: number;\n isARE?: boolean;\n isSB?: boolean;\n}\n\nexport interface ReferentialGetClasseJoursRequest {\n idClasse?: number;\n}\n\nexport interface ReferentialGetClasseMatiereRequest {\n idInscription?: number;\n}\n\nexport interface ReferentialGetClasseMatiereByClasseRequest {\n idClasse?: number;\n}\n\nexport interface ReferentialGetClasseMatiereByClasseAndTypeEvalRequest {\n idClasse?: number;\n idTypeEval?: number;\n}\n\nexport interface ReferentialGetClasseMatieresByNiveauRequest {\n idclasse?: number;\n niveau?: number;\n}\n\nexport interface ReferentialGetCodePostauxByPaysRequest {\n codePays?: string;\n}\n\nexport interface ReferentialGetCommissionsParitairesRequest {\n idmetier?: number;\n idsiegeSocial?: number;\n currentId?: number;\n}\n\nexport interface ReferentialGetCommuneFromCodePostalRequest {\n codePays?: string;\n codePostal?: string;\n}\n\nexport interface ReferentialGetComptesBancairesPersonneRequest {\n idpersonne?: number;\n}\n\nexport interface ReferentialGetContactSiegeSocialRequest {\n idSiegeSocial?: number;\n}\n\nexport interface ReferentialGetDateForEvaluationRequest {\n idClasse?: number;\n}\n\nexport interface ReferentialGetDecisionCommissionTutellesRequest {\n id?: number;\n}\n\nexport interface ReferentialGetDeliberationTypesRequest {\n typeDeliberation?: ETypeDeliberation;\n}\n\nexport interface ReferentialGetDureesContratRequest {\n typeContrat?: ETypeContrat;\n idstade?: number;\n}\n\nexport interface ReferentialGetDureesContratByMetierRequest {\n typeContrat?: ETypeContrat;\n idmetier?: number;\n currentId?: number;\n}\n\nexport interface ReferentialGetEmailsPersonneRequest {\n idpersonne?: number;\n}\n\nexport interface ReferentialGetFormateurByCentreRequest {\n idCentre?: number;\n}\n\nexport interface ReferentialGetFormateurByIdClasseRequest {\n idClasse?: number;\n}\n\nexport interface ReferentialGetFormateurByIdClasseOrIdCentreRequest {\n idClasse?: number;\n idCentre?: number;\n}\n\nexport interface ReferentialGetFormateurByRemplacementRequest {\n idRemplacement?: number;\n}\n\nexport interface ReferentialGetFormateurLocalisationContratRequest {\n idformateur?: number;\n idcentre?: number;\n}\n\nexport interface ReferentialGetFormationApprenantRequest {\n idApprenant?: number;\n}\n\nexport interface ReferentialGetGsmsPersonneRequest {\n idpersonne?: number;\n}\n\nexport interface ReferentialGetHeuresHebdomadairesRequest {\n idcommissionParitaire?: number;\n}\n\nexport interface ReferentialGetHoraireClasseRequest {\n idClasse?: number;\n}\n\nexport interface ReferentialGetInscriptionDatesConvocationRequest {\n GetInscriptionDatesConvocationRequestDto?: GetInscriptionDatesConvocationRequestDto;\n}\n\nexport interface ReferentialGetInscriptionsApprenantRequest {\n idCentre?: number;\n anneeScolaire?: string;\n idApprenant?: number;\n}\n\nexport interface ReferentialGetLearnerRepresentativesRequest {\n learnerId?: number;\n}\n\nexport interface ReferentialGetLieuRequest {\n idCentre?: number;\n}\n\nexport interface ReferentialGetLocalByCentreRequest {\n idCentre?: number;\n}\n\nexport interface ReferentialGetLocalByClasseRequest {\n idClasse?: number;\n}\n\nexport interface ReferentialGetLocaliteFromCodePostalRequest {\n codePays?: string;\n codePostal?: string;\n}\n\nexport interface ReferentialGetLocalitesSuggestRequest {\n pays?: string;\n}\n\nexport interface ReferentialGetMetierByDegreRequest {\n idDegre?: string;\n}\n\nexport interface ReferentialGetMetierByStadeRequest {\n idStade?: number;\n}\n\nexport interface ReferentialGetMotifsRuptureJeuneRequest {\n selectedId?: number;\n}\n\nexport interface ReferentialGetMotifsRupturePatronRequest {\n selectedId?: number;\n}\n\nexport interface ReferentialGetMotifsSortieRequest {\n idtypeSortie?: number;\n}\n\nexport interface ReferentialGetNationaliteRequest {\n codeSexe?: string;\n}\n\nexport interface ReferentialGetPlagesRequest {\n idClasse?: number;\n}\n\nexport interface ReferentialGetProjetFinancementByClasseRequest {\n idClasse?: number;\n}\n\nexport interface ReferentialGetProjetFinancementByIdRequest {\n id?: number;\n}\n\nexport interface ReferentialGetReferentielByDegreAndMetierRequest {\n idDegre?: string;\n idMetier?: number;\n}\n\nexport interface ReferentialGetReferentielMatieresByNiveauRequest {\n idreferentiel?: number;\n niveau?: number;\n}\n\nexport interface ReferentialGetReportByModuleIdRequest {\n id?: number;\n}\n\nexport interface ReferentialGetSecteurHomogeneByDegreRequest {\n idDegre?: string;\n idClasse?: number;\n}\n\nexport interface ReferentialGetServiceTutelleRequest {\n userFilter?: boolean;\n ifapmeSide?: EIfapmeSide;\n currentId?: number;\n}\n\nexport interface ReferentialGetServiceUsersRequest {\n currentId?: number;\n request_body?: Array;\n}\n\nexport interface ReferentialGetServiceUsersByRolesRequest {\n idService?: number;\n ELevelName?: Array;\n}\n\nexport interface ReferentialGetServicesByIdApprenantRequest {\n idApprenant?: number;\n ifapmeSide?: EIfapmeSide;\n}\n\nexport interface ReferentialGetSiegeLieuTypesSuiviRequest {\n currentId?: number;\n}\n\nexport interface ReferentialGetSiegeSociauxRequest {\n idsiegeSocial?: number;\n}\n\nexport interface ReferentialGetSocietesExternesByMetierRequest {\n idmetier?: number;\n}\n\nexport interface ReferentialGetSousStatutsByCategorieRequest {\n idCategorie?: number;\n currentIdstatutSocial?: number;\n}\n\nexport interface ReferentialGetSousTypeSuivisRequest {\n idtypeSuivi?: number;\n idsousTypeSuivi?: number;\n}\n\nexport interface ReferentialGetSpecificiteCoursRequest {\n code?: string;\n}\n\nexport interface ReferentialGetStadeByMetierRequest {\n idmetier?: number;\n}\n\nexport interface ReferentialGetStadeContratDMRequest {\n currentId?: number;\n}\n\nexport interface ReferentialGetStatutLocalisationAgrementRequest {\n isLocalisation?: boolean;\n}\n\nexport interface ReferentialGetStatutSocialRequest {\n currentIdstatutSocial?: number;\n}\n\nexport interface ReferentialGetTelephonesPersonneRequest {\n idpersonne?: number;\n}\n\nexport interface ReferentialGetTitreDiplomeCertificationsRequest {\n currentId?: number;\n}\n\nexport interface ReferentialGetTypeCoursRequest {\n ifapmeSide?: EIfapmeSide;\n}\n\nexport interface ReferentialGetTypeCoursCodesRequest {\n ifapmeSide?: EIfapmeSide;\n}\n\nexport interface ReferentialGetTypeCoursIdRequest {\n ifapmeSide?: EIfapmeSide;\n}\n\nexport interface ReferentialGetTypeEvaluationByClasseRequest {\n idEvaluation?: number;\n idClasse?: number;\n idClasseMatiere?: number;\n}\n\nexport interface ReferentialGetTypeFinancementRequest {\n currentId?: number;\n}\n\nexport interface ReferentialGetTypeSuivisRequest {\n side?: EIfapmeSide;\n idtypeSuivi?: number;\n}\n\nexport interface ReferentialGetTypesApprenantFichierRequest {\n ETypeApprenantFichier?: Array;\n}\n\nexport interface ReferentialGetTypesSortieRequest {\n currentId?: number;\n}\n\nexport interface ReferentialGetUsersByRolesRequest {\n currentIduser?: number;\n ELevelName?: Array;\n}\n\nexport interface ReferentialGetUsersByRolesAndApprenantRequest {\n idapprenant?: number;\n ELevelName?: Array;\n}\n\nexport interface ReferentialLocalsByMatiereRequest {\n idClasseMatiere?: number;\n}\n\nexport interface ReferentialMetierByStadeForApprenantRequest {\n idStade?: number;\n idApprenant?: number;\n}\n\nexport interface ReferentialMetierByStadeForContratRequest {\n idStade?: number;\n currentId?: number;\n}\n\nexport interface ReferentialMetierNotAPRequest {\n currentId?: number;\n}\n\n/**\n * \n */\nexport class ReferentialApi extends runtime.BaseAPI {\n\n /**\n */\n async referentialContratsByMatiereRaw(requestParameters: ReferentialContratsByMatiereRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasseMatiere !== undefined) {\n queryParameters['idClasseMatiere'] = requestParameters.idClasseMatiere;\n }\n\n if (requestParameters.idFormateur !== undefined) {\n queryParameters['idFormateur'] = requestParameters.idFormateur;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ContratsByMatiere`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialContratsByMatiere(requestParameters: ReferentialContratsByMatiereRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialContratsByMatiereRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialDegreIdsByStadeRaw(requestParameters: ReferentialDegreIdsByStadeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idStade !== undefined) {\n queryParameters['idStade'] = requestParameters.idStade;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/DegreIdsByStade`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialDegreIdsByStade(requestParameters: ReferentialDegreIdsByStadeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialDegreIdsByStadeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAccesLevelListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetAccesLevelList`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAccesLevelList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAccesLevelListRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAccessLevelsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/AccessLevels`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAccessLevels(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAccessLevelsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAccessLevelsTypesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeLevels`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAccessLevelsTypes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAccessLevelsTypesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAcquisAdmissionTypesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetAcquisAdmissionTypes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAcquisAdmissionTypes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAcquisAdmissionTypesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAcquisCommentairesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetAcquisCommentaires`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAcquisCommentaires(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAcquisCommentairesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAcquisScolaireTypesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetAcquisScolaireTypes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAcquisScolaireTypes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAcquisScolaireTypesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAdressesPersonneRaw(requestParameters: ReferentialGetAdressesPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idpersonne !== undefined) {\n queryParameters['idpersonne'] = requestParameters.idpersonne;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetAdressesPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AdresseReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAdressesPersonne(requestParameters: ReferentialGetAdressesPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAdressesPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAllClasseRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/AllClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAllClasse(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAllClasseRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAllNationaliteRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/AllNationalite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAllNationalite(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAllNationaliteRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAllTelephonesPersonneRaw(requestParameters: ReferentialGetAllTelephonesPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idpersonne !== undefined) {\n queryParameters['idpersonne'] = requestParameters.idpersonne;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetAllTelephonesPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAllTelephonesPersonne(requestParameters: ReferentialGetAllTelephonesPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAllTelephonesPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAnneeFormationsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetAnneeFormations`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAnneeFormations(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAnneeFormationsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAnneeReussieRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/AnneeReussie`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAnneeReussie(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAnneeReussieRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAnneeScolaireRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/AnneeScolaire`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAnneeScolaire(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAnneeScolaireRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAnneesPrestationsRaw(requestParameters: ReferentialGetAnneesPrestationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idFormateur !== undefined) {\n queryParameters['idFormateur'] = requestParameters.idFormateur;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/anneesPrestations`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAnneesPrestations(requestParameters: ReferentialGetAnneesPrestationsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAnneesPrestationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetApprenantContratsRaw(requestParameters: ReferentialGetApprenantContratsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ApprenantContrats`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.ETypeContrat.map(ETypeContratToJSON),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetApprenantContrats(requestParameters: ReferentialGetApprenantContratsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetApprenantContratsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAutoecolesRaw(requestParameters: ReferentialGetAutoecolesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.permisCode !== undefined) {\n queryParameters['permisCode'] = requestParameters.permisCode;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetAutoecoles`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAutoecoles(requestParameters: ReferentialGetAutoecolesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAutoecolesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetAvisFormateurSuiviRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/AvisFormateurSuivi`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetAvisFormateurSuivi(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetAvisFormateurSuiviRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetBothAccessLevelsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/BothAccessLevels`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetBothAccessLevels(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetBothAccessLevelsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCalcsForServiceRaw(requestParameters: ReferentialGetCalcsForServiceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idService !== undefined) {\n queryParameters['idService'] = requestParameters.idService;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCalcsForService`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCalcsForService(requestParameters: ReferentialGetCalcsForServiceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCalcsForServiceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCalendriersRaw(requestParameters: ReferentialGetCalendriersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Calendrier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCalendriers(requestParameters: ReferentialGetCalendriersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCalendriersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCategoriesRapportRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCategoriesRapport`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async referentialGetCategoriesRapport(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.referentialGetCategoriesRapportRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCategoriesStatutSocialRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCategorieStatutSocial`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCategoriesStatutSocial(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCategoriesStatutSocialRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCentreRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Centre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCentre(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCentreRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCentreByApprenantRaw(requestParameters: ReferentialGetCentreByApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/CentreByApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCentreByApprenant(requestParameters: ReferentialGetCentreByApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCentreByApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCentreByUserRaw(requestParameters: ReferentialGetCentreByUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/CentreByUser`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCentreByUser(requestParameters: ReferentialGetCentreByUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCentreByUserRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCentreGlobalRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/CentreGlobal`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCentreGlobal(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCentreGlobalRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCentreGlobalUsersRaw(requestParameters: ReferentialGetCentreGlobalUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentIduser !== undefined) {\n queryParameters['currentIduser'] = requestParameters.currentIduser;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCentreGlobalUsers`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCentreGlobalUsers(requestParameters: ReferentialGetCentreGlobalUsersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCentreGlobalUsersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCentreUsersRaw(requestParameters: ReferentialGetCentreUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCentreUsers`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCentreUsers(requestParameters: ReferentialGetCentreUsersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCentreUsersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCentresRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Centres`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCentres(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCentresRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCentresDemandeRaw(requestParameters: ReferentialGetCentresDemandeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/CentresDemande`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CentreDemandeRequestDtoToJSON(requestParameters.CentreDemandeRequestDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCentresDemande(requestParameters: ReferentialGetCentresDemandeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCentresDemandeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCertificationsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCertifications`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCertifications(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCertificationsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCivilitesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Civilites`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCivilites(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCivilitesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseRaw(requestParameters: ReferentialGetClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n if (requestParameters.typeCours !== undefined) {\n queryParameters['typeCours'] = requestParameters.typeCours;\n }\n\n if (requestParameters.idMetier !== undefined) {\n queryParameters['idMetier'] = requestParameters.idMetier;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Classe`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasse(requestParameters: ReferentialGetClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseApprenantRaw(requestParameters: ReferentialGetClasseApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ClasseApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseApprenant(requestParameters: ReferentialGetClasseApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseApprenantCurrentYearRaw(requestParameters: ReferentialGetClasseApprenantCurrentYearRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ClasseApprenantCurrentYear`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseApprenantCurrentYear(requestParameters: ReferentialGetClasseApprenantCurrentYearRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseApprenantCurrentYearRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseByInscriptionRaw(requestParameters: ReferentialGetClasseByInscriptionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idInscription !== undefined) {\n queryParameters['idInscription'] = requestParameters.idInscription;\n }\n\n if (requestParameters.isForChangementClasseTable !== undefined) {\n queryParameters['isForChangementClasseTable'] = requestParameters.isForChangementClasseTable;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ClasseByInscription`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseByInscription(requestParameters: ReferentialGetClasseByInscriptionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseByInscriptionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseForContratRaw(requestParameters: ReferentialGetClasseForContratRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetClasseForContrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseForContrat(requestParameters: ReferentialGetClasseForContratRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseForContratRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseForEvaluationRaw(requestParameters: ReferentialGetClasseForEvaluationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idEvaluation !== undefined) {\n queryParameters['idEvaluation'] = requestParameters.idEvaluation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ClasseForEvaluation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseForEvaluation(requestParameters: ReferentialGetClasseForEvaluationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseForEvaluationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseForInscriptionRaw(requestParameters: ReferentialGetClasseForInscriptionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n if (requestParameters.typeCours !== undefined) {\n queryParameters['typeCours'] = requestParameters.typeCours;\n }\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.isARE !== undefined) {\n queryParameters['isARE'] = requestParameters.isARE;\n }\n\n if (requestParameters.isSB !== undefined) {\n queryParameters['isSB'] = requestParameters.isSB;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ClasseForInscription`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseForInscription(requestParameters: ReferentialGetClasseForInscriptionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseForInscriptionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseJoursRaw(requestParameters: ReferentialGetClasseJoursRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ClasseJours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseJours(requestParameters: ReferentialGetClasseJoursRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseJoursRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseMatiereRaw(requestParameters: ReferentialGetClasseMatiereRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idInscription !== undefined) {\n queryParameters['idInscription'] = requestParameters.idInscription;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ClasseMatiere`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseMatiere(requestParameters: ReferentialGetClasseMatiereRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseMatiereRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseMatiereByClasseRaw(requestParameters: ReferentialGetClasseMatiereByClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ClasseMatiereByClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseMatiereByClasse(requestParameters: ReferentialGetClasseMatiereByClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseMatiereByClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseMatiereByClasseAndTypeEvalRaw(requestParameters: ReferentialGetClasseMatiereByClasseAndTypeEvalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.idTypeEval !== undefined) {\n queryParameters['idTypeEval'] = requestParameters.idTypeEval;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ClasseMatiereByClasseAndTypeEval`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseMatiereByClasseAndTypeEval(requestParameters: ReferentialGetClasseMatiereByClasseAndTypeEvalRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseMatiereByClasseAndTypeEvalRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClasseMatieresByNiveauRaw(requestParameters: ReferentialGetClasseMatieresByNiveauRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idclasse !== undefined) {\n queryParameters['idclasse'] = requestParameters.idclasse;\n }\n\n if (requestParameters.niveau !== undefined) {\n queryParameters['niveau'] = requestParameters.niveau;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetClasseMatieresByNiveau`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClasseMatieresByNiveau(requestParameters: ReferentialGetClasseMatieresByNiveauRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClasseMatieresByNiveauRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClausesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetClauses`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClauses(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClausesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetClausesContratRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetClausesContrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetClausesContrat(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetClausesContratRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCodePostauxRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCodePostaux`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCodePostaux(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCodePostauxRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCodePostauxByPaysRaw(requestParameters: ReferentialGetCodePostauxByPaysRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.codePays !== undefined) {\n queryParameters['codePays'] = requestParameters.codePays;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCodePostauxByPays`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCodePostauxByPays(requestParameters: ReferentialGetCodePostauxByPaysRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCodePostauxByPaysRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCodePostauxWithLocaliteRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCodePostauxWithLocalite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCodePostauxWithLocalite(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCodePostauxWithLocaliteRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCommissionsParitairesRaw(requestParameters: ReferentialGetCommissionsParitairesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idmetier !== undefined) {\n queryParameters['idmetier'] = requestParameters.idmetier;\n }\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetCommissionsParitaires`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCommissionsParitaires(requestParameters: ReferentialGetCommissionsParitairesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCommissionsParitairesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCommuneFromCodePostalRaw(requestParameters: ReferentialGetCommuneFromCodePostalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.codePays !== undefined) {\n queryParameters['codePays'] = requestParameters.codePays;\n }\n\n if (requestParameters.codePostal !== undefined) {\n queryParameters['codePostal'] = requestParameters.codePostal;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/CommuneFromCodePostal`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCommuneFromCodePostal(requestParameters: ReferentialGetCommuneFromCodePostalRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCommuneFromCodePostalRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetCompagniesAssuranceRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/CompagniesAssurance`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetCompagniesAssurance(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetCompagniesAssuranceRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetComptesBancairesPersonneRaw(requestParameters: ReferentialGetComptesBancairesPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idpersonne !== undefined) {\n queryParameters['idpersonne'] = requestParameters.idpersonne;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetComptesBancairesPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetComptesBancairesPersonne(requestParameters: ReferentialGetComptesBancairesPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetComptesBancairesPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetConseillersPedagogiquesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Conseillers`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetConseillersPedagogiques(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetConseillersPedagogiquesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetConseillersPedagogiquesCodesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ConseillersCodes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetConseillersPedagogiquesCodes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetConseillersPedagogiquesCodesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetContactSiegeSocialRaw(requestParameters: ReferentialGetContactSiegeSocialRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idSiegeSocial !== undefined) {\n queryParameters['idSiegeSocial'] = requestParameters.idSiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetContactSiegeSocial`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetContactSiegeSocial(requestParameters: ReferentialGetContactSiegeSocialRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetContactSiegeSocialRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetContratFormateurRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ContratFormateur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetContratFormateur(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetContratFormateurRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetContratInitiateursRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetContratInitiateurs`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetContratInitiateurs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetContratInitiateursRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDataBasesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/DataBases`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDataBases(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDataBasesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDateForEvaluationRaw(requestParameters: ReferentialGetDateForEvaluationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/DateForEvaluation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDateForEvaluation(requestParameters: ReferentialGetDateForEvaluationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDateForEvaluationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDecisionRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Decision`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDecision(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDecisionRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDecisionCommissionTutellesRaw(requestParameters: ReferentialGetDecisionCommissionTutellesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetDecisionCommissionTutelles`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDecisionCommissionTutelles(requestParameters: ReferentialGetDecisionCommissionTutellesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDecisionCommissionTutellesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDecisionDossierAdmissionsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetDecisionDossierAdmissions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDecisionDossierAdmissions(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDecisionDossierAdmissionsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDegreRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Degre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDegre(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDegreRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDegreCodesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/DegreCodes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDegreCodes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDegreCodesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDegreIdsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/DegreIds`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDegreIds(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDegreIdsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDelegueRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Delegue`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDelegue(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDelegueRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDeliberationTypesRaw(requestParameters: ReferentialGetDeliberationTypesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.typeDeliberation !== undefined) {\n queryParameters['typeDeliberation'] = requestParameters.typeDeliberation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/getDeliberations`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDeliberationTypes(requestParameters: ReferentialGetDeliberationTypesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDeliberationTypesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDemandeTypeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/DemandeType`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDemandeType(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDemandeTypeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDepartementsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetDepartements`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDepartements(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDepartementsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDiplomeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Diplome`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDiplome(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDiplomeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDirectionTerritorialeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/DirectionTerritoriale`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDirectionTerritoriale(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDirectionTerritorialeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDispensesChomageRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetDispensesChomage`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDispensesChomage(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDispensesChomageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDureeInoccupationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetDureeInoccupation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDureeInoccupation(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDureeInoccupationRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDureesContratRaw(requestParameters: ReferentialGetDureesContratRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.typeContrat !== undefined) {\n queryParameters['typeContrat'] = requestParameters.typeContrat;\n }\n\n if (requestParameters.idstade !== undefined) {\n queryParameters['idstade'] = requestParameters.idstade;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetDureesContrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDureesContrat(requestParameters: ReferentialGetDureesContratRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDureesContratRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetDureesContratByMetierRaw(requestParameters: ReferentialGetDureesContratByMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.typeContrat !== undefined) {\n queryParameters['typeContrat'] = requestParameters.typeContrat;\n }\n\n if (requestParameters.idmetier !== undefined) {\n queryParameters['idmetier'] = requestParameters.idmetier;\n }\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetDureesContratByMetier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetDureesContratByMetier(requestParameters: ReferentialGetDureesContratByMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetDureesContratByMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetEcoleRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Ecole`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetEcole(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetEcoleRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetEmailsPersonneRaw(requestParameters: ReferentialGetEmailsPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idpersonne !== undefined) {\n queryParameters['idpersonne'] = requestParameters.idpersonne;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetEmailsPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetEmailsPersonne(requestParameters: ReferentialGetEmailsPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetEmailsPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetEntreprisesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Entreprises`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetEntreprises(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetEntreprisesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetEtatLotSmsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/EtatLotSms`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetEtatLotSms(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetEtatLotSmsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetEtatsAgrementRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetEtatsAgrement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetEtatsAgrement(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetEtatsAgrementRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetExportTypeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ExportType`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetExportType(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetExportTypeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFonctionsChefsEntrepriseRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetFonctionsChefsEntreprise`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async referentialGetFonctionsChefsEntreprise(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.referentialGetFonctionsChefsEntrepriseRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFonctionsContactsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetFonctionsContacts`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async referentialGetFonctionsContacts(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.referentialGetFonctionsContactsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFonctionsContactsLieuRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetFonctionsContactsLieu`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async referentialGetFonctionsContactsLieu(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.referentialGetFonctionsContactsLieuRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFonctionsTuteursRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetFonctionsTuteurs`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async referentialGetFonctionsTuteurs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.referentialGetFonctionsTuteursRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFormateurRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Formateur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetFormateur(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetFormateurRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFormateurByCentreRaw(requestParameters: ReferentialGetFormateurByCentreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/FormateurByCentre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetFormateurByCentre(requestParameters: ReferentialGetFormateurByCentreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetFormateurByCentreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFormateurByIdClasseRaw(requestParameters: ReferentialGetFormateurByIdClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/FormateurByIdClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetFormateurByIdClasse(requestParameters: ReferentialGetFormateurByIdClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetFormateurByIdClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFormateurByIdClasseOrIdCentreRaw(requestParameters: ReferentialGetFormateurByIdClasseOrIdCentreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/FormateurByIdClasseOrIdCentre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetFormateurByIdClasseOrIdCentre(requestParameters: ReferentialGetFormateurByIdClasseOrIdCentreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetFormateurByIdClasseOrIdCentreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFormateurByRemplacementRaw(requestParameters: ReferentialGetFormateurByRemplacementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idRemplacement !== undefined) {\n queryParameters['idRemplacement'] = requestParameters.idRemplacement;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/FormateurByRemplacement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetFormateurByRemplacement(requestParameters: ReferentialGetFormateurByRemplacementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetFormateurByRemplacementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFormateurLocalisationContratRaw(requestParameters: ReferentialGetFormateurLocalisationContratRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idformateur !== undefined) {\n queryParameters['idformateur'] = requestParameters.idformateur;\n }\n\n if (requestParameters.idcentre !== undefined) {\n queryParameters['idcentre'] = requestParameters.idcentre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/FormateurLocalisationContrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetFormateurLocalisationContrat(requestParameters: ReferentialGetFormateurLocalisationContratRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetFormateurLocalisationContratRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFormationApprenantRaw(requestParameters: ReferentialGetFormationApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/FormationApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetFormationApprenant(requestParameters: ReferentialGetFormationApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetFormationApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFormeFormationsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetFormeFormations`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetFormeFormations(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetFormeFormationsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetFormesJuridiquesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetFormesJuridiques`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetFormesJuridiques(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetFormesJuridiquesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetGenreClasseRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GenreClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetGenreClasse(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetGenreClasseRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetGenreClasseCodesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GenreClasseCodes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetGenreClasseCodes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetGenreClasseCodesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetGenreContratRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GenreContrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetGenreContrat(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetGenreContratRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetGenreJustificatifsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GenreJustificatifs`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetGenreJustificatifs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetGenreJustificatifsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetGradeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/getGrade`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetGrade(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetGradeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetGroupByCentreQuotaRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/getGroupByCentreCentreQuota`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetGroupByCentreQuota(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetGroupByCentreQuotaRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetGsmsPersonneRaw(requestParameters: ReferentialGetGsmsPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idpersonne !== undefined) {\n queryParameters['idpersonne'] = requestParameters.idpersonne;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetGsmsPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetGsmsPersonne(requestParameters: ReferentialGetGsmsPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetGsmsPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetHeuresHebdomadairesRaw(requestParameters: ReferentialGetHeuresHebdomadairesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idcommissionParitaire !== undefined) {\n queryParameters['idcommissionParitaire'] = requestParameters.idcommissionParitaire;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetHeuresHebdomadaires`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetHeuresHebdomadaires(requestParameters: ReferentialGetHeuresHebdomadairesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetHeuresHebdomadairesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetHopeAccessLevelsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/HopeAccessLevels`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetHopeAccessLevels(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetHopeAccessLevelsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetHopeUsersRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetHopeUsers`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetHopeUsers(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetHopeUsersRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetHoraireClasseRaw(requestParameters: ReferentialGetHoraireClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/HoraireClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetHoraireClasse(requestParameters: ReferentialGetHoraireClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetHoraireClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetInscriptionDatesConvocationRaw(requestParameters: ReferentialGetInscriptionDatesConvocationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/InscriptionDatesConvocation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: GetInscriptionDatesConvocationRequestDtoToJSON(requestParameters.GetInscriptionDatesConvocationRequestDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetInscriptionDatesConvocation(requestParameters: ReferentialGetInscriptionDatesConvocationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetInscriptionDatesConvocationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetInscriptionsApprenantRaw(requestParameters: ReferentialGetInscriptionsApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n if (requestParameters.anneeScolaire !== undefined) {\n queryParameters['anneeScolaire'] = requestParameters.anneeScolaire;\n }\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/InscriptionsApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetInscriptionsApprenant(requestParameters: ReferentialGetInscriptionsApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetInscriptionsApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetJustificatifsPlagesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/PlageJustificatifs`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetJustificatifsPlages(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetJustificatifsPlagesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLanguesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Langues`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLangues(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLanguesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLearnerRepresentativesRaw(requestParameters: ReferentialGetLearnerRepresentativesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.learnerId !== undefined) {\n queryParameters['learnerId'] = requestParameters.learnerId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetLearnerRepresentatives`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLearnerRepresentatives(requestParameters: ReferentialGetLearnerRepresentativesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLearnerRepresentativesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLieuRaw(requestParameters: ReferentialGetLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Lieu`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLieu(requestParameters: ReferentialGetLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLieuFormationAgrementAvisRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetLieuFormationAgrementAvis`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLieuFormationAgrementAvis(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLieuFormationAgrementAvisRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLieuFormationAgrementDecisionsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetLieuFormationAgrementDecisions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLieuFormationAgrementDecisions(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLieuFormationAgrementDecisionsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLieuRencontresRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetLieuRencontres`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLieuRencontres(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLieuRencontresRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLieuSuiviRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/LieuSuivi`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLieuSuivi(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLieuSuiviRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLieuxSignatureRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetLieuxSignature`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLieuxSignature(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLieuxSignatureRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLocalByCentreRaw(requestParameters: ReferentialGetLocalByCentreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idCentre !== undefined) {\n queryParameters['idCentre'] = requestParameters.idCentre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/LocalByCentre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLocalByCentre(requestParameters: ReferentialGetLocalByCentreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLocalByCentreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLocalByClasseRaw(requestParameters: ReferentialGetLocalByClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/LocalByClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLocalByClasse(requestParameters: ReferentialGetLocalByClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLocalByClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLocaliteFromCodePostalRaw(requestParameters: ReferentialGetLocaliteFromCodePostalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.codePays !== undefined) {\n queryParameters['codePays'] = requestParameters.codePays;\n }\n\n if (requestParameters.codePostal !== undefined) {\n queryParameters['codePostal'] = requestParameters.codePostal;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/LocaliteFromCodePostal`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLocaliteFromCodePostal(requestParameters: ReferentialGetLocaliteFromCodePostalRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLocaliteFromCodePostalRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetLocalitesSuggestRaw(requestParameters: ReferentialGetLocalitesSuggestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.pays !== undefined) {\n queryParameters['pays'] = requestParameters.pays;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetLocalitesSuggest`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetLocalitesSuggest(requestParameters: ReferentialGetLocalitesSuggestRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetLocalitesSuggestRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMetierRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Metier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMetier(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMetierRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMetierByDegreRaw(requestParameters: ReferentialGetMetierByDegreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idDegre !== undefined) {\n queryParameters['idDegre'] = requestParameters.idDegre;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/MetierByDegre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMetierByDegre(requestParameters: ReferentialGetMetierByDegreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMetierByDegreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMetierByStadeRaw(requestParameters: ReferentialGetMetierByStadeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idStade !== undefined) {\n queryParameters['idStade'] = requestParameters.idStade;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/MetierByStade`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMetierByStade(requestParameters: ReferentialGetMetierByStadeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMetierByStadeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMetierCodesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/MetierCodes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMetierCodes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMetierCodesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetModesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetModes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetModes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetModesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetModesPaiementRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ModesPaiement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetModesPaiement(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetModesPaiementRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMoisRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Mois`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMois(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMoisRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMotifsNonAgrementRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetMotifsNonAgrement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMotifsNonAgrement(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMotifsNonAgrementRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMotifsRetraitRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetMotifsRetrait`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMotifsRetrait(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMotifsRetraitRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMotifsRuptureJeuneRaw(requestParameters: ReferentialGetMotifsRuptureJeuneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.selectedId !== undefined) {\n queryParameters['selectedId'] = requestParameters.selectedId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetMotifsRuptureJeune`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMotifsRuptureJeune(requestParameters: ReferentialGetMotifsRuptureJeuneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMotifsRuptureJeuneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMotifsRupturePatronRaw(requestParameters: ReferentialGetMotifsRupturePatronRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.selectedId !== undefined) {\n queryParameters['selectedId'] = requestParameters.selectedId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetMotifsRupturePatron`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMotifsRupturePatron(requestParameters: ReferentialGetMotifsRupturePatronRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMotifsRupturePatronRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMotifsSortieRaw(requestParameters: ReferentialGetMotifsSortieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtypeSortie !== undefined) {\n queryParameters['idtypeSortie'] = requestParameters.idtypeSortie;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetMotifSortie`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMotifsSortie(requestParameters: ReferentialGetMotifsSortieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMotifsSortieRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetMotifsSuspensionRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetMotifsSuspension`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetMotifsSuspension(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetMotifsSuspensionRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetNationaliteRaw(requestParameters: ReferentialGetNationaliteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.codeSexe !== undefined) {\n queryParameters['codeSexe'] = requestParameters.codeSexe;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Nationalite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetNationalite(requestParameters: ReferentialGetNationaliteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetNationaliteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetNiveauFormationsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetNiveauFormations`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetNiveauFormations(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetNiveauFormationsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetOperateursFormationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/OperateursFormation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetOperateursFormation(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetOperateursFormationRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetPaysRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Pays`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetPays(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetPaysRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetPermisRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetPermis`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetPermis(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetPermisRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetPersonnesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetPersonnes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetPersonnes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetPersonnesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetPlageHoraireVisiteRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/PlageHoraireVisite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetPlageHoraireVisite(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetPlageHoraireVisiteRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetPlagesRaw(requestParameters: ReferentialGetPlagesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Plage`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetPlages(requestParameters: ReferentialGetPlagesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetPlagesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetPostesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetPostes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetPostes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetPostesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetProfessionsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Professions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetProfessions(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetProfessionsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetProjetFinancementRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ProjetFinancement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetProjetFinancement(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetProjetFinancementRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetProjetFinancementByClasseRaw(requestParameters: ReferentialGetProjetFinancementByClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/projetFinancementByClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetProjetFinancementByClasse(requestParameters: ReferentialGetProjetFinancementByClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetProjetFinancementByClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetProjetFinancementByIdRaw(requestParameters: ReferentialGetProjetFinancementByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/projetFinancementById`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetProjetFinancementById(requestParameters: ReferentialGetProjetFinancementByIdRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetProjetFinancementByIdRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetRapportHopeTypesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetRapportHopeTypes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetRapportHopeTypes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetRapportHopeTypesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetReferentielRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Referentiel`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetReferentiel(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetReferentielRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetReferentielByDegreAndMetierRaw(requestParameters: ReferentialGetReferentielByDegreAndMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idDegre !== undefined) {\n queryParameters['idDegre'] = requestParameters.idDegre;\n }\n\n if (requestParameters.idMetier !== undefined) {\n queryParameters['idMetier'] = requestParameters.idMetier;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ReferentielByDegreAndMetier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetReferentielByDegreAndMetier(requestParameters: ReferentialGetReferentielByDegreAndMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetReferentielByDegreAndMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetReferentielMatieresByNiveauRaw(requestParameters: ReferentialGetReferentielMatieresByNiveauRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idreferentiel !== undefined) {\n queryParameters['idreferentiel'] = requestParameters.idreferentiel;\n }\n\n if (requestParameters.niveau !== undefined) {\n queryParameters['niveau'] = requestParameters.niveau;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetReferentielMatieresByNiveau`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetReferentielMatieresByNiveau(requestParameters: ReferentialGetReferentielMatieresByNiveauRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetReferentielMatieresByNiveauRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetRemplacementLegitimiteRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/RemplacementLegitimite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetRemplacementLegitimite(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetRemplacementLegitimiteRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetReportByModuleIdRaw(requestParameters: ReferentialGetReportByModuleIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetReportByModuleId`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetReportByModuleId(requestParameters: ReferentialGetReportByModuleIdRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetReportByModuleIdRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetRepresentantLiensRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetRepresentantLiens`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetRepresentantLiens(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetRepresentantLiensRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetRepresentantTypesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetRepresentantTypes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetRepresentantTypes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetRepresentantTypesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetRepresentantsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Representants`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetRepresentants(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetRepresentantsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetResultatAcquisRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetResultatAcquis`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetResultatAcquis(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetResultatAcquisRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetResultatDossierAdmissionsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetResultatDossierAdmissions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetResultatDossierAdmissions(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetResultatDossierAdmissionsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetResultatExamenEntreeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetResultatExamenEntree`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetResultatExamenEntree(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetResultatExamenEntreeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetResultatExamenEntreeFceRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetResultatExamenEntreeFce`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetResultatExamenEntreeFce(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetResultatExamenEntreeFceRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetResultatFormationsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetResultatFormations`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetResultatFormations(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetResultatFormationsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetResultatPermisRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetResultatPermis`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetResultatPermis(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetResultatPermisRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetResultatValidesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetResultatValides`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetResultatValides(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetResultatValidesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSSRSReportFormatsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetSSRSReportFormats`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSSRSReportFormats(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSSRSReportFormatsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSameCentreUsersRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetSameCentreUsers`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSameCentreUsers(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSameCentreUsersRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSecteurRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Secteur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSecteur(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSecteurRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSecteurHomogeneByDegreRaw(requestParameters: ReferentialGetSecteurHomogeneByDegreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idDegre !== undefined) {\n queryParameters['idDegre'] = requestParameters.idDegre;\n }\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/SecteurHomogeneByDegre`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSecteurHomogeneByDegre(requestParameters: ReferentialGetSecteurHomogeneByDegreRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSecteurHomogeneByDegreRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetServiceTutelleRaw(requestParameters: ReferentialGetServiceTutelleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.userFilter !== undefined) {\n queryParameters['userFilter'] = requestParameters.userFilter;\n }\n\n if (requestParameters.ifapmeSide !== undefined) {\n queryParameters['ifapmeSide'] = requestParameters.ifapmeSide;\n }\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/ServiceTutelle`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetServiceTutelle(requestParameters: ReferentialGetServiceTutelleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetServiceTutelleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetServiceUsersRaw(requestParameters: ReferentialGetServiceUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetServiceUsers`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetServiceUsers(requestParameters: ReferentialGetServiceUsersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetServiceUsersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetServiceUsersByRolesRaw(requestParameters: ReferentialGetServiceUsersByRolesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idService !== undefined) {\n queryParameters['idService'] = requestParameters.idService;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetServiceUsersByRoles`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.ELevelName.map(ELevelNameToJSON),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetServiceUsersByRoles(requestParameters: ReferentialGetServiceUsersByRolesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetServiceUsersByRolesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetServicesByIdApprenantRaw(requestParameters: ReferentialGetServicesByIdApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n if (requestParameters.ifapmeSide !== undefined) {\n queryParameters['ifapmeSide'] = requestParameters.ifapmeSide;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetServicesByIdApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetServicesByIdApprenant(requestParameters: ReferentialGetServicesByIdApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetServicesByIdApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSexeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Sexe`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSexe(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSexeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSiegeLieuTypesSuiviRaw(requestParameters: ReferentialGetSiegeLieuTypesSuiviRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetSiegeLieuTypesSuivi`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSiegeLieuTypesSuivi(requestParameters: ReferentialGetSiegeLieuTypesSuiviRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSiegeLieuTypesSuiviRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSiegeSociauxRaw(requestParameters: ReferentialGetSiegeSociauxRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetSiegeSociaux`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSiegeSociaux(requestParameters: ReferentialGetSiegeSociauxRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSiegeSociauxRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSocietesExternesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetSocietesExternes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSocietesExternes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSocietesExternesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSocietesExternesByMetierRaw(requestParameters: ReferentialGetSocietesExternesByMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idmetier !== undefined) {\n queryParameters['idmetier'] = requestParameters.idmetier;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetSocietesExternesByMetier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSocietesExternesByMetier(requestParameters: ReferentialGetSocietesExternesByMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSocietesExternesByMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSousStatutsByCategorieRaw(requestParameters: ReferentialGetSousStatutsByCategorieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idCategorie !== undefined) {\n queryParameters['idCategorie'] = requestParameters.idCategorie;\n }\n\n if (requestParameters.currentIdstatutSocial !== undefined) {\n queryParameters['currentIdstatutSocial'] = requestParameters.currentIdstatutSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetSousStatutsByCategorie`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSousStatutsByCategorie(requestParameters: ReferentialGetSousStatutsByCategorieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSousStatutsByCategorieRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSousTypeSuivisRaw(requestParameters: ReferentialGetSousTypeSuivisRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtypeSuivi !== undefined) {\n queryParameters['idtypeSuivi'] = requestParameters.idtypeSuivi;\n }\n\n if (requestParameters.idsousTypeSuivi !== undefined) {\n queryParameters['idsousTypeSuivi'] = requestParameters.idsousTypeSuivi;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetSousTypeSuivis`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSousTypeSuivis(requestParameters: ReferentialGetSousTypeSuivisRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSousTypeSuivisRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSpecificiteCoursRaw(requestParameters: ReferentialGetSpecificiteCoursRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/SpecificiteCours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSpecificiteCours(requestParameters: ReferentialGetSpecificiteCoursRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSpecificiteCoursRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetSpecificiteCoursCodesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/SpecificiteCoursCodes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetSpecificiteCoursCodes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetSpecificiteCoursCodesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetStadeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Stade`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetStade(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetStadeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetStadeByMetierRaw(requestParameters: ReferentialGetStadeByMetierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idmetier !== undefined) {\n queryParameters['idmetier'] = requestParameters.idmetier;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/StadeByMetier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetStadeByMetier(requestParameters: ReferentialGetStadeByMetierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetStadeByMetierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetStadeContratDMRaw(requestParameters: ReferentialGetStadeContratDMRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/StadeContratDM`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetStadeContratDM(requestParameters: ReferentialGetStadeContratDMRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetStadeContratDMRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetStatutContratWalterRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetStatutContratWalter`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetStatutContratWalter(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetStatutContratWalterRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetStatutInscriptionRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/StatutInscription`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetStatutInscription(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetStatutInscriptionRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetStatutLocalisationAgrementRaw(requestParameters: ReferentialGetStatutLocalisationAgrementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.isLocalisation !== undefined) {\n queryParameters['isLocalisation'] = requestParameters.isLocalisation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/statutLocalisationAgrement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetStatutLocalisationAgrement(requestParameters: ReferentialGetStatutLocalisationAgrementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetStatutLocalisationAgrementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetStatutSocialRaw(requestParameters: ReferentialGetStatutSocialRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentIdstatutSocial !== undefined) {\n queryParameters['currentIdstatutSocial'] = requestParameters.currentIdstatutSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/StatutSocial`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetStatutSocial(requestParameters: ReferentialGetStatutSocialRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetStatutSocialRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetStatutStageRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/StatutStage`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetStatutStage(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetStatutStageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTaillesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTailles`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTailles(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTaillesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTelephonesPersonneRaw(requestParameters: ReferentialGetTelephonesPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idpersonne !== undefined) {\n queryParameters['idpersonne'] = requestParameters.idpersonne;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTelephonesPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTelephonesPersonne(requestParameters: ReferentialGetTelephonesPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTelephonesPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTitreDiplomeCertificationsRaw(requestParameters: ReferentialGetTitreDiplomeCertificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTitreDiplomeCertifications`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTitreDiplomeCertifications(requestParameters: ReferentialGetTitreDiplomeCertificationsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTitreDiplomeCertificationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTitreDiplomeCertificationsIfapmeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTitreDiplomeCertificationsIfapme`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTitreDiplomeCertificationsIfapme(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTitreDiplomeCertificationsIfapmeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTitresPedagogiquesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TitresPedagogiques`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTitresPedagogiques(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTitresPedagogiquesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeContratFormateurRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/Type`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeContratFormateur(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeContratFormateurRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeCoursRaw(requestParameters: ReferentialGetTypeCoursRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.ifapmeSide !== undefined) {\n queryParameters['ifapmeSide'] = requestParameters.ifapmeSide;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeCours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeCours(requestParameters: ReferentialGetTypeCoursRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeCoursRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeCoursCodesRaw(requestParameters: ReferentialGetTypeCoursCodesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.ifapmeSide !== undefined) {\n queryParameters['ifapmeSide'] = requestParameters.ifapmeSide;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeCoursCodes`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeCoursCodes(requestParameters: ReferentialGetTypeCoursCodesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeCoursCodesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeCoursIdRaw(requestParameters: ReferentialGetTypeCoursIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.ifapmeSide !== undefined) {\n queryParameters['ifapmeSide'] = requestParameters.ifapmeSide;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeCoursIds`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeCoursId(requestParameters: ReferentialGetTypeCoursIdRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeCoursIdRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeDispenseRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeDispense`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeDispense(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeDispenseRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeEnseignementRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeEnseignement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeEnseignement(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeEnseignementRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeEvaluationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeEvaluation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeEvaluation(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeEvaluationRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeEvaluationByClasseRaw(requestParameters: ReferentialGetTypeEvaluationByClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idEvaluation !== undefined) {\n queryParameters['idEvaluation'] = requestParameters.idEvaluation;\n }\n\n if (requestParameters.idClasse !== undefined) {\n queryParameters['idClasse'] = requestParameters.idClasse;\n }\n\n if (requestParameters.idClasseMatiere !== undefined) {\n queryParameters['idClasseMatiere'] = requestParameters.idClasseMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeEvaluationByClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeEvaluationByClasse(requestParameters: ReferentialGetTypeEvaluationByClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeEvaluationByClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeFinancementRaw(requestParameters: ReferentialGetTypeFinancementRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeFinancement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeFinancement(requestParameters: ReferentialGetTypeFinancementRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeFinancementRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeJustificatifsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeJustificatifs`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeJustificatifs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeJustificatifsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeLotSmsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeLotSms`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeLotSms(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeLotSmsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeRemplacementRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeRemplacement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeRemplacement(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeRemplacementRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeReussiteRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeReussite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeReussite(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeReussiteRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeSuiviRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypeSuivi`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeSuivi(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeSuiviRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeSuiviActionsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypeSuiviActions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeSuiviActions(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeSuiviActionsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypeSuivisRaw(requestParameters: ReferentialGetTypeSuivisRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.side !== undefined) {\n queryParameters['side'] = requestParameters.side;\n }\n\n if (requestParameters.idtypeSuivi !== undefined) {\n queryParameters['idtypeSuivi'] = requestParameters.idtypeSuivi;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypeSuivis`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypeSuivis(requestParameters: ReferentialGetTypeSuivisRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypeSuivisRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesAcquisFichierRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesAcquisFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesAcquisFichier(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesAcquisFichierRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesAdresseRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesAdresse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesAdresse(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesAdresseRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesApprenantFichierRaw(requestParameters: ReferentialGetTypesApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesApprenantFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.ETypeApprenantFichier.map(ETypeApprenantFichierToJSON),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesApprenantFichier(requestParameters: ReferentialGetTypesApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesApprenantFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesAvenantRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesAvenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesAvenant(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesAvenantRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesBulletinRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesBulletin`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesBulletin(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesBulletinRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesContratFichierRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesContratFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesContratFichier(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesContratFichierRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesDiplomeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/TypesDiplome`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesDiplome(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesDiplomeRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesEmailRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesEmail`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesEmail(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesEmailRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesEntrepriseRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesEntreprise`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesEntreprise(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesEntrepriseRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesLieuFormationFichierRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesLieuFormationFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesLieuFormationFichier(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesLieuFormationFichierRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesSiegeSocialFichierRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesSiegeSocialFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesSiegeSocialFichier(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesSiegeSocialFichierRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesSortieRaw(requestParameters: ReferentialGetTypesSortieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesSortie`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesSortie(requestParameters: ReferentialGetTypesSortieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesSortieRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesSuiviFichierRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesSuiviFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesSuiviFichier(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesSuiviFichierRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetTypesTelephoneRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetTypesTelephone`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetTypesTelephone(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetTypesTelephoneRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetUsersByRolesRaw(requestParameters: ReferentialGetUsersByRolesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentIduser !== undefined) {\n queryParameters['currentIduser'] = requestParameters.currentIduser;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetUsersByRoles`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.ELevelName.map(ELevelNameToJSON),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetUsersByRoles(requestParameters: ReferentialGetUsersByRolesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetUsersByRolesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetUsersByRolesAndApprenantRaw(requestParameters: ReferentialGetUsersByRolesAndApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/GetUsersByRolesAndApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.ELevelName.map(ELevelNameToJSON),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetUsersByRolesAndApprenant(requestParameters: ReferentialGetUsersByRolesAndApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetUsersByRolesAndApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialGetWalterAccessLevelsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/WalterAccessLevels`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialGetWalterAccessLevels(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialGetWalterAccessLevelsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialLocalsByMatiereRaw(requestParameters: ReferentialLocalsByMatiereRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idClasseMatiere !== undefined) {\n queryParameters['idClasseMatiere'] = requestParameters.idClasseMatiere;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/LocalsByMatiere`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialLocalsByMatiere(requestParameters: ReferentialLocalsByMatiereRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialLocalsByMatiereRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialMetierByStadeForApprenantRaw(requestParameters: ReferentialMetierByStadeForApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idStade !== undefined) {\n queryParameters['idStade'] = requestParameters.idStade;\n }\n\n if (requestParameters.idApprenant !== undefined) {\n queryParameters['idApprenant'] = requestParameters.idApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/MetierByStadeForApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialMetierByStadeForApprenant(requestParameters: ReferentialMetierByStadeForApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialMetierByStadeForApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialMetierByStadeForContratRaw(requestParameters: ReferentialMetierByStadeForContratRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idStade !== undefined) {\n queryParameters['idStade'] = requestParameters.idStade;\n }\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/MetierByStadeForContrat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialMetierByStadeForContrat(requestParameters: ReferentialMetierByStadeForContratRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialMetierByStadeForContratRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentialMetierNotAPRaw(requestParameters: ReferentialMetierNotAPRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.currentId !== undefined) {\n queryParameters['currentId'] = requestParameters.currentId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referential/MetierNotAP`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReferentialResultInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentialMetierNotAP(requestParameters: ReferentialMetierNotAPRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentialMetierNotAPRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n FcbReferentielDto,\n FcbReferentielGridDtoPaginatedResults,\n FilterCriteriaInfo,\n ReferentielSearch,\n SaveReferentielDto,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FcbReferentielDtoFromJSON,\n FcbReferentielDtoToJSON,\n FcbReferentielGridDtoPaginatedResultsFromJSON,\n FcbReferentielGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentielSearchFromJSON,\n ReferentielSearchToJSON,\n SaveReferentielDtoFromJSON,\n SaveReferentielDtoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ReferentielBaseSearchRequest {\n ReferentielSearch?: ReferentielSearch;\n}\n\nexport interface ReferentielDeleteRequest {\n id?: number;\n}\n\nexport interface ReferentielExistsRequest {\n FcbReferentielDto?: FcbReferentielDto;\n}\n\nexport interface ReferentielGetRequest {\n id?: number;\n}\n\nexport interface ReferentielGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ReferentielGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ReferentielGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ReferentielIsEditableRequest {\n id?: number;\n}\n\nexport interface ReferentielSaveRequest {\n SaveReferentielDto?: SaveReferentielDto;\n}\n\n/**\n * \n */\nexport class ReferentielApi extends runtime.BaseAPI {\n\n /**\n */\n async referentielBaseSearchRaw(requestParameters: ReferentielBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referentiel/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ReferentielSearchToJSON(requestParameters.ReferentielSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbReferentielGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async referentielBaseSearch(requestParameters: ReferentielBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentielBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentielDeleteRaw(requestParameters: ReferentielDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referentiel`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async referentielDelete(requestParameters: ReferentielDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentielDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentielExistsRaw(requestParameters: ReferentielExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referentiel/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n body: FcbReferentielDtoToJSON(requestParameters.FcbReferentielDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async referentielExists(requestParameters: ReferentielExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentielExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentielGetRaw(requestParameters: ReferentielGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referentiel`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbReferentielDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentielGet(requestParameters: ReferentielGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentielGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentielGetDisplayNameRaw(requestParameters: ReferentielGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referentiel/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async referentielGetDisplayName(requestParameters: ReferentielGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentielGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentielGetSearchCriteriasRaw(requestParameters: ReferentielGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referentiel/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async referentielGetSearchCriterias(requestParameters: ReferentielGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.referentielGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentielGetSelectItemsRaw(requestParameters: ReferentielGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling referentielGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referentiel/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async referentielGetSelectItems(requestParameters: ReferentielGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.referentielGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentielIsEditableRaw(requestParameters: ReferentielIsEditableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referentiel/IsEditable`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentielIsEditable(requestParameters: ReferentielIsEditableRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentielIsEditableRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async referentielSaveRaw(requestParameters: ReferentielSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Referentiel`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SaveReferentielDtoToJSON(requestParameters.SaveReferentielDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbReferentielDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async referentielSave(requestParameters: ReferentielSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.referentielSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRechercheRemplacementDtoPaginatedResults,\n FcbRemplacementDto,\n FilterCriteriaInfo,\n RechercheRemplacementSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRechercheRemplacementDtoPaginatedResultsFromJSON,\n FcbRechercheRemplacementDtoPaginatedResultsToJSON,\n FcbRemplacementDtoFromJSON,\n FcbRemplacementDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheRemplacementSearchFromJSON,\n RechercheRemplacementSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface RemplacementBaseSearchRequest {\n RechercheRemplacementSearch?: RechercheRemplacementSearch;\n}\n\nexport interface RemplacementDeleteRequest {\n id?: number;\n}\n\nexport interface RemplacementGetRequest {\n id?: number;\n}\n\nexport interface RemplacementGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface RemplacementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface RemplacementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface RemplacementSaveRequest {\n FcbRemplacementDto?: FcbRemplacementDto;\n}\n\n/**\n * \n */\nexport class RemplacementApi extends runtime.BaseAPI {\n\n /**\n */\n async remplacementBaseSearchRaw(requestParameters: RemplacementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Remplacement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheRemplacementSearchToJSON(requestParameters.RechercheRemplacementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheRemplacementDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async remplacementBaseSearch(requestParameters: RemplacementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.remplacementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementDeleteRaw(requestParameters: RemplacementDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Remplacement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async remplacementDelete(requestParameters: RemplacementDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.remplacementDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementGetRaw(requestParameters: RemplacementGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Remplacement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRemplacementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async remplacementGet(requestParameters: RemplacementGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.remplacementGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementGetDisplayNameRaw(requestParameters: RemplacementGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Remplacement/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async remplacementGetDisplayName(requestParameters: RemplacementGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.remplacementGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementGetSearchCriteriasRaw(requestParameters: RemplacementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Remplacement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async remplacementGetSearchCriterias(requestParameters: RemplacementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.remplacementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementGetSelectItemsRaw(requestParameters: RemplacementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling remplacementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Remplacement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async remplacementGetSelectItems(requestParameters: RemplacementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.remplacementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementSaveRaw(requestParameters: RemplacementSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Remplacement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbRemplacementDtoToJSON(requestParameters.FcbRemplacementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRemplacementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async remplacementSave(requestParameters: RemplacementSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.remplacementSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults,\n FcbRemplacementDefinitifDto,\n FilterCriteriaInfo,\n RechercheClasseHoraireRemplacementDefinitiveSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResultsFromJSON,\n FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResultsToJSON,\n FcbRemplacementDefinitifDtoFromJSON,\n FcbRemplacementDefinitifDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RechercheClasseHoraireRemplacementDefinitiveSearchFromJSON,\n RechercheClasseHoraireRemplacementDefinitiveSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface RemplacementDefinitiveBaseSearchRequest {\n RechercheClasseHoraireRemplacementDefinitiveSearch?: RechercheClasseHoraireRemplacementDefinitiveSearch;\n}\n\nexport interface RemplacementDefinitiveGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface RemplacementDefinitiveGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface RemplacementDefinitiveSaveRequest {\n FcbRemplacementDefinitifDto?: FcbRemplacementDefinitifDto;\n}\n\n/**\n * \n */\nexport class RemplacementDefinitiveApi extends runtime.BaseAPI {\n\n /**\n */\n async remplacementDefinitiveBaseSearchRaw(requestParameters: RemplacementDefinitiveBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementDefinitive/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RechercheClasseHoraireRemplacementDefinitiveSearchToJSON(requestParameters.RechercheClasseHoraireRemplacementDefinitiveSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async remplacementDefinitiveBaseSearch(requestParameters: RemplacementDefinitiveBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.remplacementDefinitiveBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementDefinitiveGetSearchCriteriasRaw(requestParameters: RemplacementDefinitiveGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementDefinitive/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async remplacementDefinitiveGetSearchCriterias(requestParameters: RemplacementDefinitiveGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.remplacementDefinitiveGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementDefinitiveGetSelectItemsRaw(requestParameters: RemplacementDefinitiveGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling remplacementDefinitiveGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementDefinitive/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async remplacementDefinitiveGetSelectItems(requestParameters: RemplacementDefinitiveGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.remplacementDefinitiveGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async remplacementDefinitiveSaveRaw(requestParameters: RemplacementDefinitiveSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RemplacementDefinitive`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbRemplacementDefinitifDtoToJSON(requestParameters.FcbRemplacementDefinitifDto),\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async remplacementDefinitiveSave(requestParameters: RemplacementDefinitiveSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.remplacementDefinitiveSaveRaw(requestParameters, initOverrides);\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRapportGridDtoPaginatedResults,\n FcbReportAccesPermissionDto,\n FcbReportCentrePermissionDto,\n FcbReportModulePermissionDto,\n FcbReportPermissionsDto,\n FileDownloadDto,\n FilterCriteriaInfo,\n RapportSearch,\n ReportParametersDto,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRapportGridDtoPaginatedResultsFromJSON,\n FcbRapportGridDtoPaginatedResultsToJSON,\n FcbReportAccesPermissionDtoFromJSON,\n FcbReportAccesPermissionDtoToJSON,\n FcbReportCentrePermissionDtoFromJSON,\n FcbReportCentrePermissionDtoToJSON,\n FcbReportModulePermissionDtoFromJSON,\n FcbReportModulePermissionDtoToJSON,\n FcbReportPermissionsDtoFromJSON,\n FcbReportPermissionsDtoToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RapportSearchFromJSON,\n RapportSearchToJSON,\n ReportParametersDtoFromJSON,\n ReportParametersDtoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface ReportBaseSearchRequest {\n RapportSearch?: RapportSearch;\n}\n\nexport interface ReportGetDisplayNameRequest {\n name?: string;\n}\n\nexport interface ReportGetPermissionsRequest {\n id?: number;\n}\n\nexport interface ReportGetReportParametersRequest {\n reportName?: string;\n}\n\nexport interface ReportGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ReportGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ReportGetViewableReportRequest {\n reportName?: string;\n ReportParametersDto?: ReportParametersDto;\n}\n\nexport interface ReportSaveAccesPermissionsRequest {\n FcbReportAccesPermissionDto?: FcbReportAccesPermissionDto;\n}\n\nexport interface ReportSaveCentrePermissionsRequest {\n FcbReportCentrePermissionDto?: FcbReportCentrePermissionDto;\n}\n\nexport interface ReportSaveModulePermissionsRequest {\n FcbReportModulePermissionDto?: FcbReportModulePermissionDto;\n}\n\n/**\n * \n */\nexport class ReportApi extends runtime.BaseAPI {\n\n /**\n */\n async reportBaseSearchRaw(requestParameters: ReportBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RapportSearchToJSON(requestParameters.RapportSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRapportGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async reportBaseSearch(requestParameters: ReportBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.reportBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async reportGetDisplayNameRaw(requestParameters: ReportGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.name !== undefined) {\n queryParameters['name'] = requestParameters.name;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async reportGetDisplayName(requestParameters: ReportGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.reportGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async reportGetPermissionsRaw(requestParameters: ReportGetPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/GetPermissions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbReportPermissionsDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async reportGetPermissions(requestParameters: ReportGetPermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.reportGetPermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async reportGetReportParametersRaw(requestParameters: ReportGetReportParametersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.reportName !== undefined) {\n queryParameters['reportName'] = requestParameters.reportName;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/GetReportParameters`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ReportParametersDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async reportGetReportParameters(requestParameters: ReportGetReportParametersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.reportGetReportParametersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async reportGetSearchCriteriasRaw(requestParameters: ReportGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async reportGetSearchCriterias(requestParameters: ReportGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.reportGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async reportGetSelectItemsRaw(requestParameters: ReportGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling reportGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async reportGetSelectItems(requestParameters: ReportGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.reportGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async reportGetViewableReportRaw(requestParameters: ReportGetViewableReportRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.reportName !== undefined) {\n queryParameters['reportName'] = requestParameters.reportName;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/GetViewableReport`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ReportParametersDtoToJSON(requestParameters.ReportParametersDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async reportGetViewableReport(requestParameters: ReportGetViewableReportRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.reportGetViewableReportRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async reportSaveAccesPermissionsRaw(requestParameters: ReportSaveAccesPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/SaveAccesPermissions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbReportAccesPermissionDtoToJSON(requestParameters.FcbReportAccesPermissionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbReportAccesPermissionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async reportSaveAccesPermissions(requestParameters: ReportSaveAccesPermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.reportSaveAccesPermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async reportSaveCentrePermissionsRaw(requestParameters: ReportSaveCentrePermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/SaveCentrePermissions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbReportCentrePermissionDtoToJSON(requestParameters.FcbReportCentrePermissionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbReportCentrePermissionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async reportSaveCentrePermissions(requestParameters: ReportSaveCentrePermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.reportSaveCentrePermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async reportSaveModulePermissionsRaw(requestParameters: ReportSaveModulePermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Report/SaveModulePermissions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbReportModulePermissionDtoToJSON(requestParameters.FcbReportModulePermissionDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbReportModulePermissionDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async reportSaveModulePermissions(requestParameters: ReportSaveModulePermissionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.reportSaveModulePermissionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRepresentantDto,\n FcbRepresentantGridDtoPaginatedResults,\n FilterCriteriaInfo,\n RepresentantSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FcbRepresentantDtoFromJSON,\n FcbRepresentantDtoToJSON,\n FcbRepresentantGridDtoPaginatedResultsFromJSON,\n FcbRepresentantGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RepresentantSearchFromJSON,\n RepresentantSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface RepresentantBaseSearchRequest {\n RepresentantSearch?: RepresentantSearch;\n}\n\nexport interface RepresentantCheckDoublonsRequest {\n FcbRepresentantDto?: FcbRepresentantDto;\n}\n\nexport interface RepresentantDeleteRequest {\n id?: number;\n}\n\nexport interface RepresentantGetRequest {\n id?: number;\n}\n\nexport interface RepresentantGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface RepresentantGetEmergencyContactRequest {\n apprenantId?: number;\n}\n\nexport interface RepresentantGetIdpersonneRequest {\n idrepresentant?: number;\n}\n\nexport interface RepresentantGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface RepresentantGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface RepresentantSaveRequest {\n FcbRepresentantDto?: FcbRepresentantDto;\n}\n\nexport interface RepresentantSearchRepresentantIdsRequest {\n RepresentantSearch?: RepresentantSearch;\n}\n\n/**\n * \n */\nexport class RepresentantApi extends runtime.BaseAPI {\n\n /**\n */\n async representantBaseSearchRaw(requestParameters: RepresentantBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RepresentantSearchToJSON(requestParameters.RepresentantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRepresentantGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async representantBaseSearch(requestParameters: RepresentantBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantCheckDoublonsRaw(requestParameters: RepresentantCheckDoublonsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant/CheckDoublons`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbRepresentantDtoToJSON(requestParameters.FcbRepresentantDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async representantCheckDoublons(requestParameters: RepresentantCheckDoublonsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantCheckDoublonsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantDeleteRaw(requestParameters: RepresentantDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async representantDelete(requestParameters: RepresentantDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantGetRaw(requestParameters: RepresentantGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRepresentantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async representantGet(requestParameters: RepresentantGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantGetDisplayNameRaw(requestParameters: RepresentantGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async representantGetDisplayName(requestParameters: RepresentantGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantGetEmergencyContactRaw(requestParameters: RepresentantGetEmergencyContactRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.apprenantId !== undefined) {\n queryParameters['apprenantId'] = requestParameters.apprenantId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant/GetEmergencyContact`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRepresentantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async representantGetEmergencyContact(requestParameters: RepresentantGetEmergencyContactRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantGetEmergencyContactRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantGetIdpersonneRaw(requestParameters: RepresentantGetIdpersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idrepresentant !== undefined) {\n queryParameters['idrepresentant'] = requestParameters.idrepresentant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant/GetIdpersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async representantGetIdpersonne(requestParameters: RepresentantGetIdpersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantGetIdpersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantGetSearchCriteriasRaw(requestParameters: RepresentantGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async representantGetSearchCriterias(requestParameters: RepresentantGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantGetSelectItemsRaw(requestParameters: RepresentantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling representantGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async representantGetSelectItems(requestParameters: RepresentantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantSaveRaw(requestParameters: RepresentantSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbRepresentantDtoToJSON(requestParameters.FcbRepresentantDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRepresentantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async representantSave(requestParameters: RepresentantSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantSearchRepresentantIdsRaw(requestParameters: RepresentantSearchRepresentantIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Representant/SearchRepresentantIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RepresentantSearchToJSON(requestParameters.RepresentantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async representantSearchRepresentantIds(requestParameters: RepresentantSearchRepresentantIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantSearchRepresentantIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ApprenantRepresentantsSearch,\n FcbRepresentantApprenantsliesDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n ApprenantRepresentantsSearchFromJSON,\n ApprenantRepresentantsSearchToJSON,\n FcbRepresentantApprenantsliesDtoPaginatedResultsFromJSON,\n FcbRepresentantApprenantsliesDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface RepresentantApprenantLiesBaseSearchRequest {\n ApprenantRepresentantsSearch?: ApprenantRepresentantsSearch;\n}\n\nexport interface RepresentantApprenantLiesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface RepresentantApprenantLiesGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class RepresentantApprenantLiesApi extends runtime.BaseAPI {\n\n /**\n */\n async representantApprenantLiesBaseSearchRaw(requestParameters: RepresentantApprenantLiesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantApprenantLies/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ApprenantRepresentantsSearchToJSON(requestParameters.ApprenantRepresentantsSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRepresentantApprenantsliesDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async representantApprenantLiesBaseSearch(requestParameters: RepresentantApprenantLiesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantApprenantLiesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantApprenantLiesGetSearchCriteriasRaw(requestParameters: RepresentantApprenantLiesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantApprenantLies/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async representantApprenantLiesGetSearchCriterias(requestParameters: RepresentantApprenantLiesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantApprenantLiesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantApprenantLiesGetSelectItemsRaw(requestParameters: RepresentantApprenantLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling representantApprenantLiesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantApprenantLies/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async representantApprenantLiesGetSelectItems(requestParameters: RepresentantApprenantLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantApprenantLiesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbRepresentantDoublonGridDtoPaginatedResults,\n FilterCriteriaInfo,\n RepresentantDoublonSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbRepresentantDoublonGridDtoPaginatedResultsFromJSON,\n FcbRepresentantDoublonGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n RepresentantDoublonSearchFromJSON,\n RepresentantDoublonSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface RepresentantDoublonBaseSearchRequest {\n RepresentantDoublonSearch?: RepresentantDoublonSearch;\n}\n\nexport interface RepresentantDoublonGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface RepresentantDoublonGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class RepresentantDoublonApi extends runtime.BaseAPI {\n\n /**\n */\n async representantDoublonBaseSearchRaw(requestParameters: RepresentantDoublonBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantDoublon/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RepresentantDoublonSearchToJSON(requestParameters.RepresentantDoublonSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbRepresentantDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async representantDoublonBaseSearch(requestParameters: RepresentantDoublonBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantDoublonBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantDoublonGetSearchCriteriasRaw(requestParameters: RepresentantDoublonGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantDoublon/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async representantDoublonGetSearchCriterias(requestParameters: RepresentantDoublonGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantDoublonGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantDoublonGetSelectItemsRaw(requestParameters: RepresentantDoublonGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling representantDoublonGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantDoublon/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async representantDoublonGetSelectItems(requestParameters: RepresentantDoublonGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantDoublonGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DisplayNameDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n RepresentantSelectorGridDtoPaginatedResults,\n RepresentantSelectorSearch,\n} from '../models/index';\nimport {\n DisplayNameDtoFromJSON,\n DisplayNameDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n RepresentantSelectorGridDtoPaginatedResultsFromJSON,\n RepresentantSelectorGridDtoPaginatedResultsToJSON,\n RepresentantSelectorSearchFromJSON,\n RepresentantSelectorSearchToJSON,\n} from '../models/index';\n\nexport interface RepresentantSelectorBaseSearchRequest {\n RepresentantSelectorSearch?: RepresentantSelectorSearch;\n}\n\nexport interface RepresentantSelectorGetDisplayNamesRequest {\n request_body?: Array;\n}\n\nexport interface RepresentantSelectorGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface RepresentantSelectorGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class RepresentantSelectorApi extends runtime.BaseAPI {\n\n /**\n */\n async representantSelectorBaseSearchRaw(requestParameters: RepresentantSelectorBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantSelector/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RepresentantSelectorSearchToJSON(requestParameters.RepresentantSelectorSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RepresentantSelectorGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async representantSelectorBaseSearch(requestParameters: RepresentantSelectorBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.representantSelectorBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantSelectorGetDisplayNamesRaw(requestParameters: RepresentantSelectorGetDisplayNamesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantSelector/GetDisplayNames`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DisplayNameDtoFromJSON));\n }\n\n /**\n */\n async representantSelectorGetDisplayNames(requestParameters: RepresentantSelectorGetDisplayNamesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantSelectorGetDisplayNamesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantSelectorGetSearchCriteriasRaw(requestParameters: RepresentantSelectorGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantSelector/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async representantSelectorGetSearchCriterias(requestParameters: RepresentantSelectorGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantSelectorGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async representantSelectorGetSelectItemsRaw(requestParameters: RepresentantSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling representantSelectorGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/RepresentantSelector/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async representantSelectorGetSelectItems(requestParameters: RepresentantSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.representantSelectorGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbSecteurDto,\n FcbSecteurGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SecteurSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FcbSecteurDtoFromJSON,\n FcbSecteurDtoToJSON,\n FcbSecteurGridDtoPaginatedResultsFromJSON,\n FcbSecteurGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SecteurSearchFromJSON,\n SecteurSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface SecteurBaseSearchRequest {\n SecteurSearch?: SecteurSearch;\n}\n\nexport interface SecteurCodeExistsRequest {\n code?: string;\n}\n\nexport interface SecteurDeleteRequest {\n id?: string;\n}\n\nexport interface SecteurGetRequest {\n id?: string;\n}\n\nexport interface SecteurGetDisplayNameRequest {\n id?: string;\n}\n\nexport interface SecteurGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SecteurGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SecteurSaveRequest {\n FcbSecteurDto?: FcbSecteurDto;\n}\n\n/**\n * \n */\nexport class SecteurApi extends runtime.BaseAPI {\n\n /**\n */\n async secteurBaseSearchRaw(requestParameters: SecteurBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Secteur/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SecteurSearchToJSON(requestParameters.SecteurSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSecteurGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async secteurBaseSearch(requestParameters: SecteurBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurCodeExistsRaw(requestParameters: SecteurCodeExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Secteur/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async secteurCodeExists(requestParameters: SecteurCodeExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurCodeExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurDeleteRaw(requestParameters: SecteurDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Secteur`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async secteurDelete(requestParameters: SecteurDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurGetRaw(requestParameters: SecteurGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Secteur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSecteurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async secteurGet(requestParameters: SecteurGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurGetDisplayNameRaw(requestParameters: SecteurGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Secteur/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async secteurGetDisplayName(requestParameters: SecteurGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurGetSearchCriteriasRaw(requestParameters: SecteurGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Secteur/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async secteurGetSearchCriterias(requestParameters: SecteurGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.secteurGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurGetSelectItemsRaw(requestParameters: SecteurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling secteurGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Secteur/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async secteurGetSelectItems(requestParameters: SecteurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.secteurGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurSaveRaw(requestParameters: SecteurSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Secteur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbSecteurDtoToJSON(requestParameters.FcbSecteurDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSecteurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async secteurSave(requestParameters: SecteurSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbSecteurHomogeneDto,\n FcbSecteurHomogeneGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SecteurHomogeneSearch,\n SelectItem,\n ValidationError,\n} from '../models/index';\nimport {\n FcbSecteurHomogeneDtoFromJSON,\n FcbSecteurHomogeneDtoToJSON,\n FcbSecteurHomogeneGridDtoPaginatedResultsFromJSON,\n FcbSecteurHomogeneGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SecteurHomogeneSearchFromJSON,\n SecteurHomogeneSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface SecteurHomogeneBaseSearchRequest {\n SecteurHomogeneSearch?: SecteurHomogeneSearch;\n}\n\nexport interface SecteurHomogeneDeleteRequest {\n id?: number;\n}\n\nexport interface SecteurHomogeneGetRequest {\n id?: number;\n}\n\nexport interface SecteurHomogeneGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface SecteurHomogeneGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SecteurHomogeneGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SecteurHomogeneSaveRequest {\n FcbSecteurHomogeneDto?: FcbSecteurHomogeneDto;\n}\n\nexport interface SecteurHomogeneStadeLibelleSecteurHomogeneExistsRequest {\n libelle?: string;\n idStade?: number;\n}\n\n/**\n * \n */\nexport class SecteurHomogeneApi extends runtime.BaseAPI {\n\n /**\n */\n async secteurHomogeneBaseSearchRaw(requestParameters: SecteurHomogeneBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SecteurHomogene/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SecteurHomogeneSearchToJSON(requestParameters.SecteurHomogeneSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSecteurHomogeneGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async secteurHomogeneBaseSearch(requestParameters: SecteurHomogeneBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurHomogeneBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurHomogeneDeleteRaw(requestParameters: SecteurHomogeneDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SecteurHomogene`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async secteurHomogeneDelete(requestParameters: SecteurHomogeneDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurHomogeneDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurHomogeneGetRaw(requestParameters: SecteurHomogeneGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SecteurHomogene`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSecteurHomogeneDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async secteurHomogeneGet(requestParameters: SecteurHomogeneGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurHomogeneGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurHomogeneGetDisplayNameRaw(requestParameters: SecteurHomogeneGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SecteurHomogene/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async secteurHomogeneGetDisplayName(requestParameters: SecteurHomogeneGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurHomogeneGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurHomogeneGetSearchCriteriasRaw(requestParameters: SecteurHomogeneGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SecteurHomogene/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async secteurHomogeneGetSearchCriterias(requestParameters: SecteurHomogeneGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.secteurHomogeneGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurHomogeneGetSelectItemsRaw(requestParameters: SecteurHomogeneGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling secteurHomogeneGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SecteurHomogene/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async secteurHomogeneGetSelectItems(requestParameters: SecteurHomogeneGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.secteurHomogeneGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurHomogeneSaveRaw(requestParameters: SecteurHomogeneSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SecteurHomogene`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbSecteurHomogeneDtoToJSON(requestParameters.FcbSecteurHomogeneDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSecteurHomogeneDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async secteurHomogeneSave(requestParameters: SecteurHomogeneSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurHomogeneSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurHomogeneStadeLibelleSecteurHomogeneExistsRaw(requestParameters: SecteurHomogeneStadeLibelleSecteurHomogeneExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.libelle !== undefined) {\n queryParameters['libelle'] = requestParameters.libelle;\n }\n\n if (requestParameters.idStade !== undefined) {\n queryParameters['idStade'] = requestParameters.idStade;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SecteurHomogene/stadeLibelleExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async secteurHomogeneStadeLibelleSecteurHomogeneExists(requestParameters: SecteurHomogeneStadeLibelleSecteurHomogeneExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurHomogeneStadeLibelleSecteurHomogeneExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbMetierGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SecteurMetierLiesSearch,\n SelectItem,\n} from '../models/index';\nimport {\n FcbMetierGridDtoPaginatedResultsFromJSON,\n FcbMetierGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SecteurMetierLiesSearchFromJSON,\n SecteurMetierLiesSearchToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface SecteurMetierMetierLiesBaseSearchRequest {\n SecteurMetierLiesSearch?: SecteurMetierLiesSearch;\n}\n\nexport interface SecteurMetierMetierLiesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SecteurMetierMetierLiesGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class SecteurMetierMetierLiesApi extends runtime.BaseAPI {\n\n /**\n */\n async secteurMetierMetierLiesBaseSearchRaw(requestParameters: SecteurMetierMetierLiesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SecteurMetierLiesSearchToJSON(requestParameters.SecteurMetierLiesSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbMetierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async secteurMetierMetierLiesBaseSearch(requestParameters: SecteurMetierMetierLiesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.secteurMetierMetierLiesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurMetierMetierLiesGetSearchCriteriasRaw(requestParameters: SecteurMetierMetierLiesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async secteurMetierMetierLiesGetSearchCriterias(requestParameters: SecteurMetierMetierLiesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.secteurMetierMetierLiesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async secteurMetierMetierLiesGetSelectItemsRaw(requestParameters: SecteurMetierMetierLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling secteurMetierMetierLiesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async secteurMetierMetierLiesGetSelectItems(requestParameters: SecteurMetierMetierLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.secteurMetierMetierLiesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n ReferentialItemDto,\n ServiceGridDtoPaginatedResults,\n ServiceSearchDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n ServiceGridDtoPaginatedResultsFromJSON,\n ServiceGridDtoPaginatedResultsToJSON,\n ServiceSearchDtoFromJSON,\n ServiceSearchDtoToJSON,\n} from '../models/index';\n\nexport interface ServiceBaseSearchRequest {\n ServiceSearchDto?: ServiceSearchDto;\n}\n\nexport interface ServiceGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ServiceGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ServiceSearchServiceIdsRequest {\n ServiceSearchDto?: ServiceSearchDto;\n}\n\n/**\n * \n */\nexport class ServiceApi extends runtime.BaseAPI {\n\n /**\n */\n async serviceBaseSearchRaw(requestParameters: ServiceBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Service/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ServiceSearchDtoToJSON(requestParameters.ServiceSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ServiceGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceBaseSearch(requestParameters: ServiceBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceGetSearchCriteriasRaw(requestParameters: ServiceGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Service/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async serviceGetSearchCriterias(requestParameters: ServiceGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceGetSelectItemsRaw(requestParameters: ServiceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling serviceGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Service/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async serviceGetSelectItems(requestParameters: ServiceGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceSearchServiceIdsRaw(requestParameters: ServiceSearchServiceIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Service/searchServicesIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ServiceSearchDtoToJSON(requestParameters.ServiceSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async serviceSearchServiceIds(requestParameters: ServiceSearchServiceIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceSearchServiceIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbServiceTutelleDto,\n FcbServiceTutelleGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ServiceTutelleSearch,\n ValidationError,\n} from '../models/index';\nimport {\n FcbServiceTutelleDtoFromJSON,\n FcbServiceTutelleDtoToJSON,\n FcbServiceTutelleGridDtoPaginatedResultsFromJSON,\n FcbServiceTutelleGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ServiceTutelleSearchFromJSON,\n ServiceTutelleSearchToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface ServiceTutelleBaseSearchRequest {\n ServiceTutelleSearch?: ServiceTutelleSearch;\n}\n\nexport interface ServiceTutelleCodeExistsRequest {\n code?: string;\n}\n\nexport interface ServiceTutelleDeleteRequest {\n id?: number;\n}\n\nexport interface ServiceTutelleGetRequest {\n id?: number;\n}\n\nexport interface ServiceTutelleGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface ServiceTutelleGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ServiceTutelleGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ServiceTutelleSaveRequest {\n FcbServiceTutelleDto?: FcbServiceTutelleDto;\n}\n\nexport interface ServiceTutelleSearchServiceTutelleIdsRequest {\n ServiceTutelleSearch?: ServiceTutelleSearch;\n}\n\n/**\n * \n */\nexport class ServiceTutelleApi extends runtime.BaseAPI {\n\n /**\n */\n async serviceTutelleBaseSearchRaw(requestParameters: ServiceTutelleBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ServiceTutelleSearchToJSON(requestParameters.ServiceTutelleSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbServiceTutelleGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceTutelleBaseSearch(requestParameters: ServiceTutelleBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleCodeExistsRaw(requestParameters: ServiceTutelleCodeExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle/codeExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceTutelleCodeExists(requestParameters: ServiceTutelleCodeExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleCodeExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleDeleteRaw(requestParameters: ServiceTutelleDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async serviceTutelleDelete(requestParameters: ServiceTutelleDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleGetRaw(requestParameters: ServiceTutelleGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbServiceTutelleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceTutelleGet(requestParameters: ServiceTutelleGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleGetCodePostalsForUserRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle/GetCodePostalsForUser`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async serviceTutelleGetCodePostalsForUser(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceTutelleGetCodePostalsForUserRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleGetDisplayNameRaw(requestParameters: ServiceTutelleGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async serviceTutelleGetDisplayName(requestParameters: ServiceTutelleGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleGetSearchCriteriasRaw(requestParameters: ServiceTutelleGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async serviceTutelleGetSearchCriterias(requestParameters: ServiceTutelleGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceTutelleGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleGetSelectItemsRaw(requestParameters: ServiceTutelleGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling serviceTutelleGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async serviceTutelleGetSelectItems(requestParameters: ServiceTutelleGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceTutelleGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleSaveRaw(requestParameters: ServiceTutelleSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbServiceTutelleDtoToJSON(requestParameters.FcbServiceTutelleDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbServiceTutelleDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceTutelleSave(requestParameters: ServiceTutelleSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleSearchServiceTutelleIdsRaw(requestParameters: ServiceTutelleSearchServiceTutelleIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelle/SearchServiceTutelleIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ServiceTutelleSearchToJSON(requestParameters.ServiceTutelleSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async serviceTutelleSearchServiceTutelleIds(requestParameters: ServiceTutelleSearchServiceTutelleIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceTutelleSearchServiceTutelleIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbServiceTutelleCodePostalDto,\n FcbServiceTutelleLocaliteGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n ServiceTutelleLocaliteSearch,\n} from '../models/index';\nimport {\n FcbServiceTutelleCodePostalDtoFromJSON,\n FcbServiceTutelleCodePostalDtoToJSON,\n FcbServiceTutelleLocaliteGridDtoPaginatedResultsFromJSON,\n FcbServiceTutelleLocaliteGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n ServiceTutelleLocaliteSearchFromJSON,\n ServiceTutelleLocaliteSearchToJSON,\n} from '../models/index';\n\nexport interface ServiceTutelleLocaliteBaseSearchRequest {\n ServiceTutelleLocaliteSearch?: ServiceTutelleLocaliteSearch;\n}\n\nexport interface ServiceTutelleLocaliteGetCodePostalServiceTutelleRequest {\n idServiceTutelle?: number;\n}\n\nexport interface ServiceTutelleLocaliteGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ServiceTutelleLocaliteGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ServiceTutelleLocaliteSaveRequest {\n FcbServiceTutelleCodePostalDto?: FcbServiceTutelleCodePostalDto;\n}\n\n/**\n * \n */\nexport class ServiceTutelleLocaliteApi extends runtime.BaseAPI {\n\n /**\n */\n async serviceTutelleLocaliteBaseSearchRaw(requestParameters: ServiceTutelleLocaliteBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelleLocalite/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ServiceTutelleLocaliteSearchToJSON(requestParameters.ServiceTutelleLocaliteSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbServiceTutelleLocaliteGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceTutelleLocaliteBaseSearch(requestParameters: ServiceTutelleLocaliteBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleLocaliteBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleLocaliteGetCodePostalServiceTutelleRaw(requestParameters: ServiceTutelleLocaliteGetCodePostalServiceTutelleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idServiceTutelle !== undefined) {\n queryParameters['idServiceTutelle'] = requestParameters.idServiceTutelle;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelleLocalite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbServiceTutelleCodePostalDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceTutelleLocaliteGetCodePostalServiceTutelle(requestParameters: ServiceTutelleLocaliteGetCodePostalServiceTutelleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleLocaliteGetCodePostalServiceTutelleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleLocaliteGetSearchCriteriasRaw(requestParameters: ServiceTutelleLocaliteGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelleLocalite/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async serviceTutelleLocaliteGetSearchCriterias(requestParameters: ServiceTutelleLocaliteGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceTutelleLocaliteGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleLocaliteGetSelectItemsRaw(requestParameters: ServiceTutelleLocaliteGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling serviceTutelleLocaliteGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelleLocalite/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async serviceTutelleLocaliteGetSelectItems(requestParameters: ServiceTutelleLocaliteGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceTutelleLocaliteGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleLocaliteSaveRaw(requestParameters: ServiceTutelleLocaliteSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelleLocalite/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbServiceTutelleCodePostalDtoToJSON(requestParameters.FcbServiceTutelleCodePostalDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbServiceTutelleCodePostalDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceTutelleLocaliteSave(requestParameters: ServiceTutelleLocaliteSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleLocaliteSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n ReferentialItemDto,\n ServiceUserLieEditDto,\n ServiceUserLieGridDtoPaginatedResults,\n ServiceUserLieSearch,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n ServiceUserLieEditDtoFromJSON,\n ServiceUserLieEditDtoToJSON,\n ServiceUserLieGridDtoPaginatedResultsFromJSON,\n ServiceUserLieGridDtoPaginatedResultsToJSON,\n ServiceUserLieSearchFromJSON,\n ServiceUserLieSearchToJSON,\n} from '../models/index';\n\nexport interface ServiceTutelleUserLieBaseSearchRequest {\n ServiceUserLieSearch?: ServiceUserLieSearch;\n}\n\nexport interface ServiceTutelleUserLieGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface ServiceTutelleUserLieGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface ServiceTutelleUserLieSaveServiceTutelleUserLieRequest {\n ServiceUserLieEditDto?: ServiceUserLieEditDto;\n}\n\n/**\n * \n */\nexport class ServiceTutelleUserLieApi extends runtime.BaseAPI {\n\n /**\n */\n async serviceTutelleUserLieBaseSearchRaw(requestParameters: ServiceTutelleUserLieBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelleUserLie/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ServiceUserLieSearchToJSON(requestParameters.ServiceUserLieSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ServiceUserLieGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceTutelleUserLieBaseSearch(requestParameters: ServiceTutelleUserLieBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleUserLieBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleUserLieGetSearchCriteriasRaw(requestParameters: ServiceTutelleUserLieGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelleUserLie/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async serviceTutelleUserLieGetSearchCriterias(requestParameters: ServiceTutelleUserLieGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceTutelleUserLieGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleUserLieGetSelectItemsRaw(requestParameters: ServiceTutelleUserLieGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling serviceTutelleUserLieGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelleUserLie/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async serviceTutelleUserLieGetSelectItems(requestParameters: ServiceTutelleUserLieGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.serviceTutelleUserLieGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async serviceTutelleUserLieSaveServiceTutelleUserLieRaw(requestParameters: ServiceTutelleUserLieSaveServiceTutelleUserLieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/ServiceTutelleUserLie/SaveServiceTutelleUserLie`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ServiceUserLieEditDtoToJSON(requestParameters.ServiceUserLieEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ServiceUserLieEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async serviceTutelleUserLieSaveServiceTutelleUserLie(requestParameters: ServiceTutelleUserLieSaveServiceTutelleUserLieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.serviceTutelleUserLieSaveServiceTutelleUserLieRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FileDownloadDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n SiegeLieuSuiviFichierDto,\n SiegeLieuSuiviFichierGridDtoPaginatedResults,\n SiegeLieuSuiviFichierSearchDto,\n SiegeLieuSuiviFichierUploadDto,\n} from '../models/index';\nimport {\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SiegeLieuSuiviFichierDtoFromJSON,\n SiegeLieuSuiviFichierDtoToJSON,\n SiegeLieuSuiviFichierGridDtoPaginatedResultsFromJSON,\n SiegeLieuSuiviFichierGridDtoPaginatedResultsToJSON,\n SiegeLieuSuiviFichierSearchDtoFromJSON,\n SiegeLieuSuiviFichierSearchDtoToJSON,\n SiegeLieuSuiviFichierUploadDtoFromJSON,\n SiegeLieuSuiviFichierUploadDtoToJSON,\n} from '../models/index';\n\nexport interface SiegeLieuSuiviFichierBaseSearchRequest {\n SiegeLieuSuiviFichierSearchDto?: SiegeLieuSuiviFichierSearchDto;\n}\n\nexport interface SiegeLieuSuiviFichierDeleteSuiviFichierRequest {\n id?: number;\n}\n\nexport interface SiegeLieuSuiviFichierDownloadSuiviFichierRequest {\n id?: number;\n}\n\nexport interface SiegeLieuSuiviFichierGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SiegeLieuSuiviFichierGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SiegeLieuSuiviFichierGetSuiviFichierRequest {\n id?: number;\n}\n\nexport interface SiegeLieuSuiviFichierSaveSuiviFichierRequest {\n SiegeLieuSuiviFichierDto?: SiegeLieuSuiviFichierDto;\n}\n\nexport interface SiegeLieuSuiviFichierUploadSuiviFichierRequest {\n SiegeLieuSuiviFichierUploadDto?: SiegeLieuSuiviFichierUploadDto;\n}\n\n/**\n * \n */\nexport class SiegeLieuSuiviFichierApi extends runtime.BaseAPI {\n\n /**\n */\n async siegeLieuSuiviFichierBaseSearchRaw(requestParameters: SiegeLieuSuiviFichierBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeLieuSuiviFichier/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeLieuSuiviFichierSearchDtoToJSON(requestParameters.SiegeLieuSuiviFichierSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeLieuSuiviFichierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeLieuSuiviFichierBaseSearch(requestParameters: SiegeLieuSuiviFichierBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeLieuSuiviFichierBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeLieuSuiviFichierDeleteSuiviFichierRaw(requestParameters: SiegeLieuSuiviFichierDeleteSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeLieuSuiviFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async siegeLieuSuiviFichierDeleteSuiviFichier(requestParameters: SiegeLieuSuiviFichierDeleteSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.siegeLieuSuiviFichierDeleteSuiviFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async siegeLieuSuiviFichierDownloadSuiviFichierRaw(requestParameters: SiegeLieuSuiviFichierDownloadSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeLieuSuiviFichier/Download`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeLieuSuiviFichierDownloadSuiviFichier(requestParameters: SiegeLieuSuiviFichierDownloadSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeLieuSuiviFichierDownloadSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeLieuSuiviFichierGetSearchCriteriasRaw(requestParameters: SiegeLieuSuiviFichierGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeLieuSuiviFichier/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async siegeLieuSuiviFichierGetSearchCriterias(requestParameters: SiegeLieuSuiviFichierGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeLieuSuiviFichierGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeLieuSuiviFichierGetSelectItemsRaw(requestParameters: SiegeLieuSuiviFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling siegeLieuSuiviFichierGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeLieuSuiviFichier/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async siegeLieuSuiviFichierGetSelectItems(requestParameters: SiegeLieuSuiviFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeLieuSuiviFichierGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeLieuSuiviFichierGetSuiviFichierRaw(requestParameters: SiegeLieuSuiviFichierGetSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeLieuSuiviFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeLieuSuiviFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeLieuSuiviFichierGetSuiviFichier(requestParameters: SiegeLieuSuiviFichierGetSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeLieuSuiviFichierGetSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeLieuSuiviFichierSaveSuiviFichierRaw(requestParameters: SiegeLieuSuiviFichierSaveSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeLieuSuiviFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeLieuSuiviFichierDtoToJSON(requestParameters.SiegeLieuSuiviFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeLieuSuiviFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeLieuSuiviFichierSaveSuiviFichier(requestParameters: SiegeLieuSuiviFichierSaveSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeLieuSuiviFichierSaveSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeLieuSuiviFichierUploadSuiviFichierRaw(requestParameters: SiegeLieuSuiviFichierUploadSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeLieuSuiviFichier/Upload`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeLieuSuiviFichierUploadDtoToJSON(requestParameters.SiegeLieuSuiviFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeLieuSuiviFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeLieuSuiviFichierUploadSuiviFichier(requestParameters: SiegeLieuSuiviFichierUploadSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeLieuSuiviFichierUploadSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n ChefEntrepriseSiegeEditDto,\n ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults,\n ChefsEntrepriseSiegeDoublonSearchDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n SiegeSocialAdresseDto,\n SiegeSocialChefEntrepriseGridDtoPaginatedResults,\n SiegeSocialChefEntrepriseSearchDto,\n SiegeSocialEditDto,\n SiegeSocialGridDtoPaginatedResults,\n SiegeSocialHistoryGridDtoPaginatedResults,\n SiegeSocialHistorySearch,\n SiegeSocialSearchDto,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n ChefEntrepriseSiegeEditDtoFromJSON,\n ChefEntrepriseSiegeEditDtoToJSON,\n ChefsEntrepriseSiegeDoublonGridDtoPaginatedResultsFromJSON,\n ChefsEntrepriseSiegeDoublonGridDtoPaginatedResultsToJSON,\n ChefsEntrepriseSiegeDoublonSearchDtoFromJSON,\n ChefsEntrepriseSiegeDoublonSearchDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SiegeSocialAdresseDtoFromJSON,\n SiegeSocialAdresseDtoToJSON,\n SiegeSocialChefEntrepriseGridDtoPaginatedResultsFromJSON,\n SiegeSocialChefEntrepriseGridDtoPaginatedResultsToJSON,\n SiegeSocialChefEntrepriseSearchDtoFromJSON,\n SiegeSocialChefEntrepriseSearchDtoToJSON,\n SiegeSocialEditDtoFromJSON,\n SiegeSocialEditDtoToJSON,\n SiegeSocialGridDtoPaginatedResultsFromJSON,\n SiegeSocialGridDtoPaginatedResultsToJSON,\n SiegeSocialHistoryGridDtoPaginatedResultsFromJSON,\n SiegeSocialHistoryGridDtoPaginatedResultsToJSON,\n SiegeSocialHistorySearchFromJSON,\n SiegeSocialHistorySearchToJSON,\n SiegeSocialSearchDtoFromJSON,\n SiegeSocialSearchDtoToJSON,\n} from '../models/index';\n\nexport interface SiegeSocialBaseSearchRequest {\n SiegeSocialSearchDto?: SiegeSocialSearchDto;\n}\n\nexport interface SiegeSocialDeleteChefEntrepriseSiegeRequest {\n IdchefEntrepriseSiege?: number;\n}\n\nexport interface SiegeSocialGetAdresseDataRequest {\n idsiegeSocial?: number;\n}\n\nexport interface SiegeSocialGetChefEntrepriseSiegeRequest {\n IdchefEntrepriseSiege?: number;\n}\n\nexport interface SiegeSocialGetChefsEntrepriseCountRequest {\n idsiegeSocial?: number;\n}\n\nexport interface SiegeSocialGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface SiegeSocialGetEmailsRequest {\n request_body?: Array;\n}\n\nexport interface SiegeSocialGetLieuxFormationEmailsRequest {\n request_body?: Array;\n}\n\nexport interface SiegeSocialGetMainChefsEntrepriseIdRequest {\n idsiegeSocial?: number;\n}\n\nexport interface SiegeSocialGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SiegeSocialGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SiegeSocialGetSelectedChefEntrepriseRequest {\n IdchefEntreprise?: number;\n idsiegeSocial?: number;\n}\n\nexport interface SiegeSocialGetSiegeSocialRequest {\n id?: number;\n}\n\nexport interface SiegeSocialIsActifRequest {\n id?: number;\n}\n\nexport interface SiegeSocialIsBceAlreadyExistRequest {\n bce?: string;\n idsiegeSocial?: number;\n}\n\nexport interface SiegeSocialSaveChefEntrepriseSiegeRequest {\n ChefEntrepriseSiegeEditDto?: ChefEntrepriseSiegeEditDto;\n}\n\nexport interface SiegeSocialSaveSiegeSocialRequest {\n SiegeSocialEditDto?: SiegeSocialEditDto;\n}\n\nexport interface SiegeSocialSearchChefsEntrepriseRequest {\n SiegeSocialChefEntrepriseSearchDto?: SiegeSocialChefEntrepriseSearchDto;\n}\n\nexport interface SiegeSocialSearchDoublonsChefsEntrepriseSiegeRequest {\n ChefsEntrepriseSiegeDoublonSearchDto?: ChefsEntrepriseSiegeDoublonSearchDto;\n}\n\nexport interface SiegeSocialSearchHistoryRequest {\n SiegeSocialHistorySearch?: SiegeSocialHistorySearch;\n}\n\nexport interface SiegeSocialSearchSiegeSocialIdsRequest {\n SiegeSocialSearchDto?: SiegeSocialSearchDto;\n}\n\n/**\n * \n */\nexport class SiegeSocialApi extends runtime.BaseAPI {\n\n /**\n */\n async siegeSocialBaseSearchRaw(requestParameters: SiegeSocialBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeSocialSearchDtoToJSON(requestParameters.SiegeSocialSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialBaseSearch(requestParameters: SiegeSocialBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialDeleteChefEntrepriseSiegeRaw(requestParameters: SiegeSocialDeleteChefEntrepriseSiegeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.IdchefEntrepriseSiege !== undefined) {\n queryParameters['IdchefEntrepriseSiege'] = requestParameters.IdchefEntrepriseSiege;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/DeleteChefEntrepriseSiege`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async siegeSocialDeleteChefEntrepriseSiege(requestParameters: SiegeSocialDeleteChefEntrepriseSiegeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.siegeSocialDeleteChefEntrepriseSiegeRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async siegeSocialGetAdresseDataRaw(requestParameters: SiegeSocialGetAdresseDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/GetAdresseData`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialAdresseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialGetAdresseData(requestParameters: SiegeSocialGetAdresseDataRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialGetAdresseDataRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetChefEntrepriseSiegeRaw(requestParameters: SiegeSocialGetChefEntrepriseSiegeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.IdchefEntrepriseSiege !== undefined) {\n queryParameters['IdchefEntrepriseSiege'] = requestParameters.IdchefEntrepriseSiege;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/GetChefEntrepriseSiege`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefEntrepriseSiegeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialGetChefEntrepriseSiege(requestParameters: SiegeSocialGetChefEntrepriseSiegeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialGetChefEntrepriseSiegeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetChefsEntrepriseCountRaw(requestParameters: SiegeSocialGetChefsEntrepriseCountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/GetChefsEntrepriseCount`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async siegeSocialGetChefsEntrepriseCount(requestParameters: SiegeSocialGetChefsEntrepriseCountRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialGetChefsEntrepriseCountRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetDisplayNameRaw(requestParameters: SiegeSocialGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async siegeSocialGetDisplayName(requestParameters: SiegeSocialGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetEmailsRaw(requestParameters: SiegeSocialGetEmailsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/GetEmails`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async siegeSocialGetEmails(requestParameters: SiegeSocialGetEmailsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialGetEmailsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetLieuxFormationEmailsRaw(requestParameters: SiegeSocialGetLieuxFormationEmailsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/GetLieuxFormationEmails`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async siegeSocialGetLieuxFormationEmails(requestParameters: SiegeSocialGetLieuxFormationEmailsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialGetLieuxFormationEmailsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetMainChefsEntrepriseIdRaw(requestParameters: SiegeSocialGetMainChefsEntrepriseIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/GetMainChefsEntrepriseId`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async siegeSocialGetMainChefsEntrepriseId(requestParameters: SiegeSocialGetMainChefsEntrepriseIdRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialGetMainChefsEntrepriseIdRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetSearchCriteriasRaw(requestParameters: SiegeSocialGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async siegeSocialGetSearchCriterias(requestParameters: SiegeSocialGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetSelectItemsRaw(requestParameters: SiegeSocialGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling siegeSocialGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async siegeSocialGetSelectItems(requestParameters: SiegeSocialGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetSelectedChefEntrepriseRaw(requestParameters: SiegeSocialGetSelectedChefEntrepriseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.IdchefEntreprise !== undefined) {\n queryParameters['IdchefEntreprise'] = requestParameters.IdchefEntreprise;\n }\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/GetSelectedChefEntreprise`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefEntrepriseSiegeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialGetSelectedChefEntreprise(requestParameters: SiegeSocialGetSelectedChefEntrepriseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialGetSelectedChefEntrepriseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialGetSiegeSocialRaw(requestParameters: SiegeSocialGetSiegeSocialRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialGetSiegeSocial(requestParameters: SiegeSocialGetSiegeSocialRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialGetSiegeSocialRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialIsActifRaw(requestParameters: SiegeSocialIsActifRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/IsActif`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async siegeSocialIsActif(requestParameters: SiegeSocialIsActifRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialIsActifRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialIsBceAlreadyExistRaw(requestParameters: SiegeSocialIsBceAlreadyExistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.bce !== undefined) {\n queryParameters['bce'] = requestParameters.bce;\n }\n\n if (requestParameters.idsiegeSocial !== undefined) {\n queryParameters['idsiegeSocial'] = requestParameters.idsiegeSocial;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/IsBceAlreadyExist`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialIsBceAlreadyExist(requestParameters: SiegeSocialIsBceAlreadyExistRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialIsBceAlreadyExistRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSaveChefEntrepriseSiegeRaw(requestParameters: SiegeSocialSaveChefEntrepriseSiegeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/SaveChefEntrepriseSiege`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChefEntrepriseSiegeEditDtoToJSON(requestParameters.ChefEntrepriseSiegeEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefEntrepriseSiegeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialSaveChefEntrepriseSiege(requestParameters: SiegeSocialSaveChefEntrepriseSiegeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialSaveChefEntrepriseSiegeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSaveSiegeSocialRaw(requestParameters: SiegeSocialSaveSiegeSocialRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeSocialEditDtoToJSON(requestParameters.SiegeSocialEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialSaveSiegeSocial(requestParameters: SiegeSocialSaveSiegeSocialRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialSaveSiegeSocialRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSearchChefsEntrepriseRaw(requestParameters: SiegeSocialSearchChefsEntrepriseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/SearchChefsEntreprise`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeSocialChefEntrepriseSearchDtoToJSON(requestParameters.SiegeSocialChefEntrepriseSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialChefEntrepriseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialSearchChefsEntreprise(requestParameters: SiegeSocialSearchChefsEntrepriseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialSearchChefsEntrepriseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSearchDoublonsChefsEntrepriseSiegeRaw(requestParameters: SiegeSocialSearchDoublonsChefsEntrepriseSiegeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/SearchDoublons`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ChefsEntrepriseSiegeDoublonSearchDtoToJSON(requestParameters.ChefsEntrepriseSiegeDoublonSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ChefsEntrepriseSiegeDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialSearchDoublonsChefsEntrepriseSiege(requestParameters: SiegeSocialSearchDoublonsChefsEntrepriseSiegeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialSearchDoublonsChefsEntrepriseSiegeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSearchHistoryRaw(requestParameters: SiegeSocialSearchHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/SearchHistory`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeSocialHistorySearchToJSON(requestParameters.SiegeSocialHistorySearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialHistoryGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialSearchHistory(requestParameters: SiegeSocialSearchHistoryRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialSearchHistoryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSearchSiegeSocialIdsRaw(requestParameters: SiegeSocialSearchSiegeSocialIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocial/SearchSiegeSocialIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeSocialSearchDtoToJSON(requestParameters.SiegeSocialSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async siegeSocialSearchSiegeSocialIds(requestParameters: SiegeSocialSearchSiegeSocialIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialSearchSiegeSocialIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FileDownloadDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n SiegeSocialFichierDto,\n SiegeSocialFichierGridDtoPaginatedResults,\n SiegeSocialFichierSearchDto,\n SiegeSocialFichierUploadDto,\n} from '../models/index';\nimport {\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SiegeSocialFichierDtoFromJSON,\n SiegeSocialFichierDtoToJSON,\n SiegeSocialFichierGridDtoPaginatedResultsFromJSON,\n SiegeSocialFichierGridDtoPaginatedResultsToJSON,\n SiegeSocialFichierSearchDtoFromJSON,\n SiegeSocialFichierSearchDtoToJSON,\n SiegeSocialFichierUploadDtoFromJSON,\n SiegeSocialFichierUploadDtoToJSON,\n} from '../models/index';\n\nexport interface SiegeSocialFichierBaseSearchRequest {\n SiegeSocialFichierSearchDto?: SiegeSocialFichierSearchDto;\n}\n\nexport interface SiegeSocialFichierDeleteSiegeSocialFichierRequest {\n id?: number;\n}\n\nexport interface SiegeSocialFichierDownloadSiegeSocialFichierRequest {\n id?: number;\n}\n\nexport interface SiegeSocialFichierGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SiegeSocialFichierGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SiegeSocialFichierGetSiegeSocialFichierRequest {\n id?: number;\n}\n\nexport interface SiegeSocialFichierSaveSiegeSocialFichierRequest {\n SiegeSocialFichierDto?: SiegeSocialFichierDto;\n}\n\nexport interface SiegeSocialFichierUploadSiegeSocialFichierRequest {\n SiegeSocialFichierUploadDto?: SiegeSocialFichierUploadDto;\n}\n\n/**\n * \n */\nexport class SiegeSocialFichierApi extends runtime.BaseAPI {\n\n /**\n */\n async siegeSocialFichierBaseSearchRaw(requestParameters: SiegeSocialFichierBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialFichier/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeSocialFichierSearchDtoToJSON(requestParameters.SiegeSocialFichierSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialFichierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialFichierBaseSearch(requestParameters: SiegeSocialFichierBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialFichierBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialFichierDeleteSiegeSocialFichierRaw(requestParameters: SiegeSocialFichierDeleteSiegeSocialFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async siegeSocialFichierDeleteSiegeSocialFichier(requestParameters: SiegeSocialFichierDeleteSiegeSocialFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.siegeSocialFichierDeleteSiegeSocialFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async siegeSocialFichierDownloadSiegeSocialFichierRaw(requestParameters: SiegeSocialFichierDownloadSiegeSocialFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialFichier/Download`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialFichierDownloadSiegeSocialFichier(requestParameters: SiegeSocialFichierDownloadSiegeSocialFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialFichierDownloadSiegeSocialFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialFichierGetSearchCriteriasRaw(requestParameters: SiegeSocialFichierGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialFichier/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async siegeSocialFichierGetSearchCriterias(requestParameters: SiegeSocialFichierGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialFichierGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialFichierGetSelectItemsRaw(requestParameters: SiegeSocialFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling siegeSocialFichierGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialFichier/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async siegeSocialFichierGetSelectItems(requestParameters: SiegeSocialFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialFichierGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialFichierGetSiegeSocialFichierRaw(requestParameters: SiegeSocialFichierGetSiegeSocialFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialFichierGetSiegeSocialFichier(requestParameters: SiegeSocialFichierGetSiegeSocialFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialFichierGetSiegeSocialFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialFichierSaveSiegeSocialFichierRaw(requestParameters: SiegeSocialFichierSaveSiegeSocialFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeSocialFichierDtoToJSON(requestParameters.SiegeSocialFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialFichierSaveSiegeSocialFichier(requestParameters: SiegeSocialFichierSaveSiegeSocialFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialFichierSaveSiegeSocialFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialFichierUploadSiegeSocialFichierRaw(requestParameters: SiegeSocialFichierUploadSiegeSocialFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialFichier/Upload`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeSocialFichierUploadDtoToJSON(requestParameters.SiegeSocialFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialFichierUploadSiegeSocialFichier(requestParameters: SiegeSocialFichierUploadSiegeSocialFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialFichierUploadSiegeSocialFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DisplayNameDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n SiegeSocialSelectorGridDtoPaginatedResults,\n SiegeSocialSelectorSearch,\n} from '../models/index';\nimport {\n DisplayNameDtoFromJSON,\n DisplayNameDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SiegeSocialSelectorGridDtoPaginatedResultsFromJSON,\n SiegeSocialSelectorGridDtoPaginatedResultsToJSON,\n SiegeSocialSelectorSearchFromJSON,\n SiegeSocialSelectorSearchToJSON,\n} from '../models/index';\n\nexport interface SiegeSocialSelectorBaseSearchRequest {\n SiegeSocialSelectorSearch?: SiegeSocialSelectorSearch;\n}\n\nexport interface SiegeSocialSelectorGetDisplayNamesRequest {\n request_body?: Array;\n}\n\nexport interface SiegeSocialSelectorGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SiegeSocialSelectorGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class SiegeSocialSelectorApi extends runtime.BaseAPI {\n\n /**\n */\n async siegeSocialSelectorBaseSearchRaw(requestParameters: SiegeSocialSelectorBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSelector/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeSocialSelectorSearchToJSON(requestParameters.SiegeSocialSelectorSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeSocialSelectorGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialSelectorBaseSearch(requestParameters: SiegeSocialSelectorBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialSelectorBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSelectorGetDisplayNamesRaw(requestParameters: SiegeSocialSelectorGetDisplayNamesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSelector/GetDisplayNames`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DisplayNameDtoFromJSON));\n }\n\n /**\n */\n async siegeSocialSelectorGetDisplayNames(requestParameters: SiegeSocialSelectorGetDisplayNamesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialSelectorGetDisplayNamesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSelectorGetSearchCriteriasRaw(requestParameters: SiegeSocialSelectorGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSelector/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async siegeSocialSelectorGetSearchCriterias(requestParameters: SiegeSocialSelectorGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialSelectorGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSelectorGetSelectItemsRaw(requestParameters: SiegeSocialSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling siegeSocialSelectorGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSelector/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async siegeSocialSelectorGetSelectItems(requestParameters: SiegeSocialSelectorGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialSelectorGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n ReferentialItemDto,\n SiegeLieuSuiviEditDto,\n SiegeLieuSuiviGridDtoPaginatedResults,\n SiegeLieuSuiviSearchBase,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SiegeLieuSuiviEditDtoFromJSON,\n SiegeLieuSuiviEditDtoToJSON,\n SiegeLieuSuiviGridDtoPaginatedResultsFromJSON,\n SiegeLieuSuiviGridDtoPaginatedResultsToJSON,\n SiegeLieuSuiviSearchBaseFromJSON,\n SiegeLieuSuiviSearchBaseToJSON,\n} from '../models/index';\n\nexport interface SiegeSocialSuiviBaseSearchRequest {\n SiegeLieuSuiviSearchBase?: SiegeLieuSuiviSearchBase;\n}\n\nexport interface SiegeSocialSuiviDeleteSiegeLieuSuiviRequest {\n id?: number;\n}\n\nexport interface SiegeSocialSuiviGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SiegeSocialSuiviGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SiegeSocialSuiviGetSuiviHopeRequest {\n id?: number;\n}\n\nexport interface SiegeSocialSuiviSaveSuiviHopeRequest {\n SiegeLieuSuiviEditDto?: SiegeLieuSuiviEditDto;\n}\n\n/**\n * \n */\nexport class SiegeSocialSuiviApi extends runtime.BaseAPI {\n\n /**\n */\n async siegeSocialSuiviBaseSearchRaw(requestParameters: SiegeSocialSuiviBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSuivi/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeLieuSuiviSearchBaseToJSON(requestParameters.SiegeLieuSuiviSearchBase),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeLieuSuiviGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialSuiviBaseSearch(requestParameters: SiegeSocialSuiviBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialSuiviBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSuiviDeleteSiegeLieuSuiviRaw(requestParameters: SiegeSocialSuiviDeleteSiegeLieuSuiviRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSuivi/DeleteSiegeLieuSuivi`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async siegeSocialSuiviDeleteSiegeLieuSuivi(requestParameters: SiegeSocialSuiviDeleteSiegeLieuSuiviRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.siegeSocialSuiviDeleteSiegeLieuSuiviRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async siegeSocialSuiviGetSearchCriteriasRaw(requestParameters: SiegeSocialSuiviGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSuivi/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async siegeSocialSuiviGetSearchCriterias(requestParameters: SiegeSocialSuiviGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialSuiviGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSuiviGetSelectItemsRaw(requestParameters: SiegeSocialSuiviGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling siegeSocialSuiviGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSuivi/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async siegeSocialSuiviGetSelectItems(requestParameters: SiegeSocialSuiviGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.siegeSocialSuiviGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSuiviGetSuiviHopeRaw(requestParameters: SiegeSocialSuiviGetSuiviHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSuivi/GetSiegeLieuSuivi`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeLieuSuiviEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialSuiviGetSuiviHope(requestParameters: SiegeSocialSuiviGetSuiviHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialSuiviGetSuiviHopeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async siegeSocialSuiviSaveSuiviHopeRaw(requestParameters: SiegeSocialSuiviSaveSuiviHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SiegeSocialSuivi/SaveSiegeLieuSuivi`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeLieuSuiviEditDtoToJSON(requestParameters.SiegeLieuSuiviEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeLieuSuiviEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async siegeSocialSuiviSaveSuiviHope(requestParameters: SiegeSocialSuiviSaveSuiviHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.siegeSocialSuiviSaveSuiviHopeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbSmsGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n SmsSearch,\n} from '../models/index';\nimport {\n FcbSmsGridDtoPaginatedResultsFromJSON,\n FcbSmsGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n SmsSearchFromJSON,\n SmsSearchToJSON,\n} from '../models/index';\n\nexport interface SmsBaseSearchRequest {\n SmsSearch?: SmsSearch;\n}\n\nexport interface SmsGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SmsGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class SmsApi extends runtime.BaseAPI {\n\n /**\n */\n async smsBaseSearchRaw(requestParameters: SmsBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Sms/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SmsSearchToJSON(requestParameters.SmsSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSmsGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async smsBaseSearch(requestParameters: SmsBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.smsBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async smsGetSearchCriteriasRaw(requestParameters: SmsGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Sms/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async smsGetSearchCriterias(requestParameters: SmsGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.smsGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async smsGetSelectItemsRaw(requestParameters: SmsGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling smsGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Sms/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async smsGetSelectItems(requestParameters: SmsGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.smsGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbSmsSuiviGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n SmsSuiviSearch,\n} from '../models/index';\nimport {\n FcbSmsSuiviGridDtoPaginatedResultsFromJSON,\n FcbSmsSuiviGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n SmsSuiviSearchFromJSON,\n SmsSuiviSearchToJSON,\n} from '../models/index';\n\nexport interface SmsSuiviBaseSearchRequest {\n SmsSuiviSearch?: SmsSuiviSearch;\n}\n\nexport interface SmsSuiviGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SmsSuiviGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class SmsSuiviApi extends runtime.BaseAPI {\n\n /**\n */\n async smsSuiviBaseSearchRaw(requestParameters: SmsSuiviBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SmsSuivi/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SmsSuiviSearchToJSON(requestParameters.SmsSuiviSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSmsSuiviGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async smsSuiviBaseSearch(requestParameters: SmsSuiviBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.smsSuiviBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async smsSuiviGetSearchCriteriasRaw(requestParameters: SmsSuiviGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SmsSuivi/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async smsSuiviGetSearchCriterias(requestParameters: SmsSuiviGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.smsSuiviGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async smsSuiviGetSelectItemsRaw(requestParameters: SmsSuiviGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling smsSuiviGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SmsSuivi/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async smsSuiviGetSelectItems(requestParameters: SmsSuiviGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.smsSuiviGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbSmsUtilitaireDetailDto,\n FcbSmsUtilitaireGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n SmsUtilitaireSearch,\n} from '../models/index';\nimport {\n FcbSmsUtilitaireDetailDtoFromJSON,\n FcbSmsUtilitaireDetailDtoToJSON,\n FcbSmsUtilitaireGridDtoPaginatedResultsFromJSON,\n FcbSmsUtilitaireGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n SmsUtilitaireSearchFromJSON,\n SmsUtilitaireSearchToJSON,\n} from '../models/index';\n\nexport interface SmsUtilitaireBaseSearchRequest {\n SmsUtilitaireSearch?: SmsUtilitaireSearch;\n}\n\nexport interface SmsUtilitaireGetRequest {\n id?: number;\n}\n\nexport interface SmsUtilitaireGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface SmsUtilitaireGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SmsUtilitaireGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SmsUtilitaireSaveRequest {\n FcbSmsUtilitaireDetailDto?: FcbSmsUtilitaireDetailDto;\n}\n\n/**\n * \n */\nexport class SmsUtilitaireApi extends runtime.BaseAPI {\n\n /**\n */\n async smsUtilitaireBaseSearchRaw(requestParameters: SmsUtilitaireBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SmsUtilitaire/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SmsUtilitaireSearchToJSON(requestParameters.SmsUtilitaireSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSmsUtilitaireGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async smsUtilitaireBaseSearch(requestParameters: SmsUtilitaireBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.smsUtilitaireBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async smsUtilitaireGetRaw(requestParameters: SmsUtilitaireGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SmsUtilitaire`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSmsUtilitaireDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async smsUtilitaireGet(requestParameters: SmsUtilitaireGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.smsUtilitaireGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async smsUtilitaireGetDisplayNameRaw(requestParameters: SmsUtilitaireGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SmsUtilitaire/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async smsUtilitaireGetDisplayName(requestParameters: SmsUtilitaireGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.smsUtilitaireGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async smsUtilitaireGetSearchCriteriasRaw(requestParameters: SmsUtilitaireGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SmsUtilitaire/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async smsUtilitaireGetSearchCriterias(requestParameters: SmsUtilitaireGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.smsUtilitaireGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async smsUtilitaireGetSelectItemsRaw(requestParameters: SmsUtilitaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling smsUtilitaireGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SmsUtilitaire/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async smsUtilitaireGetSelectItems(requestParameters: SmsUtilitaireGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.smsUtilitaireGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async smsUtilitaireSaveRaw(requestParameters: SmsUtilitaireSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SmsUtilitaire`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbSmsUtilitaireDetailDtoToJSON(requestParameters.FcbSmsUtilitaireDetailDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSmsUtilitaireDetailDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async smsUtilitaireSave(requestParameters: SmsUtilitaireSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.smsUtilitaireSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n ReferentialItemDto,\n SocieteExterneEditDto,\n SocieteExterneGridDtoPaginatedResults,\n SocieteExterneSearchDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SocieteExterneEditDtoFromJSON,\n SocieteExterneEditDtoToJSON,\n SocieteExterneGridDtoPaginatedResultsFromJSON,\n SocieteExterneGridDtoPaginatedResultsToJSON,\n SocieteExterneSearchDtoFromJSON,\n SocieteExterneSearchDtoToJSON,\n} from '../models/index';\n\nexport interface SocieteExterneAddApprenantForUserRequest {\n idapprenant?: number;\n}\n\nexport interface SocieteExterneBaseSearchRequest {\n SocieteExterneSearchDto?: SocieteExterneSearchDto;\n}\n\nexport interface SocieteExterneDeleteSocieteExterneRequest {\n id?: number;\n}\n\nexport interface SocieteExterneGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface SocieteExterneGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SocieteExterneGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SocieteExterneGetSocieteExterneRequest {\n id?: number;\n}\n\nexport interface SocieteExterneSaveSocieteExterneRequest {\n SocieteExterneEditDto?: SocieteExterneEditDto;\n}\n\n/**\n * \n */\nexport class SocieteExterneApi extends runtime.BaseAPI {\n\n /**\n */\n async societeExterneAddApprenantForUserRaw(requestParameters: SocieteExterneAddApprenantForUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SocieteExterne/AddApprenantForUser`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async societeExterneAddApprenantForUser(requestParameters: SocieteExterneAddApprenantForUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.societeExterneAddApprenantForUserRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async societeExterneBaseSearchRaw(requestParameters: SocieteExterneBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SocieteExterne/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SocieteExterneSearchDtoToJSON(requestParameters.SocieteExterneSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SocieteExterneGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async societeExterneBaseSearch(requestParameters: SocieteExterneBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.societeExterneBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async societeExterneDeleteSocieteExterneRaw(requestParameters: SocieteExterneDeleteSocieteExterneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SocieteExterne`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async societeExterneDeleteSocieteExterne(requestParameters: SocieteExterneDeleteSocieteExterneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.societeExterneDeleteSocieteExterneRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async societeExterneGetDisplayNameRaw(requestParameters: SocieteExterneGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SocieteExterne/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async societeExterneGetDisplayName(requestParameters: SocieteExterneGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.societeExterneGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async societeExterneGetSearchCriteriasRaw(requestParameters: SocieteExterneGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SocieteExterne/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async societeExterneGetSearchCriterias(requestParameters: SocieteExterneGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.societeExterneGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async societeExterneGetSelectItemsRaw(requestParameters: SocieteExterneGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling societeExterneGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SocieteExterne/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async societeExterneGetSelectItems(requestParameters: SocieteExterneGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.societeExterneGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async societeExterneGetSocieteExterneRaw(requestParameters: SocieteExterneGetSocieteExterneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SocieteExterne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SocieteExterneEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async societeExterneGetSocieteExterne(requestParameters: SocieteExterneGetSocieteExterneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.societeExterneGetSocieteExterneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async societeExterneSaveSocieteExterneRaw(requestParameters: SocieteExterneSaveSocieteExterneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SocieteExterne`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SocieteExterneEditDtoToJSON(requestParameters.SocieteExterneEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SocieteExterneEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async societeExterneSaveSocieteExterne(requestParameters: SocieteExterneSaveSocieteExterneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.societeExterneSaveSocieteExterneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbSoldeGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n SoldeApprenantSearch,\n} from '../models/index';\nimport {\n FcbSoldeGridDtoPaginatedResultsFromJSON,\n FcbSoldeGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n SoldeApprenantSearchFromJSON,\n SoldeApprenantSearchToJSON,\n} from '../models/index';\n\nexport interface SoldeApprenantBaseSearchRequest {\n SoldeApprenantSearch?: SoldeApprenantSearch;\n}\n\nexport interface SoldeApprenantGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SoldeApprenantGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class SoldeApprenantApi extends runtime.BaseAPI {\n\n /**\n */\n async soldeApprenantBaseSearchRaw(requestParameters: SoldeApprenantBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SoldeApprenant/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SoldeApprenantSearchToJSON(requestParameters.SoldeApprenantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSoldeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async soldeApprenantBaseSearch(requestParameters: SoldeApprenantBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.soldeApprenantBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async soldeApprenantGetSearchCriteriasRaw(requestParameters: SoldeApprenantGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SoldeApprenant/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async soldeApprenantGetSearchCriterias(requestParameters: SoldeApprenantGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.soldeApprenantGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async soldeApprenantGetSelectItemsRaw(requestParameters: SoldeApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling soldeApprenantGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SoldeApprenant/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async soldeApprenantGetSelectItems(requestParameters: SoldeApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.soldeApprenantGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbSpecificiteCoursDto,\n FcbSpecificiteCoursGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n SpecificiteCoursSearch,\n ValidationError,\n} from '../models/index';\nimport {\n FcbSpecificiteCoursDtoFromJSON,\n FcbSpecificiteCoursDtoToJSON,\n FcbSpecificiteCoursGridDtoPaginatedResultsFromJSON,\n FcbSpecificiteCoursGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n SpecificiteCoursSearchFromJSON,\n SpecificiteCoursSearchToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface SpecificiteCoursBaseSearchRequest {\n SpecificiteCoursSearch?: SpecificiteCoursSearch;\n}\n\nexport interface SpecificiteCoursCodeExistsRequest {\n code?: string;\n}\n\nexport interface SpecificiteCoursDeleteRequest {\n code?: string;\n}\n\nexport interface SpecificiteCoursGetRequest {\n code?: string;\n}\n\nexport interface SpecificiteCoursGetDisplayNameRequest {\n id?: string;\n}\n\nexport interface SpecificiteCoursGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SpecificiteCoursGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SpecificiteCoursSaveRequest {\n FcbSpecificiteCoursDto?: FcbSpecificiteCoursDto;\n}\n\n/**\n * \n */\nexport class SpecificiteCoursApi extends runtime.BaseAPI {\n\n /**\n */\n async specificiteCoursBaseSearchRaw(requestParameters: SpecificiteCoursBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SpecificiteCours/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SpecificiteCoursSearchToJSON(requestParameters.SpecificiteCoursSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSpecificiteCoursGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async specificiteCoursBaseSearch(requestParameters: SpecificiteCoursBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.specificiteCoursBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async specificiteCoursCodeExistsRaw(requestParameters: SpecificiteCoursCodeExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SpecificiteCours/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async specificiteCoursCodeExists(requestParameters: SpecificiteCoursCodeExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.specificiteCoursCodeExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async specificiteCoursDeleteRaw(requestParameters: SpecificiteCoursDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SpecificiteCours`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async specificiteCoursDelete(requestParameters: SpecificiteCoursDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.specificiteCoursDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async specificiteCoursGetRaw(requestParameters: SpecificiteCoursGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SpecificiteCours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSpecificiteCoursDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async specificiteCoursGet(requestParameters: SpecificiteCoursGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.specificiteCoursGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async specificiteCoursGetDisplayNameRaw(requestParameters: SpecificiteCoursGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SpecificiteCours/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async specificiteCoursGetDisplayName(requestParameters: SpecificiteCoursGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.specificiteCoursGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async specificiteCoursGetSearchCriteriasRaw(requestParameters: SpecificiteCoursGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SpecificiteCours/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async specificiteCoursGetSearchCriterias(requestParameters: SpecificiteCoursGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.specificiteCoursGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async specificiteCoursGetSelectItemsRaw(requestParameters: SpecificiteCoursGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling specificiteCoursGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SpecificiteCours/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async specificiteCoursGetSelectItems(requestParameters: SpecificiteCoursGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.specificiteCoursGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async specificiteCoursSaveRaw(requestParameters: SpecificiteCoursSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SpecificiteCours`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbSpecificiteCoursDtoToJSON(requestParameters.FcbSpecificiteCoursDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSpecificiteCoursDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async specificiteCoursSave(requestParameters: SpecificiteCoursSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.specificiteCoursSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbStadeDto,\n FcbStadeGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n StadeSearch,\n ValidationError,\n} from '../models/index';\nimport {\n FcbStadeDtoFromJSON,\n FcbStadeDtoToJSON,\n FcbStadeGridDtoPaginatedResultsFromJSON,\n FcbStadeGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n StadeSearchFromJSON,\n StadeSearchToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface StadeBaseSearchRequest {\n StadeSearch?: StadeSearch;\n}\n\nexport interface StadeDeleteRequest {\n id?: number;\n}\n\nexport interface StadeExistsRequest {\n code?: string;\n}\n\nexport interface StadeGetRequest {\n id?: number;\n}\n\nexport interface StadeGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface StadeGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface StadeGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface StadeSaveRequest {\n FcbStadeDto?: FcbStadeDto;\n}\n\n/**\n * \n */\nexport class StadeApi extends runtime.BaseAPI {\n\n /**\n */\n async stadeBaseSearchRaw(requestParameters: StadeBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Stade/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: StadeSearchToJSON(requestParameters.StadeSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbStadeGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async stadeBaseSearch(requestParameters: StadeBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.stadeBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async stadeDeleteRaw(requestParameters: StadeDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Stade`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async stadeDelete(requestParameters: StadeDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.stadeDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async stadeExistsRaw(requestParameters: StadeExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Stade/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async stadeExists(requestParameters: StadeExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.stadeExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async stadeGetRaw(requestParameters: StadeGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Stade`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbStadeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async stadeGet(requestParameters: StadeGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.stadeGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async stadeGetDisplayNameRaw(requestParameters: StadeGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Stade/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async stadeGetDisplayName(requestParameters: StadeGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.stadeGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async stadeGetSearchCriteriasRaw(requestParameters: StadeGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Stade/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async stadeGetSearchCriterias(requestParameters: StadeGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.stadeGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async stadeGetSelectItemsRaw(requestParameters: StadeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling stadeGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Stade/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async stadeGetSelectItems(requestParameters: StadeGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.stadeGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async stadeSaveRaw(requestParameters: StadeSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Stade`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbStadeDtoToJSON(requestParameters.FcbStadeDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbStadeDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async stadeSave(requestParameters: StadeSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.stadeSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n StatutApprenantEditDto,\n StatutApprenantGridDtoPaginatedResults,\n StatutApprenantSearch,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n StatutApprenantEditDtoFromJSON,\n StatutApprenantEditDtoToJSON,\n StatutApprenantGridDtoPaginatedResultsFromJSON,\n StatutApprenantGridDtoPaginatedResultsToJSON,\n StatutApprenantSearchFromJSON,\n StatutApprenantSearchToJSON,\n} from '../models/index';\n\nexport interface StatutApprenantBaseSearchRequest {\n StatutApprenantSearch?: StatutApprenantSearch;\n}\n\nexport interface StatutApprenantGetNewStatutPostSortieRequest {\n idapprenant?: number;\n}\n\nexport interface StatutApprenantGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface StatutApprenantGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface StatutApprenantGetStatutApprenantRequest {\n idstatutApprenant?: number;\n}\n\nexport interface StatutApprenantIsSortiRequest {\n idapprenant?: number;\n}\n\nexport interface StatutApprenantSaveStatutApprenantRequest {\n StatutApprenantEditDto?: StatutApprenantEditDto;\n}\n\n/**\n * \n */\nexport class StatutApprenantApi extends runtime.BaseAPI {\n\n /**\n */\n async statutApprenantBaseSearchRaw(requestParameters: StatutApprenantBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutApprenant/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: StatutApprenantSearchToJSON(requestParameters.StatutApprenantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => StatutApprenantGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async statutApprenantBaseSearch(requestParameters: StatutApprenantBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutApprenantBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutApprenantGetNewStatutPostSortieRaw(requestParameters: StatutApprenantGetNewStatutPostSortieRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutApprenant/post-sortie`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => StatutApprenantEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async statutApprenantGetNewStatutPostSortie(requestParameters: StatutApprenantGetNewStatutPostSortieRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutApprenantGetNewStatutPostSortieRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutApprenantGetSearchCriteriasRaw(requestParameters: StatutApprenantGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutApprenant/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async statutApprenantGetSearchCriterias(requestParameters: StatutApprenantGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.statutApprenantGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutApprenantGetSelectItemsRaw(requestParameters: StatutApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling statutApprenantGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutApprenant/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async statutApprenantGetSelectItems(requestParameters: StatutApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.statutApprenantGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutApprenantGetStatutApprenantRaw(requestParameters: StatutApprenantGetStatutApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idstatutApprenant !== undefined) {\n queryParameters['idstatutApprenant'] = requestParameters.idstatutApprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => StatutApprenantEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async statutApprenantGetStatutApprenant(requestParameters: StatutApprenantGetStatutApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutApprenantGetStatutApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutApprenantIsSortiRaw(requestParameters: StatutApprenantIsSortiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutApprenant/IsSorti`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async statutApprenantIsSorti(requestParameters: StatutApprenantIsSortiRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutApprenantIsSortiRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutApprenantSaveStatutApprenantRaw(requestParameters: StatutApprenantSaveStatutApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: StatutApprenantEditDtoToJSON(requestParameters.StatutApprenantEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => StatutApprenantEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async statutApprenantSaveStatutApprenant(requestParameters: StatutApprenantSaveStatutApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutApprenantSaveStatutApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbStatutSocialDto,\n FcbStatutSocialGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n StatutSocialSearch,\n} from '../models/index';\nimport {\n FcbStatutSocialDtoFromJSON,\n FcbStatutSocialDtoToJSON,\n FcbStatutSocialGridDtoPaginatedResultsFromJSON,\n FcbStatutSocialGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n StatutSocialSearchFromJSON,\n StatutSocialSearchToJSON,\n} from '../models/index';\n\nexport interface StatutSocialBaseSearchRequest {\n StatutSocialSearch?: StatutSocialSearch;\n}\n\nexport interface StatutSocialDeleteRequest {\n id?: number;\n}\n\nexport interface StatutSocialGetRequest {\n id?: number;\n}\n\nexport interface StatutSocialGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface StatutSocialGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface StatutSocialGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface StatutSocialSaveRequest {\n FcbStatutSocialDto?: FcbStatutSocialDto;\n}\n\n/**\n * \n */\nexport class StatutSocialApi extends runtime.BaseAPI {\n\n /**\n */\n async statutSocialBaseSearchRaw(requestParameters: StatutSocialBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutSocial/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: StatutSocialSearchToJSON(requestParameters.StatutSocialSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbStatutSocialGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async statutSocialBaseSearch(requestParameters: StatutSocialBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutSocialBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutSocialDeleteRaw(requestParameters: StatutSocialDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutSocial`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async statutSocialDelete(requestParameters: StatutSocialDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutSocialDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutSocialGetRaw(requestParameters: StatutSocialGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutSocial`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbStatutSocialDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async statutSocialGet(requestParameters: StatutSocialGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutSocialGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutSocialGetDisplayNameRaw(requestParameters: StatutSocialGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutSocial/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async statutSocialGetDisplayName(requestParameters: StatutSocialGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutSocialGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutSocialGetSearchCriteriasRaw(requestParameters: StatutSocialGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutSocial/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async statutSocialGetSearchCriterias(requestParameters: StatutSocialGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.statutSocialGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutSocialGetSelectItemsRaw(requestParameters: StatutSocialGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling statutSocialGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutSocial/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async statutSocialGetSelectItems(requestParameters: StatutSocialGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.statutSocialGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async statutSocialSaveRaw(requestParameters: StatutSocialSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/StatutSocial`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbStatutSocialDtoToJSON(requestParameters.FcbStatutSocialDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbStatutSocialDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async statutSocialSave(requestParameters: StatutSocialSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.statutSocialSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ETypeDernierAvertissement,\n FileDownloadDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n SuiviFichierDto,\n SuiviFichierUploadDto,\n SuiviGlobalSearchDto,\n SuiviGridDtoPaginatedResults,\n SuiviHopeEditDto,\n SuiviHopeMultipleEditDto,\n SuiviSearchDto,\n} from '../models/index';\nimport {\n ETypeDernierAvertissementFromJSON,\n ETypeDernierAvertissementToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SuiviFichierDtoFromJSON,\n SuiviFichierDtoToJSON,\n SuiviFichierUploadDtoFromJSON,\n SuiviFichierUploadDtoToJSON,\n SuiviGlobalSearchDtoFromJSON,\n SuiviGlobalSearchDtoToJSON,\n SuiviGridDtoPaginatedResultsFromJSON,\n SuiviGridDtoPaginatedResultsToJSON,\n SuiviHopeEditDtoFromJSON,\n SuiviHopeEditDtoToJSON,\n SuiviHopeMultipleEditDtoFromJSON,\n SuiviHopeMultipleEditDtoToJSON,\n SuiviSearchDtoFromJSON,\n SuiviSearchDtoToJSON,\n} from '../models/index';\n\nexport interface SuiviBaseSearchRequest {\n SuiviGlobalSearchDto?: SuiviGlobalSearchDto;\n}\n\nexport interface SuiviDeleteSuiviFichierRequest {\n id?: number;\n}\n\nexport interface SuiviDeleteSuiviHopeRequest {\n id?: number;\n}\n\nexport interface SuiviDownloadSuiviFichierRequest {\n id?: number;\n}\n\nexport interface SuiviGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SuiviGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SuiviGetSuiviFichierRequest {\n id?: number;\n}\n\nexport interface SuiviGetSuiviHopeRequest {\n id?: number;\n idapprenant?: number;\n typeAvertissement?: ETypeDernierAvertissement;\n}\n\nexport interface SuiviSaveSuiviFichierRequest {\n SuiviFichierDto?: SuiviFichierDto;\n}\n\nexport interface SuiviSaveSuiviHopeRequest {\n SuiviHopeEditDto?: SuiviHopeEditDto;\n}\n\nexport interface SuiviSaveSuiviHopeMultipleRequest {\n SuiviHopeMultipleEditDto?: SuiviHopeMultipleEditDto;\n}\n\nexport interface SuiviSearchSuiviHopeByApprenantRequest {\n SuiviSearchDto?: SuiviSearchDto;\n}\n\nexport interface SuiviUploadSuiviFichierRequest {\n SuiviFichierUploadDto?: SuiviFichierUploadDto;\n}\n\n/**\n * \n */\nexport class SuiviApi extends runtime.BaseAPI {\n\n /**\n */\n async suiviBaseSearchRaw(requestParameters: SuiviBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviGlobalSearchDtoToJSON(requestParameters.SuiviGlobalSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviBaseSearch(requestParameters: SuiviBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviDeleteSuiviFichierRaw(requestParameters: SuiviDeleteSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/DeleteSuiviFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async suiviDeleteSuiviFichier(requestParameters: SuiviDeleteSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.suiviDeleteSuiviFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async suiviDeleteSuiviHopeRaw(requestParameters: SuiviDeleteSuiviHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/DeleteSuiviHope`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async suiviDeleteSuiviHope(requestParameters: SuiviDeleteSuiviHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.suiviDeleteSuiviHopeRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async suiviDownloadSuiviFichierRaw(requestParameters: SuiviDownloadSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/DownloadSuiviFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviDownloadSuiviFichier(requestParameters: SuiviDownloadSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviDownloadSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviGetSearchCriteriasRaw(requestParameters: SuiviGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async suiviGetSearchCriterias(requestParameters: SuiviGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.suiviGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviGetSelectItemsRaw(requestParameters: SuiviGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling suiviGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async suiviGetSelectItems(requestParameters: SuiviGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.suiviGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviGetSuiviFichierRaw(requestParameters: SuiviGetSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/GetSuiviFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviGetSuiviFichier(requestParameters: SuiviGetSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviGetSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviGetSuiviHopeRaw(requestParameters: SuiviGetSuiviHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n if (requestParameters.idapprenant !== undefined) {\n queryParameters['idapprenant'] = requestParameters.idapprenant;\n }\n\n if (requestParameters.typeAvertissement !== undefined) {\n queryParameters['typeAvertissement'] = requestParameters.typeAvertissement;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/GetSuiviHope`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviHopeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviGetSuiviHope(requestParameters: SuiviGetSuiviHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviGetSuiviHopeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviSaveSuiviFichierRaw(requestParameters: SuiviSaveSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/SaveSuiviFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviFichierDtoToJSON(requestParameters.SuiviFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviSaveSuiviFichier(requestParameters: SuiviSaveSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviSaveSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviSaveSuiviHopeRaw(requestParameters: SuiviSaveSuiviHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/SaveSuiviHope`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviHopeEditDtoToJSON(requestParameters.SuiviHopeEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviHopeEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviSaveSuiviHope(requestParameters: SuiviSaveSuiviHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviSaveSuiviHopeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviSaveSuiviHopeMultipleRaw(requestParameters: SuiviSaveSuiviHopeMultipleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/SaveSuiviHopeMultiple`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviHopeMultipleEditDtoToJSON(requestParameters.SuiviHopeMultipleEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviHopeMultipleEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviSaveSuiviHopeMultiple(requestParameters: SuiviSaveSuiviHopeMultipleRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviSaveSuiviHopeMultipleRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviSearchSuiviHopeByApprenantRaw(requestParameters: SuiviSearchSuiviHopeByApprenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/SearchSuiviHopeByApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviSearchDtoToJSON(requestParameters.SuiviSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviSearchSuiviHopeByApprenant(requestParameters: SuiviSearchSuiviHopeByApprenantRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviSearchSuiviHopeByApprenantRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviUploadSuiviFichierRaw(requestParameters: SuiviUploadSuiviFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Suivi/UploadSuiviFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviFichierUploadDtoToJSON(requestParameters.SuiviFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviUploadSuiviFichier(requestParameters: SuiviUploadSuiviFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviUploadSuiviFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbSuiviApprenantDetailsDto,\n FcbSuiviApprenantGridDtoPaginatedResults,\n FileDownloadDto,\n FilterCriteriaInfo,\n SelectItem,\n SuiviApprenantFichierDto,\n SuiviApprenantFichierUploadDto,\n SuiviApprenantSearch,\n} from '../models/index';\nimport {\n FcbSuiviApprenantDetailsDtoFromJSON,\n FcbSuiviApprenantDetailsDtoToJSON,\n FcbSuiviApprenantGridDtoPaginatedResultsFromJSON,\n FcbSuiviApprenantGridDtoPaginatedResultsToJSON,\n FileDownloadDtoFromJSON,\n FileDownloadDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n SuiviApprenantFichierDtoFromJSON,\n SuiviApprenantFichierDtoToJSON,\n SuiviApprenantFichierUploadDtoFromJSON,\n SuiviApprenantFichierUploadDtoToJSON,\n SuiviApprenantSearchFromJSON,\n SuiviApprenantSearchToJSON,\n} from '../models/index';\n\nexport interface SuiviApprenantBaseSearchRequest {\n SuiviApprenantSearch?: SuiviApprenantSearch;\n}\n\nexport interface SuiviApprenantDeleteRequest {\n id?: number;\n}\n\nexport interface SuiviApprenantDeleteSuiviApprenantFichierRequest {\n id?: number;\n}\n\nexport interface SuiviApprenantDownloadSuiviApprenantFichierRequest {\n id?: number;\n}\n\nexport interface SuiviApprenantGetRequest {\n id?: number;\n}\n\nexport interface SuiviApprenantGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface SuiviApprenantGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SuiviApprenantGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface SuiviApprenantGetSuiviApprenantFichierRequest {\n id?: number;\n}\n\nexport interface SuiviApprenantSaveRequest {\n FcbSuiviApprenantDetailsDto?: FcbSuiviApprenantDetailsDto;\n}\n\nexport interface SuiviApprenantSaveSuiviApprenantFichierRequest {\n SuiviApprenantFichierDto?: SuiviApprenantFichierDto;\n}\n\nexport interface SuiviApprenantUploadSuiviApprenantFichierRequest {\n SuiviApprenantFichierUploadDto?: SuiviApprenantFichierUploadDto;\n}\n\n/**\n * \n */\nexport class SuiviApprenantApi extends runtime.BaseAPI {\n\n /**\n */\n async suiviApprenantBaseSearchRaw(requestParameters: SuiviApprenantBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviApprenantSearchToJSON(requestParameters.SuiviApprenantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSuiviApprenantGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviApprenantBaseSearch(requestParameters: SuiviApprenantBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviApprenantBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantDeleteRaw(requestParameters: SuiviApprenantDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async suiviApprenantDelete(requestParameters: SuiviApprenantDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviApprenantDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantDeleteSuiviApprenantFichierRaw(requestParameters: SuiviApprenantDeleteSuiviApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant/DeleteSuiviApprenantFichier`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async suiviApprenantDeleteSuiviApprenantFichier(requestParameters: SuiviApprenantDeleteSuiviApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.suiviApprenantDeleteSuiviApprenantFichierRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async suiviApprenantDownloadSuiviApprenantFichierRaw(requestParameters: SuiviApprenantDownloadSuiviApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant/DownloadFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FileDownloadDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviApprenantDownloadSuiviApprenantFichier(requestParameters: SuiviApprenantDownloadSuiviApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviApprenantDownloadSuiviApprenantFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantGetRaw(requestParameters: SuiviApprenantGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSuiviApprenantDetailsDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviApprenantGet(requestParameters: SuiviApprenantGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviApprenantGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantGetDisplayNameRaw(requestParameters: SuiviApprenantGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async suiviApprenantGetDisplayName(requestParameters: SuiviApprenantGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviApprenantGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantGetSearchCriteriasRaw(requestParameters: SuiviApprenantGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async suiviApprenantGetSearchCriterias(requestParameters: SuiviApprenantGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.suiviApprenantGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantGetSelectItemsRaw(requestParameters: SuiviApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling suiviApprenantGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async suiviApprenantGetSelectItems(requestParameters: SuiviApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.suiviApprenantGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantGetSuiviApprenantFichierRaw(requestParameters: SuiviApprenantGetSuiviApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant/GetFichier`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviApprenantFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviApprenantGetSuiviApprenantFichier(requestParameters: SuiviApprenantGetSuiviApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviApprenantGetSuiviApprenantFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantSaveRaw(requestParameters: SuiviApprenantSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbSuiviApprenantDetailsDtoToJSON(requestParameters.FcbSuiviApprenantDetailsDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbSuiviApprenantDetailsDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviApprenantSave(requestParameters: SuiviApprenantSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviApprenantSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantSaveSuiviApprenantFichierRaw(requestParameters: SuiviApprenantSaveSuiviApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant/SaveFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviApprenantFichierDtoToJSON(requestParameters.SuiviApprenantFichierDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviApprenantFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviApprenantSaveSuiviApprenantFichier(requestParameters: SuiviApprenantSaveSuiviApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviApprenantSaveSuiviApprenantFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviApprenantUploadSuiviApprenantFichierRaw(requestParameters: SuiviApprenantUploadSuiviApprenantFichierRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviApprenant/UploadSuiviApprenantFichier`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviApprenantFichierUploadDtoToJSON(requestParameters.SuiviApprenantFichierUploadDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviApprenantFichierDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviApprenantUploadSuiviApprenantFichier(requestParameters: SuiviApprenantUploadSuiviApprenantFichierRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviApprenantUploadSuiviApprenantFichierRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n ReferentialItemDto,\n SuiviFichierGridDtoPaginatedResults,\n SuiviFichierSearchDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SuiviFichierGridDtoPaginatedResultsFromJSON,\n SuiviFichierGridDtoPaginatedResultsToJSON,\n SuiviFichierSearchDtoFromJSON,\n SuiviFichierSearchDtoToJSON,\n} from '../models/index';\n\nexport interface SuiviFichierBaseSearchRequest {\n SuiviFichierSearchDto?: SuiviFichierSearchDto;\n}\n\nexport interface SuiviFichierGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SuiviFichierGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class SuiviFichierApi extends runtime.BaseAPI {\n\n /**\n */\n async suiviFichierBaseSearchRaw(requestParameters: SuiviFichierBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviFichier/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SuiviFichierSearchDtoToJSON(requestParameters.SuiviFichierSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SuiviFichierGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviFichierBaseSearch(requestParameters: SuiviFichierBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviFichierBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviFichierGetSearchCriteriasRaw(requestParameters: SuiviFichierGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviFichier/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async suiviFichierGetSearchCriterias(requestParameters: SuiviFichierGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.suiviFichierGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviFichierGetSelectItemsRaw(requestParameters: SuiviFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling suiviFichierGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviFichier/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async suiviFichierGetSelectItems(requestParameters: SuiviFichierGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.suiviFichierGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n ReferentialItemDto,\n SiegeLieuSuiviGridDtoPaginatedResults,\n SiegeLieuSuiviSearchGlobal,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n SiegeLieuSuiviGridDtoPaginatedResultsFromJSON,\n SiegeLieuSuiviGridDtoPaginatedResultsToJSON,\n SiegeLieuSuiviSearchGlobalFromJSON,\n SiegeLieuSuiviSearchGlobalToJSON,\n} from '../models/index';\n\nexport interface SuiviSiegeLieuBaseSearchRequest {\n SiegeLieuSuiviSearchGlobal?: SiegeLieuSuiviSearchGlobal;\n}\n\nexport interface SuiviSiegeLieuGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface SuiviSiegeLieuGetSelectItemsRequest {\n searchField: string;\n}\n\n/**\n * \n */\nexport class SuiviSiegeLieuApi extends runtime.BaseAPI {\n\n /**\n */\n async suiviSiegeLieuBaseSearchRaw(requestParameters: SuiviSiegeLieuBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviSiegeLieu/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SiegeLieuSuiviSearchGlobalToJSON(requestParameters.SiegeLieuSuiviSearchGlobal),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SiegeLieuSuiviGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async suiviSiegeLieuBaseSearch(requestParameters: SuiviSiegeLieuBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.suiviSiegeLieuBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviSiegeLieuGetSearchCriteriasRaw(requestParameters: SuiviSiegeLieuGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviSiegeLieu/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async suiviSiegeLieuGetSearchCriterias(requestParameters: SuiviSiegeLieuGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.suiviSiegeLieuGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async suiviSiegeLieuGetSelectItemsRaw(requestParameters: SuiviSiegeLieuGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling suiviSiegeLieuGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/SuiviSiegeLieu/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async suiviSiegeLieuGetSelectItems(requestParameters: SuiviSiegeLieuGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.suiviSiegeLieuGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ErrorDetails,\n ExposedTypes,\n FrontendSettings,\n ModuleDto,\n SystemInfoDto,\n} from '../models/index';\nimport {\n ErrorDetailsFromJSON,\n ErrorDetailsToJSON,\n ExposedTypesFromJSON,\n ExposedTypesToJSON,\n FrontendSettingsFromJSON,\n FrontendSettingsToJSON,\n ModuleDtoFromJSON,\n ModuleDtoToJSON,\n SystemInfoDtoFromJSON,\n SystemInfoDtoToJSON,\n} from '../models/index';\n\n/**\n * \n */\nexport class SystemApi extends runtime.BaseAPI {\n\n /**\n */\n async systemCheckExceptionRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/System/fail`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ErrorDetailsFromJSON(jsonValue));\n }\n\n /**\n */\n async systemCheckException(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.systemCheckExceptionRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async systemForceUpdateVersionRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/System/ForceUpdateVersion`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async systemForceUpdateVersion(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.systemForceUpdateVersionRaw(initOverrides);\n }\n\n /**\n */\n async systemGeFrontendSettingsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/System/fe-settings`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FrontendSettingsFromJSON(jsonValue));\n }\n\n /**\n */\n async systemGeFrontendSettings(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.systemGeFrontendSettingsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async systemGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/System`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SystemInfoDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async systemGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.systemGetRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async systemGetExposedTypesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/System/exposed-types`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ExposedTypesFromJSON(jsonValue));\n }\n\n /**\n */\n async systemGetExposedTypes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.systemGetExposedTypesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async systemGetModulesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/System/modules`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ModuleDtoFromJSON));\n }\n\n /**\n */\n async systemGetModules(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.systemGetModulesRaw(initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbTitrePedagogiqueDto,\n FcbTitrePedagogiqueDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n TitrePedagogiqueSearch,\n ValidationError,\n} from '../models/index';\nimport {\n FcbTitrePedagogiqueDtoFromJSON,\n FcbTitrePedagogiqueDtoToJSON,\n FcbTitrePedagogiqueDtoPaginatedResultsFromJSON,\n FcbTitrePedagogiqueDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n TitrePedagogiqueSearchFromJSON,\n TitrePedagogiqueSearchToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface TitrePedagogiqueBaseSearchRequest {\n TitrePedagogiqueSearch?: TitrePedagogiqueSearch;\n}\n\nexport interface TitrePedagogiqueDeleteRequest {\n id?: number;\n}\n\nexport interface TitrePedagogiqueExistsRequest {\n libelle?: string;\n}\n\nexport interface TitrePedagogiqueGetRequest {\n id?: number;\n}\n\nexport interface TitrePedagogiqueGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface TitrePedagogiqueGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface TitrePedagogiqueGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface TitrePedagogiqueSaveRequest {\n FcbTitrePedagogiqueDto?: FcbTitrePedagogiqueDto;\n}\n\n/**\n * \n */\nexport class TitrePedagogiqueApi extends runtime.BaseAPI {\n\n /**\n */\n async titrePedagogiqueBaseSearchRaw(requestParameters: TitrePedagogiqueBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TitrePedagogique/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TitrePedagogiqueSearchToJSON(requestParameters.TitrePedagogiqueSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTitrePedagogiqueDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async titrePedagogiqueBaseSearch(requestParameters: TitrePedagogiqueBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.titrePedagogiqueBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async titrePedagogiqueDeleteRaw(requestParameters: TitrePedagogiqueDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TitrePedagogique`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async titrePedagogiqueDelete(requestParameters: TitrePedagogiqueDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.titrePedagogiqueDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async titrePedagogiqueExistsRaw(requestParameters: TitrePedagogiqueExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.libelle !== undefined) {\n queryParameters['libelle'] = requestParameters.libelle;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TitrePedagogique/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async titrePedagogiqueExists(requestParameters: TitrePedagogiqueExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.titrePedagogiqueExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async titrePedagogiqueGetRaw(requestParameters: TitrePedagogiqueGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TitrePedagogique`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTitrePedagogiqueDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async titrePedagogiqueGet(requestParameters: TitrePedagogiqueGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.titrePedagogiqueGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async titrePedagogiqueGetDisplayNameRaw(requestParameters: TitrePedagogiqueGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TitrePedagogique/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async titrePedagogiqueGetDisplayName(requestParameters: TitrePedagogiqueGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.titrePedagogiqueGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async titrePedagogiqueGetSearchCriteriasRaw(requestParameters: TitrePedagogiqueGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TitrePedagogique/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async titrePedagogiqueGetSearchCriterias(requestParameters: TitrePedagogiqueGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.titrePedagogiqueGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async titrePedagogiqueGetSelectItemsRaw(requestParameters: TitrePedagogiqueGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling titrePedagogiqueGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TitrePedagogique/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async titrePedagogiqueGetSelectItems(requestParameters: TitrePedagogiqueGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.titrePedagogiqueGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async titrePedagogiqueSaveRaw(requestParameters: TitrePedagogiqueSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TitrePedagogique`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbTitrePedagogiqueDtoToJSON(requestParameters.FcbTitrePedagogiqueDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTitrePedagogiqueDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async titrePedagogiqueSave(requestParameters: TitrePedagogiqueSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.titrePedagogiqueSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n DateDuringContratDto,\n DisplayNameDto,\n FilterCriteriaInfo,\n ReferentialItemDto,\n TuteurEditDto,\n TuteurGridDtoPaginatedResults,\n TuteurHistoryGridDtoPaginatedResults,\n TuteurHistorySearch,\n TuteurLieuDoublonGridDtoPaginatedResults,\n TuteurLieuDoublonSearchDto,\n TuteurLieuFormationGridDtoPaginatedResults,\n TuteurLieuFormationSearchDto,\n TuteurLieuGridDtoPaginatedResults,\n TuteurSearchDto,\n TuteurSelectorGridDtoPaginatedResults,\n TuteurSelectorSearch,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n DateDuringContratDtoFromJSON,\n DateDuringContratDtoToJSON,\n DisplayNameDtoFromJSON,\n DisplayNameDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n TuteurEditDtoFromJSON,\n TuteurEditDtoToJSON,\n TuteurGridDtoPaginatedResultsFromJSON,\n TuteurGridDtoPaginatedResultsToJSON,\n TuteurHistoryGridDtoPaginatedResultsFromJSON,\n TuteurHistoryGridDtoPaginatedResultsToJSON,\n TuteurHistorySearchFromJSON,\n TuteurHistorySearchToJSON,\n TuteurLieuDoublonGridDtoPaginatedResultsFromJSON,\n TuteurLieuDoublonGridDtoPaginatedResultsToJSON,\n TuteurLieuDoublonSearchDtoFromJSON,\n TuteurLieuDoublonSearchDtoToJSON,\n TuteurLieuFormationGridDtoPaginatedResultsFromJSON,\n TuteurLieuFormationGridDtoPaginatedResultsToJSON,\n TuteurLieuFormationSearchDtoFromJSON,\n TuteurLieuFormationSearchDtoToJSON,\n TuteurLieuGridDtoPaginatedResultsFromJSON,\n TuteurLieuGridDtoPaginatedResultsToJSON,\n TuteurSearchDtoFromJSON,\n TuteurSearchDtoToJSON,\n TuteurSelectorGridDtoPaginatedResultsFromJSON,\n TuteurSelectorGridDtoPaginatedResultsToJSON,\n TuteurSelectorSearchFromJSON,\n TuteurSelectorSearchToJSON,\n} from '../models/index';\n\nexport interface TuteurBaseSearchRequest {\n TuteurSearchDto?: TuteurSearchDto;\n}\n\nexport interface TuteurDeleteTuteurLieuRequest {\n IdtuteurLieu?: number;\n}\n\nexport interface TuteurGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface TuteurGetDisplayNamesRequest {\n request_body?: Array;\n}\n\nexport interface TuteurGetIdPersonneRequest {\n idtuteur?: number;\n}\n\nexport interface TuteurGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface TuteurGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface TuteurGetTuteurRequest {\n idtuteur?: number;\n}\n\nexport interface TuteurGetTuteurLieuRequest {\n IdtuteurLieu?: number;\n}\n\nexport interface TuteurGetTuteurLieuByIdsRequest {\n idtuteur?: number;\n idlieuFormation?: number;\n}\n\nexport interface TuteurIsActifLieuRequest {\n idtuteur?: number;\n idlieuFormation?: number;\n}\n\nexport interface TuteurIsCapaciteForfmativeAtteinteRequest {\n idtuteur?: number;\n idlieuFormation?: number;\n}\n\nexport interface TuteurIsDateDuringContratRequest {\n DateDuringContratDto?: DateDuringContratDto;\n}\n\nexport interface TuteurIsSppRequest {\n idtuteur?: number;\n}\n\nexport interface TuteurSaveTuteurRequest {\n TuteurEditDto?: TuteurEditDto;\n}\n\nexport interface TuteurSaveTuteurLieuRequest {\n TuteurEditDto?: TuteurEditDto;\n}\n\nexport interface TuteurSearchDoublonsLieuRequest {\n TuteurLieuDoublonSearchDto?: TuteurLieuDoublonSearchDto;\n}\n\nexport interface TuteurSearchHistoryRequest {\n TuteurHistorySearch?: TuteurHistorySearch;\n}\n\nexport interface TuteurSearchSelectorRequest {\n TuteurSelectorSearch?: TuteurSelectorSearch;\n}\n\nexport interface TuteurSearchTuteurIdsRequest {\n TuteurSearchDto?: TuteurSearchDto;\n}\n\nexport interface TuteurSearchTuteurLieuFormationRequest {\n TuteurLieuFormationSearchDto?: TuteurLieuFormationSearchDto;\n}\n\nexport interface TuteurSearchTuteursLieuRequest {\n TuteurSearchDto?: TuteurSearchDto;\n}\n\n/**\n * \n */\nexport class TuteurApi extends runtime.BaseAPI {\n\n /**\n */\n async tuteurBaseSearchRaw(requestParameters: TuteurBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TuteurSearchDtoToJSON(requestParameters.TuteurSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurBaseSearch(requestParameters: TuteurBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurDeleteTuteurLieuRaw(requestParameters: TuteurDeleteTuteurLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.IdtuteurLieu !== undefined) {\n queryParameters['IdtuteurLieu'] = requestParameters.IdtuteurLieu;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/DeleteTuteurLieu`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async tuteurDeleteTuteurLieu(requestParameters: TuteurDeleteTuteurLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.tuteurDeleteTuteurLieuRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async tuteurGetDisplayNameRaw(requestParameters: TuteurGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async tuteurGetDisplayName(requestParameters: TuteurGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurGetDisplayNamesRaw(requestParameters: TuteurGetDisplayNamesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/GetDisplayNames`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters.request_body,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DisplayNameDtoFromJSON));\n }\n\n /**\n */\n async tuteurGetDisplayNames(requestParameters: TuteurGetDisplayNamesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.tuteurGetDisplayNamesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurGetIdPersonneRaw(requestParameters: TuteurGetIdPersonneRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtuteur !== undefined) {\n queryParameters['idtuteur'] = requestParameters.idtuteur;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/GetIdPersonne`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async tuteurGetIdPersonne(requestParameters: TuteurGetIdPersonneRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurGetIdPersonneRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurGetSearchCriteriasRaw(requestParameters: TuteurGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async tuteurGetSearchCriterias(requestParameters: TuteurGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.tuteurGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurGetSelectItemsRaw(requestParameters: TuteurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling tuteurGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async tuteurGetSelectItems(requestParameters: TuteurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.tuteurGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurGetTuteurRaw(requestParameters: TuteurGetTuteurRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtuteur !== undefined) {\n queryParameters['idtuteur'] = requestParameters.idtuteur;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurGetTuteur(requestParameters: TuteurGetTuteurRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurGetTuteurRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurGetTuteurLieuRaw(requestParameters: TuteurGetTuteurLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.IdtuteurLieu !== undefined) {\n queryParameters['IdtuteurLieu'] = requestParameters.IdtuteurLieu;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/GetTuteurLieu`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurGetTuteurLieu(requestParameters: TuteurGetTuteurLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurGetTuteurLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurGetTuteurLieuByIdsRaw(requestParameters: TuteurGetTuteurLieuByIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtuteur !== undefined) {\n queryParameters['idtuteur'] = requestParameters.idtuteur;\n }\n\n if (requestParameters.idlieuFormation !== undefined) {\n queryParameters['idlieuFormation'] = requestParameters.idlieuFormation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/GetTuteurLieuByIds`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurGetTuteurLieuByIds(requestParameters: TuteurGetTuteurLieuByIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurGetTuteurLieuByIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurIsActifLieuRaw(requestParameters: TuteurIsActifLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtuteur !== undefined) {\n queryParameters['idtuteur'] = requestParameters.idtuteur;\n }\n\n if (requestParameters.idlieuFormation !== undefined) {\n queryParameters['idlieuFormation'] = requestParameters.idlieuFormation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/IsActifLieu`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurIsActifLieu(requestParameters: TuteurIsActifLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurIsActifLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurIsCapaciteForfmativeAtteinteRaw(requestParameters: TuteurIsCapaciteForfmativeAtteinteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtuteur !== undefined) {\n queryParameters['idtuteur'] = requestParameters.idtuteur;\n }\n\n if (requestParameters.idlieuFormation !== undefined) {\n queryParameters['idlieuFormation'] = requestParameters.idlieuFormation;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/IsCapaciteForfmativeAtteinte`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurIsCapaciteForfmativeAtteinte(requestParameters: TuteurIsCapaciteForfmativeAtteinteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurIsCapaciteForfmativeAtteinteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurIsDateDuringContratRaw(requestParameters: TuteurIsDateDuringContratRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/IsDateDuringContrat`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DateDuringContratDtoToJSON(requestParameters.DateDuringContratDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurIsDateDuringContrat(requestParameters: TuteurIsDateDuringContratRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurIsDateDuringContratRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurIsSppRaw(requestParameters: TuteurIsSppRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idtuteur !== undefined) {\n queryParameters['idtuteur'] = requestParameters.idtuteur;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/IsSpp`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurIsSpp(requestParameters: TuteurIsSppRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurIsSppRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurSaveTuteurRaw(requestParameters: TuteurSaveTuteurRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TuteurEditDtoToJSON(requestParameters.TuteurEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurSaveTuteur(requestParameters: TuteurSaveTuteurRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurSaveTuteurRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurSaveTuteurLieuRaw(requestParameters: TuteurSaveTuteurLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/SaveTuteurLieu`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TuteurEditDtoToJSON(requestParameters.TuteurEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurSaveTuteurLieu(requestParameters: TuteurSaveTuteurLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurSaveTuteurLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurSearchDoublonsLieuRaw(requestParameters: TuteurSearchDoublonsLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/SearchDoublonsLieu`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TuteurLieuDoublonSearchDtoToJSON(requestParameters.TuteurLieuDoublonSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurLieuDoublonGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurSearchDoublonsLieu(requestParameters: TuteurSearchDoublonsLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurSearchDoublonsLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurSearchHistoryRaw(requestParameters: TuteurSearchHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/SearchHistory`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TuteurHistorySearchToJSON(requestParameters.TuteurHistorySearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurHistoryGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurSearchHistory(requestParameters: TuteurSearchHistoryRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurSearchHistoryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurSearchSelectorRaw(requestParameters: TuteurSearchSelectorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/SearchSelector`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TuteurSelectorSearchToJSON(requestParameters.TuteurSelectorSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurSelectorGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurSearchSelector(requestParameters: TuteurSearchSelectorRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurSearchSelectorRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurSearchTuteurIdsRaw(requestParameters: TuteurSearchTuteurIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/SearchTuteurIds`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TuteurSearchDtoToJSON(requestParameters.TuteurSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n */\n async tuteurSearchTuteurIds(requestParameters: TuteurSearchTuteurIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.tuteurSearchTuteurIdsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurSearchTuteurLieuFormationRaw(requestParameters: TuteurSearchTuteurLieuFormationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/SearchTuteurLieuFormation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TuteurLieuFormationSearchDtoToJSON(requestParameters.TuteurLieuFormationSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurLieuFormationGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurSearchTuteurLieuFormation(requestParameters: TuteurSearchTuteurLieuFormationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurSearchTuteurLieuFormationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async tuteurSearchTuteursLieuRaw(requestParameters: TuteurSearchTuteursLieuRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Tuteur/SearchTuteursLieu`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TuteurSearchDtoToJSON(requestParameters.TuteurSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TuteurLieuGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async tuteurSearchTuteursLieu(requestParameters: TuteurSearchTuteursLieuRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.tuteurSearchTuteursLieuRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n ReferentialItemDto,\n TypeBulletinEditDto,\n TypeBulletinGridDtoPaginatedResults,\n TypeBulletinSearchDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n TypeBulletinEditDtoFromJSON,\n TypeBulletinEditDtoToJSON,\n TypeBulletinGridDtoPaginatedResultsFromJSON,\n TypeBulletinGridDtoPaginatedResultsToJSON,\n TypeBulletinSearchDtoFromJSON,\n TypeBulletinSearchDtoToJSON,\n} from '../models/index';\n\nexport interface TypeBulletinBaseSearchRequest {\n TypeBulletinSearchDto?: TypeBulletinSearchDto;\n}\n\nexport interface TypeBulletinDeleteTypeBulletinRequest {\n id?: number;\n}\n\nexport interface TypeBulletinGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface TypeBulletinGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface TypeBulletinGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface TypeBulletinGetTypeBulletinRequest {\n id?: number;\n}\n\nexport interface TypeBulletinSaveTypeBulletinRequest {\n TypeBulletinEditDto?: TypeBulletinEditDto;\n}\n\n/**\n * \n */\nexport class TypeBulletinApi extends runtime.BaseAPI {\n\n /**\n */\n async typeBulletinBaseSearchRaw(requestParameters: TypeBulletinBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeBulletin/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TypeBulletinSearchDtoToJSON(requestParameters.TypeBulletinSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TypeBulletinGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async typeBulletinBaseSearch(requestParameters: TypeBulletinBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeBulletinBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeBulletinDeleteTypeBulletinRaw(requestParameters: TypeBulletinDeleteTypeBulletinRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeBulletin`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async typeBulletinDeleteTypeBulletin(requestParameters: TypeBulletinDeleteTypeBulletinRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.typeBulletinDeleteTypeBulletinRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async typeBulletinGetDisplayNameRaw(requestParameters: TypeBulletinGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeBulletin/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async typeBulletinGetDisplayName(requestParameters: TypeBulletinGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeBulletinGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeBulletinGetSearchCriteriasRaw(requestParameters: TypeBulletinGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeBulletin/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async typeBulletinGetSearchCriterias(requestParameters: TypeBulletinGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeBulletinGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeBulletinGetSelectItemsRaw(requestParameters: TypeBulletinGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling typeBulletinGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeBulletin/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async typeBulletinGetSelectItems(requestParameters: TypeBulletinGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeBulletinGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeBulletinGetTypeBulletinRaw(requestParameters: TypeBulletinGetTypeBulletinRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeBulletin`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TypeBulletinEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeBulletinGetTypeBulletin(requestParameters: TypeBulletinGetTypeBulletinRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeBulletinGetTypeBulletinRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeBulletinSaveTypeBulletinRaw(requestParameters: TypeBulletinSaveTypeBulletinRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeBulletin`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TypeBulletinEditDtoToJSON(requestParameters.TypeBulletinEditDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TypeBulletinEditDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeBulletinSaveTypeBulletin(requestParameters: TypeBulletinSaveTypeBulletinRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeBulletinSaveTypeBulletinRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbTypeCoursDto,\n FcbTypeCoursGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n TypeCoursSearch,\n ValidationError,\n} from '../models/index';\nimport {\n FcbTypeCoursDtoFromJSON,\n FcbTypeCoursDtoToJSON,\n FcbTypeCoursGridDtoPaginatedResultsFromJSON,\n FcbTypeCoursGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n TypeCoursSearchFromJSON,\n TypeCoursSearchToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface TypeCoursBaseSearchRequest {\n TypeCoursSearch?: TypeCoursSearch;\n}\n\nexport interface TypeCoursCodeExistsRequest {\n code?: string;\n}\n\nexport interface TypeCoursDeleteRequest {\n code?: string;\n}\n\nexport interface TypeCoursGetRequest {\n code?: string;\n}\n\nexport interface TypeCoursGetDisplayNameRequest {\n id?: string;\n}\n\nexport interface TypeCoursGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface TypeCoursGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface TypeCoursLibelleExistsRequest {\n code?: string;\n libelle?: string;\n}\n\nexport interface TypeCoursSaveRequest {\n FcbTypeCoursDto?: FcbTypeCoursDto;\n}\n\n/**\n * \n */\nexport class TypeCoursApi extends runtime.BaseAPI {\n\n /**\n */\n async typeCoursBaseSearchRaw(requestParameters: TypeCoursBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeCours/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TypeCoursSearchToJSON(requestParameters.TypeCoursSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeCoursGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async typeCoursBaseSearch(requestParameters: TypeCoursBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeCoursBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeCoursCodeExistsRaw(requestParameters: TypeCoursCodeExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeCours/codeExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async typeCoursCodeExists(requestParameters: TypeCoursCodeExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeCoursCodeExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeCoursDeleteRaw(requestParameters: TypeCoursDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeCours`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async typeCoursDelete(requestParameters: TypeCoursDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeCoursDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeCoursGetRaw(requestParameters: TypeCoursGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeCours`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeCoursDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeCoursGet(requestParameters: TypeCoursGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeCoursGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeCoursGetDisplayNameRaw(requestParameters: TypeCoursGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeCours/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async typeCoursGetDisplayName(requestParameters: TypeCoursGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeCoursGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeCoursGetSearchCriteriasRaw(requestParameters: TypeCoursGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeCours/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async typeCoursGetSearchCriterias(requestParameters: TypeCoursGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeCoursGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeCoursGetSelectItemsRaw(requestParameters: TypeCoursGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling typeCoursGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeCours/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async typeCoursGetSelectItems(requestParameters: TypeCoursGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeCoursGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeCoursLibelleExistsRaw(requestParameters: TypeCoursLibelleExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.code !== undefined) {\n queryParameters['code'] = requestParameters.code;\n }\n\n if (requestParameters.libelle !== undefined) {\n queryParameters['libelle'] = requestParameters.libelle;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeCours/libelleExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async typeCoursLibelleExists(requestParameters: TypeCoursLibelleExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeCoursLibelleExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeCoursSaveRaw(requestParameters: TypeCoursSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeCours`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbTypeCoursDtoToJSON(requestParameters.FcbTypeCoursDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeCoursDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeCoursSave(requestParameters: TypeCoursSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeCoursSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbTypeEnseignementDto,\n FcbTypeEnseignementDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n TypeEnseignementSearch,\n} from '../models/index';\nimport {\n FcbTypeEnseignementDtoFromJSON,\n FcbTypeEnseignementDtoToJSON,\n FcbTypeEnseignementDtoPaginatedResultsFromJSON,\n FcbTypeEnseignementDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n TypeEnseignementSearchFromJSON,\n TypeEnseignementSearchToJSON,\n} from '../models/index';\n\nexport interface TypeEnseignementBaseSearchRequest {\n TypeEnseignementSearch?: TypeEnseignementSearch;\n}\n\nexport interface TypeEnseignementDeleteRequest {\n id?: number;\n}\n\nexport interface TypeEnseignementGetRequest {\n id?: number;\n}\n\nexport interface TypeEnseignementGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface TypeEnseignementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface TypeEnseignementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface TypeEnseignementSaveRequest {\n FcbTypeEnseignementDto?: FcbTypeEnseignementDto;\n}\n\n/**\n * \n */\nexport class TypeEnseignementApi extends runtime.BaseAPI {\n\n /**\n */\n async typeEnseignementBaseSearchRaw(requestParameters: TypeEnseignementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEnseignement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TypeEnseignementSearchToJSON(requestParameters.TypeEnseignementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeEnseignementDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async typeEnseignementBaseSearch(requestParameters: TypeEnseignementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEnseignementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEnseignementDeleteRaw(requestParameters: TypeEnseignementDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEnseignement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async typeEnseignementDelete(requestParameters: TypeEnseignementDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEnseignementDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEnseignementGetRaw(requestParameters: TypeEnseignementGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEnseignement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeEnseignementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeEnseignementGet(requestParameters: TypeEnseignementGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEnseignementGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEnseignementGetDisplayNameRaw(requestParameters: TypeEnseignementGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEnseignement/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async typeEnseignementGetDisplayName(requestParameters: TypeEnseignementGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEnseignementGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEnseignementGetSearchCriteriasRaw(requestParameters: TypeEnseignementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEnseignement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async typeEnseignementGetSearchCriterias(requestParameters: TypeEnseignementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeEnseignementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEnseignementGetSelectItemsRaw(requestParameters: TypeEnseignementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling typeEnseignementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEnseignement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async typeEnseignementGetSelectItems(requestParameters: TypeEnseignementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeEnseignementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEnseignementSaveRaw(requestParameters: TypeEnseignementSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEnseignement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbTypeEnseignementDtoToJSON(requestParameters.FcbTypeEnseignementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeEnseignementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeEnseignementSave(requestParameters: TypeEnseignementSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEnseignementSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbTypeEvaluationDto,\n FcbTypeEvaluationDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n TypeEvaluationSearch,\n ValidationError,\n} from '../models/index';\nimport {\n FcbTypeEvaluationDtoFromJSON,\n FcbTypeEvaluationDtoToJSON,\n FcbTypeEvaluationDtoPaginatedResultsFromJSON,\n FcbTypeEvaluationDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n TypeEvaluationSearchFromJSON,\n TypeEvaluationSearchToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface TypeEvaluationBaseSearchRequest {\n TypeEvaluationSearch?: TypeEvaluationSearch;\n}\n\nexport interface TypeEvaluationDeleteRequest {\n id?: number;\n}\n\nexport interface TypeEvaluationExistsRequest {\n libelle?: string;\n}\n\nexport interface TypeEvaluationGetRequest {\n id?: number;\n}\n\nexport interface TypeEvaluationGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface TypeEvaluationGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface TypeEvaluationGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface TypeEvaluationSaveRequest {\n FcbTypeEvaluationDto?: FcbTypeEvaluationDto;\n}\n\n/**\n * \n */\nexport class TypeEvaluationApi extends runtime.BaseAPI {\n\n /**\n */\n async typeEvaluationBaseSearchRaw(requestParameters: TypeEvaluationBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEvaluation/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TypeEvaluationSearchToJSON(requestParameters.TypeEvaluationSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeEvaluationDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async typeEvaluationBaseSearch(requestParameters: TypeEvaluationBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEvaluationBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEvaluationDeleteRaw(requestParameters: TypeEvaluationDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEvaluation`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async typeEvaluationDelete(requestParameters: TypeEvaluationDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEvaluationDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEvaluationExistsRaw(requestParameters: TypeEvaluationExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.libelle !== undefined) {\n queryParameters['libelle'] = requestParameters.libelle;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEvaluation/Exists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async typeEvaluationExists(requestParameters: TypeEvaluationExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEvaluationExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEvaluationGetRaw(requestParameters: TypeEvaluationGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEvaluation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeEvaluationDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeEvaluationGet(requestParameters: TypeEvaluationGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEvaluationGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEvaluationGetDisplayNameRaw(requestParameters: TypeEvaluationGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEvaluation/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async typeEvaluationGetDisplayName(requestParameters: TypeEvaluationGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEvaluationGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEvaluationGetSearchCriteriasRaw(requestParameters: TypeEvaluationGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEvaluation/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async typeEvaluationGetSearchCriterias(requestParameters: TypeEvaluationGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeEvaluationGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEvaluationGetSelectItemsRaw(requestParameters: TypeEvaluationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling typeEvaluationGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEvaluation/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async typeEvaluationGetSelectItems(requestParameters: TypeEvaluationGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeEvaluationGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeEvaluationSaveRaw(requestParameters: TypeEvaluationSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeEvaluation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbTypeEvaluationDtoToJSON(requestParameters.FcbTypeEvaluationDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeEvaluationDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeEvaluationSave(requestParameters: TypeEvaluationSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeEvaluationSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbTypeFinancementDto,\n FcbTypeFinancementGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n TypeFinancementSearch,\n} from '../models/index';\nimport {\n FcbTypeFinancementDtoFromJSON,\n FcbTypeFinancementDtoToJSON,\n FcbTypeFinancementGridDtoPaginatedResultsFromJSON,\n FcbTypeFinancementGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n TypeFinancementSearchFromJSON,\n TypeFinancementSearchToJSON,\n} from '../models/index';\n\nexport interface TypeFinancementBaseSearchRequest {\n TypeFinancementSearch?: TypeFinancementSearch;\n}\n\nexport interface TypeFinancementDeleteRequest {\n id?: number;\n}\n\nexport interface TypeFinancementGetRequest {\n id?: number;\n}\n\nexport interface TypeFinancementGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface TypeFinancementGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface TypeFinancementGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface TypeFinancementSaveRequest {\n FcbTypeFinancementDto?: FcbTypeFinancementDto;\n}\n\n/**\n * \n */\nexport class TypeFinancementApi extends runtime.BaseAPI {\n\n /**\n */\n async typeFinancementBaseSearchRaw(requestParameters: TypeFinancementBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeFinancement/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: TypeFinancementSearchToJSON(requestParameters.TypeFinancementSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeFinancementGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async typeFinancementBaseSearch(requestParameters: TypeFinancementBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeFinancementBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeFinancementDeleteRaw(requestParameters: TypeFinancementDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeFinancement`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async typeFinancementDelete(requestParameters: TypeFinancementDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeFinancementDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeFinancementGetRaw(requestParameters: TypeFinancementGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeFinancement`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeFinancementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeFinancementGet(requestParameters: TypeFinancementGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeFinancementGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeFinancementGetDisplayNameRaw(requestParameters: TypeFinancementGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeFinancement/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async typeFinancementGetDisplayName(requestParameters: TypeFinancementGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeFinancementGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeFinancementGetSearchCriteriasRaw(requestParameters: TypeFinancementGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeFinancement/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async typeFinancementGetSearchCriterias(requestParameters: TypeFinancementGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeFinancementGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeFinancementGetSelectItemsRaw(requestParameters: TypeFinancementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling typeFinancementGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeFinancement/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async typeFinancementGetSelectItems(requestParameters: TypeFinancementGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.typeFinancementGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async typeFinancementSaveRaw(requestParameters: TypeFinancementSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/TypeFinancement`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbTypeFinancementDtoToJSON(requestParameters.FcbTypeFinancementDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbTypeFinancementDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async typeFinancementSave(requestParameters: TypeFinancementSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.typeFinancementSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbUniteActiviteDto,\n FcbUniteActiviteDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n UniteActiviteSearch,\n} from '../models/index';\nimport {\n FcbUniteActiviteDtoFromJSON,\n FcbUniteActiviteDtoToJSON,\n FcbUniteActiviteDtoPaginatedResultsFromJSON,\n FcbUniteActiviteDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n UniteActiviteSearchFromJSON,\n UniteActiviteSearchToJSON,\n} from '../models/index';\n\nexport interface UniteActiviteBaseSearchRequest {\n UniteActiviteSearch?: UniteActiviteSearch;\n}\n\nexport interface UniteActiviteDeleteRequest {\n id?: number;\n}\n\nexport interface UniteActiviteGetRequest {\n id?: number;\n}\n\nexport interface UniteActiviteGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface UniteActiviteGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface UniteActiviteGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface UniteActiviteSaveRequest {\n FcbUniteActiviteDto?: FcbUniteActiviteDto;\n}\n\n/**\n * \n */\nexport class UniteActiviteApi extends runtime.BaseAPI {\n\n /**\n */\n async uniteActiviteBaseSearchRaw(requestParameters: UniteActiviteBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UniteActivite/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UniteActiviteSearchToJSON(requestParameters.UniteActiviteSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbUniteActiviteDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async uniteActiviteBaseSearch(requestParameters: UniteActiviteBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.uniteActiviteBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async uniteActiviteDeleteRaw(requestParameters: UniteActiviteDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UniteActivite`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async uniteActiviteDelete(requestParameters: UniteActiviteDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.uniteActiviteDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async uniteActiviteGetRaw(requestParameters: UniteActiviteGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UniteActivite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbUniteActiviteDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async uniteActiviteGet(requestParameters: UniteActiviteGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.uniteActiviteGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async uniteActiviteGetDisplayNameRaw(requestParameters: UniteActiviteGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UniteActivite/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async uniteActiviteGetDisplayName(requestParameters: UniteActiviteGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.uniteActiviteGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async uniteActiviteGetSearchCriteriasRaw(requestParameters: UniteActiviteGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UniteActivite/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async uniteActiviteGetSearchCriterias(requestParameters: UniteActiviteGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.uniteActiviteGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async uniteActiviteGetSelectItemsRaw(requestParameters: UniteActiviteGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling uniteActiviteGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UniteActivite/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async uniteActiviteGetSelectItems(requestParameters: UniteActiviteGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.uniteActiviteGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async uniteActiviteSaveRaw(requestParameters: UniteActiviteSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UniteActivite`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbUniteActiviteDtoToJSON(requestParameters.FcbUniteActiviteDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbUniteActiviteDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async uniteActiviteSave(requestParameters: UniteActiviteSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.uniteActiviteSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n UserProfileDto,\n} from '../models/index';\nimport {\n UserProfileDtoFromJSON,\n UserProfileDtoToJSON,\n} from '../models/index';\n\nexport interface UsersDisableStartupPopupRequest {\n iduser: number;\n}\n\nexport interface UsersGetProfileRequest {\n userId?: number;\n}\n\nexport interface UsersImpersonateRequest {\n userId?: number;\n}\n\n/**\n * \n */\nexport class UsersApi extends runtime.BaseAPI {\n\n /**\n */\n async usersAuthenticateRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Users/authenticate`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => UserProfileDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async usersAuthenticate(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.usersAuthenticateRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersDisableStartupPopupRaw(requestParameters: UsersDisableStartupPopupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n if (requestParameters.iduser === null || requestParameters.iduser === undefined) {\n throw new runtime.RequiredError('iduser','Required parameter requestParameters.iduser was null or undefined when calling usersDisableStartupPopup.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Users/{iduser}/disable-startut-popup`.replace(`{${\"iduser\"}}`, encodeURIComponent(String(requestParameters.iduser))),\n method: 'PUT',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async usersDisableStartupPopup(requestParameters: UsersDisableStartupPopupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.usersDisableStartupPopupRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async usersGetProfileRaw(requestParameters: UsersGetProfileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.userId !== undefined) {\n queryParameters['userId'] = requestParameters.userId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Users/profile`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => UserProfileDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async usersGetProfile(requestParameters: UsersGetProfileRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.usersGetProfileRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersImpersonateRaw(requestParameters: UsersImpersonateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.userId !== undefined) {\n queryParameters['userId'] = requestParameters.userId;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Users/impersonate`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async usersImpersonate(requestParameters: UsersImpersonateRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.usersImpersonateRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async usersLogoutRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Users/logout`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async usersLogout(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.usersLogoutRaw(initOverrides);\n }\n\n /**\n */\n async usersLogoutImpersonateRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Users/logout-impersonate`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async usersLogoutImpersonate(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.usersLogoutImpersonateRaw(initOverrides);\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbUserCentresLiesGridDtoPaginatedResults,\n FcbUsersCentresLiesDto,\n FilterCriteriaInfo,\n SelectItem,\n UsersCentresLiesSearch,\n} from '../models/index';\nimport {\n FcbUserCentresLiesGridDtoPaginatedResultsFromJSON,\n FcbUserCentresLiesGridDtoPaginatedResultsToJSON,\n FcbUsersCentresLiesDtoFromJSON,\n FcbUsersCentresLiesDtoToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n UsersCentresLiesSearchFromJSON,\n UsersCentresLiesSearchToJSON,\n} from '../models/index';\n\nexport interface UsersCentresLiesBaseSearchRequest {\n UsersCentresLiesSearch?: UsersCentresLiesSearch;\n}\n\nexport interface UsersCentresLiesGetCentresRequest {\n idUser?: number;\n}\n\nexport interface UsersCentresLiesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface UsersCentresLiesGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface UsersCentresLiesSaveCentresRequest {\n FcbUsersCentresLiesDto?: FcbUsersCentresLiesDto;\n}\n\n/**\n * \n */\nexport class UsersCentresLiesApi extends runtime.BaseAPI {\n\n /**\n */\n async usersCentresLiesBaseSearchRaw(requestParameters: UsersCentresLiesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersCentresLies/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UsersCentresLiesSearchToJSON(requestParameters.UsersCentresLiesSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbUserCentresLiesGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async usersCentresLiesBaseSearch(requestParameters: UsersCentresLiesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.usersCentresLiesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersCentresLiesGetCentresRaw(requestParameters: UsersCentresLiesGetCentresRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idUser !== undefined) {\n queryParameters['idUser'] = requestParameters.idUser;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersCentresLies`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbUsersCentresLiesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async usersCentresLiesGetCentres(requestParameters: UsersCentresLiesGetCentresRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.usersCentresLiesGetCentresRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersCentresLiesGetSearchCriteriasRaw(requestParameters: UsersCentresLiesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersCentresLies/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async usersCentresLiesGetSearchCriterias(requestParameters: UsersCentresLiesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.usersCentresLiesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersCentresLiesGetSelectItemsRaw(requestParameters: UsersCentresLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling usersCentresLiesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersCentresLies/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async usersCentresLiesGetSelectItems(requestParameters: UsersCentresLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.usersCentresLiesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersCentresLiesSaveCentresRaw(requestParameters: UsersCentresLiesSaveCentresRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersCentresLies/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbUsersCentresLiesDtoToJSON(requestParameters.FcbUsersCentresLiesDto),\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async usersCentresLiesSaveCentres(requestParameters: UsersCentresLiesSaveCentresRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.usersCentresLiesSaveCentresRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FilterCriteriaInfo,\n ReferentialItemDto,\n UsersServicesLiesDto,\n UsersServicesLiesGridDtoPaginatedResults,\n UsersServicesLiesSearchDto,\n} from '../models/index';\nimport {\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoToJSON,\n UsersServicesLiesDtoFromJSON,\n UsersServicesLiesDtoToJSON,\n UsersServicesLiesGridDtoPaginatedResultsFromJSON,\n UsersServicesLiesGridDtoPaginatedResultsToJSON,\n UsersServicesLiesSearchDtoFromJSON,\n UsersServicesLiesSearchDtoToJSON,\n} from '../models/index';\n\nexport interface UsersServicesLiesBaseSearchRequest {\n UsersServicesLiesSearchDto?: UsersServicesLiesSearchDto;\n}\n\nexport interface UsersServicesLiesGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface UsersServicesLiesGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface UsersServicesLiesGetUserServicesRequest {\n idUser?: number;\n}\n\nexport interface UsersServicesLiesSaveServicesRequest {\n UsersServicesLiesDto?: UsersServicesLiesDto;\n}\n\n/**\n * \n */\nexport class UsersServicesLiesApi extends runtime.BaseAPI {\n\n /**\n */\n async usersServicesLiesBaseSearchRaw(requestParameters: UsersServicesLiesBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersServicesLies/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UsersServicesLiesSearchDtoToJSON(requestParameters.UsersServicesLiesSearchDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => UsersServicesLiesGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async usersServicesLiesBaseSearch(requestParameters: UsersServicesLiesBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.usersServicesLiesBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersServicesLiesGetSearchCriteriasRaw(requestParameters: UsersServicesLiesGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersServicesLies/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async usersServicesLiesGetSearchCriterias(requestParameters: UsersServicesLiesGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.usersServicesLiesGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersServicesLiesGetSelectItemsRaw(requestParameters: UsersServicesLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling usersServicesLiesGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersServicesLies/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReferentialItemDtoFromJSON));\n }\n\n /**\n */\n async usersServicesLiesGetSelectItems(requestParameters: UsersServicesLiesGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.usersServicesLiesGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersServicesLiesGetUserServicesRaw(requestParameters: UsersServicesLiesGetUserServicesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idUser !== undefined) {\n queryParameters['idUser'] = requestParameters.idUser;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersServicesLies`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => UsersServicesLiesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async usersServicesLiesGetUserServices(requestParameters: UsersServicesLiesGetUserServicesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.usersServicesLiesGetUserServicesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async usersServicesLiesSaveServicesRaw(requestParameters: UsersServicesLiesSaveServicesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/UsersServicesLies/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UsersServicesLiesDtoToJSON(requestParameters.UsersServicesLiesDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => UsersServicesLiesDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async usersServicesLiesSaveServices(requestParameters: UsersServicesLiesSaveServicesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.usersServicesLiesSaveServicesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanDto,\n FcbUserGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n UserActionDto,\n UserDto,\n UserSearch,\n ValidationError,\n} from '../models/index';\nimport {\n BooleanDtoFromJSON,\n BooleanDtoToJSON,\n FcbUserGridDtoPaginatedResultsFromJSON,\n FcbUserGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n UserActionDtoFromJSON,\n UserActionDtoToJSON,\n UserDtoFromJSON,\n UserDtoToJSON,\n UserSearchFromJSON,\n UserSearchToJSON,\n ValidationErrorFromJSON,\n ValidationErrorToJSON,\n} from '../models/index';\n\nexport interface UtilisateurBaseSearchRequest {\n UserSearch?: UserSearch;\n}\n\nexport interface UtilisateurDeleteRequest {\n id?: number;\n}\n\nexport interface UtilisateurGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface UtilisateurGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface UtilisateurGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface UtilisateurGetUserRequest {\n idUser?: number;\n}\n\nexport interface UtilisateurIsCalcRequest {\n iduser?: number;\n}\n\nexport interface UtilisateurIsHopeRequest {\n iduser?: number;\n}\n\nexport interface UtilisateurLoginExistsRequest {\n login?: string;\n}\n\nexport interface UtilisateurSaveRequest {\n UserDto?: UserDto;\n}\n\n/**\n * \n */\nexport class UtilisateurApi extends runtime.BaseAPI {\n\n /**\n */\n async utilisateurBaseSearchRaw(requestParameters: UtilisateurBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UserSearchToJSON(requestParameters.UserSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbUserGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async utilisateurBaseSearch(requestParameters: UtilisateurBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.utilisateurBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurDeleteRaw(requestParameters: UtilisateurDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n */\n async utilisateurDelete(requestParameters: UtilisateurDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n await this.utilisateurDeleteRaw(requestParameters, initOverrides);\n }\n\n /**\n */\n async utilisateurGetDisplayNameRaw(requestParameters: UtilisateurGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur/displayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async utilisateurGetDisplayName(requestParameters: UtilisateurGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.utilisateurGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurGetSearchCriteriasRaw(requestParameters: UtilisateurGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async utilisateurGetSearchCriterias(requestParameters: UtilisateurGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.utilisateurGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurGetSelectItemsRaw(requestParameters: UtilisateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling utilisateurGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async utilisateurGetSelectItems(requestParameters: UtilisateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.utilisateurGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurGetUserRaw(requestParameters: UtilisateurGetUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idUser !== undefined) {\n queryParameters['idUser'] = requestParameters.idUser;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => UserDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async utilisateurGetUser(requestParameters: UtilisateurGetUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.utilisateurGetUserRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurGetUserProfileActionsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur/GetUserProfileActions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UserActionDtoFromJSON));\n }\n\n /**\n */\n async utilisateurGetUserProfileActions(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.utilisateurGetUserProfileActionsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurGetUserValidationDirectionRightRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur/validationDirection`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async utilisateurGetUserValidationDirectionRight(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.utilisateurGetUserValidationDirectionRightRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurIsCalcRaw(requestParameters: UtilisateurIsCalcRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.iduser !== undefined) {\n queryParameters['iduser'] = requestParameters.iduser;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur/isCalc`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async utilisateurIsCalc(requestParameters: UtilisateurIsCalcRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.utilisateurIsCalcRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurIsHopeRaw(requestParameters: UtilisateurIsHopeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.iduser !== undefined) {\n queryParameters['iduser'] = requestParameters.iduser;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur/isHope`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async utilisateurIsHope(requestParameters: UtilisateurIsHopeRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.utilisateurIsHopeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurLoginExistsRaw(requestParameters: UtilisateurLoginExistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.login !== undefined) {\n queryParameters['login'] = requestParameters.login;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur/loginExists`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ValidationErrorFromJSON(jsonValue));\n }\n\n /**\n */\n async utilisateurLoginExists(requestParameters: UtilisateurLoginExistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.utilisateurLoginExistsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async utilisateurSaveRaw(requestParameters: UtilisateurSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Utilisateur`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UserDtoToJSON(requestParameters.UserDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => UserDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async utilisateurSave(requestParameters: UtilisateurSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.utilisateurSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbVisiteDto,\n FcbVisiteGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n VisiteSearch,\n} from '../models/index';\nimport {\n FcbVisiteDtoFromJSON,\n FcbVisiteDtoToJSON,\n FcbVisiteGridDtoPaginatedResultsFromJSON,\n FcbVisiteGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n VisiteSearchFromJSON,\n VisiteSearchToJSON,\n} from '../models/index';\n\nexport interface VisiteBaseSearchRequest {\n VisiteSearch?: VisiteSearch;\n}\n\nexport interface VisiteDeleteRequest {\n id?: number;\n}\n\nexport interface VisiteGetRequest {\n id?: number;\n}\n\nexport interface VisiteGetDisplayNameRequest {\n id?: number;\n}\n\nexport interface VisiteGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface VisiteGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface VisiteSaveRequest {\n FcbVisiteDto?: FcbVisiteDto;\n}\n\n/**\n * \n */\nexport class VisiteApi extends runtime.BaseAPI {\n\n /**\n */\n async visiteBaseSearchRaw(requestParameters: VisiteBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Visite/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: VisiteSearchToJSON(requestParameters.VisiteSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbVisiteGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async visiteBaseSearch(requestParameters: VisiteBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteDeleteRaw(requestParameters: VisiteDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Visite`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async visiteDelete(requestParameters: VisiteDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteGetRaw(requestParameters: VisiteGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Visite`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbVisiteDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async visiteGet(requestParameters: VisiteGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteGetDisplayNameRaw(requestParameters: VisiteGetDisplayNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Visite/GetDisplayName`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async visiteGetDisplayName(requestParameters: VisiteGetDisplayNameRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteGetDisplayNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteGetSearchCriteriasRaw(requestParameters: VisiteGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Visite/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async visiteGetSearchCriterias(requestParameters: VisiteGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.visiteGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteGetSelectItemsRaw(requestParameters: VisiteGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling visiteGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Visite/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async visiteGetSelectItems(requestParameters: VisiteGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.visiteGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteSaveRaw(requestParameters: VisiteSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/Visite`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbVisiteDtoToJSON(requestParameters.FcbVisiteDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbVisiteDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async visiteSave(requestParameters: VisiteSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbVisiteClasseDto,\n FcbVisiteClasseGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n VisiteClasseSearch,\n} from '../models/index';\nimport {\n FcbVisiteClasseDtoFromJSON,\n FcbVisiteClasseDtoToJSON,\n FcbVisiteClasseGridDtoPaginatedResultsFromJSON,\n FcbVisiteClasseGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n VisiteClasseSearchFromJSON,\n VisiteClasseSearchToJSON,\n} from '../models/index';\n\nexport interface VisiteClasseBaseSearchRequest {\n VisiteClasseSearch?: VisiteClasseSearch;\n}\n\nexport interface VisiteClasseGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface VisiteClasseGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface VisiteClasseGetVisiteClasseRequest {\n idVisite?: number;\n}\n\nexport interface VisiteClasseSaveClassesLiesRequest {\n FcbVisiteClasseDto?: FcbVisiteClasseDto;\n}\n\n/**\n * \n */\nexport class VisiteClasseApi extends runtime.BaseAPI {\n\n /**\n */\n async visiteClasseBaseSearchRaw(requestParameters: VisiteClasseBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteClasse/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: VisiteClasseSearchToJSON(requestParameters.VisiteClasseSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbVisiteClasseGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async visiteClasseBaseSearch(requestParameters: VisiteClasseBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteClasseBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteClasseGetSearchCriteriasRaw(requestParameters: VisiteClasseGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteClasse/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async visiteClasseGetSearchCriterias(requestParameters: VisiteClasseGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.visiteClasseGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteClasseGetSelectItemsRaw(requestParameters: VisiteClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling visiteClasseGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteClasse/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async visiteClasseGetSelectItems(requestParameters: VisiteClasseGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.visiteClasseGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteClasseGetVisiteClasseRaw(requestParameters: VisiteClasseGetVisiteClasseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idVisite !== undefined) {\n queryParameters['idVisite'] = requestParameters.idVisite;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteClasse`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbVisiteClasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async visiteClasseGetVisiteClasse(requestParameters: VisiteClasseGetVisiteClasseRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteClasseGetVisiteClasseRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteClasseSaveClassesLiesRaw(requestParameters: VisiteClasseSaveClassesLiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteClasse/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbVisiteClasseDtoToJSON(requestParameters.FcbVisiteClasseDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbVisiteClasseDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async visiteClasseSaveClassesLies(requestParameters: VisiteClasseSaveClassesLiesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteClasseSaveClassesLiesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","import * as React from \"react\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../hooks\";\nimport { ButtonContainer, IDataTableColumn, showError } from \"nsitools-react\";\nimport { ViewButton, EditButton, SearchTablePage, EmailButton, SmsButton, PrintButton } from \"../../../../components\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { useHistory } from \"react-router\";\nimport { FormateurApi, FormateurSearch, FcbFormateurGridDto, ETypeDestinataireSms, ReportApi } from \"../../../../api\";\nimport { Checkbox, Spinner } from \"@blueprintjs/core\";\nimport { useRouteParamsContext } from \"../../../../contexts\";\nimport { exportFile } from \"../../../../utils/b64download\";\n\nexport interface IFormateurListPageProps {}\n\nexport const FormateurListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(FormateurApi);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const lastSearchObject = React.useRef();\n const { pushSmsRecipientIds, pushSmsRecipientType } = useRouteParamsContext();\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n const [printLoadingId, setPrintLoadingId] = React.useState(null);\n const reportApi = useApiService(ReportApi);\n\n const apiFactory = useAbortableApiServiceFactory(FormateurApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: FormateurSearch) => {\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject.current)) {\n lastSearchObject.current = nextSearch;\n }\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.formateurBaseSearch({ FormateurSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n api\n .formateurSearchFormateurIds({\n FormateurSearch: { ...lastSearchObject.current, forceSkip: 0, forceTake: 999999 }\n })\n .then(allIds => {\n if (allIds.length === selectedIDs.length) {\n setSelectedIDs([]);\n setNbReturnedIds(0);\n } else {\n setSelectedIDs(allIds);\n setNbReturnedIds(allIds.length);\n }\n setSelectAllLoading(false);\n });\n }, [api, selectedIDs.length]);\n\n const toggleSelection = React.useCallback(\n (item: FcbFormateurGridDto) => {\n if (!selectedIDs.includes(item.idformateur)) {\n setSelectedIDs(ids => [...ids, item.idformateur]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idformateur));\n }\n },\n [selectedIDs]\n );\n\n const sendSms = React.useCallback(() => {\n if (selectedIDs.length > 0) {\n pushSmsRecipientIds(selectedIDs);\n pushSmsRecipientType(ETypeDestinataireSms.Etudiant);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [history, pushSmsRecipientIds, pushSmsRecipientType, selectedIDs, t]);\n\n const sendSmsSingle = React.useCallback(\n (id: number) => {\n pushSmsRecipientIds([id]);\n pushSmsRecipientType(ETypeDestinataireSms.Etudiant);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n },\n [history, pushSmsRecipientIds, pushSmsRecipientType]\n );\n\n const print = React.useCallback(\n (idFormateur: number) => {\n setPrintLoadingId(idFormateur);\n reportApi\n .reportGetViewableReport({\n reportName: \"horaireformateurmain2jp.rpt\",\n ReportParametersDto: {\n parameters: [\n {\n dataType: \"NumberParameter\",\n name: \"idformateur\",\n value: idFormateur.toString()\n }\n ]\n }\n })\n .then(file => {\n setPrintLoadingId(null);\n return exportFile(file);\n })\n .catch(error => {\n showError(t(ETLCodes.ErrorWhileExporting));\n setPrintLoadingId(null);\n });\n },\n [reportApi, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\n ),\n render: (item: FcbFormateurGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormateurGridDto) => (\n \n print(row.idformateur)}\n loading={printLoadingId && printLoadingId === row.idformateur}\n />\n history.push(`${ERoutes.formateur}/${row.idformateur}/signaletique/view`)}\n />\n history.push(`${ERoutes.formateur}/${row.idformateur}/signaletique/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.Actif),\n fieldName: \"actif\",\n autoFitContent: true,\n alignment: \"center\",\n render: (value: FcbFormateurGridDto) => \n },\n {\n header: () => t(ETLCodes.LocaliteCentre),\n fieldName: \"localiteCentre\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.Contrat),\n fieldName: \"contrat\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.Gsm),\n fieldName: \"gsm\",\n autoFitContent: true,\n render: (value: FcbFormateurGridDto) => (\n sendSmsSingle(value.idformateur)} disabled={!!value.dateDeces} />\n )\n },\n {\n header: () => t(ETLCodes.GsmPro),\n fieldName: \"gsmProf\",\n autoFitContent: true,\n render: (value: FcbFormateurGridDto) => \n },\n {\n header: () => t(ETLCodes.Telephone),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.TelPro),\n fieldName: \"telProf\"\n },\n {\n header: () => t(ETLCodes.Email),\n autoFitContent: true,\n alignment: \"center\",\n fieldName: \"email\",\n render: (value: FcbFormateurGridDto) => \n },\n {\n header: () => t(ETLCodes.EmailPro),\n autoFitContent: true,\n alignment: \"center\",\n fieldName: \"emailProf\",\n render: (value: FcbFormateurGridDto) => \n }\n ],\n [\n history,\n nbReturnedIds,\n print,\n printLoadingId,\n selectAll,\n selectAllLoading,\n selectedIDs,\n sendSmsSingle,\n t,\n toggleSelection\n ]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.formateur}/0/signaletique/doublon`);\n }, [history]);\n\n const getCriteria = React.useCallback(() => api.formateurGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n \n \n );\n};\n","import { Button, Dialog, Divider, Icon, Intent, Label } from \"@blueprintjs/core\";\r\nimport { IconNames } from \"@blueprintjs/icons\";\r\nimport { FormikProps } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport pick from \"lodash/pick\";\r\nimport {\r\n ButtonsBloc,\r\n FGCustomPanel,\r\n FGEmpty,\r\n FGListen,\r\n FGMaskInput,\r\n FGTextAreaInput,\r\n FGTextInput,\r\n FieldGroup,\r\n IFGContext,\r\n InlineButtonContainer,\r\n useDebouncedCallback\r\n} from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport {\r\n AdresseDtoFromJSON,\r\n FcbFormateurDetailDto,\r\n FcbFormateurDetailDtoFromJSON,\r\n FormateurApi\r\n} from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport {\r\n AdresseDoublonErrorLink,\r\n CommuneSelect,\r\n FGPersonneCodePostal,\r\n FGWalterCheckboxInput,\r\n FGWalterDateMaskInput,\r\n FGWalterSelectInput,\r\n LocaliteSelect,\r\n NationaliteSelect,\r\n PhotoModifier,\r\n SmallFormGenerator,\r\n StyledError\r\n} from \"../../../../../components\";\r\nimport FGCopyTextInput from \"../../../../../components/formGenerator/FGCopyTextInput\";\r\nimport { useBeIdCardContext, useDialog } from \"../../../../../contexts\";\r\nimport { useApiService, useCrudApi, useFetchPicture, useTheme, useTl } from \"../../../../../hooks\";\r\nimport { useReferential } from \"../../../../../hooks/useReferential\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\nimport { belgianIdValidate } from \"../../../../../utils/belgianIdValidate\";\r\nimport { phoneRegex } from \"../../../../../utils/phoneRegex\";\r\n\r\nexport interface IFormateurSignaletiqueProps {\r\n baseData: any;\r\n}\r\n\r\nexport const FormateurSignaletique: React.FunctionComponent = ({ baseData }) => {\r\n const { id: idFormateur, state } = useParams<{ id: string; state: string }>();\r\n const { t } = useTl();\r\n const history = useHistory();\r\n const api = useApiService(FormateurApi);\r\n const { card } = useBeIdCardContext();\r\n const genderMapping = React.useMemo(() => ({ M: \"H\", F: \"F\", V: \"F\", W: \"F\" }), []);\r\n const [mustLoadPicture, setMustLoadPicture] = React.useState(true);\r\n const [cardDataDifferent, setCardDataDifferent] = React.useState(false);\r\n const { showDialogPromise } = useDialog();\r\n const { theme } = useTheme();\r\n\r\n const { data, loading, deleteItem, deleting, saveItem, saving, setData } = useCrudApi(\r\n React.useMemo(\r\n () => ({\r\n getApiFn: () => {\r\n let newData = {};\r\n if (baseData) {\r\n newData = { ...baseData, codeNationalite: baseData.nationalite, paysNaissance: baseData.codePaysNaissance };\r\n }\r\n if (card) {\r\n newData = {\r\n ...newData,\r\n nom: card?.surname ?? baseData?.nom,\r\n prenom: card?.firstName ?? baseData?.prenom,\r\n dateNaissance: card?.dateOfBirthParsed ?? baseData?.dateNaissance,\r\n codeNationalite: baseData?.nationalite,\r\n registreNational: card?.nationalNumber ?? baseData?.registreNational,\r\n communeNaissance: card?.locationOfBirth,\r\n photo: card?.photoB64,\r\n codesexe: card?.gender ? genderMapping[card?.gender] : null,\r\n adresseDomicileFormateur: !!card\r\n ? AdresseDtoFromJSON({\r\n adresse: card?.addressStreetAndNumber,\r\n codePostalText: card?.addressZip\r\n })\r\n : null\r\n };\r\n }\r\n return +idFormateur <= 0\r\n ? FcbFormateurDetailDtoFromJSON({\r\n ...newData,\r\n idformateur: 0\r\n })\r\n : api.formateurGet({ id: +idFormateur });\r\n },\r\n saveApiFn: d => api.formateurSave({ FcbFormateurDetailDto: d }),\r\n deleteApiFn: d => api.formateurDelete({ id: d.idformateur }),\r\n onDeletedRoute: () => ERoutes.formateur,\r\n onSaved: () => setMustLoadPicture(true),\r\n onSavedRoute: d => `${ERoutes.formateur}/${d.idformateur}/signaletique/edit`\r\n }),\r\n [api, baseData, card, genderMapping, idFormateur]\r\n )\r\n );\r\n\r\n const [photoDialogOpen, setPhotoDialogOpen] = React.useState(false);\r\n const [sexe, sLoading] = useReferential(a => a.referentialGetSexe());\r\n const [pays, pLoading] = useReferential(a => a.referentialGetPays());\r\n const [langues, lLoading] = useReferential(a => a.referentialGetLangues(), true);\r\n\r\n const [picture, picLoading] = useFetchPicture(data?.idpersonne, [data]);\r\n React.useEffect(() => {\r\n if (picture && data && !cardDataDifferent && mustLoadPicture) {\r\n setMustLoadPicture(false);\r\n setData({ ...data, photo: picture });\r\n }\r\n }, [cardDataDifferent, data, mustLoadPicture, picture, setData]);\r\n\r\n const askDataDifferent = React.useCallback(async () => {\r\n const result = await showDialogPromise({\r\n message: t(ETLCodes.FormateurIdCardIsDifferent)\r\n });\r\n if (result === \"yes\") {\r\n setCardDataDifferent(true);\r\n }\r\n }, [showDialogPromise, t]);\r\n\r\n const canUseCardData = React.useMemo(() => {\r\n if (+idFormateur > 0) {\r\n return !data?.registreNational || data?.registreNational === card?.nationalNumber;\r\n }\r\n\r\n return false;\r\n }, [card?.nationalNumber, data?.registreNational, idFormateur]);\r\n\r\n React.useEffect(() => {\r\n if (!picLoading && data && card) {\r\n const cardObj = FcbFormateurDetailDtoFromJSON({\r\n nom: card?.surname.toUpperCase(),\r\n prenom: card?.firstName,\r\n dateNaissance: card?.dateOfBirthParsed,\r\n registreNational: card?.nationalNumber,\r\n communeNaissance: card?.locationOfBirth,\r\n photo: card?.photoB64,\r\n codesexe: card?.gender ? genderMapping[card?.gender] : null,\r\n adresse: card?.addressStreetAndNumber,\r\n codePostal: card?.addressZip\r\n });\r\n\r\n const propsToPick = [\"nom\", \"prenom\", \"dateNaissance\", \"registreNational\", \"communeNaissance\", \"codesexe\"];\r\n const cardBirthdate = new Date(card.dateOfBirthParsed);\r\n const cardBirthdateString = `${cardBirthdate.getDate()}/${cardBirthdate.getMonth() +\r\n 1}/${cardBirthdate.getFullYear()}`;\r\n const dataBirthdateString = `${data.dateNaissance.getDate()}/${data.dateNaissance.getMonth() +\r\n 1}/${data.dateNaissance.getFullYear()}`;\r\n if (\r\n !isEqual(pick(cardObj, propsToPick), pick(data, propsToPick)) ||\r\n cardBirthdateString !== dataBirthdateString\r\n ) {\r\n if (canUseCardData) {\r\n askDataDifferent();\r\n }\r\n }\r\n }\r\n }, [askDataDifferent, canUseCardData, card, data, genderMapping, picLoading, t]);\r\n\r\n const formikRef = React.useRef>();\r\n\r\n React.useEffect(() => {\r\n if (cardDataDifferent) {\r\n setCardDataDifferent(false);\r\n formikRef?.current?.setValues(\r\n FcbFormateurDetailDtoFromJSON({\r\n ...data,\r\n nom: card?.surname ?? data.nom,\r\n prenom: card?.firstName ?? data.prenom,\r\n dateNaissance: card?.dateOfBirthParsed ?? data.dateNaissance,\r\n registreNational: card?.nationalNumber ?? data.registreNational,\r\n communeNaissance: card?.locationOfBirth ?? data.communeNaissance,\r\n photo: card?.photoB64 ?? data.photo,\r\n codesexe: card?.gender ? genderMapping[card?.gender] : data.codesexe,\r\n adresseFormateur: AdresseDtoFromJSON({\r\n ...data.adresseFormateur,\r\n adresse: card?.addressStreetAndNumber ?? data.adresseFormateur?.adresse,\r\n codePostalText: card?.addressZip ?? data.adresseFormateur?.codePostal\r\n })\r\n }),\r\n true\r\n );\r\n }\r\n }, [\r\n card?.addressStreetAndNumber,\r\n card?.addressZip,\r\n card?.cardNumber,\r\n card?.dateOfBirthParsed,\r\n card?.firstName,\r\n card?.gender,\r\n card?.locationOfBirth,\r\n card?.nationalNumber,\r\n card?.photoB64,\r\n card?.surname,\r\n cardDataDifferent,\r\n data,\r\n genderMapping,\r\n saveItem,\r\n formikRef,\r\n card?.nationality\r\n ]);\r\n\r\n const [hasDoublons, setHasDoublons] = React.useState(false);\r\n const checkDoublons = React.useCallback(\r\n async values => {\r\n const res = await api.formateurCheckDoublons({ FcbFormateurDto: values });\r\n setHasDoublons(!res.isValid);\r\n },\r\n [api]\r\n );\r\n const debouncedCheckDoublons = useDebouncedCallback(checkDoublons, 1000);\r\n\r\n const idpersonne = React.useMemo(() => data?.idpersonne ?? 0, [data?.idpersonne]);\r\n const [personneTelephones, personneTelephonesLoading, , rawPersonneTelephones] = useReferential(\r\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\r\n false,\r\n [idpersonne]\r\n );\r\n const personneTelephonesPerso = React.useMemo(\r\n () =>\r\n personneTelephones?.filter(\r\n t => rawPersonneTelephones?.find(rt => +rt.idValue === +t.value)?.keyValue === \"PERSO\"\r\n ),\r\n [personneTelephones, rawPersonneTelephones]\r\n );\r\n const personneTelephonesPro = React.useMemo(\r\n () =>\r\n personneTelephones?.filter(t => rawPersonneTelephones?.find(rt => +rt.idValue === +t.value)?.keyValue === \"PRO\"),\r\n [personneTelephones, rawPersonneTelephones]\r\n );\r\n const [personneGsms, personneGsmsLoading, , rawPersonneGsms] = useReferential(\r\n a => a.referentialGetGsmsPersonne({ idpersonne }),\r\n false,\r\n [idpersonne]\r\n );\r\n const personneGsmsPerso = React.useMemo(\r\n () => personneGsms?.filter(t => rawPersonneGsms?.find(rt => +rt.idValue === +t.value)?.keyValue === \"GSM_PERSO\"),\r\n [personneGsms, rawPersonneGsms]\r\n );\r\n const personneGsmsPro = React.useMemo(\r\n () => personneGsms?.filter(t => rawPersonneGsms?.find(rt => +rt.idValue === +t.value)?.keyValue === \"GSM_PRO\"),\r\n [personneGsms, rawPersonneGsms]\r\n );\r\n const [personneEmails, personneEmailsLoading, , rawPersonneEmails] = useReferential(\r\n a => a.referentialGetEmailsPersonne({ idpersonne }),\r\n false,\r\n [idpersonne]\r\n );\r\n const personneEmailsPerso = React.useMemo(\r\n () => personneEmails?.filter(t => rawPersonneEmails?.find(rt => +rt.idValue === +t.value)?.keyValue === \"PERSO\"),\r\n [personneEmails, rawPersonneEmails]\r\n );\r\n\r\n const isRegNatDateNaiss = React.useCallback((ctx: IFGContext) => {\r\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\").replace(\"-\", \"\");\r\n if (ctx.formik.values.dateNaissance && ctx.formik.values.codeNationalite === \"BE\") {\r\n const parsedDateNaissance = new Date(ctx.formik.values.dateNaissance);\r\n if (parsedDateNaissance && value) {\r\n const year = value.slice(0, 2);\r\n const month = value.slice(2, 4);\r\n const day = value.slice(4, 6);\r\n if (\r\n +year !==\r\n +parsedDateNaissance\r\n .getFullYear()\r\n .toString()\r\n .substr(2, 2)\r\n ) {\r\n return false;\r\n }\r\n if (+month !== 0 && +month !== parsedDateNaissance.getMonth() + 1) {\r\n return false;\r\n }\r\n if (+day !== 0 && +day !== parsedDateNaissance.getDate()) {\r\n return false;\r\n }\r\n return true;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }, []);\r\n\r\n const isRegNatGenre = React.useCallback((ctx: IFGContext) => {\r\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\")?.replace(\"-\", \"\");\r\n if (value && ctx.formik.values.codesexe !== \"X\" && ctx.formik.values.codeNationalite === \"BE\") {\r\n const code = +value.slice(7, 9) % 2 === 0 ? \"F\" : \"H\";\r\n return ctx.formik.values.codesexe === code;\r\n }\r\n return true;\r\n }, []);\r\n\r\n const FormSchema = React.useMemo(() => {\r\n return Yup.object().shape(\r\n {\r\n nom: Yup.string()\r\n .required(t(ETLCodes.Required))\r\n .max(100, t(ETLCodes.MaxCharacterApprenantNom)),\r\n prenom: Yup.string()\r\n .required(t(ETLCodes.Required))\r\n .max(100, t(ETLCodes.MaxCharacterApprenantPrenom)),\r\n codesexe: Yup.string().required(t(ETLCodes.Required)),\r\n dateNaissance: Yup.date().nullable(),\r\n registreNational: Yup.string()\r\n .test(\"registre-checksum\", t(ETLCodes.NotValid), function(value) {\r\n if (!value || value === \"\") return true;\r\n\r\n var millenial = false;\r\n if (this.parent.dateNaissance) {\r\n const parsedDateNaissance = new Date(this.parent.dateNaissance);\r\n if (parsedDateNaissance.getFullYear() > 1999) {\r\n millenial = true;\r\n }\r\n }\r\n return belgianIdValidate(value, millenial);\r\n })\r\n .when([\"codeNationalite\", \"numeroIdentification\"], {\r\n is: (codeNationalite, numeroIdentification) => codeNationalite === \"BE\" || !numeroIdentification,\r\n then: schema => schema.required(t(ETLCodes.AtLeastOneRegNatFields))\r\n }),\r\n numeroIdentification: Yup.string()\r\n .nullable()\r\n .when([\"codeNationalite\", \"registreNational\"], {\r\n is: (codeNationalite, registreNational) => codeNationalite !== \"BE\" && !registreNational,\r\n then: schema => schema.required(t(ETLCodes.AtLeastOneRegNatFields))\r\n }),\r\n telephoneFormateur: Yup.object().test(\"tel-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\r\n if (this.parent.idformateur > 0 || !value?.numero) return true;\r\n const numero = value?.numero as string;\r\n return !!numero.match(phoneRegex);\r\n }),\r\n gsmFormateur: Yup.object().test(\"gsm-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\r\n if (this.parent.idformateur > 0 || !value?.numero) return true;\r\n const numero = value?.numero as string;\r\n return !!numero.match(phoneRegex);\r\n }),\r\n emailFormateur: Yup.object().when(\"idformateur\", {\r\n is: idformateur => idformateur <= 0,\r\n then: Yup.object().shape({\r\n adresseEmail: Yup.string().email(t(ETLCodes.InvalidEmail))\r\n })\r\n })\r\n },\r\n [\r\n [\"numeroIdentification\", \"codeNationalite\"],\r\n [\"numeroIdentification\", \"registreNational\"],\r\n [\"registreNational\", \"codeNationalite\"],\r\n [\"registreNational\", \"numeroIdentification\"]\r\n ]\r\n );\r\n }, [t]);\r\n\r\n const isFullCreation = React.useMemo(() => +idFormateur <= 0 && !data?.idpersonne, [data?.idpersonne, idFormateur]);\r\n\r\n return (\r\n history.push(ERoutes.formateur)}\r\n saving={saving}\r\n onDelete={deleteItem}\r\n deleting={deleting}\r\n showDeleteButton={+idFormateur > 0}\r\n formikInnerRef={i => (formikRef.current = i)}\r\n forceEnableSave={Object.values(baseData).some(el => !!el)}\r\n >\r\n debouncedCheckDoublons(formik?.values)} />\r\n debouncedCheckDoublons(formik?.values)} />\r\n debouncedCheckDoublons(formik?.values)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n (\r\n <>\r\n {isRegNatDateNaiss(ctx) ? null : (\r\n {t(ETLCodes.DateDeNaissanceNeCorrespondPas)}\r\n )}\r\n {isRegNatGenre(ctx) ? null : (\r\n {t(ETLCodes.GenreNeCorrespondPas)}\r\n )}\r\n \r\n )}\r\n />\r\n !!ctx.formik?.values?.codeNationalite && ctx.formik?.values?.codeNationalite !== \"BE\"}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {ctx => (\r\n
\r\n {ctx.formik.values.photo ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n {ctx => (\r\n \r\n \r\n \r\n setPhotoDialogOpen(true)}\r\n disabled={!ctx.editMode}\r\n />\r\n ctx.formik.setFieldValue(\"photo\", null)}\r\n disabled={!ctx.editMode}\r\n />\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {data?.hasAddressDomicileDoublons && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ctx => (\r\n \r\n )}\r\n \r\n \r\n \r\n {ctx => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {data?.hasAddressDoublons && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ctx => }\r\n \r\n \r\n {ctx => (\r\n setPhotoDialogOpen(false)}\r\n canOutsideClickClose={true}\r\n canEscapeKeyClose={true}\r\n title={`Photo ${ctx.formik.values?.nom} ${ctx.formik.values?.prenom}`}\r\n style={{ width: \"80%\", height: \"500px\" }}\r\n enforceFocus={false}\r\n >\r\n {\r\n ctx.formik.setFieldValue(\"photo\", newPhoto);\r\n setPhotoDialogOpen(false);\r\n }}\r\n onCancel={() => setPhotoDialogOpen(false)}\r\n />\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","import { FGCustomPanel, FGListen, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbFormateurDiplomeDtoFromJSON, FichierApi, FormateurDiplomeApi } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IActiviteProfessionelleDiplomePageProps {}\n\nexport const ActiviteProfessionelleDiplomePage: React.FunctionComponent = () => {\n const { id, idDiplome, state } = useParams<{ id: string; idDiplome: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(FormateurDiplomeApi);\n const history = useHistory();\n\n const [type, loadingType] = useReferential(a => a.referentialGetTypesDiplome(), false, []);\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string().required(t(ETLCodes.Required)),\n type: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idDiplome <= 0\n ? FcbFormateurDiplomeDtoFromJSON({ idformateur: +id })\n : api.formateurDiplomeGet({ id: +idDiplome }),\n saveApiFn: d => api.formateurDiplomeSave({ FcbFormateurDiplomeDto: d }),\n onSavedRoute: d => `${ERoutes.formateur}/${d.idformateur}/activitesProfessionnelles`,\n deleteApiFn: d => api.formateurDiplomeDelete({ id: d.iddiplome }),\n onDeletedRoute: () => `${ERoutes.formateur}/${+id}/activitesProfessionnelles`\n });\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async (idfichier: number) => await fapi.fichierDownload({ id: idfichier }), [\n fapi\n ]);\n\n return (\n data && (\n history.push(`${ERoutes.formateur}/${+id}/activitesProfessionnelles`)}\n onDelete={deleteItem}\n showDeleteButton={+idDiplome > 0}\n saving={saving}\n deleting={deleting}\n >\n {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichier\", null);\n }\n }}\n />\n \n \n \n \n \n \n {({ formik }) => (\n downloadFn(formik.values?.idfichier))}\n />\n )}\n \n \n \n )\n );\n};\n","import { FGCustomPanel, FGListen, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbFormateurProfessionDtoFromJSON, FichierApi, FormateurProfessionApi } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IActiviteProfessionnelleProfessionPageProps {}\n\nexport const ActiviteProfessionnelleProfessionPage: React.FunctionComponent = () => {\n const { id, idProfession, state } = useParams<{ id: string; idProfession: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(FormateurProfessionApi);\n const history = useHistory();\n\n const [profession, loadingProfession] = useReferential(a => a.referentialGetProfessions(), true, []);\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string().required(t(ETLCodes.Required)),\n idprofession: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idProfession <= 0\n ? FcbFormateurProfessionDtoFromJSON({ idformateur: +id })\n : api.formateurProfessionGet({ idProfession: +idProfession, idFormateur: +id }),\n saveApiFn: d => api.formateurProfessionSave({ FcbFormateurProfessionDto: d }),\n onSavedRoute: d => `${ERoutes.formateur}/${d.idformateur}/activitesProfessionnelles`,\n deleteApiFn: d => api.formateurProfessionDelete({ idProfession: +idProfession, idFormateur: +id }),\n onDeletedRoute: () => `${ERoutes.formateur}/${+id}/activitesProfessionnelles`\n });\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async (idfichier: number) => await fapi.fichierDownload({ id: idfichier }), [\n fapi\n ]);\n\n return (\n data && (\n history.push(`${ERoutes.formateur}/${+id}/activitesProfessionnelles`)}\n onDelete={deleteItem}\n showDeleteButton={+idProfession > 0}\n saving={saving}\n deleting={deleting}\n >\n {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichier\", null);\n }\n }}\n />\n \n \n \n \n \n {({ formik }) => (\n downloadFn(formik.values?.idfichier))}\n />\n )}\n \n \n \n )\n );\n};\n","import { FGCustomPanel, FGListen, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbFormateurTitreDtoFromJSON, FichierApi, FormateurTitreApi } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IActiviteProfessionnelleTitrePageProps {}\n\nexport const ActiviteProfessionnelleTitrePage: React.FunctionComponent = () => {\n const { id, idTitreFormateur, state } = useParams<{ id: string; idTitreFormateur: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(FormateurTitreApi);\n const history = useHistory();\n\n const [titre, loadingTitre] = useReferential(a => a.referentialGetTitresPedagogiques(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idtitre: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idTitreFormateur <= 0\n ? FcbFormateurTitreDtoFromJSON({ idformateur: +id })\n : api.formateurTitreGet({ id: +idTitreFormateur }),\n saveApiFn: d => api.formateurTitreSave({ FcbFormateurTitreDto: d }),\n onSavedRoute: d => `${ERoutes.formateur}/${d.idformateur}/activitesProfessionnelles`,\n deleteApiFn: d => api.formateurTitreDelete({ id: d.idtitreFormateur }),\n onDeletedRoute: () => `${ERoutes.formateur}/${+id}/activitesProfessionnelles`\n });\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async (idfichier: number) => await fapi.fichierDownload({ id: idfichier }), [\n fapi\n ]);\n\n return (\n data && (\n history.push(`${ERoutes.formateur}/${+id}/activitesProfessionnelles`)}\n onDelete={deleteItem}\n showDeleteButton={+idTitreFormateur > 0}\n saving={saving}\n deleting={deleting}\n >\n {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichier\", null);\n }\n }}\n />\n \n \n \n \n \n {({ formik }) => (\n downloadFn(formik.values?.idfichier))}\n />\n )}\n \n \n \n )\n );\n};\n","import { ButtonContainer, DataTable, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n FcbFormateurProfessionGridDto,\n FichierApi,\n FormateurProfessionApi,\n FormateurProfessionSearch\n} from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { EditButton, LinkButton, ViewButton } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IActiviteProfessionnelleProfessionListPageProps {\n idFormateur: number;\n}\n\nexport const ActiviteProfessionnelleProfessionListPage: React.FunctionComponent = ({\n idFormateur\n}) => {\n const { t } = useTl();\n const api = useApiService(FormateurProfessionApi);\n const history = useHistory();\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { libelle: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: FormateurProfessionSearch) => {\n sObj.idformateur = idFormateur;\n return api.formateurProfessionBaseSearch({ FormateurProfessionSearch: sObj });\n },\n [api, idFormateur]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async idfichier => await fapi.fichierDownload({ id: idfichier }), [fapi]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormateurProfessionGridDto) => (\n \n \n history.push(\n `${ERoutes.formateur}/${idFormateur}/activitesProfessionnelles/Profession/${row.idprofession}/view`\n )\n }\n />\n \n history.push(\n `${ERoutes.formateur}/${idFormateur}/activitesProfessionnelles/Profession/${row.idprofession}/edit`\n )\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Profession),\n fieldName: \"profession\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.Document),\n fieldName: \"fichier\",\n render: (row: FcbFormateurProfessionGridDto) =>\n row.fileName &&\n (row.idfichier ? downloadFn(row.idfichier)} /> : row.fileName)\n }\n ],\n [downloadFn, history, idFormateur, t]\n );\n\n return (\n \n );\n};\n","import { ButtonContainer, DataTable, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n FcbFormateurDiplomeGridDto,\n FichierApi,\n FormateurDiplomeApi,\n FormateurDiplomeSearch\n} from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { EditButton, LinkButton, ViewButton } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IActiviteProfessionelleDiplomeListPageProps {\n idFormateur: number;\n}\n\nexport const ActiviteProfessionelleDiplomeListPage: React.FunctionComponent = ({\n idFormateur\n}) => {\n const { t } = useTl();\n const api = useApiService(FormateurDiplomeApi);\n const history = useHistory();\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { libelle: \"ASC\" }\n });\n const validateUrl = React.useCallback((url: string) => {\n if (url.includes(\"http\")) {\n return url;\n }\n return `http://${url}`;\n }, []);\n\n const searchFunction = React.useCallback(\n (sObj?: FormateurDiplomeSearch) => {\n sObj.idformateur = idFormateur;\n return api.formateurDiplomeBaseSearch({ FormateurDiplomeSearch: sObj });\n },\n [api, idFormateur]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async idfichier => await fapi.fichierDownload({ id: idfichier }), [fapi]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormateurDiplomeGridDto) => (\n \n \n history.push(\n `${ERoutes.formateur}/${idFormateur}/activitesProfessionnelles/Diplome/${row.iddiplome}/view`\n )\n }\n />\n \n history.push(\n `${ERoutes.formateur}/${idFormateur}/activitesProfessionnelles/Diplome/${row.iddiplome}/edit`\n )\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"type\"\n },\n {\n header: () => t(ETLCodes.URL),\n fieldName: \"url\",\n render: (row: FcbFormateurDiplomeGridDto) =>\n row.url && (\n \n {t(ETLCodes.Voir)}\n \n )\n },\n {\n header: () => t(ETLCodes.Document),\n fieldName: \"fichier\",\n render: (row: FcbFormateurDiplomeGridDto) =>\n row.fileName &&\n (row.idfichier ? downloadFn(row.idfichier)} /> : row.fileName)\n }\n ],\n [downloadFn, history, idFormateur, t, validateUrl]\n );\n\n return (\n \n );\n};\n","import { ButtonContainer, DataTable, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { FcbFormateurTitreGridDto, FichierApi, FormateurTitreApi, FormateurTitreSearch } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { EditButton, LinkButton, ViewButton } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IActiviteProfessionnelleTitreListPageProps {\n idFormateur: number;\n}\n\nexport const ActiviteProfessionnelleTitreListPage: React.FunctionComponent = ({\n idFormateur\n}) => {\n const { t } = useTl();\n const api = useApiService(FormateurTitreApi);\n const history = useHistory();\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { libelle: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: FormateurTitreSearch) => {\n sObj.idformateur = idFormateur;\n return api.formateurTitreBaseSearch({ FormateurTitreSearch: sObj });\n },\n [api, idFormateur]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async idfichier => await fapi.fichierDownload({ id: idfichier }), [fapi]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormateurTitreGridDto) => (\n \n \n history.push(\n `${ERoutes.formateur}/${idFormateur}/activitesProfessionnelles/Titre/${row.idtitreFormateur}/view`\n )\n }\n />\n \n history.push(\n `${ERoutes.formateur}/${idFormateur}/activitesProfessionnelles/Titre/${row.idtitreFormateur}/edit`\n )\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.Titre),\n fieldName: \"titre\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Document),\n fieldName: \"fichier\",\n render: (row: FcbFormateurTitreGridDto) =>\n row.fileName &&\n (row.idfichier ? downloadFn(row.idfichier)} /> : row.fileName)\n }\n ],\n [downloadFn, history, idFormateur, t]\n );\n\n return (\n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { FGTextAreaInput, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbFormateurDetailDtoFromJSON, FormateurApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n FGWalterSelectInput,\n FGWalterSuggestTextInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport {\n ActiviteProfessionelleDiplomeListPage,\n ActiviteProfessionnelleProfessionListPage,\n ActiviteProfessionnelleTitreListPage\n} from \"./list\";\n\nexport interface IActiviteProfessionnellesListPageProps {}\n\nexport const ActiviteProfessionnellesListPage: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string }>();\n const { t } = useTl();\n const forApi = useApiService(FormateurApi);\n const history = useHistory();\n const path = React.useMemo(() => `${ERoutes.formateur}/${id}/activitesProfessionnelles`, [id]);\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (+id <= 0 ? FcbFormateurDetailDtoFromJSON({ idFormateur: +id }) : forApi.formateurGet({ id: +id })),\n saveApiFn: d => forApi.formateurSave({ FcbFormateurDetailDto: d }),\n onSavedRoute: d => `${ERoutes.formateur}/${d.idformateur}/activitesProfessionnelles`,\n deleteApiFn: () => {}\n });\n\n const [entreprise, eLoading] = useReferential(a => a.referentialGetEntreprises(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n emailProf: Yup.string().email(t(ETLCodes.InvalidEmail))\n });\n }, [t]);\n const idpersonne = React.useMemo(() => data?.idpersonne ?? 0, [data?.idpersonne]);\n const [personneTelephones, personneTelephonesLoading, , rawPersonneTelephones] = useReferential(\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n const personneTelephonesPro = React.useMemo(\n () =>\n personneTelephones?.filter(t => rawPersonneTelephones?.find(rt => +rt.idValue === +t.value)?.keyValue === \"PRO\"),\n [personneTelephones, rawPersonneTelephones]\n );\n const personneTelephonesPerso = React.useMemo(\n () =>\n personneTelephones?.filter(\n t => rawPersonneTelephones?.find(rt => +rt.idValue === +t.value)?.keyValue === \"PERSO\"\n ),\n [personneTelephones, rawPersonneTelephones]\n );\n const [personneGsms, personneGsmsLoading, , rawPersonneGsms] = useReferential(\n a => a.referentialGetGsmsPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n const personneGsmsPerso = React.useMemo(\n () => personneGsms?.filter(t => rawPersonneGsms?.find(rt => +rt.idValue === +t.value)?.keyValue === \"GSM_PERSO\"),\n [personneGsms, rawPersonneGsms]\n );\n const personneGsmsPro = React.useMemo(\n () => personneGsms?.filter(t => rawPersonneGsms?.find(rt => +rt.idValue === +t.value)?.keyValue === \"GSM_PRO\"),\n [personneGsms, rawPersonneGsms]\n );\n const [personneEmails, personneEmailsLoading, , rawPersonneEmails] = useReferential(\n a => a.referentialGetEmailsPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n const personneEmailsPro = React.useMemo(\n () => personneEmails?.filter(t => rawPersonneEmails?.find(rt => +rt.idValue === +t.value)?.keyValue === \"PRO\"),\n [personneEmails, rawPersonneEmails]\n );\n\n return (\n <>\n
\n {data && (\n history.push(`${ERoutes.formateur}/${id}/signaletique`)}\n onDelete={deleteItem}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n e.label)}\n loading={eLoading}\n />\n \n \n \n )}\n
\n {\n e.stopPropagation();\n history.push(`${path}/Profession/0/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n >\n \n \n {\n e.stopPropagation();\n history.push(`${path}/Titre/0/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n >\n \n \n {\n e.stopPropagation();\n history.push(`${path}/Diplome/0/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n >\n \n \n \n );\n};\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n ActiviteProfessionnelleTitrePage,\n ActiviteProfessionelleDiplomePage,\n ActiviteProfessionnelleProfessionPage\n} from \"./item\";\nimport { ActiviteProfessionnellesListPage } from \"./ActiviteProfessionnellesListPage\";\n\nexport interface IActiviteProfessionelleSwitchProps {}\n\nexport const ActiviteProfessionelleSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n \n \n );\n};\n","import { Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport Cleave from \"cleave.js/react\";\nimport { FormikProps } from \"formik\";\nimport * as IBAN from \"iban\";\nimport { FGListen, FGNumberInput, FGTextInput, FieldGroup, IFGContext, useCleaveOptions } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { FcbFormateurDetailDto, FcbFormateurDetailDtoFromJSON, FormateurApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator,\n StyledError\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst IbanDisplay = styled(Cleave)`\n box-shadow: none;\n background-color: transparent;\n border: none;\n cursor: pointer;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n &:focus,\n :focus-visible {\n outline: none;\n }\n`;\n\nexport interface IFormateurAdministratifItemPageProps {\n formateurId: number;\n}\n\nexport const FormateurAdministratifItemPage: React.FunctionComponent = ({\n formateurId\n}) => {\n const { t } = useTl();\n const api = useApiService(FormateurApi);\n const history = useHistory();\n const { state } = useParams<{ idFormateur: string; state: string }>();\n\n const [civilite, loadingCivilite] = useReferential(a => a.referentialGetCivilites(), true, []);\n const formikRef = React.useRef>();\n const [idcompteBancaire, setIdcompteBancaire] = React.useState(null);\n const [showBicError, setShowBicError] = React.useState(false);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n compteBancaire: Yup.object()\n .nullable()\n .shape({\n iban: Yup.string()\n .nullable()\n .test(\"iban-valid\", t(ETLCodes.InvalidIban), async function(value) {\n if (!value || value.trim() === \"\" || !!this.parent.idcompteBancaire) return true;\n return IBAN.isValid(value);\n }),\n idcompteBancaire: Yup.number()\n .nullable()\n .test(\"iban-valid-id\", t(ETLCodes.InvalidIban), async function(value) {\n if (!value || !this.parent.iban || this.parent.iban.trim() === \"\") return true;\n return IBAN.isValid(this.parent.iban);\n })\n }),\n precompte: Yup.number().max(99999999999999999, t(ETLCodes.MaxNumberPrecompte))\n });\n }, [t]);\n\n const { data, loading, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n formateurId <= 0 ? FcbFormateurDetailDtoFromJSON({ idFormateur: 0 }) : api.formateurGet({ id: formateurId }),\n saveApiFn: d => {\n setShowBicError(false);\n return api.formateurSave({ FcbFormateurDetailDto: d });\n },\n onSavedRoute: d => `${ERoutes.formateur}/${d.idformateur}/administratif`,\n deleteApiFn: () => {}\n });\n\n const idpersonne = React.useMemo(() => data?.idpersonne ?? 0, [data?.idpersonne]);\n const [personneComptesBancaires, personneComptesBancairesLoading, , rawPersonneComptesBancaires] = useReferential(\n a => a.referentialGetComptesBancairesPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n\n const selectedCompteBancaire = React.useMemo(\n () => rawPersonneComptesBancaires?.find(c => +c.idValue === idcompteBancaire),\n [idcompteBancaire, rawPersonneComptesBancaires]\n );\n const bic = React.useMemo(() => selectedCompteBancaire?.keyValue, [selectedCompteBancaire?.keyValue]);\n const bankAccount = React.useMemo(() => selectedCompteBancaire?.displayValue, [selectedCompteBancaire?.displayValue]);\n\n const errorBicAccount = React.useMemo(() => {\n const accountChanged = bankAccount !== formikRef?.current?.initialValues?.compteBancaire?.iban;\n const bicChanged = bic !== formikRef?.current?.initialValues?.compteBancaire?.bic;\n\n return !accountChanged && bicChanged && !!bic;\n }, [bankAccount, bic]);\n\n const ibanCleaveOptions = useCleaveOptions(\"iban\");\n\n return (\n data && (\n history.push(ERoutes.formateur)}\n saving={saving}\n formikInnerRef={i => (formikRef.current = i)}\n >\n {\n if (!!value) {\n setIdcompteBancaire(value);\n }\n if (value === null) {\n formik.setFieldValue(\"compteBancaire.iban\", null);\n formik.setFieldValue(\"compteBancaire.bic\", null);\n }\n }}\n />\n \n \n ) => {\n // const iban = formik?.values?.compteBancaire?.iban;\n // if (iban) {\n // return iban.startsWith(\"BE\");\n // } else {\n // return true;\n // }\n // }}\n itemCreateUrl={`${ERoutes.personne}/${idpersonne}/signaletique/edit`}\n itemCreateParams=\"&typeCb=MAIN\"\n renderItem={item => }\n helperText={ctx => bic && `${t(ETLCodes.CodeBIC)}: ${bic}`}\n />\n }\n max={100}\n name=\"precompte\"\n label={t(ETLCodes.Precompte)}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport {\n FcbFormateurLocalisationContratGridDto,\n FormateurApi,\n FormateurLocalisationContratApi,\n FormateurLocalisationContratSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurLocalisationListPageProps {}\n\nexport const FormateurLocalisationListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(FormateurLocalisationContratApi);\n const formateurApi = useApiService(FormateurApi);\n const { id } = useParams<{ id: string }>();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { libelle: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: FormateurLocalisationContratSearch) => {\n sObj.idformateur = +id;\n return api.formateurLocalisationContratBaseSearch({ FormateurLocalisationContratSearch: sObj });\n },\n [api, id]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormateurLocalisationContratGridDto) => (\n \n \n history.push(`${ERoutes.formateur}/${id}/Localisation/${row.idformateurLocalisationContrat}/view`)\n }\n />\n \n history.push(`${ERoutes.formateur}/${id}/Localisation/${row.idformateurLocalisationContrat}/edit`)\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n }\n ],\n [history, id, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.formateur}/${id}/Localisation/0/edit`);\n }, [history, id]);\n\n const [cLoading, setCLoading] = React.useState(false);\n\n return (\n <>\n \n {\n setCLoading(true);\n const res = await formateurApi.formateurCalculDateActivite({ idFormateur: +id });\n setCLoading(false);\n if (res.value) {\n search();\n }\n }}\n text={t(ETLCodes.CalculDates)}\n intent={Intent.PRIMARY}\n loading={cLoading}\n />\n {\n e.stopPropagation();\n addItemFunction();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n \n );\n};\n","import { useRequest } from \"ahooks\";\nimport { FGCheckboxInput, FGNumberInput, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport {\n FcbFormateurLocalisationContratDetailDtoFromJSON,\n FormateurApi,\n FormateurLocalisationContratApi\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurLocalisationItemPageProps {}\n\nexport const FormateurLocalisationItemPage: React.FunctionComponent = () => {\n const { id, idLocalisation, state } = useParams<{ id: string; idLocalisation: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(FormateurLocalisationContratApi);\n const formateurApi = useApiService(FormateurApi);\n const history = useHistory();\n\n const [contrat, loadingContrat] = useReferential(a => a.referentialGetContratFormateur(), true, []);\n const [centre, loadingCentre] = useReferential(a => a.referentialGetCentre(), true, []);\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string().required(t(ETLCodes.Required)),\n idcontratFormateur: Yup.number().required(t(ETLCodes.Required)),\n localisation: Yup.object({\n idcentre: Yup.number().required(t(ETLCodes.Required))\n })\n });\n }, [t]);\n\n const { data: isAzureActive, loading: aaLoading } = useRequest(\n () => formateurApi.formateurIsAzureActive({ idFormateur: +id }),\n {\n refreshDeps: [id]\n }\n );\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idLocalisation <= 0\n ? FcbFormateurLocalisationContratDetailDtoFromJSON({ localisation: { idformateur: +id } })\n : api.formateurLocalisationContratGet({ id: +idLocalisation }),\n saveApiFn: d => api.formateurLocalisationContratSave({ FcbFormateurLocalisationContratDetailDto: d }),\n onSavedRoute: d => `${ERoutes.formateur}/${id}/Localisation/${d.idformateurLocalisationContrat}/edit`,\n deleteApiFn: () => {}\n });\n\n return (\n data && (\n history.push(`${ERoutes.formateur}/${+id}/Localisation`)}\n onDelete={deleteItem}\n showDeleteButton={false}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n {isAzureActive?.value ? (\n \n ) : null}\n \n \n )\n );\n};\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FormateurLocalisationListPage } from \"./FormateurLocalisationListPage\";\nimport { FormateurLocalisationItemPage } from \"./FormateurLocalisationItemPage\";\n\nexport interface IFormateurLocalisationSwitchProps {}\n\nexport const FormateurLocalisationSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport {\n FcbFormateurDesideratumGridDto,\n FormateurDesideratumApi,\n FormateurDesideratumSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurPreferenceHoraireListPageProps {}\n\nexport const FormateurPreferenceHoraireListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(FormateurDesideratumApi);\n const { id } = useParams<{ id: string }>();\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormateurDesideratumGridDto) => (\n \n history.push(`${ERoutes.formateur}/${id}/preferencesHoraire/${row.iddesiderata}/view`)}\n />\n history.push(`${ERoutes.formateur}/${id}/preferencesHoraire/${row.iddesiderata}/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.Desiderata),\n fieldName: \"desiderata\"\n }\n ],\n [history, id, t]\n );\n\n const apiFactory = useAbortableApiServiceFactory(FormateurDesideratumApi);\n const lastAbortController = React.useRef();\n const searchFunction = React.useCallback(\n (nextSearch: FormateurDesideratumSearch) => {\n nextSearch.idFormateur = +id;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.formateurDesideratumBaseSearch({ FormateurDesideratumSearch: nextSearch });\n },\n [apiFactory, id]\n );\n\n const getCriteriaFunction = React.useCallback(\n () => api.formateurDesideratumGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.formateur}/${id}/preferencesHoraire/0/edit`);\n }, [history, id]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbFormateurDesideratumDtoFromJSON, FormateurDesideratumApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurPreferenceHoraireDetailPageProps {}\n\nexport const FormateurPreferenceHoraireDetailPage: React.FunctionComponent = () => {\n const { id, idPreference, state } = useParams<{ id: string; idPreference: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(FormateurDesideratumApi);\n const history = useHistory();\n\n const [annee, loadingAnnee] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [centre, loadingCentre] = useReferential(a => a.referentialGetCentre(), true, []);\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n anneeScolaire: Yup.string().required(t(ETLCodes.Required)),\n idcentre: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idPreference <= 0\n ? FcbFormateurDesideratumDtoFromJSON({ idformateur: +id })\n : api.formateurDesideratumGet({ id: +idPreference }),\n saveApiFn: d => api.formateurDesideratumSave({ FcbFormateurDesideratumDto: d }),\n onSavedRoute: d => `${ERoutes.formateur}/${d.idformateur}/preferencesHoraire`,\n deleteApiFn: d => api.formateurDesideratumDelete({ id: d.iddesiderata }),\n onDeletedRoute: () => `${ERoutes.formateur}/${+id}/preferencesHoraire`\n });\n\n return (\n data && (\n history.push(`${ERoutes.formateur}/${+id}/preferencesHoraire`)}\n onDelete={deleteItem}\n showDeleteButton={+idPreference > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n )\n );\n};\n","import * as React from \"react\";\nimport { FormateurPreferenceHoraireListPage } from \"./FormateurPreferenceHoraireListPage\";\nimport { FormateurPreferenceHoraireDetailPage } from \"./FormateurPreferenceHoraireDetailPage\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { Switch, Route } from \"react-router\";\n\nexport interface IFormateurPreferenceHoraireSwitchProps {}\n\nexport const FormateurPreferenceHoraireSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { HTMLSelect } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport {\n EAggregateType,\n FcbFormateurPrestationsGlobalesGridDto,\n FormateurPrestationsGlobalesApi,\n FormateurPrestationsGlobalesSearch,\n} from \"../../../../../api\";\nimport { useGlobalData } from \"../../../../../contexts/GlobalDataContext\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurPrestationsGlobalesProps {\n formateurId: number;\n}\n\nexport const FormateurPrestationsGlobales: React.FunctionComponent = ({\n formateurId,\n}) => {\n const { t } = useTl();\n const { currentAnneeScolaire } = useGlobalData();\n const api = useApiService(FormateurPrestationsGlobalesApi);\n const [annees, aloading] = useReferential(\n (a) => a.referentialGetAnneesPrestations({ idFormateur: formateurId }),\n false,\n [],\n false\n );\n const [currentAnnee, setCurrentAnnee] = React.useState();\n\n React.useEffect(() => {\n if (annees && !currentAnnee) {\n const isCurrent = annees.find((c) => c.label === currentAnneeScolaire?.idanneeScolaire);\n isCurrent ? setCurrentAnnee(isCurrent.label) : setCurrentAnnee(annees[0]?.value?.toString());\n }\n }, [annees, currentAnnee, currentAnneeScolaire, currentAnneeScolaire.idanneeScolaire]);\n\n const tableState = useGridState({\n serverMode: true,\n enableFilter: false,\n availablePageSizes: [12],\n pageSize: 12,\n sortKeys: { annee: \"ASC\", moisorder: \"ASC\" },\n });\n\n const searchFunction = React.useCallback(\n (sObj?: FormateurPrestationsGlobalesSearch) => {\n sObj.idformateur = formateurId;\n sObj.annee = currentAnnee;\n sObj.aggregateKeys = [\n { key: \"NbHeuresAPayer\", aggregateType: EAggregateType.Sum },\n { key: \"NbHeuresCours\", aggregateType: EAggregateType.Sum },\n { key: \"NbHeuresRemplaceesPayees\", aggregateType: EAggregateType.Sum },\n { key: \"NbHeuresRemplaceesNonPayees\", aggregateType: EAggregateType.Sum },\n { key: \"NbRemplacants\", aggregateType: EAggregateType.Sum },\n ];\n return api.formateurPrestationsGlobalesBaseSearch({ FormateurPrestationsGlobalesSearch: sObj });\n },\n [api, currentAnnee, formateurId]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true,\n });\n\n React.useEffect(() => {\n search({\n annee: currentAnnee,\n });\n }, [currentAnnee, search]);\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.NbHeuresAPayer),\n fieldName: \"nbHeuresAPayer\",\n autoFitContent: true,\n },\n {\n header: () => t(ETLCodes.NbHeuresCours),\n fieldName: \"nbHeuresCours\",\n autoFitContent: true,\n },\n {\n header: () => t(ETLCodes.RemplacementPayes),\n fieldName: \"nbHeuresRemplaceesPayees\",\n },\n {\n header: () => t(ETLCodes.RemplacementNonPayes),\n fieldName: \"nbHeuresRemplaceesNonPayees\",\n },\n {\n header: () => t(ETLCodes.Remplacants),\n fieldName: \"nbRemplacants\",\n },\n {\n header: () => t(ETLCodes.Mois),\n fieldName: \"moisorder\",\n render: (row: FcbFormateurPrestationsGlobalesGridDto) =>
{row.mois}
,\n },\n ],\n [t]\n );\n\n return (\n <>\n {!aloading && (\n
\n setCurrentAnnee(e.target.value)} value={currentAnnee} />\n \n
\n )}\n \n );\n};\n","import { FieldSet, IDataTableColumn } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\n\r\nimport {\r\n FormateurPrestationContratSearch,\r\n FormateurPrestationsContratApi,\r\n EAggregateType,\r\n FcbFormateurPrestationsContratGridDto,\r\n ETextSearchType\r\n} from \"../../../../../api\";\r\nimport { SearchTablePage } from \"../../../../../components\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\nimport { useGlobalData } from \"../../../../../contexts/GlobalDataContext\";\r\n\r\nexport interface IFormateurPrestationsContratProps {\r\n formateurId: number;\r\n}\r\n\r\nexport const FormateurPrestationsContrat: React.FunctionComponent = ({\r\n formateurId\r\n}) => {\r\n const { t } = useTl();\r\n const { currentAnneeScolaire } = useGlobalData();\r\n const api = useApiService(FormateurPrestationsContratApi);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n header: () => t(ETLCodes.NbHeuresAPayer),\r\n fieldName: \"nbHeuresAPayer\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.NbHeuresCours),\r\n fieldName: \"nbHeuresCours\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.RemplacementPayes),\r\n fieldName: \"nbHeuresRemplaceesPayees\"\r\n },\r\n {\r\n header: () => t(ETLCodes.RemplacementNonPayes),\r\n fieldName: \"nbHeuresRemplaceesNonPayees\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Remplacants),\r\n fieldName: \"nbRemplacants\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Annee),\r\n fieldName: \"annee\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Mois),\r\n fieldName: \"moisorder\",\r\n render: (row: FcbFormateurPrestationsContratGridDto) =>
{row.mois}
\r\n },\r\n {\r\n header: () => t(ETLCodes.Contrat),\r\n fieldName: \"contrat\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Centre),\r\n fieldName: \"centre\"\r\n }\r\n ],\r\n [t]\r\n );\r\n\r\n const getCriteriasFn = React.useCallback(\r\n () => api.formateurPrestationsContratGetSearchCriterias({ includeListsValues: true }),\r\n [api]\r\n );\r\n\r\n const apiFactory = useAbortableApiServiceFactory(FormateurPrestationsContratApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (nextSearch?: FormateurPrestationContratSearch) => {\r\n nextSearch.aggregateKeys = [\r\n { key: \"NbHeuresAPayer\", aggregateType: EAggregateType.Sum },\r\n { key: \"NbHeuresCours\", aggregateType: EAggregateType.Sum },\r\n { key: \"NbHeuresRemplaceesPayees\", aggregateType: EAggregateType.Sum },\r\n { key: \"NbHeuresRemplaceesNonPayees\", aggregateType: EAggregateType.Sum },\r\n { key: \"NbRemplacants\", aggregateType: EAggregateType.Sum }\r\n ];\r\n nextSearch.idFormateur = formateurId;\r\n\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.formateurPrestationsContratBaseSearch({ FormateurPrestationContratSearch: nextSearch });\r\n },\r\n [apiFactory, formateurId]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\nimport { FormateurPrestationsGlobales } from \"./FormateurPrestationsGlobales\";\nimport { FormateurPrestationsContrat } from \"./FormateurPrestationsContrat\";\n\nexport interface IFormateurPrestationsProps {\n formateurId: number;\n}\n\nexport const FormateurPrestations: React.FunctionComponent = ({ formateurId }) => {\n return (\n <>\n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { FormateurRemplacementApi, RemplacementSearch, FcbRemplacementGridDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SearchTablePage, ViewButton, EditButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ButtonContainer } from \"nsitools-react\";\nimport { useRouteParamsContext } from \"../../../../../contexts\";\n\nexport interface IFormateurRemplacementListPageProps {}\n\nexport const FormateurRemplacementListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(FormateurRemplacementApi);\n const { id } = useParams<{ id: string }>();\n\n const { pushCancelRoute } = useRouteParamsContext();\n\n const navigate = React.useCallback(\n (idremplacement: number, state: string) => {\n pushCancelRoute(`${ERoutes.formateur}/${+id}/remplacements`);\n history.push(`${ERoutes.remplacement}/${idremplacement}/general/${state}`);\n },\n [history, id, pushCancelRoute]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRemplacementGridDto) => (\n \n navigate(row.idremplacement, \"view\")} />\n navigate(row.idremplacement, \"edit\")} />\n \n )\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.Raison),\n fieldName: \"raison\"\n },\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"remarque\"\n }\n ],\n [navigate, t]\n );\n\n const getCriterias = React.useCallback(\n () => api.formateurRemplacementGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(FormateurRemplacementApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: RemplacementSearch) => {\n nextSearch.idFormateur = +id;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.formateurRemplacementBaseSearch({ RemplacementSearch: nextSearch });\n },\n [apiFactory, id]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n ButtonContainer,\n ButtonsBloc,\n DataTable,\n FGCustomPanel,\n FGMaskInput,\n FGTextInput,\n FieldGroup,\n FieldSet,\n InlineButtonContainer,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n FcbFormateurDoublonGridDto,\n FormateurDoublonApi,\n FormateurDoublonSearch,\n FormateurDoublonSearchFromJSON\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n CancelButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator,\n UnordoredListColumn,\n ViewButton\n} from \"../../../../../components\";\nimport { useBeIdCardContext, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurSignaletiqueDoublonsProps {\n setBaseData: React.Dispatch>;\n}\n\nexport const FormateurSignaletiqueDoublons: React.FunctionComponent = ({\n setBaseData\n}) => {\n const { t } = useTl();\n const history = useHistory();\n const [nationalites, nLoading] = useReferential(a => a.referentialGetAllNationalite(), false, []);\n const api = useApiService(FormateurDoublonApi);\n const { foundRowsData } = useBeIdCardContext();\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [10],\n pageSize: 10,\n sortKeys: { nom: \"ASC\" }\n });\n const dialogContext = useDialog();\n\n const searchFunction = React.useCallback(\n (sObj?: FormateurDoublonSearch) => {\n return api.formateurDoublonBaseSearch({ FormateurDoublonSearch: sObj });\n },\n [api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n\n const initialData = React.useMemo(() => {\n const onlyRegNatNb =\n !foundRowsData ||\n (!foundRowsData.nom && !foundRowsData.prenom && !foundRowsData.dateNaissance && foundRowsData.nationalNb);\n return FormateurDoublonSearchFromJSON({\n nom: foundRowsData?.nom,\n prenom: foundRowsData?.prenom,\n registreNational: onlyRegNatNb ? foundRowsData?.nationalNb : undefined,\n dateNaissance: foundRowsData?.dateNaissance\n });\n }, [foundRowsData]);\n\n const { totalCount } = tableState;\n const add = React.useCallback(\n (fromPersonne: boolean) => {\n if (totalCount && totalCount > 0) {\n dialogContext.showDialog({\n message: t(fromPersonne ? ETLCodes.AddFormeConfirmMessage : ETLCodes.AddConfirmMessage, {\n forme: t(ETLCodes.Formateur)\n }),\n onConfirmed: async () => {\n history.push(`${ERoutes.formateur}/0/signaletique/edit`);\n }\n });\n } else {\n history.push(`${ERoutes.formateur}/0/signaletique/edit`);\n }\n },\n [dialogContext, history, t, totalCount]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormateurDoublonGridDto) => (\n \n {row.isFormateur ? (\n <>\n history.push(`${ERoutes.formateur}/${row.idformateur}/signaletique/view`)}\n />\n history.push(`${ERoutes.formateur}/${row.idformateur}/signaletique/edit`)}\n />\n \n ) : (\n {\n setBaseData({ ...row });\n add(!row.isFormateur);\n }}\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.NumeroNational),\n fieldName: \"registreNational\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\"\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Nationalite),\n fieldName: \"nationalite\"\n }\n // {\n // header: () => t(ETLCodes.Forme),\n // fieldName: \"forme\",\n // render: (row: FcbFormateurDoublonGridDto) => (\n // \n // )\n // }\n ],\n [add, history, setBaseData, t]\n );\n return (\n
\n search(c)}\n editMode\n hideButtons={true}\n onCancel={() => history.push(`${ERoutes.formateur}`)}\n enableDirtyCheck={false}\n >\n \n \n \n \n \n \n \n \n \n {ctx => (\n \n \n \n history.push(`${ERoutes.formateur}`)} />\n \n {\n setBaseData(ctx.formik.values);\n add(false);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n \n )}\n \n \n \n
\n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { useLocation, matchPath } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FormateurSignaletiqueDoublons } from \"./FormateurSignaletiqueDoublons\";\nimport { FormateurSignaletique } from \"..\";\nexport interface IFormateurSignaletiqueSwitchProps {}\n\nexport const FormateurSignaletiqueSwitch: React.FunctionComponent = () => {\n const [sObj, setSObj] = React.useState({});\n const { pathname } = useLocation();\n if (\n matchPath(pathname, {\n path: `${ERoutes.formateur}/0/:tab/doublon`\n })\n ) {\n return ;\n } else {\n return ;\n }\n};\n","import * as React from \"react\";\r\n\r\nimport { SmsApi, SmsSearch, ETextSearchType } from \"../../../../../api\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\nimport { SearchTablePage } from \"../../../../../components\";\r\nimport { useGlobalData } from \"../../../../../contexts\";\r\n\r\nexport interface IFormateurSMSProps {\r\n formateurId: number;\r\n}\r\n\r\nexport const FormateurSMS: React.FunctionComponent = ({ formateurId }) => {\r\n const { t } = useTl();\r\n const api = useApiService(SmsApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n header: () => t(ETLCodes.Message),\r\n fieldName: \"message\"\r\n },\r\n {\r\n header: () => t(ETLCodes.DateEnvoi),\r\n fieldName: \"dateEnvoi\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Statut),\r\n fieldName: \"status\"\r\n }\r\n ],\r\n [t]\r\n );\r\n\r\n const getCriteriasFn = React.useCallback(() => api.smsGetSearchCriterias({ includeListsValues: true }), [api]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(SmsApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (sObj?: SmsSearch) => {\r\n sObj.idFormateur = formateurId;\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.smsBaseSearch({ SmsSearch: sObj });\r\n },\r\n [apiFactory, formateurId]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n formateurId > 0 && (\r\n \r\n )\r\n );\r\n};\r\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { FcbFormateurSuiviGridDto, FormateurSuiviApi, FormateurSuiviSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurSuiviListPageProps {}\n\nexport const FormateurSuiviListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(FormateurSuiviApi);\n const { id } = useParams<{ id: string }>();\n const validateUrl = React.useCallback((url: string) => {\n if (url.includes(\"http\")) {\n return url;\n }\n return `http://${url}`;\n }, []);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [10],\n pageSize: 10,\n sortKeys: { conseiller: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: FormateurSuiviSearch) => {\n sObj.idFormateur = +id;\n return api.formateurSuiviBaseSearch({ FormateurSuiviSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormateurSuiviGridDto) => (\n \n history.push(`${ERoutes.formateur}/${id}/suivi/${row.idsuivi}/view`)}\n />\n history.push(`${ERoutes.formateur}/${id}/suivi/${row.idsuivi}/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Conseiller),\n fieldName: \"conseiller\"\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Avis),\n fieldName: \"avis\"\n },\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"remarque\"\n },\n {\n header: () => t(ETLCodes.URL),\n fieldName: \"url\",\n render: (row: FcbFormateurSuiviGridDto) =>\n row.url && (\n \n {t(ETLCodes.Voir)}\n \n )\n }\n ],\n [history, id, t, validateUrl]\n );\n return (\n {\n e.stopPropagation();\n history.push(`${ERoutes.formateur}/${id}/suivi/0/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n >\n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n showError,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FormateurSuiviDocumentEditDialog, FormateurSuiviDocumentUploadDialog } from \"..\";\nimport {\n FcbFormateurSuiviDto,\n FcbFormateurSuiviDtoFromJSON,\n FormateurSuiviApi,\n FormateurSuiviFichierGridDto\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { exportFile } from \"../../../../../utils\";\n\nexport interface IFormateurSuiviItemPageProps {}\n\nexport const FormateurSuiviItemPage: React.FunctionComponent = () => {\n const { id, idSuivi, state } = useParams<{ id: string; idSuivi: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(FormateurSuiviApi);\n const history = useHistory();\n const [uploadDialogOpen, setUploadDialogOpen] = React.useState(false);\n const [currentFormateurSuiviFichierId, setCurrentFormateurSuiviFichierId] = React.useState(null);\n\n const [conseiller, loadingConseiller] = useReferential(a => a.referentialGetConseillersPedagogiques(), false, []);\n const [centre, loadingCentre] = useReferential(a => a.referentialGetCentre(), true, []);\n const [avis, loadingAvis] = useReferential(a => a.referentialGetAvisFormateurSuivi(), false, []);\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idconseillerPedagogique: Yup.string().required(t(ETLCodes.Required)),\n avis: Yup.string().required(t(ETLCodes.Required)),\n idcentre: Yup.number().required(t(ETLCodes.Required)),\n date: Yup.date().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving, refresh } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n +idSuivi <= 0 ? FcbFormateurSuiviDtoFromJSON({ idformateur: +id }) : api.formateurSuiviGet({ id: +idSuivi }),\n saveApiFn: d => api.formateurSuiviSave({ FcbFormateurSuiviDto: d }),\n onSavedRoute: d => `${ERoutes.formateur}/${d.idformateur}/suivi`,\n deleteApiFn: d => api.formateurSuiviDelete({ id: d.idsuivi }),\n onDeletedRoute: () => `${ERoutes.formateur}/${+id}/suivi`\n }),\n [api, id, idSuivi]\n )\n );\n\n const onAdd = React.useCallback(e => {\n e.stopPropagation();\n setUploadDialogOpen(true);\n }, []);\n\n const [rowLoading, setRowLoading] = React.useState(null);\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idsuiviFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idsuiviFichier);\n await api.formateurSuiviDeleteFormateurSuiviFichier({\n id: idsuiviFichier\n });\n refresh();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refresh, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idsuiviFichier: number) => {\n try {\n setRowLoading(idsuiviFichier);\n const file = await api.formateurSuiviDownloadFormateurSuiviFichier({\n id: idsuiviFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FormateurSuiviFichierGridDto) => (\n \n setCurrentFormateurSuiviFichierId(row.idformateurSuiviFichier)}\n loading={rowLoading === row.idformateurSuiviFichier}\n disabled={!!rowLoading && rowLoading !== row.idformateurSuiviFichier}\n />\n downloadFichier(row.idformateurSuiviFichier)}\n loading={rowLoading === row.idformateurSuiviFichier}\n disabled={!!rowLoading && rowLoading !== row.idformateurSuiviFichier}\n />\n deleteFichier(row.idformateurSuiviFichier)}\n loading={rowLoading === row.idformateurSuiviFichier}\n disabled={!!rowLoading && rowLoading !== row.idformateurSuiviFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeSuiviFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const onClose = React.useCallback(\n (toRefresh?: boolean) => {\n setCurrentFormateurSuiviFichierId(null);\n setUploadDialogOpen(false);\n if (toRefresh) {\n refresh();\n }\n },\n [refresh]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n return (\n history.push(`${ERoutes.formateur}/${+id}/suivi`)}\n onDelete={deleteItem}\n showDeleteButton={+idSuivi > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: \n }}\n >\n \n {uploadDialogOpen && (\n \n )}\n {!!currentFormateurSuiviFichierId && (\n \n )}\n \n \n );\n};\n","import * as React from \"react\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { Switch, Route } from \"react-router\";\nimport { FormateurSuiviListPage } from \"./FormateurSuiviListPage\";\nimport { FormateurSuiviItemPage } from \"./FormateurSuiviItemPage\";\n\nexport interface IFormateurSuiviSwitchProps {}\n\nexport const FormateurSuiviSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { FormateurAgrementSwitch, FormateurAzure, FormateurClasseSearchPage, FormateurHoraire } from \".\";\nimport { AcquisSwitch } from \"../..\";\nimport { FormateurApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { ActiviteProfessionelleSwitch } from \"./activiteProfessionelles/ActiviteProfessionelleSwitch\";\nimport { FormateurAdministratifItemPage } from \"./administratif/FormateurAdministratifItemPage\";\nimport { FormateurLocalisationSwitch } from \"./localisation/FormateurLocalisationSwitch\";\nimport { FormateurPreferenceHoraireSwitch } from \"./preferenceHoraire/FormateurPreferenceHoraireSwitch\";\nimport { FormateurPrestations } from \"./prestations/FormateurPresations\";\nimport { FormateurRemplacementListPage } from \"./remplacement/FormateurRemplacementListPage\";\nimport { FormateurSignaletiqueSwitch } from \"./signaletique/FormateurSignaletiqueSwitch\";\nimport { FormateurSMS } from \"./sms/FormateurSMS\";\nimport { FormateurSuiviSwitch } from \"./suivi/FormateurSuiviSwitch\";\n\nexport interface IFormateurItemPageProps {}\n\nexport const FormateurItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab } = useParams<{ id: string; tab: string; state: string }>();\n const idFormateur = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const api = useApiService(FormateurApi);\n\n const [displayName] = useApiEffect(() => api.formateurGetDisplayName({ id: +id }), [id]);\n\n const fetchIdPersonne = React.useCallback(() => {\n return api.formateurGetIdPersonne({ id: +id });\n }, [api, id]);\n const { data: idpersonne } = useQuery([\"idpersonne-apprenant\", id], fetchIdPersonne);\n\n return (\n \n history.push(`${ERoutes.formateur}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n }\n disabled={idFormateur <= 0}\n />\n }\n disabled={idFormateur <= 0}\n />\n }\n disabled={idFormateur <= 0}\n />\n }\n disabled={idFormateur <= 0}\n />\n }\n disabled={idFormateur <= 0}\n />\n } disabled={idFormateur <= 0} />\n }\n disabled={idFormateur <= 0}\n />\n }\n disabled={idFormateur <= 0}\n />\n } />\n }\n disabled={idFormateur <= 0}\n />\n }\n disabled={idFormateur <= 0}\n />\n }\n disabled={idFormateur <= 0}\n />\n } disabled={idFormateur <= 0} />\n \n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n FormateurSuiviApi,\n FormateurSuiviFichierUploadDto,\n FormateurSuiviFichierUploadDtoFromJSON\n} from \"../../../../../api\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IFormateurSuiviDocumentUploadDialogProps {\n idsuivi: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const FormateurSuiviDocumentUploadDialog: React.FunctionComponent = ({\n idsuivi,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(FormateurSuiviApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return FormateurSuiviFichierUploadDtoFromJSON({ idformateurSuivi: idsuivi });\n },\n saveApiFn: async (d: FormateurSuiviFichierUploadDto) => {\n return api.formateurSuiviUploadFormateurSuiviFichier({\n FormateurSuiviFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idsuivi, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeSuiviFichier: Yup.number().nullable(),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesSuiviFichier, tLoading] = useReferential(a => a.referentialGetTypesSuiviFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { FormateurSuiviApi, FormateurSuiviFichierDto } from \"../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IFormateurSuiviDocumentEditDialogProps {\n idformateurSuiviFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const FormateurSuiviDocumentEditDialog: React.FunctionComponent = ({\n idformateurSuiviFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(FormateurSuiviApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.formateurSuiviGetFormateurSuiviFichier({\n id: idformateurSuiviFichier\n });\n },\n saveApiFn: async (d: FormateurSuiviFichierDto) => {\n return api.formateurSuiviSaveFormateurSuiviFichier({\n FormateurSuiviFichierDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idformateurSuiviFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeSuiviFichier: Yup.number().nullable()\n }),\n []\n );\n\n const [typesSuiviFichier, tLoading] = useReferential(a => a.referentialGetTypesSuiviFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, showError, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport {\n FcbFormateurAgrementGridDto,\n FichierApi,\n FormateurAgrementApi,\n FormateurAgrementSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, LinkButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { exportFile } from \"../../../../../utils\";\n\nexport interface IFormateurAgrementListProps {}\n\nexport const FormateurAgrementList: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(FormateurAgrementApi);\n const { id } = useParams<{ id: string }>();\n const path = React.useMemo(() => `${ERoutes.formateur}/${id}/agrement`, [id]);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { dateDemande: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: FormateurAgrementSearch) => {\n sObj.idFormateur = +id;\n return api.formateurAgrementBaseSearch({ FormateurAgrementSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(\n async idfichier => {\n try {\n const file = await fapi.fichierDownload({ id: idfichier });\n await exportFile(file);\n } catch (err) {\n showError(t(ETLCodes.FichierNonTrouve));\n }\n },\n [fapi, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormateurAgrementGridDto) => (\n \n history.push(`${path}/${row.idformateurAgrement}/detail/view`)} />\n history.push(`${path}/${row.idformateurAgrement}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.NomConseiller),\n fieldName: \"nomConseiller\",\n computed: true\n },\n {\n header: () => t(ETLCodes.DateDemande),\n fieldName: \"dateDemande\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.MatiereDemandee),\n fieldName: \"matiereDemandee\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.CentreDemandeur),\n fieldName: \"centreDemandeur\"\n },\n {\n header: () => t(ETLCodes.Document),\n fieldName: \"fichier\",\n render: (row: FcbFormateurAgrementGridDto) =>\n row.fileName &&\n (row.idfichier ? downloadFn(row.idfichier)} /> : row.fileName)\n }\n ],\n [downloadFn, history, path, t]\n );\n\n return (\n <>\n {\n e.stopPropagation();\n history.push(`${path}/0/detail/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n >\n \n \n \n );\n};\n","import { Checkbox, Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport {\n FcbMetierAgrementGridDto,\n FormateurMetierAgrementApi,\n FormateursMetiersAgrementSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurAgrementMetiersListProps {}\n\nexport const FormateurAgrementMetiersList: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(FormateurMetierAgrementApi);\n const { id, idAgrement } = useParams<{ id: string; idAgrement: string }>();\n const history = useHistory();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { code: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: FormateursMetiersAgrementSearch) => {\n sObj.idformateurAgrement = +idAgrement;\n return api.formateurMetierAgrementBaseSearch({ FormateursMetiersAgrementSearch: sObj });\n },\n [api, idAgrement]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.Stade),\n fieldName: \"stade\"\n },\n {\n header: () => t(ETLCodes.Accord),\n fieldName: \"accord\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbMetierAgrementGridDto) => {\n return row.accord != null ? : \"-\";\n }\n }\n ],\n [t]\n );\n\n return (\n <>\n history.push(`${ERoutes.formateur}/${id}/agrement/${idAgrement}/metiers/selector`)}\n intent={Intent.PRIMARY}\n text={t(ETLCodes.Modify)}\n />\n }\n >\n \n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { FormateurAgrementDetail } from \"..\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { FormateurAgrementMetiersList } from \"./FormateurAgrementsMetiersList\";\n\nexport interface IFormateurAgrementTabsProps {}\n\nexport const FormateurAgrementTabs: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, idAgrement, tabAgrement, stateAgrement = \"view\" } = useParams<{\n id: string;\n idAgrement: string;\n tabAgrement: string;\n stateAgrement: string;\n }>();\n\n return (\n {\n if (newTabId === \"detail\") {\n history.push(\n `${ERoutes.formateur}/${id}/agrement/${idAgrement}/${newTabId}/${\n stateAgrement !== \"0\" ? stateAgrement : \"view\"\n }`\n );\n } else {\n history.push(`${ERoutes.formateur}/${id}/agrement/${idAgrement}/${newTabId}`);\n }\n }}\n selectedTabId={tabAgrement}\n renderActiveTabPanelOnly\n vertical\n >\n }\n panelClassName=\"full-width-panel\"\n />\n }\n panelClassName=\"full-width-panel\"\n disabled={+idAgrement <= 0}\n />\n \n );\n};\n","import { IDataTableColumn, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { FormateurMetierAgrementApi, MetierApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurAgrementMetiersSelectorProps {}\n\nexport const FormateurAgrementMetiersSelector: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const mApi = useApiService(MetierApi);\n const cmApi = useApiService(FormateurMetierAgrementApi);\n const { id, idAgrement } = useParams<{ id: string; idAgrement: string }>();\n const dialogContext = useDialog();\n\n const [data, loading] = useApiEffect(() =>\n cmApi.formateurMetierAgrementGetMetiersAgrement({ idformateurAgrement: +idAgrement })\n );\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"code\",\n header: () => t(ETLCodes.Code)\n },\n {\n fieldName: \"stade\",\n header: () => t(ETLCodes.Stade)\n },\n {\n fieldName: \"masculin\",\n header: () => t(ETLCodes.Metier)\n }\n ];\n }, [t]);\n\n return (\n !loading && (\n mApi.metierSearchMetierIds({ MetierSearch: sObj })}\n getCriteriasFunction={() => mApi.metierGetSearchCriterias({ includeListsValues: true })}\n searchFunction={sObj => mApi.metierBaseSearch({ MetierSearch: sObj })}\n onSave={async newIds => {\n await cmApi.formateurMetierAgrementSaveMetierAgrement({\n FcbFormateurMetierAgrementLiesDto: { idFormateurAgrement: +idAgrement, idsMetier: newIds }\n });\n history.push(`${ERoutes.formateur}/${id}/agrement/${idAgrement}/metiers`);\n }}\n onCancel={() => history.push(`${ERoutes.formateur}/${id}/agrement/${idAgrement}/metiers`)}\n overrideListValues={{ Idstade: i => i.displayValue }}\n dialogContext={dialogContext}\n sortKeys={{ code: \"ASC\" }}\n />\n )\n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FormateurAgrementList } from \"./FormateurAgrementList\";\nimport { FormateurAgrementTabs } from \"./FormateurAgrementTabs\";\nimport { FormateurAgrementMetiersSelector } from \"./FormateurAgrementMetierSelector\";\n\nexport interface IFormateurAgrementSwitchProps {}\n\nexport const FormateurAgrementSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n \n );\n};\n","import { Divider } from \"@blueprintjs/core\";\nimport { FGEmpty, FGTextInput, FieldGroup, FGListen, FGCustomPanel } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbFormateurAgrementDtoFromJSON, FichierApi, FormateurAgrementApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useAuth } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurAgrementDetailProps {}\n\nexport const FormateurAgrementDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(FormateurAgrementApi);\n const { id, idAgrement, stateAgrement } = useParams<{ id: string; idAgrement: string; stateAgrement: string }>();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: async () => {\n const ret =\n +idAgrement <= 0\n ? FcbFormateurAgrementDtoFromJSON({ idformateurAgrement: 0, idformateur: +id })\n : await api.formateurAgrementGet({ id: +idAgrement });\n setStartDate(ret?.datedebutAgrement);\n return ret;\n },\n saveApiFn: d => api.formateurAgrementSave({ FcbFormateurAgrementDto: d }),\n deleteApiFn: d => api.formateurAgrementDelete({ id: d.idformateurAgrement }),\n onDeletedRoute: () => `${ERoutes.formateur}/${id}/agrement/`,\n onSavedRoute: d => `${ERoutes.formateur}/${id}/agrement/${d.idformateurAgrement}/detail/edit`\n });\n\n const [conseillers, cLoading] = useReferential(a => a.referentialGetConseillersPedagogiques(), false);\n const [centres, ctLoading] = useReferential(a => a.referentialGetCentres(), true);\n const [etats, eLoading] = useReferential(a => a.referentialGetEtatsAgrement());\n const [startDate, setStartDate] = React.useState();\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idcentre: Yup.number().required(t(ETLCodes.Required)),\n idconseillerPedagogique: Yup.string().required(t(ETLCodes.Required)),\n dateDemande: Yup.date()\n .required(t(ETLCodes.Required))\n .test(\"is-valid\", t(ETLCodes.DateDemandeNotValid), async value => {\n const validationError = await api.formateurAgrementCheckDateDemande({\n dateDebut: startDate,\n dateDemande: value\n });\n return validationError.isValid;\n })\n });\n }, [api, startDate, t]);\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async (idfichier: number) => await fapi.fichierDownload({ id: idfichier }), [\n fapi\n ]);\n\n const { hasPermission } = useAuth();\n const canEditSecondPart = React.useMemo(() => hasPermission(\"FORMATEUR\", \"RW\", \"AGREMENT_SECT2\"), [hasPermission]);\n\n return (\n history.push(`${ERoutes.formateur}/${+id}/agrement`)}\n saving={saving}\n onDelete={deleteItem}\n deleting={deleting}\n showDeleteButton={+idAgrement > 0}\n >\n {\n setStartDate(value);\n }}\n >
\n {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichier\", null);\n }\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n {({ formik }) => (\n downloadFn(formik.values?.idfichier))}\n />\n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { IDataTableColumn } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { FormateurClasseApi, FormateurClasseSearch, ETextSearchType } from \"../../../../../api\";\r\nimport { SearchTablePage } from \"../../../../../components\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\nimport { useGlobalData } from \"../../../../../contexts\";\r\n\r\nexport interface IFormateurClasseSearchPageProps {\r\n formateurId: number;\r\n}\r\n\r\nexport const FormateurClasseSearchPage: React.FunctionComponent = ({\r\n formateurId\r\n}) => {\r\n const { t } = useTl();\r\n const api = useApiService(FormateurClasseApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n header: () => t(ETLCodes.CodeClasse),\r\n fieldName: \"codeClasse\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.Classe),\r\n fieldName: \"nomClasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.CodeMatiere),\r\n fieldName: \"codeMatiere\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.Matiere),\r\n fieldName: \"nomMatiere\"\r\n },\r\n {\r\n header: () => t(ETLCodes.DateDebut),\r\n fieldName: \"dateDebut\"\r\n },\r\n {\r\n header: () => t(ETLCodes.DateFin),\r\n fieldName: \"dateFin\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Centre),\r\n fieldName: \"centre\"\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"anneeScolaire\"\r\n }\r\n ],\r\n [t]\r\n );\r\n\r\n const getCriteriasFn = React.useCallback(() => api.formateurClasseGetSearchCriterias({ includeListsValues: true }), [\r\n api\r\n ]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(FormateurClasseApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (sObj?: FormateurClasseSearch) => {\r\n sObj.idformateur = formateurId;\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.formateurClasseBaseSearch({ FormateurClasseSearch: sObj });\r\n },\r\n [apiFactory, formateurId]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n","import * as React from \"react\";\nimport { SearchTablePage, ViewButton, EditButton } from \"../../../../../components\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../../hooks\";\nimport { useHistory, useParams } from \"react-router\";\nimport {\n FormateurHoraireApi,\n FormateurHoraireGridDto,\n FormateurHoraireSearch,\n ETextSearchType,\n EDateSearchType\n} from \"../../../../../api\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useGlobalData } from \"../../../../../contexts\";\nimport { Checkbox } from \"@blueprintjs/core\";\nimport styled from \"styled-components\";\nimport { format, startOfToday } from \"date-fns\";\n\nexport interface IFormateurHoraireGridProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const FormateurHoraireGrid: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(FormateurHoraireApi);\n const { id } = useParams<{ id: string }>();\n const { currentAnneeScolaire } = useGlobalData();\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FormateurHoraireGridDto) => (\n \n history.push(`${ERoutes.classe}/${row.idclasse}/detail/view`)} />\n history.push(`${ERoutes.classe}/${row.idclasse}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Annee),\n fieldName: \"annee\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"classe\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Heure),\n fieldName: \"heureDebut\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"matiere\"\n },\n {\n header: () => t(ETLCodes.Local),\n fieldName: \"local\"\n },\n {\n header: () => t(ETLCodes.Remplacement),\n fieldName: \"remplacement\",\n render: (row: FormateurHoraireGridDto) => {}} disabled />\n },\n {\n header: () => t(ETLCodes.Visite),\n fieldName: \"visite\"\n }\n ],\n [history, t]\n );\n\n const getCriterias = React.useCallback(() => api.formateurHoraireGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(FormateurHoraireApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: FormateurHoraireSearch) => {\n nextSearch.idformateur = +id;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.formateurHoraireBaseSearch({ FormateurHoraireSearch: nextSearch });\n },\n [apiFactory, id]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n const today = React.useMemo(() => startOfToday(), []);\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { SearchTablePage } from \"../../../../../components\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../../hooks\";\nimport { useParams } from \"react-router\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useGlobalData } from \"../../../../../contexts\";\nimport { Checkbox, Button, Intent } from \"@blueprintjs/core\";\nimport { FormateurHoraireIncoherenceApi } from \"../../../../../api/apis/FormateurHoraireIncoherenceApi\";\nimport {\n FormateurHoraireIncoherenceGridDto,\n FormateurHoraireIncoherenceSearch,\n ETextSearchType,\n EBooleanSearchTypes,\n EListSearchType\n} from \"../../../../../api\";\nimport styled from \"styled-components\";\nimport { showSuccess, showError } from \"nsitools-react\";\n\nconst Container = styled.div`\n display: flex;\n justify-content: flex-end;\n`;\n\nexport interface IFormateurHoraireIncoherenceGridProps {}\n\nexport const FormateurHoraireIncoherenceGrid: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(FormateurHoraireIncoherenceApi);\n const { id } = useParams<{ id: string }>();\n const { currentAnneeScolaire } = useGlobalData();\n\n const [loading, setLoading] = React.useState(false);\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Jour),\n fieldName: \"jour\"\n },\n {\n header: () => t(ETLCodes.Debut),\n fieldName: \"heureDebut\"\n },\n {\n header: () => t(ETLCodes.Fin),\n fieldName: \"heureFin\"\n },\n {\n header: () => t(ETLCodes.Motif),\n fieldName: \"motif\"\n },\n {\n header: () => t(ETLCodes.TypeIncoherence),\n fieldName: \"typeIncoherence\"\n },\n {\n header: () => t(ETLCodes.IncoherenceCentre),\n fieldName: \"centreUtilisateurFlag\",\n render: (row: FormateurHoraireIncoherenceGridDto) => (\n {}} disabled />\n )\n }\n ],\n [t]\n );\n\n const getCriterias = React.useCallback(\n () => api.formateurHoraireIncoherenceGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(FormateurHoraireIncoherenceApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: FormateurHoraireIncoherenceSearch) => {\n nextSearch.idformateur = +id;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.formateurHoraireIncoherenceBaseSearch({ FormateurHoraireIncoherenceSearch: nextSearch });\n },\n [apiFactory, id]\n );\n\n const calculCoherence = React.useCallback(async () => {\n setLoading(true);\n const res = await api.formateurHoraireIncoherenceCalculCoherence({ idFormateur: +id });\n\n if (res.isValid) {\n showSuccess(t(ETLCodes.CalculCoherenceSuccess));\n search({});\n } else {\n showError(t(ETLCodes.CalculCoherenceError));\n }\n\n setLoading(false);\n }, [api, id, search, t]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { FormateurHoraireGrid } from \"./FormateurHoraireGrid\";\nimport { FormateurHoraireIncoherenceGrid } from \"./FormateurHoraireIncoherenceGrid\";\n\nexport interface IFormateurHoraireProps {}\n\nexport const FormateurHoraire: React.FunctionComponent = () => {\n return (\n <>\n \n \n \n );\n};\n","import { Card, Classes, FormGroup, InputGroup, Switch } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup, FieldSet, Loading, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { Col, Grid, Row } from \"react-flexbox-grid\";\nimport { useParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport { FormateurActifCentreTable } from \"..\";\nimport { AzureApi, AzureUserDtoFromJSON, FcbFormateurDtoFromJSON, FormateurApi } from \"../../../../../api\";\nimport { CreateAzureButton, SmallFormGenerator } from \"../../../../../components\";\nimport { useAuth, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurAzureProps {}\n\nconst StyledForm = styled.form`\n & .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n\n & .${Classes.FORM_CONTENT} {\n flex: ${1};\n }\n\n & .${Classes.LABEL} {\n min-width: ${\"180px\"};\n text-align: ${\"right\"};\n font-weight: ${\"600\"};\n }\n\n & .inlineField .${Classes.LABEL} {\n min-width: 0px;\n }\n`;\n\nexport const FormateurAzure: React.FunctionComponent = () => {\n const { id: idformateur } = useParams<{ id: string; state: string }>();\n const api = useApiService(FormateurApi);\n const azureApi = useApiService(AzureApi);\n const { t } = useTl();\n const { showDialog } = useDialog();\n const { getCurrentPermission } = useAuth();\n\n const [aLoading, setALoading] = React.useState(false);\n const [cLoading, setCLoading] = React.useState(false);\n\n const getData = React.useCallback(() => {\n return +idformateur <= 0\n ? FcbFormateurDtoFromJSON({\n idformateur: 0\n })\n : api.formateurGet({ id: +idformateur });\n }, [api, idformateur]);\n const [data, loading, , refresh] = useApiEffect(getData, [getData, idformateur]);\n\n const getAzureData = React.useCallback(() => {\n if (data?.azureUserId === null || data?.azureUserId === undefined) {\n return AzureUserDtoFromJSON({});\n } else {\n return azureApi.azureGetAsync({ o365UserId: data?.azureUserId });\n }\n }, [azureApi, data?.azureUserId]);\n const [azureData, azureLoading, , refreshAzure] = useApiEffect(getAzureData, [getAzureData, data?.azureUserId]);\n\n const onActiveChanged = React.useCallback(\n async value => {\n if (!value) {\n showDialog({\n message: value ? t(ETLCodes.ConfirmAzureActivate) : t(ETLCodes.ConfirmAzureDeactivate),\n title: t(ETLCodes.RouteConfirmDialogTitle),\n onDialogClosed: async res => {\n if (res === \"yes\" || res === \"ok\") {\n setALoading(true);\n await azureApi.azureEnableFormateur({\n id: +idformateur,\n o365UserId: data?.azureUserId,\n accountEnabled: value\n });\n }\n setALoading(false);\n refresh();\n refreshAzure();\n }\n });\n } else {\n setALoading(true);\n await azureApi.azureEnableFormateur({\n id: +idformateur,\n o365UserId: data?.azureUserId,\n accountEnabled: value\n });\n setALoading(false);\n refresh();\n refreshAzure();\n }\n },\n [azureApi, data?.azureUserId, idformateur, refresh, refreshAzure, showDialog, t]\n );\n\n const onCreateFormateur = React.useCallback(async () => {\n setCLoading(true);\n var res = await azureApi.azureCreateFormateur({ FcbFormateurDto: data });\n setCLoading(false);\n refresh();\n refreshAzure();\n return res;\n }, [azureApi, data, refresh, refreshAzure]);\n\n const canActivate = React.useMemo(() => getCurrentPermission()?.permission === \"RWD\", [getCurrentPermission]);\n const isActivable = React.useMemo(() => azureData?.o365UserId !== null && azureData?.o365UserId !== undefined, [\n azureData?.o365UserId\n ]);\n\n const ActiveSwitch = React.useCallback(() => {\n return (\n \n \n {t(ETLCodes.AzureActive)}\n  :\n \n }\n inline\n >\n onActiveChanged(e.currentTarget.checked)}\n >\n \n \n );\n }, [aLoading, canActivate, data?.azureActive, isActivable, onActiveChanged, t]);\n\n const CentresActifs = React.useCallback(() => , [\n azureData?.department\n ]);\n\n return (\n <>\n \n \n \n \n \n \n {t(ETLCodes.EmailIfapme)}\n  :\n \n }\n inline\n >\n \n \n \n \n \n {t(ETLCodes.TemporaryPassword)}\n  :\n \n }\n inline\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n : null\n }\n >\n {}}\n editable={false}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Classes, Colors, InputGroup } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { FcbFormateurAzureGridDto, FormateurAzureApi, FormateurAzureSearch } from \"../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IFormateurActifCentreTableProps {\n codeCentres?: string;\n}\n\nconst ViewInput = styled(InputGroup)<{ colorcheck: string }>`\n & .${Classes.ICON} {\n color: ${p => p.colorcheck};\n margin-left: 0;\n }\n`;\n\nexport const FormateurActifCentreTable: React.FunctionComponent = ({\n codeCentres\n}) => {\n const { t } = useTl();\n const api = useApiService(FormateurAzureApi);\n const { id } = useParams<{ id: string }>();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { centre: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.Actif),\n fieldName: \"actif\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbFormateurAzureGridDto) => (\n \n )\n }\n ],\n [t]\n );\n\n const search = React.useCallback(\n (nextSearch?: FormateurAzureSearch) => {\n nextSearch.idFormateur = +id;\n nextSearch.codeCentres = codeCentres;\n return api.formateurAzureBaseSearch({ FormateurAzureSearch: nextSearch });\n },\n [api, codeCentres, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction: search,\n tableState,\n initialSearch: true\n });\n\n return (\n <>\n
\n \n
\n \n );\n};\n","import { ERoutes } from \"./AppRouter\";\nimport { INavigationItem } from \"./components\";\nimport { ETLCodes } from \"./locales/ETLCodes\";\n\nexport const WalterAppNavigation = (enableNextFeatures: boolean): INavigationItem[] => [\n {\n name: ETLCodes.MonTableauDeBord,\n route: ERoutes.dashboard,\n icon: \"dashboard\"\n },\n {\n name: ETLCodes.OrganisationDesCours,\n defaultOpened: true,\n icon: \"user\",\n items: [\n {\n name: ETLCodes.AgrementsClasses,\n route: ERoutes.agrementClasse\n },\n {\n name: ETLCodes.Apprenants,\n route: ERoutes.apprenant,\n otherAuthorizedRoutes: [ERoutes.lieuFormation]\n },\n {\n name: ETLCodes.Calendriers,\n route: ERoutes.calendrier\n },\n {\n name: ETLCodes.Classes,\n route: ERoutes.classe\n },\n {\n name: ETLCodes.ClassesMiseAJour,\n route: ERoutes.classeMiseAJourMasse\n },\n {\n name: ETLCodes.DeliberationType,\n route: ERoutes.deliberationType\n },\n {\n name: ETLCodes.DeliberationMasse,\n route: ERoutes.deliberationMasse\n },\n {\n name: ETLCodes.Evaluations,\n route: ERoutes.evaluation\n },\n {\n name: ETLCodes.FeuillesPresence,\n route: ERoutes.feuillePresence\n },\n {\n name: ETLCodes.Formateurs,\n route: ERoutes.formateur\n },\n {\n name: ETLCodes.InscriptionsMasse,\n route: ERoutes.inscriptionMasse\n },\n {\n name: ETLCodes.LocalisationsClasses,\n route: ERoutes.localisationClasse\n },\n {\n name: ETLCodes.Representants,\n route: ERoutes.representant\n },\n {\n name: ETLCodes.SuivisApprenants,\n route: ERoutes.suivi\n },\n {\n name: ETLCodes.Contrats,\n route: ERoutes.contrat\n },\n {\n name: ETLCodes.Remplacements,\n route: ERoutes.remplacement\n },\n {\n name: ETLCodes.VisitesExterieures,\n route: ERoutes.visiteExterieure\n },\n {\n name: ETLCodes.ValidationDeMasse,\n route: ERoutes.validationMasse\n }\n ]\n },\n {\n name: ETLCodes.Donnees,\n icon: \"database\",\n\n items: [\n {\n name: ETLCodes.RH,\n items: [\n {\n name: ETLCodes.ConseillersPedagogiques,\n route: ERoutes.conseillerPedagogique\n },\n {\n name: ETLCodes.Referents,\n route: ERoutes.delegueTutelle\n }\n ]\n },\n {\n name: ETLCodes.RE,\n items: [\n {\n name: ETLCodes.ClausesParticulieres,\n route: ERoutes.clause\n },\n {\n name: ETLCodes.DernieresAnneesReussies,\n route: ERoutes.anneeReussie\n },\n {\n name: ETLCodes.Diplomes,\n route: ERoutes.diplome\n },\n {\n name: ETLCodes.StatutsSociaux,\n route: ERoutes.statutSocial\n },\n {\n name: ETLCodes.TypesEnseignement,\n route: ERoutes.typeEnseignement\n }\n ]\n },\n {\n name: ETLCodes.FO,\n items: [\n {\n name: ETLCodes.AnneeScolaires,\n route: ERoutes.anneeScolaire\n },\n {\n name: ETLCodes.ContratsFormateurs,\n route: ERoutes.contratFormateur\n },\n {\n name: ETLCodes.Degres,\n route: ERoutes.degre\n },\n {\n name: ETLCodes.Metiers,\n route: ERoutes.metier\n },\n {\n name: ETLCodes.ProfessionsFormateurs,\n route: ERoutes.professionFormateur\n },\n {\n name: ETLCodes.Referentiels,\n route: ERoutes.referentiel\n },\n {\n name: ETLCodes.SecteursMetiers,\n route: ERoutes.secteurMetier\n },\n {\n name: ETLCodes.SecteursClasseHomogene,\n route: ERoutes.secteurClasseHomogene\n },\n {\n name: ETLCodes.SpecificiteCours,\n route: ERoutes.specificiteCours\n },\n {\n name: ETLCodes.Stades,\n route: ERoutes.stade\n },\n {\n name: ETLCodes.TitresPedagogiques,\n route: ERoutes.titrePedagogique\n },\n {\n name: ETLCodes.TypesEvaluation,\n route: ERoutes.typeEvaluation\n },\n {\n name: ETLCodes.TypesCours,\n route: ERoutes.typeCours\n },\n {\n name: ETLCodes.TypesBulletin,\n route: ERoutes.typeBulletin\n },\n {\n name: ETLCodes.Stades,\n route: ERoutes.stade\n }\n ]\n },\n {\n name: ETLCodes.DFC,\n items: [\n {\n name: ETLCodes.TypesFinancement,\n route: ERoutes.typeFinancement\n },\n {\n name: ETLCodes.ProjetsFinancement,\n route: ERoutes.projetFinancement\n }\n ]\n },\n {\n name: ETLCodes.Administratif,\n items: [\n {\n name: ETLCodes.Personnes,\n route: ERoutes.personne\n },\n {\n name: ETLCodes.CodesPostaux,\n route: ERoutes.codePostal\n },\n {\n name: ETLCodes.Pays,\n route: ERoutes.pays\n }\n ]\n },\n {\n name: ETLCodes.Institutions,\n items: [\n {\n name: ETLCodes.Institutions,\n route: ERoutes.institution\n },\n {\n name: ETLCodes.CentreGlobal,\n route: ERoutes.centreGlobal\n },\n {\n name: ETLCodes.Centres,\n route: ERoutes.centre\n },\n {\n name: ETLCodes.DirectionsTerritoriales,\n route: ERoutes.directionTerritoriale\n },\n {\n name: ETLCodes.Ecoles,\n route: ERoutes.ecole\n },\n {\n name: ETLCodes.Locaux,\n route: ERoutes.local\n },\n {\n name: ETLCodes.ServicesAlternance,\n route: ERoutes.serviceTutelle\n },\n {\n name: ETLCodes.SocietesExternes,\n route: ERoutes.societeExterne\n }\n ]\n }\n ]\n },\n {\n name: ETLCodes.Utilitaire,\n icon: \"wrench\",\n items: [\n {\n name: ETLCodes.CarteIdentite,\n route: ERoutes.beidReader\n },\n {\n name: ETLCodes.Doublons,\n route: ERoutes.doublon\n },\n {\n name: ETLCodes.Exportations,\n route: ERoutes.exportation\n },\n {\n name: ETLCodes.SMS,\n route: ERoutes.sms\n },\n {\n name: ETLCodes.GestionDroits,\n route: ERoutes.gestionDroits\n },\n {\n name: ETLCodes.Collaborateurs,\n route: ERoutes.users\n }\n ]\n },\n {\n name: ETLCodes.AllReports,\n icon: \"print\",\n items: [\n {\n name: ETLCodes.Impressions,\n route: ERoutes.impressions\n }\n ]\n }\n];\n\nexport const HopeAppNavigation = (enableNextFeatures: boolean): INavigationItem[] => [\n {\n name: ETLCodes.MonTableauDeBord,\n route: ERoutes.dashboard,\n icon: \"dashboard\"\n },\n {\n name: ETLCodes.OrganisationDeLaFormation,\n defaultOpened: true,\n icon: \"user\",\n items: [\n {\n name: ETLCodes.Apprenants,\n route: ERoutes.apprenant\n },\n {\n name: ETLCodes.Classes,\n route: ERoutes.classe\n },\n {\n name: ETLCodes.SiegeSociauxLieuxFormation,\n route: ERoutes.siegeSocial,\n otherAuthorizedRoutes: [ERoutes.lieuFormation]\n },\n {\n name: ETLCodes.Offres,\n route: ERoutes.offre\n },\n {\n name: ETLCodes.ChefsEntreprise,\n route: ERoutes.chefEntreprise\n },\n {\n name: ETLCodes.ContactsSiegesLieux,\n route: ERoutes.contacts\n },\n {\n name: ETLCodes.Contrats,\n route: ERoutes.contrat\n },\n {\n name: ETLCodes.Representants,\n route: ERoutes.representant\n },\n {\n name: ETLCodes.SuivisApprenants,\n route: ERoutes.suivi\n },\n {\n name: ETLCodes.SuivisSiegesLieux,\n route: ERoutes.suiviSiegeLieu\n },\n {\n name: ETLCodes.Tuteurs,\n route: ERoutes.tuteur\n }\n ]\n },\n {\n name: ETLCodes.Donnees,\n icon: \"database\",\n\n items: [\n {\n name: ETLCodes.RH,\n items: [\n {\n name: ETLCodes.ConseillersPedagogiques,\n route: ERoutes.conseillerPedagogique\n },\n {\n name: ETLCodes.Referents,\n route: ERoutes.delegueTutelle\n }\n ]\n },\n {\n name: ETLCodes.RE,\n items: [\n {\n name: ETLCodes.ClausesParticulieres,\n route: ERoutes.clause\n },\n {\n name: ETLCodes.DernieresAnneesReussies,\n route: ERoutes.anneeReussie\n },\n {\n name: ETLCodes.Diplomes,\n route: ERoutes.diplome\n },\n {\n name: ETLCodes.StatutsSociaux,\n route: ERoutes.statutSocial\n },\n {\n name: ETLCodes.TypesEnseignement,\n route: ERoutes.typeEnseignement\n }\n ]\n },\n {\n name: ETLCodes.FO,\n items: [\n {\n name: ETLCodes.AcquisIfapme,\n route: ERoutes.acquisIfapme\n },\n {\n name: ETLCodes.AnneeScolaires,\n route: ERoutes.anneeScolaire\n },\n {\n name: ETLCodes.CommissionParitaires,\n route: ERoutes.commissionParitaire\n },\n {\n name: ETLCodes.ContratsFormateurs,\n route: ERoutes.contratFormateur\n },\n {\n name: ETLCodes.Degres,\n route: ERoutes.degre\n },\n {\n name: ETLCodes.Metiers,\n route: ERoutes.metier\n },\n {\n name: ETLCodes.ProfessionsFormateurs,\n route: ERoutes.professionFormateur\n },\n {\n name: ETLCodes.Referentiels,\n route: ERoutes.referentiel\n },\n {\n name: ETLCodes.SecteursMetiers,\n route: ERoutes.secteurMetier\n },\n {\n name: ETLCodes.SecteursClasseHomogene,\n route: ERoutes.secteurClasseHomogene\n },\n {\n name: ETLCodes.SpecificiteCours,\n route: ERoutes.specificiteCours\n },\n {\n name: ETLCodes.TitresPedagogiques,\n route: ERoutes.titrePedagogique\n },\n {\n name: ETLCodes.TypesEvaluation,\n route: ERoutes.typeEvaluation\n },\n {\n name: ETLCodes.TypesCours,\n route: ERoutes.typeCours\n },\n {\n name: ETLCodes.TypesBulletin,\n route: ERoutes.typeBulletin\n },\n {\n name: ETLCodes.Stades,\n route: ERoutes.stade\n }\n ]\n },\n {\n name: ETLCodes.DFC,\n items: [\n {\n name: ETLCodes.TypesFinancement,\n route: ERoutes.typeFinancement\n },\n {\n name: ETLCodes.ProjetsFinancement,\n route: ERoutes.projetFinancement\n }\n ]\n },\n {\n name: ETLCodes.Administratif,\n items: [\n {\n name: ETLCodes.Personnes,\n route: ERoutes.personne\n },\n {\n name: ETLCodes.CodesPostaux,\n route: ERoutes.codePostal\n },\n {\n name: ETLCodes.Pays,\n route: ERoutes.pays\n },\n {\n name: ETLCodes.Rapports,\n route: ERoutes.rapports\n }\n ]\n },\n {\n name: ETLCodes.Institutions,\n items: [\n {\n name: ETLCodes.Institutions,\n route: ERoutes.institution\n },\n {\n name: ETLCodes.CentreGlobal,\n route: ERoutes.centreGlobal\n },\n {\n name: ETLCodes.Centres,\n route: ERoutes.centre\n },\n {\n name: ETLCodes.DirectionsTerritoriales,\n route: ERoutes.directionTerritoriale\n },\n {\n name: ETLCodes.Ecoles,\n route: ERoutes.ecole\n },\n {\n name: ETLCodes.Locaux,\n route: ERoutes.local\n },\n {\n name: ETLCodes.ServicesAlternance,\n route: ERoutes.serviceTutelle\n }\n ]\n }\n ]\n },\n {\n name: ETLCodes.Utilitaire,\n icon: \"wrench\",\n items: [\n {\n name: ETLCodes.CarteIdentite,\n route: ERoutes.beidReader\n },\n {\n name: ETLCodes.Doublons,\n route: ERoutes.doublon\n },\n {\n name: ETLCodes.SMS,\n route: ERoutes.sms\n },\n {\n name: ETLCodes.GestionDroits,\n route: ERoutes.gestionDroits\n },\n {\n name: ETLCodes.Collaborateurs,\n route: ERoutes.users\n },\n {\n name: ETLCodes.Publipostage,\n route: ERoutes.publipostage\n },\n {\n name: ETLCodes.Exports,\n route: ERoutes.exports\n }\n ]\n }\n];\n\nconst InnerFinAppNavigationItemFromRoute = (pathname: string, navItem: INavigationItem) => {\n if (\n navItem &&\n navItem.route &&\n (pathname.startsWith(navItem.route) || navItem.otherAuthorizedRoutes?.some(r => pathname.startsWith(r)))\n ) {\n return navItem;\n }\n const nextNavItems = navItem.items;\n if (nextNavItems && nextNavItems?.length > 0) {\n for (let i of nextNavItems) {\n const found = InnerFinAppNavigationItemFromRoute(pathname, i);\n if (found) {\n return found;\n }\n }\n }\n return null;\n};\n\nexport const FinAppNavigationItemFromRoute = (\n pathname: string,\n mode: \"walter\" | \"hope\",\n enableNextFeatures: boolean\n) => {\n for (let i of mode === \"walter\" ? WalterAppNavigation(enableNextFeatures) : HopeAppNavigation(enableNextFeatures)) {\n const found = InnerFinAppNavigationItemFromRoute(pathname, i);\n if (found) return found;\n }\n return null;\n};\n\nexport const AppNavigation = (modules: string[], mode: \"walter\" | \"hope\", enableNextFeatures: boolean) => {\n const filtered: INavigationItem[] = [];\n (mode === \"walter\" ? WalterAppNavigation(enableNextFeatures) : HopeAppNavigation(enableNextFeatures)).forEach(n => {\n const filteredItem = FilterNavItemRoutes(n, modules);\n if (!filteredItem?.items || filteredItem.items.length > 0) {\n filtered.push(filteredItem);\n }\n });\n return filtered;\n};\n\nconst FilterNavItemRoutes = (item: INavigationItem, modules: string[]): INavigationItem => {\n let filtered: INavigationItem = { ...item };\n if (item.items) {\n filtered.items = [];\n item.items.forEach(n => {\n const filteredItem = FilterNavItemRoutes(n, modules);\n if (filteredItem && (!filteredItem.items || filteredItem.items.length > 0)) {\n filtered.items.push(filteredItem);\n }\n });\n }\n if (filtered.route) {\n filtered =\n modules?.includes(filtered.route.split(\"/\")[1]?.toUpperCase()) ||\n filtered.otherAuthorizedRoutes?.some(r => modules?.includes(r.split(\"/\")[1].toUpperCase()))\n ? filtered\n : null;\n }\n return filtered;\n};\n\nexport const GetFirstRoute = (\n modules: string[],\n mode: \"walter\" | \"hope\",\n enableNextFeatures: boolean,\n item?: INavigationItem\n): ERoutes => {\n for (let i of item?.items ?? AppNavigation(modules, mode, enableNextFeatures)) {\n if (!i) continue;\n\n if (i.items) {\n return GetFirstRoute(modules, mode, enableNextFeatures, i);\n }\n return i.route;\n }\n};\n","export enum ETLCodes {\n AAPS1,\n AAPS2,\n ABS1,\n ABS2,\n ACES1,\n ACES2,\n ADeliberee,\n ADeliberer,\n AIS1,\n AIS2,\n AaS1,\n AaS2,\n Absences,\n AbsencesOEVA,\n Acceptation,\n Accepte,\n Acces,\n Accord,\n AccordCentre,\n Acquis,\n AcquisProfessionnel,\n AcquisScolaire,\n Actif,\n ActifComputed,\n ActionCode_ABSENCE,\n ActionCode_ABSENCES,\n ActionCode_ACQUIS,\n ActionCode_ACQUISPROF,\n ActionCode_ACQUISPROFESSIONNEL,\n ActionCode_ACTIVITESPROFESSIONELLES,\n ActionCode_ACTIVITESPROFESSIONNELLES,\n ActionCode_ADMINISTRATIF,\n ActionCode_AGREMENT,\n ActionCode_AGREMENTCLASSE,\n ActionCode_AGREMENTLOCALISATION,\n ActionCode_AGREMENTS,\n ActionCode_ANNEEREUSSIE,\n ActionCode_ANNEESCOLAIRE,\n ActionCode_APPRENANT,\n ActionCode_APPRENANTS,\n ActionCode_BEIDREADER,\n ActionCode_CALENDRIER,\n ActionCode_CENTREGLOBAL,\n ActionCode_CENTRES,\n ActionCode_CLASSE,\n ActionCode_CLASSELIEE,\n ActionCode_CLASSES,\n ActionCode_CLASSESLIEE,\n ActionCode_CLASSESLIEES,\n ActionCode_CLAUSE,\n ActionCode_CLAUSESLIEES,\n ActionCode_CODEPOSTAL,\n ActionCode_COHERENCESHORAIRE,\n ActionCode_CONSEILLERPEDAGOGIQUE,\n ActionCode_CONSEILLERSLIES,\n ActionCode_CONTRATFORMATEUR,\n ActionCode_COPIE,\n ActionCode_DEGRE,\n ActionCode_DELEGUETUTELLE,\n ActionCode_DELIBERATIONMASSE,\n ActionCode_DETAIL,\n ActionCode_DIPLOME,\n ActionCode_DIRECTIONTERRITORIALE,\n ActionCode_DOUBLON,\n ActionCode_ECOLE,\n ActionCode_EVALUATION,\n ActionCode_EXAMEN,\n ActionCode_EXAMENPRATIQUE,\n ActionCode_EXPORTATION,\n ActionCode_FEUILLEPRESENCE,\n ActionCode_FINANCE,\n ActionCode_FORMATEUR,\n ActionCode_FORMATEURLIE,\n ActionCode_FORMATEURSLIE,\n ActionCode_FORMATEURSLIES,\n ActionCode_FORMATION,\n ActionCode_FORMATIONS,\n ActionCode_GENERAL,\n ActionCode_GESTIONDROITS,\n ActionCode_HORAIRE,\n ActionCode_HORAIRES,\n ActionCode_IMPRESSION,\n ActionCode_INFORMATION,\n ActionCode_INFORMATIONS,\n ActionCode_INSCRIPTION,\n ActionCode_INSCRIPTIONMASSE,\n ActionCode_INSCRIPTIONS,\n ActionCode_JURE,\n ActionCode_JURES,\n ActionCode_JUSTIFICATIF,\n ActionCode_JUSTIFICATIFS,\n ActionCode_LIEUXCOURS,\n ActionCode_LIEUFORMATION,\n ActionCode_LISTEAPPRENANTS,\n ActionCode_LOCAL,\n ActionCode_LOCALISATION,\n ActionCode_LOCALISATIONCLASSE,\n ActionCode_LOCALITES,\n ActionCode_MASSEMISEAJOURCLASSE,\n ActionCode_MATIERE,\n ActionCode_MATIERES,\n ActionCode_METIER,\n ActionCode_METIERLIES,\n ActionCode_METIERSLIES,\n ActionCode_PAYS,\n ActionCode_PERMISSION,\n ActionCode_PERMISSIONS,\n ActionCode_PREFERENCESHORAIRE,\n ActionCode_PREFERENCESHORAIRES,\n ActionCode_PRESTATIONS,\n ActionCode_PROFESSIONFORMATEUR,\n ActionCode_PROJETFINANCEMENT,\n ActionCode_QUOTA,\n ActionCode_RECHERCHEPATRON,\n ActionCode_REFERENTIEL,\n ActionCode_REMPLACEMENT,\n ActionCode_REMPLACEMENTS,\n ActionCode_REPRESENTANT,\n ActionCode_REPRESENTANTS,\n ActionCode_RESPONSABLE,\n ActionCode_RESULTATTYPE,\n ActionCode_SEARCH,\n ActionCode_SECTEURCLASSEHOMOGENE,\n ActionCode_SECTEURMETIER,\n ActionCode_SERVICETUTELLE,\n ActionCode_SIGNALETIQUE,\n ActionCode_SMS,\n ActionCode_SPECIFICITECOURS,\n ActionCode_STADE,\n ActionCode_STATUTSOCIAL,\n ActionCode_SUIVI,\n ActionCode_SUIVIAPPRENANT,\n ActionCode_TITREPEDAGOGIQUE,\n ActionCode_TYPECOURS,\n ActionCode_TYPEDELIBERATION,\n ActionCode_TYPEENSEIGNEMENT,\n ActionCode_TYPEEVALUATION,\n ActionCode_TYPEFINANCEMENT,\n ActionCode_USERS,\n ActionCode_VALIDATIONCE,\n ActionCode_VALIDATIONMASSE,\n ActionCode_VISITEEXTERIEURE,\n ActionCode_ENVELOPPE,\n Actions,\n Activite,\n ActivitesProfessionelles,\n AddAll,\n AddAllText,\n AddConfirmMessage,\n AddElementText,\n AddSection,\n AddedToMessageAutomatically,\n Adjoints,\n Administratif,\n Adresse,\n AdresseAutre,\n AdresseCourrier,\n AdresseDomicile,\n AdressePrincipale,\n AdresseSecondaire,\n Agree,\n Agrement,\n AgrementClasses,\n AgrementLocalisation,\n Agrements,\n AgrementsClasses,\n AjoutDateHoraire,\n AllReports,\n AncienMatricule,\n Annee,\n AnneeExamen,\n AnneeReussie,\n AnneeScolaire,\n AnneeScolaires,\n App,\n AppliquerSurTous,\n Apprenant,\n ApprenantFinal,\n Apprenants,\n AreYouSureToDelete,\n AttestationFOREM,\n Au,\n Aucun,\n AucuneUtilisateurTrouvé,\n Autre,\n AutreACharge,\n AutreHandicape,\n Avis,\n AvisRetrait,\n BAPS1,\n BAPS2,\n BCES1,\n BCES2,\n BackendError_CannotDeleteAgrement,\n BackendError_CannotModifyChangeClasse,\n BackendError_ClasseMatiereLinkedToClasseHoraire,\n BackendError_ClasseMatiereLinkedToCourse,\n BackendError_ClasseMatiereLinkedToDispense,\n BackendError_ClasseMatiereLinkedToHoraire,\n BackendError_ClasseResultatLocked,\n BackendError_ConstraintViolation,\n BackendError_DateCannotBeInferior,\n BackendError_DbEntityReferenceException,\n BackendError_DuplicateExist,\n BackendError_EntityExists,\n BackendError_EntityDoesntExist,\n BackendError_FormateurLinked,\n BackendError_FormationLinkedToInscription,\n BackendError_LoginAlreadyExists,\n BackendError_NoValidatedLocalisation,\n BackendError_SmsSendError,\n BackendError_ClasseDoesNotExist,\n BackendError_MetierNotCompatibleWithDegre,\n BackendError_ClasseLinkedToInscription,\n BackendError_ClasseLinkedToEvaluation,\n BackendError_ClasseLinkedToPresence,\n BackendError_DateCoursNotInAnyAnneeScolaire,\n BaseDeDonnees,\n BeidReader,\n BicPlaceHolder,\n Boite,\n Bulletin,\n BulletinSess1,\n BulletinSess2,\n C8,\n CE,\n CEAS1,\n CEAS2,\n CEBS1,\n CEBS2,\n CEIS1,\n CEIS2,\n CalculCoherence,\n CalculCoherenceSuccess,\n CalculQuota,\n Calendrier,\n Calendriers,\n CandidatAlternance,\n CannotDeleteMatiereWithHoraires,\n Caracteristique,\n CardNumber,\n CarteIdentite,\n CarteIdentiteRemise,\n Categorie,\n Central,\n Centre,\n CentreDemandeur,\n CentreDetailPage_CodeExistsError,\n CentreFormation,\n CentreGlobal,\n CentreGlobalListPageEdit,\n CentreOuDelegueRequis,\n CentreSearchCriterias_Actif,\n CentreSearchCriterias_Code,\n CentreSearchCriterias_Directeur,\n CentreSearchCriterias_Nom,\n Centres,\n CentresLies,\n ChampDouble,\n ChangeCentre,\n ChangePassword,\n ChangementClasse,\n ChoisirCetApprenant,\n Classe,\n ClasseCible,\n ClasseHoraireCoherence,\n ClasseIdentifiant,\n ClasseLiee,\n ClasseMatiere,\n ClasseMatiereSaveContratFormateurIncompatible,\n ClasseMatiereSaveFormateurNotAgrement,\n ClassePrincipale,\n ClasseSource,\n Classes,\n ClassesMiseAJour,\n ClauseListPageClause,\n ClauseListPageStade,\n ClauseListPageTitle,\n ClausesLiees,\n ClausesParticulieres,\n Code,\n CodeBIC,\n CodeClasse,\n CodeConseillerAgrement,\n CodeExistsError,\n CodeFormation,\n CodeMatiere,\n CodePays,\n CodePostal,\n CodePostalListPageError,\n CodeSecteur,\n Codesecteur,\n Codeclasse,\n Codereferentiel,\n CodesPostaux,\n CoherenceHoraire,\n CoherenceHoraireSemestre,\n CoherenceHoraires,\n Coherent,\n CoherentHoraire,\n CommentaireDeliberation,\n Commune,\n CommuneNaissance,\n ComputedActif,\n ConfirmPassword,\n Conge,\n ConjointCharge,\n Connecte,\n ConnectedToBEID,\n Cons,\n Conseiller,\n ConseillerPedagogique,\n ConseillerPedagogiqueCode,\n ConseillersSearchCriterias_Actif,\n ConseillersSearchCriterias_IdconseillerPedagogique,\n ConseillersSearchCriterias_Nom,\n ConseillersSearchCriterias_Prenom,\n ConseillersLies,\n ConseillersPedagogiques,\n Conserver,\n ConsulterFiche,\n ConsulterHoraire,\n Contact,\n ContextMenuChooseColumns,\n Contrat,\n ContratFormateur,\n ContratsFormateurs,\n Coordonnee,\n CopieClasse,\n CopierContratFormateur,\n Cote,\n CoteMax,\n CoteMaximale,\n CoteRef,\n Cotes,\n Cours,\n CoursDu,\n CourseType,\n CoutGlobal,\n CoutInitial,\n CoutMatiere,\n CoutSms,\n CoutTotal,\n CreatedBy,\n CreatedOn,\n CreationDate,\n CreerApprenant,\n CreerFormateur,\n CreerRepresentant,\n Cut,\n DFC,\n Date,\n DateAbandon,\n DateAbsence,\n DateAcceptation,\n DateAgrement,\n DateAjouter,\n DateChangement,\n DateConvocation,\n DateCours,\n DateCreation,\n DateCreationClasse,\n DateDeNaissanceNeCorrespondPas,\n DateDebut,\n DateDebutSearch,\n DateDeces,\n DateDeliberation,\n DateDemande,\n DateDemandeNotValid,\n DateDispense,\n DateEncodage,\n DateEntreeCentre,\n DateEntreeIfapme,\n DateEnvoi,\n DateExamen,\n DateFOREM,\n DateFermeture,\n DateFin,\n DateFinTooLowError,\n DateInscription,\n DateLocalisation,\n DateNaissance,\n DateNaissanceDoublon,\n DatePaiement,\n DatePrevue,\n DateRealisation,\n DateSuivi,\n DateValidation,\n DateVisiteDebut,\n DateVisiteFin,\n Db,\n Debut,\n DebutActivite,\n DebutContrat,\n Decision,\n Degre,\n Degres,\n Delegue,\n DeleguesTutelle,\n DeleteConfirmationMessage,\n DeleteDialogTitle,\n DeleteHoraire,\n DeleteSuccess,\n DeletedErrorMessage,\n Deliberation,\n Deliberation2sess,\n DeliberationActee,\n DeliberationMasse,\n DeliberationSecondeSessions,\n DeliberationSuggeree,\n DeliberationType,\n DeliberationsMasse,\n DeliberationsType,\n Demande,\n DernierDiplome,\n DernierDiplomeObtenu,\n DerniereAnneeReussie,\n DernieresAnneesReussies,\n Derogation,\n Description,\n Desiderata,\n Detail,\n DetailVueEdition,\n Details,\n DeuxiemeSession,\n Difference,\n DimShortName,\n Dimanche,\n Diplome,\n DiplomeRemis,\n Diplomes,\n Directeur,\n DirectionsTerritoriales,\n DispenseMatiere,\n DispensesMatieres,\n DispensesOrChangementsExists,\n DocumentC2,\n Donnees,\n DoublonExistsConfirm,\n Doublons,\n DoublonsNatNumberExitsConfirm,\n Duree,\n Ecole,\n EcoleSearchCriterias_Actif,\n EcoleSearchCriterias_Adresse,\n EcoleSearchCriterias_CodePays,\n EcoleSearchCriterias_CodePostal,\n EcoleSearchCriterias_Nom,\n Ecoles,\n Edition,\n EleveLibre,\n Email,\n EmailPro,\n EncodagePar,\n EncoderRetard,\n EnfantACharge,\n EnfantHandicape,\n EnseignementSuivi,\n Entreprise,\n EnveloppeProjetFinancement,\n EnveloppeTypeFinancement,\n EnvoiACetteAdresse,\n EnvoiCourrier,\n EnvoyeLe,\n ErreurCalculIncoherence,\n Error,\n ErrorAnneeScolaireAlreadyExists,\n ErrorCodeAlreadyExistsForClasse,\n ErrorFormateurAgrementMetier,\n ErrorFormateurDepassementContrat,\n ErrorPhoneRegex,\n ErrorWhileExporting,\n Error_BackendNotRecheable,\n Error_Login,\n Etat,\n EtatAgrement,\n EtatCivil,\n EtatContrat,\n EtatLocalisation,\n Europe,\n Evaluation,\n Evaluations,\n Examen,\n ExamenC,\n ExamenEntree,\n ExamenPratique,\n ExamensEntree,\n Executer,\n Executeur,\n ExportExcel,\n Exportations,\n ExportationsGAP,\n FAGS1,\n FAGS2,\n FCO,\n FGSelectInput_Filter,\n FGSelectInput_Loading,\n FGSelectInput_NoOptions,\n FGSelectInput_SelectAnItem,\n FGMultiSelectInput_SelectAll,\n FO,\n Fax,\n FaxApp,\n FaxAutre,\n FaxCE,\n FaxFCO,\n FaxPrive,\n FaxPro,\n Feminin,\n FermetureClasse,\n FeuillesPresence,\n Filter,\n Fin,\n FinActivite,\n FinContrat,\n Finale,\n Finance,\n Financement,\n FirstNames,\n FixMenuTooltip,\n ForfaitAuditeur,\n FormDirtyRouteChangeMessage,\n Formateur,\n FormateurHandicape,\n FormateurLie,\n Formateurs,\n Formation,\n Formations,\n FraisDossier,\n FraisPOE,\n Frontalier,\n Fusion,\n FusionSuccess,\n General,\n GeneralInformation,\n GeneralLoading,\n GeneralNoData,\n General_Add,\n General_Cancel,\n General_Copy,\n General_Delete,\n General_Download,\n General_Edit,\n General_Email,\n General_GoBack,\n General_No,\n General_Password,\n General_Save,\n General_SaveErrorMessage,\n General_SavedSuccessMessage,\n General_TableCriterias,\n General_UserName,\n General_View,\n General_Yes,\n GenerePlan,\n Genre,\n GenreNeCorrespondPas,\n Gestion,\n GestionConges,\n GestionDroits,\n GestionInterne,\n GestionInterneAgrement,\n Global,\n Grade,\n GrandTotal,\n Grille,\n GrilleCe,\n Groupement,\n Gsm,\n GsmPro,\n HReelleS1,\n HReelleS2,\n HeureHoraire,\n HeureNeutralise,\n HeureReferentiel,\n HeureRemplacee,\n HeureS1,\n HeureS2,\n Heures,\n HeuresAbsences,\n HeuresJustifiees,\n HeuresPresences,\n HeuresPrestees,\n Homonyme,\n HomonymeSucess,\n Horaire,\n HoraireCoherent,\n HoraireModifieLe,\n HoraireModifiePar,\n Horaires,\n IAPS1,\n IAPS2,\n ICES1,\n IDContrat,\n IECS2,\n IdDegre,\n IdGenre,\n IdUser,\n IdanneeScolaire,\n Idapprenant,\n Idcentre,\n Idclasse,\n IdconseillerAgrement,\n IdconseillerPedagogique,\n Identifiant,\n Identite,\n Idevaluation,\n IdfinancementType,\n Idlieu,\n Idmetier,\n Idmode,\n Idstade,\n IdstatutStage,\n IdtypeCours,\n Impressions,\n Incoherence,\n Independant,\n Indice,\n IndiceRecyclageS1,\n IndiceRecyclageS2,\n Informations,\n Inscription,\n InscriptionMasse_AnneeScolaire,\n InscriptionMasse_Classe,\n InscriptionMasse_CodeMetier,\n InscriptionMasse_Degre,\n InscriptionMasse_Deliberation,\n InscriptionMasse_Deliberation2sess,\n InscriptionMasse_Formation,\n InscriptionMasse_Idclasse,\n InscriptionMasse_Nom,\n InscriptionMasse_Prenom,\n Inscriptions,\n InscriptionsMasse,\n InscriptionsMasseLocalisationClasses,\n Institutions,\n Integre,\n Interne,\n InvalidEmail,\n InvalidIban,\n IsTest,\n JDTCR,\n JeuShortName,\n Jeudi,\n Jour,\n JourAjoute,\n JourClasse,\n Journee,\n Jours,\n Jure,\n Jures,\n Justificatifs,\n KitSurvie,\n Km,\n Langue,\n Lecture,\n Lecture_Ecriture,\n Lecture_Ecriture_Suppression,\n Legitime,\n Legitimite,\n Levels,\n Libelle,\n LibelleClasse,\n LibelleExistsError,\n LienParente,\n Lieu,\n LieuFormation,\n LieuNaissance,\n Lieucours,\n LieuxDeCours,\n ListeDesApprenants,\n ListeInscriptions,\n ListeLiee,\n Local,\n LocalErrorWhileSaving,\n Localisation,\n LocalisationsClasses,\n Localise,\n Localite,\n LocaliteCentre,\n LocaliteLiee,\n LocaliteNaissance,\n Localites,\n LocationAndBirthDate,\n Locaux,\n Login,\n LoginBtn,\n LoginInput,\n Login_PasswordIsRequired,\n Login_UserNameIsRequired,\n Logout,\n LunShortName,\n Lundi,\n MarShortName,\n Mardi,\n Masculin,\n MatchGsmCP,\n MatchTelCP,\n Matiere,\n MatiereAccordee,\n MatiereDemandee,\n Matieres,\n Matricule,\n MaxCharacterApprenantNom,\n MaxCharacterApprenantPrenom,\n MaxCharacterLocalite,\n MaxCharacterNom,\n MaxCharacterPrenom,\n MaxCharacterTitle,\n MaxCharactercodePostal,\n MaxHForm,\n MaxHJury,\n MaxNumberPrecompte,\n Menu,\n MerShortName,\n MerciDeNePasRepondre,\n Mercredi,\n Message,\n Metier,\n MetierDetailPage_StadeIndiceExistsError,\n MetierDetailpage_CommissionParitaire,\n MetierDetailpage_DegreFinal,\n MetierDetailpage_DegreFinalAdditionnel,\n MetierDetailpage_Feminin,\n MetierDetailpage_Indice,\n MetierDetailpage_Integre,\n MetierDetailpage_Masculin,\n MetierDetailpage_PratiqueSimulee,\n MetierDetailpage_Remarque,\n MetierDetailpage_Stade,\n MetierListPageConseiller,\n MetierListPageIndice,\n MetierListPageIntegre,\n MetierListPageMetier,\n MetierListPageStade,\n MetierSearchCriterias_Code,\n MetierSearchCriterias_Conseiller,\n MetierSearchCriterias_Idstade,\n MetierSearchCriterias_Integre,\n MetierSearchCriterias_Masculin,\n MetierSearchCriterias_Actif,\n Metiers,\n MetiersLies,\n MetiersLiesGestionGenerique,\n MinHForm,\n Minerval,\n Minutes,\n MiseAJour,\n MiseAJourFiche,\n Mode,\n ModifiedBy,\n ModifiedOn,\n ModifierPhoto,\n Modify,\n Module,\n Module_Tab,\n Modules,\n ModulesExportation,\n ModulesImpression,\n Mois,\n Montant,\n Nationalite,\n Nb,\n NbApprenantLocalisation,\n NbCandidat,\n NbHeure,\n NbHeureJury,\n NbHeureMax,\n NbHeureMaximum,\n NbHeureMin,\n NbHeureMinimum,\n NbHeureReelle,\n NbHeuresCours,\n NbHoursNotCorresponding,\n NbRemplacementNonPayes,\n NbRemplacementPayes,\n NbRemplacements,\n NbSceances,\n NbapprenantAgrement,\n NbrDestinataire,\n NbrEnvoye,\n NbrErreur,\n New,\n NewCentreGlobal,\n NiveauAcces,\n NoContracts,\n NoValue,\n Nom,\n NomClasse,\n NomConseiller,\n NomDelegue,\n NomDoublon,\n NomMatiere,\n NomNouvelleClasse,\n NomPatron,\n NomSa,\n NombreApprenantCalcule,\n NombreApprenantPrevu,\n NombreApprenantReel,\n NombreInscrit,\n NonVacataire,\n NotAuthorized,\n NotConnectedToBEIDClikToDownload,\n NotValid,\n NumCompte,\n NumberTooHigh_100,\n Numero,\n NumeroBanque,\n NumeroCI,\n NumeroIdentification,\n NumeroNational,\n Orderjour,\n Ordre,\n OrganisationDesCours,\n PPB,\n Pager_Selector_Items,\n Pager_Selector_Items_per_page,\n Pager_Selector_Of,\n Pager_Selector_Page,\n Paiements,\n PasswordMustMatch,\n Patron,\n Pays,\n PaysDetailPage_DescriptionExistsError,\n PaysExists,\n PaysFormCodeLimit,\n PaysFormPaysLimit,\n PaysListPageCodePays,\n PaysListPageEdit,\n PaysListPageEurope,\n PaysListPageFeminin,\n PaysListPageMasculin,\n PaysListPagePays,\n PaysNaissance,\n PaysSaveSuccess,\n PeriodeInactivite,\n Permissions,\n PersonnelTutelle,\n PersonnelTutelleItemPageCode,\n PersonnelTutelleItemPageEmail,\n PersonnelTutelleItemPageGenre,\n PersonnelTutelleItemPageGsm,\n PersonnelTutelleItemPageIndependant,\n PersonnelTutelleItemPageNewDelegue,\n PersonnelTutelleItemPageNom,\n PersonnelTutelleItemPageNumRegNat,\n PersonnelTutelleItemPagePrenom,\n PersonnelTutelleItemPageSaveSuccess,\n PersonnelTutelleItemPageServiceTutelle,\n PersonnelTutelleListEmail,\n PersonnelTutelleListIndependant,\n PersonnelTutelleListPageCode,\n PersonnelTutelleListPageEdit,\n PersonnelTutelleListPageGsm,\n PersonnelTutelleListPageNom,\n PersonnelTutelleListPagePrenom,\n Plage,\n Plage1,\n Plage10,\n Plage11,\n Plage12,\n Plage13,\n Plage14,\n Plage2,\n Plage3,\n Plage4,\n Plage5,\n Plage6,\n Plage7,\n Plage8,\n Plage9,\n Plages,\n PlanAcces,\n PlanLocalisation,\n Planifie,\n Point,\n PointsFrancais,\n PointsMathematiques,\n PourcentagePresence,\n Precompte,\n PreferencesHoraires,\n PremierCours,\n Prenom,\n Prenom2,\n PrenomDelegue,\n PrenomDoublon,\n PrenomPatron,\n PrenomSa,\n Presence,\n PresencesX,\n President,\n Prestations,\n PrestationsContrat,\n PrestationsGlobales,\n Print,\n Prive,\n Profession,\n ProfessionFormateur,\n ProfessionsFormateurs,\n ProjetCoFinancement,\n ProjetFinancement,\n ProjetsFinancement,\n QueryInvalid,\n QueryMustStartWithSelect,\n QueryParamNotClosed,\n QueryParamNotOpened,\n QuickAccess,\n Quota,\n Quotas,\n RCons,\n RE,\n RH,\n ROb,\n Raison,\n Rapport,\n Rattrapage,\n RecapitulatifAnnee,\n RecherceMiseAJourDeMasse,\n Recherche,\n RecherchePatron,\n RechercheUtilisateurEnCours,\n ReferToAdminOrRelogin,\n Referentiel,\n Referentiels,\n RegistreNational,\n RegistreNationalDoublon,\n ReinitConfirmMessage,\n ReinitMatieres,\n RemCons,\n RemOb,\n Remarque,\n RemarqueCentre,\n RemarqueCentreAgrement,\n RemarqueConseiller,\n RemarqueConseillerAgrement,\n Remarques,\n Remediation,\n RemediationTJ,\n Remise,\n RemoveAll,\n RemoveAllText,\n RemoveElementText,\n RempMoinsCE,\n RemplacaPlusApp,\n Remplacant,\n RemplacantPlusApp,\n RemplacantPlusCE,\n Remplace,\n RemplaceMoinsApp,\n RemplacePlusCE,\n Remplacement,\n Remplacements,\n Reporte,\n Representant,\n Representants,\n Requete,\n RequeteInvalide,\n RequeteNonAutorisee,\n RequeteTropLongue,\n RequeteValide,\n Required,\n Reset,\n Responsable,\n Responsables,\n Resultat,\n ResultatFinAPPObtenu,\n ResultatType,\n ResultatsBloques,\n Retour,\n Reussite,\n RouteConfirmDialogTitle,\n Rupture,\n RuptureContrat,\n S1Agr,\n S1Loc,\n S2Agr,\n S2Loc,\n SMS,\n SamShortName,\n Samedi,\n SaveDone,\n SaveSuccess,\n Search,\n SearchCriteriaPanel_AddCriteria,\n SearchCriteriaPanel_No,\n SearchCriteriaPanel_Search,\n SearchCriteriaPanel_SearchModes_Between,\n SearchCriteriaPanel_SearchModes_Contains,\n SearchCriteriaPanel_SearchModes_EndWith,\n SearchCriteriaPanel_SearchModes_Equals,\n SearchCriteriaPanel_SearchModes_Greater,\n SearchCriteriaPanel_SearchModes_GreaterOrEquals,\n SearchCriteriaPanel_SearchModes_GreaterThan,\n SearchCriteriaPanel_SearchModes_GreaterThanOrEquals,\n SearchCriteriaPanel_SearchModes_Less,\n SearchCriteriaPanel_SearchModes_LessOrEquals,\n SearchCriteriaPanel_SearchModes_LessThan,\n SearchCriteriaPanel_SearchModes_LessThanOrEquals,\n SearchCriteriaPanel_SearchModes_NotContains,\n SearchCriteriaPanel_SearchModes_NotEquals,\n SearchCriteriaPanel_SearchModes_StartWith,\n SearchCriteriaPanel_Yes,\n SearchPlaceholder,\n SecteurClasseHomogeneDetailPage_StadeLibelleExistsError,\n SecteurHomogene,\n SecteursClasseHomogene,\n SecteursMetiers,\n Section,\n SectionConfirmMessage,\n SelectAll,\n SelectApprenantsAndClickOnSave,\n SelectAtLeastOne,\n SelectPostalCodeFirst,\n Selection,\n Semaine,\n Semestre,\n SendAnSMS,\n SendAnSMSToSelected,\n Service,\n ServicesAlternance,\n SeuilReport,\n SeuilReussite,\n Sexe,\n Signaletique,\n SignatureSms,\n Signe,\n Societe,\n Soldes,\n Spec,\n Specificite,\n SpecificiteCours,\n Stade,\n StadeFormationClasseError,\n Stades,\n StatistiquePresenceAbsence,\n Statistiques,\n Status,\n Statut,\n StatutAgrement,\n StatutInscription,\n StatutLocalisationAgrement,\n StatutSocial,\n StatutStage,\n StatutsSociaux,\n Suivi,\n SuiviApprenant,\n SuiviApprenants,\n SuiviSms,\n TJ,\n Tab,\n TableCriterias,\n TableResults,\n Tel,\n TelApp,\n TelAutre,\n TelCE,\n TelCentral,\n TelFCO,\n TelPrive,\n TelPro,\n Telephone,\n TelephonePro,\n Test,\n Title,\n Titre,\n Titres,\n TitresPedagogiques,\n ToggleFixedTooltip,\n Total,\n TotalAgr,\n TotalAgrement,\n TotalApresDeliberation,\n TotalCourseType,\n TotalDispense,\n TotalExamen,\n TotalExamenDiff,\n TotalHReel,\n TotalHeures,\n TotalLoc,\n TotalMax,\n TotalMinerval,\n TotalMontantDu,\n TotalMontantPaye,\n TotalNbHeures,\n TotalNbHeuresDiff,\n TotalPoints,\n TotalTjDiff,\n Type,\n TypeContrat,\n TypeCours,\n TypeCours_CharacterLimitCode,\n TypeCours_CharacterLimitLibelle,\n TypeDispense,\n TypeDisplay,\n TypeEvaluation,\n TypeFinancement,\n TypeIncoherence,\n TypeProjet,\n TypeRemplacement,\n TypeReussite,\n TypesCours,\n TypesEnseignement,\n TypesEvaluation,\n TypesFinancement,\n URL,\n UnFixMenuTooltip,\n UniteActivite,\n Update,\n Utilisateur,\n Utilisateurs,\n Utilitaire,\n Vacataires,\n ValidationCE,\n ValidationDeMasse,\n Valide,\n ValidityDates,\n ValueNotPartOfAuthorizedOnes,\n VenShortName,\n Vendredi,\n Visite,\n VisiteExterieure,\n VisitesExterieures,\n Voir,\n VoirApprenant,\n Website,\n Weekend,\n heure1,\n heure10,\n heure11,\n heure12,\n heure13,\n heure2,\n heure3,\n heure4,\n heure5,\n heure6,\n heure7,\n heure8,\n heure9,\n idcentre,\n PleaseChooseClasse,\n PleaseChooseCentre,\n BackendCodes_LocalisationLinked,\n Available,\n CannotRemoveInscription,\n Heure,\n Motif,\n IncoherenceCentre,\n CentreUtilisateurFlag,\n IdtypeIncoherence,\n SearchCriteriaPanel_SearchModes_In,\n SearchCriteriaPanel_SearchModes_NotIn,\n CalculCoherenceError,\n ReadyToValidate,\n Validate,\n Unlock,\n Lock,\n ImpressionsLitePresence,\n Personnalisee,\n Semestre1,\n Semestre2,\n PeriodeImpression,\n TypeCoursAutreClasseAReferencer,\n CalculTotalGrillePresence,\n StatAgrementSubvention,\n Imprimer,\n AnneeAcademique,\n BackendCodes_FeuillePresenceStartDateGreaterThanEndDate,\n BackendCodes_NoCourseForPeriod,\n BackendCodes_NoApprenantForClasse,\n SelectFileText,\n BrowseFileText,\n Inscrits,\n ApprenantList,\n AddApprenants,\n Cancel,\n SelectionApprenants,\n UnSelectAll,\n Neutralise,\n Precedent,\n Suivant,\n TotalSansNeutralisation,\n EvalVide,\n ConfirmSaveEvaluationListTitle,\n ConfirmSaveEvaluationListMessage,\n CoteNombrePositifOuLettreAcceptee,\n GreaterThanCoteMax,\n DownloadBeid,\n BackendError_NoCourseForPeriod,\n BackendError_NoApprenantForClasse,\n ApprenantTooOld,\n ApprenantTooYoung,\n DateDebutGreaterThanDateFin,\n DateFinGreaterThanDateDebut,\n CoteRemediation,\n PointsLogique,\n DateEvaluation,\n CannotEditHoraireBecauseReplacement,\n TypeEvaluationNotInList,\n ClasseNotInList,\n ClasseMatiereNotInList,\n CodeMetier,\n Idclasse_Table,\n NbRemplacants,\n Remplacants,\n RemplacementNonPayes,\n RemplacementPayes,\n Sess1,\n Sess2,\n CalendriersSearch,\n HeureDebut,\n Visites,\n ValidationMasse_Masculin,\n ValidationMasse_CodeClasse,\n ValidationMasse_Classe,\n EmailIfapme,\n TemporaryPassword,\n BanniDuCentre,\n AzureActive,\n BackendError_ActiveReportAlreadyExists,\n Refresh,\n IsLinkedToClasse,\n CalculHoraireManquant,\n CodeConseiller,\n IdStatutLocalisation,\n ErrorCodeClasseResultatLock,\n ApprenantIdCardIsDifferent,\n FormateurIdCardIsDifferent,\n RepresentantIdCardIsDifferent,\n HardDelete,\n ClasseMatiereSaveContratNotNullFormateurNull,\n ClasseMatiereSaveTravailRequired,\n ClasseMatiereSaveExamenRequired,\n ClasseMatiereSaveRemplacementExisting,\n ClasseMatiereSaveExportGapExisting,\n InscriptionMasse_Masculin,\n SelectionSchool,\n SelectEcole,\n SelectSchool,\n CalculDates,\n Azure,\n ActionCode_AZURE,\n ChangementClasseHasEvaluationsToDeleteTitle,\n ChangementClasseHasEvaluationsToDelete,\n MarkAsWrong,\n AnneeScolaireDoublon,\n CentresDoublon,\n BackendError_FeuillePresenceStartDateGreaterThanEndDate,\n RefreshPresence,\n RefreshBulletin,\n NumberErrorType,\n AzureInformation,\n PrincipalName,\n DisplayName,\n JobTitle,\n ConfirmAzureActivate,\n ConfirmAzureDeactivate,\n CreateAzure,\n AccountEnabled,\n DateModification,\n RemplacementOverSchoolYear,\n Duplicate,\n AssignerPlusieursMatieres,\n NoMatiereSelected,\n TotalPercent,\n InscriptionInProgress,\n ErrorWhileInscriptionMasse,\n Close,\n Sur,\n InscriptionDone,\n SearchCriteriaPanel_Reset,\n SearchCriteriaPanel_And,\n SearchCriteriaPanel_Or,\n CreerMailApprenants,\n CreerMailAll,\n DonneesClasse,\n AucunEmailTrouvé,\n ApprenantNameExists,\n NoCriteriaFilled,\n SearchNom,\n SearchPrenom,\n BicChangedAccountUnchanged,\n SearchDateNaissance,\n SearchRegistreNational,\n InscriptionHasDispensesMessage,\n InscriptionHasDispensesTitle,\n CodePostalSearchCriterias_CodePostal,\n CodePostalSearchCriterias_Commune,\n CodePostalSearchCriterias_Localite,\n CodePostalSearchCriterias_Pays,\n CodePostalSearchCriterias_Actif,\n EntiteCentre,\n Enveloppe,\n InscriptionDegreModifiedMessage,\n InscriptionDegreModifiedTitle,\n InscriptionDegreModifiedAndHasDispenseMessage,\n InscriptionDegreModifiedAndHasDispenseTitle,\n Attention,\n ValidationDialogMessage,\n IdTypeRemplacement,\n NbHeuresAPayer,\n ValidationDirection,\n ValidationDirectionDate,\n ValidationDirection1Sess,\n ValidationDirection2Sess,\n IdLegitimite,\n AccessLevelHope,\n AccessLevelWalter,\n IfapmeSide,\n Action,\n History,\n Age,\n Years,\n XYear,\n EmergencyContact,\n At,\n By,\n PrintFicheTutelle,\n CreateSuivi,\n SendAnEmail,\n NoSelectedApprenantHasAnEmail,\n BankAccountBeneficiary,\n GlobalActions,\n SiegeSociauxLieuxFormation,\n NumeroBce,\n NoSelectedSiegeSocialHasAnEmail,\n C,\n A,\n NomLieuFormation,\n Enseigne,\n SendAnEmailToLieux,\n SendAnSMSToLieux,\n NationaliteNonBelge,\n Apprenant_Add_Acquis,\n Apprenant_Add_AcquisPro,\n Apprenant_Add_Evaluation,\n Apprenant_Add_Formation,\n Apprenant_Add_Inscription,\n Apprenant_Add_Justificatif,\n Apprenant_Add_Representant,\n Apprenant_Add_Suivi,\n Apprenant_Add_ValidationCE,\n Apprenant_Create_Azure,\n Apprenant_Create_Signaletique,\n Apprenant_Delete_Acquis,\n Apprenant_Delete_AcquisPro,\n Apprenant_Delete_Evaluation,\n Apprenant_Delete_Formation,\n Apprenant_Delete_Inscription,\n Apprenant_Delete_JustificatifAbsence,\n Apprenant_Delete_Representant,\n Apprenant_Delete_Suivi,\n Apprenant_Delete_ValidationCE,\n Apprenant_Send_Email,\n Apprenant_Send_Sms,\n Apprenant_SoftDelete_Inscription,\n Apprenant_Update_Acquis,\n Apprenant_Update_AcquisPro,\n Apprenant_Update_Evaluation,\n Apprenant_Update_Formation,\n Apprenant_Update_Inscription,\n Apprenant_Update_JustificatifAbsence,\n Apprenant_Update_Representant,\n Apprenant_Update_Signaletique,\n Apprenant_Update_Suivi,\n Apprenant_Update_ValidationCE,\n Copy,\n I,\n SiegeSocial,\n StillToDev,\n LieuxFormations,\n ChefsEntreprise,\n Contacts,\n Assurances,\n Documents,\n DenominationSociale,\n TypeEntreprise,\n FormeJuridique,\n Taille,\n NumeroOnss,\n Inactif,\n EnCours,\n StatutContrat,\n Rompu,\n Suspendu,\n Termine,\n JamaisDeContrat,\n SansSuite,\n StatutInscriptions,\n AucuneInscriptionEnCours,\n AuMoinsUneInscriptionsEnCours,\n AuMoinsUneInscriptionsEnAttente,\n PrintFicheEntreprise,\n CoordonneesSiege,\n SendToAddress,\n Fonction,\n ContactTelGsm,\n DonneesDeBase,\n IsCompanySearch,\n Contrats,\n PlanFormation,\n Resultats,\n Tuteurs,\n Offres,\n NumeroUe,\n CapaciteFormative,\n PersonneContact,\n CoordonneesLieuFormation,\n AddSiegeSocial,\n AddLieuFormation,\n NoSelectedLieuxFormationHasAnEmail,\n SauverEtNouveau,\n CannotAddLieuToSiegeSocialInactif,\n DesactiverSiegeSocialText,\n EtesVousSureDesactiverSiegeSocial,\n ReactiverSiegeSocialText,\n ReactivationSiegeSocialTitle,\n PersonneReferenceIfapme,\n SusceptibledAccueillirUnApprenant,\n PasSusceptibledAccueillirUnApprenant,\n AccueilApprenant,\n ResponsableAdministratif,\n NomFormation,\n DegreClasseDifferentDegre,\n Cop,\n DateInvalide,\n DeceasedLearner,\n IsDeceasedConfirmation,\n BeneficiaryName,\n SiegeSocial_Create_Detail,\n SiegeSocial_Update_Detail,\n SiegeSocial_Enable_Detail,\n SiegeSocial_Disable_Detail,\n LieuFormation_Create_Detail,\n LieuFormation_Update_Detail,\n LieuFormation_Enable_Detail,\n LieuFormation_Disable_Detail,\n ExperienceProfessionnelle,\n NewExperiencePro,\n AcquisIfapme,\n Operateur,\n Examinateur,\n DecisionDossierAdmission,\n ResultatFinal,\n ResultatValide,\n AnneeFormation,\n Niveau,\n Forme,\n Option,\n NewAcquis,\n NewAcquisIfapme,\n Commentaire,\n BilanCompetence,\n DossierAdmission,\n ExamenEntreeFCE,\n AnneeFormationSuivie,\n AnneeFormationSuivieIfapme,\n DiplomeCertification,\n DiplomeCertificationIfapme,\n InvalidBCE,\n AtLeastOneCourrier,\n BCEAlreadyExists,\n Apprenant_Add_ExperienceProfessionnelle,\n Apprenant_Add_Signaletique,\n Apprenant_Add_BilanCompetence,\n Apprenant_Add_DossierAdmission,\n Apprenant_Add_ExamenEntreeFce,\n Apprenant_Add_ExamenEntree,\n Apprenant_Add_AnneeFormationSuivie,\n Apprenant_Add_AnneeFormationSuivieIfapme,\n Apprenant_Add_DiplomeCertification,\n Apprenant_Add_DiplomeCertificationIfapme,\n Apprenant_Delete_ExperienceProfessionnelle,\n Apprenant_Delete_BilanCompetence,\n Apprenant_Delete_DossierAdmission,\n Apprenant_Delete_ExamenEntreeFce,\n Apprenant_Delete_ExamenEntree,\n Apprenant_Delete_AnneeFormationSuivie,\n Apprenant_Delete_AnneeFormationSuivieIfapme,\n Apprenant_Delete_DiplomeCertification,\n Apprenant_Delete_DiplomeCertificationIfapme,\n Apprenant_Update_ExperienceProfessionnelle,\n Apprenant_Update_BilanCompetence,\n Apprenant_Update_DossierAdmission,\n Apprenant_Update_ExamenEntreeFce,\n Apprenant_Update_ExamenEntree,\n Apprenant_Update_AnneeFormationSuivie,\n Apprenant_Update_AnneeFormationSuivieIfapme,\n Apprenant_Update_DiplomeCertification,\n Apprenant_Update_DiplomeCertificationIfapme,\n Apprenant_Update_ParcoursFormation,\n NotAllowed,\n UserNotMatchingApp,\n OrganisationDeLaFormation,\n OffresDemandes,\n Denomination,\n Clear,\n SearchRepresentants,\n Select,\n SelectedRepresentants,\n SearchInstitutions,\n SelectedInstitutions,\n RepresentantLegal,\n Lien,\n Parent,\n GrandParent,\n Fratrie,\n TuteurLegal,\n AutreLienFamiliale,\n AutreLien,\n Institution,\n Personne,\n AtLeastOneContactField,\n AlreadyHasEmergencyContact,\n NoAdressSelected,\n SelectAdresse,\n SelectAnAdress,\n NoAdresseInPersonne,\n PleaseCreateAdresse,\n CreateAdresse,\n Personnes,\n Adresses,\n NumerosTelephone,\n Emails,\n TelephoneLinked,\n ReplaceBy,\n TelephoneUsedWarning,\n EmailLinked,\n EmailUsedWarning,\n Domicile,\n Courrier,\n NoTelephoneAdded,\n NoTelephoneAddedMessage,\n NoEmailAddedMessage,\n NoEmailAdded,\n Suivis,\n RealisateurSuivi,\n TypeSuivi,\n SousTypeSuivi,\n Contenu,\n LieuRencontre,\n CommissionTutelle,\n DateEcheance,\n TypeAction,\n ResponsableAction,\n RemarqueAction,\n EtatAction,\n DateAction,\n EditAction,\n HiddenContent,\n IdrealisateurSuivi,\n DecisionCommissionTutelle,\n Representant_Personne,\n Representant_Institution,\n Representant_PersonneContact,\n VoirFormateur,\n VoirRepresentant,\n Personne_Update_Adresses,\n Personne_Update_Telephones,\n Personne_Update_Emails,\n Personne_Update_ComptesBancaires,\n OnlyUserSuivis,\n DateEntreeReseau,\n SousStatut,\n RechercheEntreprise,\n DateSortieReseau,\n MotifSortieReseau,\n NbJours,\n SortieReseau,\n ParcoursFormation,\n Statuts,\n StatutsMotifs,\n MotifSortie,\n Par,\n HistoriqueChangement,\n NouveauParcoursFormation,\n ParcoursInterne,\n StatutDemande,\n Faite,\n PasFaite,\n EnAttente,\n AValider,\n AEnvoyerBrouillon,\n Historique,\n Collaborateur,\n Collaborateurs,\n Departement,\n Poste,\n AccesApplicatif,\n Profil,\n Services,\n ServicesLies,\n DelegationSignature,\n UserIsFormateurWarning,\n UserIsNotFormateurWarning,\n ServiceSearchCriterias_Nom,\n DateSortie,\n DateEntree,\n ServerValidationError_Required,\n VoirCollaborateur,\n AddDemandeInscription,\n NouvelleDemandeInscription,\n MeDelierApprenant,\n MAssignerApprenant,\n CreerAPartirdePersonne,\n SupprimerLiens,\n Tuteur,\n ChefEntreprise,\n DelegueTutelle,\n OrigineSuivi,\n IdtypeSuivi,\n Encodeur,\n Idencodeur,\n Validee,\n Annulee,\n StatutCourant,\n BrouillonPret,\n DemanderLaValidation,\n EnvoyerAuxCentres,\n DernierParcours,\n Cv,\n AnneesExperience,\n Tutorat,\n Vdc,\n TuteurLieuIdCardIsDifferent,\n TuteurNameExists,\n SortieEntreprise,\n PersonneContactPrincipale,\n ResponsableDerogation,\n DateDerogation,\n DelierTuteur,\n CreerAPartirdeTuteur,\n CapaciteFormativeNonRemplie,\n DemandeInscription,\n Remove,\n SendToCenter,\n CF,\n DernierLieuFormation,\n EnseigneDernierLieuFormation,\n TuteurIdCardIsDifferent,\n LieuFormation_Update_Tuteurs,\n Tuteur_Create_Detail,\n Tuteur_Update_Detail,\n Tuteur_Create_LieuxFormation,\n Tuteur_Update_LieuxFormation,\n Tuteur_Delete_LieuxFormation,\n CreerTuteur,\n ConsulterFichePersonne,\n MiseAJourFichePersonne,\n EncodageProvisoireAdministratif,\n Brouillon,\n CancelConfirmationMessage,\n CancelDialogTitle,\n SortieReseauConfirm,\n SortieReseauConfirmMessage,\n ViewAction,\n CreateNewDemande,\n CreateNewDemandeMessage,\n ChefEntreprisePrincipal,\n CreerAPartirdeChefEntreprise,\n ChefEntrepriseSiegeIdCardIsDifferent,\n DelierChefEntreprise,\n BackendError_AnotherTuteurIsMain,\n DernierSiegeSocial,\n FonctionDernierSiegeSocial,\n ChefEntrepriseIdCardIsDifferent,\n SearchChefEntreprises,\n SelectedChefEntreprises,\n EstAussiTuteur,\n VoirFormes,\n VoirChefEntreprise,\n VoirTuteur,\n ContactGsm,\n ContactTel,\n ContactFonction,\n LieuFormationPrincipal,\n TuteurPrincipal,\n Generalites,\n StatutContrat_EnCours,\n StatutContrat_Termine,\n StatutContrat_Rompu,\n StatutContrat_Suspendu,\n StatutContrat_NonDemarre,\n StatutContrat_SansSuite,\n MarquerSansSuite,\n DateRupture,\n DatePriseActe,\n SearchLieuFormations,\n SelectedLieuxFormation,\n SearchApprenants,\n SelectedApprenants,\n SearchTuteurs,\n AddTuteur,\n Suspensions,\n SuspensionContratSupprimee,\n SuspensionContrat,\n ServerValidationError_SuspensionIntersection,\n Contrat_Create_Detail,\n Contrat_Update_Detail,\n Contrat_Create_Suspensions,\n Contrat_Update_Suspensions,\n Contrat_Delete_Suspensions,\n Suspension,\n Avenant,\n Impression,\n AddContrat,\n NomMetier,\n CodeContrat,\n DenominationSiegeSocial,\n ChoisirLieuFormation,\n UserType,\n UserType_Centre,\n UserType_Service,\n SortieImpossibleContratEnCours,\n ConttratEnCoursACetteDate,\n Beneficiaire,\n PasDeContacts,\n Source,\n Masque,\n ActionARealiser,\n LieuFormationAgrements,\n AddAgrement,\n Offre,\n DateDecision,\n Complet,\n PartielA,\n PartielB,\n PartielAB,\n StatutAgrement_PourOffre,\n StatutAgrement_EnInstance,\n StatutAgrement_Provisoire,\n StatutAgrement_Agree,\n StatutAgrement_NonAgree,\n StatutAgrement_Suspendu,\n StatutAgrement_Retrait,\n ActionPourLaSelection,\n DateReception,\n MetierStade,\n CapForm,\n DossierComplet,\n ReferentIfapme,\n DemandeSectorielle,\n DecisionAgrement,\n AgrementPartiel,\n DateEnvoiD1,\n DateReceptionAvis,\n DateVisite,\n PratiqueSimulee,\n CompteRendu,\n MotifsNonAgrement,\n DateEnvoiD3,\n DateRetrait,\n MotifRetrait,\n Retrait,\n AgrementPartielA,\n AgrementPartielB,\n AddSuspension,\n SuspensionLieuFormationAgrement,\n EnCoursCreation,\n Active,\n Inactive,\n DateCv,\n Apprenant_Update_PriContrat,\n Apprenant_Update_AriContrat,\n RemarqueService,\n ImprimerFicheTutelle,\n CreateSuiviForNbApprenants,\n ImprimerInscription,\n ImprimerFicheHoraire,\n CreationMultiple,\n DispenseChomage,\n DureeParcours,\n CommissionParitaire,\n HeuresHebdomadaires,\n Clauses,\n LieuxDates,\n DateSignature,\n LieuSignature,\n DatePassageB,\n DatePassageC,\n Bareme,\n RemunerationReelle,\n Baremes,\n CalculeApresCreation,\n ContratAlternanceCC,\n ConventionStageCS,\n StagePratiqueProPP,\n ConventionFALTCF,\n StageDecouverteMetierDM,\n UserIsNotRiOrCalc,\n DonneesJoursHeures,\n NbMaxHeuresFormationComplete,\n NbMinHeuresAnnee,\n NbHeuresPrestees,\n NbHeuresPrevues,\n ServerValidationError_MetierNotCorrespondingAgrements,\n ServerValidationError_MetierNotCorrespondingTuteurs,\n ServerValidationError_OnlyOneMainLf,\n ServerValidationError_OnlyOneMainTuteur,\n AccessLevelBoth,\n DateRemise,\n SiegesSociaux,\n SPP,\n ServerValidationError_TuteursCannotBeSpp,\n ServerValidationError_LieuFormationContratsMustCorrespondToDecision,\n ServerValidationError_LieuFormationDoesNotHaveAnyValidAgrements,\n DateTransmission,\n DetailsPrestations,\n Jour1,\n Matin,\n ApresMidi,\n Jour2,\n Jour3,\n Jour4,\n Jour5,\n Jour6,\n Jour7,\n Jour8,\n Jour9,\n Jour10,\n DemandeConfirmation,\n CompagnieAssurance,\n NumeroPolice,\n Assurance,\n OperateurFormation,\n CannotBeNegative,\n CannotBeGreaterThan,\n PcFormationEmployeur,\n PcFormationOperateur,\n InterventionFinanciere,\n SiegeSocialNoAssurance,\n CategorieStatut,\n SuivisApprenants,\n StatutApprenant,\n CannotBeUnderBareme,\n MarquerSansSuiteConfirm,\n MarquerSansSuiteConfirmMessage,\n ActionCode_OFFRE,\n CapaciteAtteinte,\n NomStade,\n OffreActive,\n Call,\n ErrorForOneOrMoreTuteurs,\n ErrorForOneOrMoreLieuxFormation,\n MustBeWithinContractPeriod,\n MustBeAfterRupture,\n ServerValidationError_DateMustBeWithinRange,\n ContratAlreadySuspended,\n ContratSoonSuspended,\n SuivisSiegesLieux,\n LieuPrincipal,\n IdsiegeSocial,\n IdlieuFormation,\n IsApprenant,\n IsFormateur,\n IsRepresentant,\n IsUser,\n IsChefEntreprise,\n IsTuteur,\n ServerValidationError_AgrementWithSameMetierAlreadyActive,\n Initiateur,\n MotifPatron,\n MotifJeune,\n CALCRIActant,\n AgrementsOffreActive,\n AgrementsOffreActiveConfirm,\n NotAuthorizedForModule,\n TuteurDisablingForSortie,\n OK,\n TuteurInactifARemplacer,\n ContratTuteurInactifARemplacer,\n VeuillezVerifierLesTuteursDeCeContrat,\n VeuillezVerifierLesLieuxFormationDeCeContrat,\n TuteurCapaciteFormativeAtteinte,\n LieuFormationCapaciteFormativeAtteinte,\n CpHorsMetier,\n Inscrit,\n Envoyee,\n EnAbandon,\n EnValidation,\n EnCorrection,\n AjouterValeurALaListe,\n ValeurDoitEtreUnNombre,\n AddAvenant,\n Types,\n DatePriseEnCours,\n Avenants,\n CreerAPartirdeContact,\n TypesAvenant,\n NumeroAvenant,\n DateCommissionTutelle,\n DecisionInstitut,\n ResponsableValidation,\n MonTableauDeBord,\n Dossiers,\n ApprenantRechercheEntreprise,\n DocumentsManquants,\n PratiqueProfessionnelle,\n ServerValidationError_BceAlreadyExists,\n SauverEtDupliquer,\n DateCannotBeInFurture,\n EnvoyerEnValidation,\n Valider,\n Invalider,\n DetailParcours,\n NouvelleFormation,\n FormationExistante,\n DetailsInscription,\n ChoixFormation,\n MisEnSortie,\n DemandeSuppression,\n EnRenvoi,\n Supprime,\n RefuseCentres,\n RefuserDemandeConfirmTitle,\n RefuserDemandeConfirmMessage,\n MesDemandes,\n DemandesServices,\n MasquerDemandeConfirmTitle,\n MasquerDemandeConfirmMessage,\n AfficherMasquees,\n LocaliteSignature,\n RemarqueInvalidation,\n InvaliderDemande,\n DefinirCommeTuteur,\n AucunCentrePourLesDonnéesChoisies,\n LieuFormationAgrementOffreMessage,\n LieuFormationAgrementOffreTitle,\n CapaciteFormativeLieuFormationVaEtreDepassee,\n CapaciteFormativeLieuFormationEstDejaDepassee,\n DatePriseEffet,\n MotifsRetraitAgrement,\n IFAPME,\n CEFA,\n RetraitDejaEffectueSurUnAgrementSelectionne,\n DateDecisionRetrait,\n OrganismeResponsableRetrait,\n AgrementRetraitWarningTitle,\n AgrementRetraitWarningMessage,\n DisableLieuFormationTitle,\n DisableLieuFormationMessage,\n ModifierSuspension,\n AddVisite,\n ServerValidationError_RegistreNationalAlreadyExists,\n PermisVoitureB,\n PermisCyclomoteurAM,\n CommissionsParitaires,\n AtLeastOneRegNatFields,\n ReassignerCOP,\n ReassignationCop,\n COPsARemplacer,\n CopRemplacant,\n ReassignationPri,\n PriRemplacant,\n PRIsARemplacer,\n ReassignerPRI,\n ReassignerARI,\n ReassignationAri,\n ARIsARemplacer,\n AriRemplacant,\n MaintenirOffreTitle,\n MaintenirOffreMessage,\n LieuFormationAgrementCapaciteFormativeAtteinte,\n TypeSortie,\n ContactIdCardIsDifferent,\n PassportDrive,\n Permis,\n AutoEcole,\n RemiseCheque,\n InscriptionEffective,\n DatePermisTheorique,\n DatePermisPratique,\n ChequeReceptionForem,\n ResultatPermisTheorique,\n ResultatPermisPratique,\n DemandeNouveauCheque,\n EmailPromotionnel,\n NePlusEnvoyer,\n Apprenant_Create_PassportDrive,\n Apprenant_Update_PassportDrive,\n PasDeCopAssigné,\n UniquementSPP,\n CapaciteNonAtteinte,\n Legende,\n ServerValidationError_AgrementPourOffreMustBeChanged,\n ServerValidationError_AnAgrementIsSPPButContratIsNotPP,\n Tous,\n DoublonAdresseACorriger,\n CorrigerDansLaFichePersonne,\n DoublonAdresse,\n VeuillezChoisirAdresseCorrecte,\n CorrigerDoublon,\n BackendError_CannotDeleteLfAgrementContratsLinked,\n ContactsSiegesLieux,\n ServerValidationError_NumeroIdentificationAlreadyExists,\n CopPrincipal,\n SocietesExternes,\n SocieteExterne,\n PersonneTrouvee,\n VeuillezInsererCarteIdentite,\n Ou,\n Confirmer,\n AucunePersonneTrouvee,\n AucunePersonneTrouveePourNiss,\n PlusieursPersonnesTrouvees,\n VeuillezContacterCentres,\n AddFormeConfirmMessage,\n MarquerSuiviCommeFaitConfirmMessage,\n MarquerSuiviCommeFaitConfirmTitle,\n MarquerCommeFait,\n MasquerDemande,\n VoirInscription,\n ApprouverEtCreerInscription,\n RefuserInscription,\n Realisee,\n DateEcheanceDepassee,\n NonRealisee,\n ActionsQuiMeSontAssignees,\n ActionsAssigneesServices,\n PasDateEcheance,\n DateEcheanceNonDepassee,\n DateEcheanceNonDepasseeValue,\n DateCannotBeInPast,\n MasquerSuiviConfirmTitle,\n MasquerSuiviConfirmMessage,\n MasquerSuivi,\n AfficherMasques,\n ActionRealisee,\n ActionNonRealisee,\n FormateurConcerne,\n ActionsAssigneesCentres,\n EHopeApprenantSearchType_CURRENT,\n EHopeApprenantSearchType_PAST,\n EHopeApprenantSearchType_BOTH,\n MesApprenants,\n AucuneCpDansCeSiegeSocial,\n Referents,\n Referent,\n ModificationDate,\n BackendError_InscriptionDejaCreeAPartirDemandeInscription,\n AucunServicePourCetApprenant,\n MarquerAbsenceCommeVueConfirmTitle,\n MarquerAbsenceCommeVueConfirmMessage,\n MarquerCommeVu,\n AbsencesInjustifiees,\n DeltaDernierAvertissement,\n DernierAvertissement,\n MesLieuxFormation,\n VeuillezEffectuerUneRecherche,\n SortieImpossible,\n MarquerSortieConfirmTitle,\n MarquerSortieHopeConfirmMessage,\n MarquerSortie,\n DashboardDossierType_SortieApprenant,\n SortieEnCours,\n VoirContratsApprenant,\n RefuserSortie,\n MarquerSortieWalterConfirmMessage,\n SortieAnnulee,\n VoirInscriptionsApprenant,\n ConfirmerSortie,\n RefuserSortieConfirmTitle,\n RefuserSortieConfirmMessage,\n SortieImpossibleWalter,\n VoirParcoursFormation,\n Exterieur,\n Supprimer,\n DemanderSuppression,\n ContenuCache,\n ContenuCachePour,\n TousSaufCopCalc,\n StageObservationSO,\n ContratAlternanceCommunCCE,\n ConventionStageExterneCSE,\n MaitreStage,\n DureeExperiencePro,\n GsmTel,\n NbMaxHeures,\n NbMinHeures,\n SelectedSiegeSocials,\n SearchSiegeSocials,\n DonneesContrat,\n DureeSousContrat,\n NomChefEntreprise,\n PrenomChefEntreprise,\n TypeCoursDemandeSeulement,\n DepuisNJours,\n DepuisAujourdhui,\n ActionCode_HISTORY,\n ActionCode_CONTRATS,\n ActionCode_STATUTMOTIFS,\n ActionCode_PARCOURSFORMATION,\n ActionCode_CHEFENTREPRISE,\n ActionCode_SIEGESOCIAUX,\n ActionCode_CONTACTS,\n ActionCode_SIEGESSOCIAUX,\n ActionCode_LIEUXFORMATION,\n ActionCode_MULTIPLE,\n ActionCode_AVENANTS,\n ActionCode_SUSPENSIONS,\n ActionCode_DOCUMENTS,\n ActionCode_PRATIQUEPRO,\n ActionCode_DOSSIERS,\n ActionCode_SUIVIS,\n ActionCode_DASHBOARD,\n ActionCode_CONTRAT,\n ActionCode_TUTEUR,\n ActionCode_OFFRES,\n ActionCode_ASSURANCES,\n ActionCode_CHEFSENTREPRISE,\n ActionCode_SERVICES,\n NomFichier,\n DateUpload,\n UtilisateurUpload,\n ErrorWhileDeletingFile,\n ErrorWhileDownloadingFile,\n Parcourir,\n ChoisissezUnFichier,\n UploadFichier,\n Fichier,\n FileName,\n UploadUser,\n UploadDate,\n IdtypeApprenantFichier,\n UploadFichiers,\n MaxFileSizeReached,\n IdtypeAcquisFichier,\n IdtypeSuiviFichier,\n Document,\n DocumentCompteRendu,\n ActionCode_INSTITUTION,\n ActionCode_JOBS,\n IdtypeSiegeSocialFichier,\n IdtypeLieuFormationFichier,\n DocumentRupture,\n AutresDocuments,\n Remis,\n TypeApprenantFichier_DOSSIER_SCOLAIRE,\n TypeApprenantFichier_CARTE_IDENTITE,\n TypeApprenantFichier_FICHE_FSE,\n TypeApprenantFichier_ROI_CARNET_PEDA,\n TypeApprenantFichier_CHARTE_ENGAGEMENT,\n AvisAttestationPF,\n DocumentsReglementaires,\n MetierContrat,\n StadeContrat,\n ServiceContrat,\n EnrechercheEntreprise,\n RegistreNationalOrEmpty,\n EnseigneLieuFormation,\n StatutContrat_NON_AGREE,\n StatutContrat_RET,\n StatutContrat_TRANSFERT_CEFA,\n StatutAgrement_SansSuite,\n ServiceNom,\n MesContrats,\n NomInstitution,\n NomApprenant,\n PrenomApprenant,\n ChefEntrepriseFullName,\n ContactFullName,\n Idpri,\n Idari,\n AnneeScolaireCriteria,\n ClasseCriteria,\n CentreCriteria,\n DegreCriteria,\n MetierCriteria,\n StadeCriteria,\n SearchCriteriaPanel_SearchModes_NestedDefault,\n IdsousTypeSuivi,\n Idservice,\n SuiviAction,\n SuiviAction_Realisee,\n SuiviAction_ARealiser,\n SuiviAction_Aucune,\n IsContact,\n ServerValidationError_CannotDisableSiege,\n ServerValidationError_CannotDisableLieu,\n DocumentPhysique,\n PasDeNumero,\n ServerValidationError_DemandeAlreadyExists,\n Envoyeur,\n Apprenant_Add_JustificatifAbsence,\n ServerValidationError_NumeroUeAlreadyExists,\n Contrat_Create_Avenant,\n Contrat_Update_Avenant,\n Contrat_SoftDelete_Avenant,\n StatutBCE,\n ActionCode_SUIVIS_SIEGE_LIEU,\n DateCannotBeGreaterThan1YearInFurture,\n CapaciteFormativeLieuFormationAgrementVaEtreDepassee,\n LieuFormationInactif,\n DisableLieuFormationConfirmTitle,\n DisableLieuFormationConfirmMessage,\n PasEmailPromotionnel,\n SuspensionsAgrementNonModifiables,\n EditSuspensions,\n AddSuspensions,\n BaremeTheorique,\n AfficherSupprimés,\n Exports,\n RapportsCentres,\n RapportsServices,\n Publipostage,\n IdrapportHopeType,\n Path,\n Page,\n PasDeDonneesAAfficher,\n Generer,\n FichierXmlAvecDonneesRapport,\n CSVComma,\n CSVSemiColon,\n CSVNoHeader,\n TABDelimited,\n PDF,\n MHTML,\n Excel,\n FichierTIFF,\n Word,\n PasDeParametres,\n LoadingProgress,\n Rapports,\n InvalidationDirection,\n DegreDifferentFromClasse,\n TotalPointsTJExam,\n PresenceApp,\n WithHoraire,\n DeleteHoraireConfirmationMessage,\n DeleteHoraireDialogTitle,\n ApprenantTrouve,\n AucunApprenantTrouve,\n AucunApprenantTrouvePourNiss,\n PlusieursApprenantsTrouves,\n DateEntreeParcours,\n ServerValidationError_SiegeIsInactif,\n ApprenantNameExistsSave,\n IdserviceTutelle,\n IdreferentIfapme,\n NomReferent,\n PrenomReferent,\n VoirOffre,\n AgrementSuspensionWarningTitle,\n AgrementSuspensionWarningMessage,\n AtLeastOneRepresentantField,\n StatutInscription_None,\n StatutInscription_Current,\n StatutInscription_Waiting,\n ContratsActifsEnCoursApprenant,\n Manuel,\n PriseEnMain,\n ActionCode_EXPORTS,\n ActionCode_PUBLIPOSTAGE,\n ActionCode_RAPPORTS,\n ActionCode_SIEGESOCIAL,\n ActionCode_SOCIETEEXTERNE,\n ActionCode_SSRSREPORTS,\n ActionCode_SUIVISIEGELIEU,\n ActionCode_PASSPORTDRIVE,\n ActionCode_PERSONNE,\n DownloadBeidNew,\n ConsentementCollecteDonnees,\n VoirConseeillerPedagogique,\n BackendError_CannotDeleteLfSuiviFilesLinked,\n NouveauStatutPostFormation,\n DateStatut,\n SuiviTermine,\n DashboardDossierType_StatutPostFormation,\n PostFormation,\n MasquerLigneConfirmTitle,\n MasquerLigneConfirmMessage,\n MasquerLigne,\n CategorieStatutApprenant_PostFormation,\n CategorieStatutApprenant_Entree,\n CategorieStatutApprenant_Sortie,\n CategorieStatutApprenant_SortieAnnulee,\n CategorieStatutApprenant_SortieEnCours,\n DateCannotBePastOf,\n Personne1,\n Personne2,\n DateNaissance1,\n DateNaissance2,\n ApprenantNb,\n NbInscriptions,\n NbDocuments,\n NbAbsences,\n NbSuivis,\n NbContrats,\n HomonymeConfirmTitle,\n HomonymeConfirmMessage,\n HomonymeError,\n MergeConfirmTitle,\n MergeConfirmMessage,\n FusionError,\n DoublonApprenantRepresentantCumules,\n VeuillezChoisirContactUrgence,\n ContactUrgenceApprenant,\n DoublonApprenantParcoursCumules,\n CategorieStatutSortie,\n StatutSortie,\n ParcoursActuelPlusRecentChoisi,\n PasDeParcoursEnCours,\n ParcoursFormationActuel,\n StatutActuel,\n VeuillezChoisirStatutActuel,\n DoublonApprenantStatutsCumules,\n PasDeStatutEnCours,\n PasDePassportDrive,\n DoublonApprenantPassportDriveAuto,\n DoublonsDossierScolairePlusRecentChoisi,\n DoublonApprenantDocumentsCumules,\n PersonneNb,\n NbAcquis,\n CompteBancaire,\n VoirPersonne,\n Telephones,\n ChefEntrepriseNb,\n DoublonChefEntrepriseSiegeSocialCumules,\n ContactNb,\n DoublonContactSiegeSocialCumules,\n DoublonContactLieuFormationCumules,\n TuteurNb,\n DoublonTuteurLieuFormationCumules,\n DoublonTuteurMetiersContratsCumules,\n RepresentantNb,\n FormateurNb,\n NbLocalisations,\n NbAgrements,\n NbDoublonRemplacements,\n Professions,\n CALCRSA,\n ServerValidationError_InvalidDatesCombination,\n ServerValidationError_CurrentCalcAlreadyExisting,\n RegistreNational1,\n RegistreNational2,\n NouveauDoublon,\n VeuillezDeselectionnerAutreLigne,\n Nom1,\n Nom2,\n Prenom1,\n SecondPrenom,\n Personne_Merge_Doublons,\n Apprenant_Merge_Doublons,\n Tuteur_Merge_Doublons,\n PRIApprenantSelectionne,\n PRIContratSelectionne,\n ARIApprenantSelectionne,\n ARIContratSelectionne,\n RoleNonAutorise,\n BackendError_UserNotAuthorizedForMerge,\n ApprenantSecurise,\n ApprenantNonSecurise,\n ApprenantSecuriseMessage,\n ApprenantSecuriseTitle,\n ActionCode_NEW,\n StatutContrat_undefined,\n AnneeDebut,\n AnneeFin,\n TitreDiplomeCertificationIfapmes,\n CannotDeleteRepresentant,\n ComptesBancaires,\n NoCompteBancaireAddedMessage,\n NoCompteBancaireAdded,\n BackendError_CannotDeleteRepresentant,\n BackendError_ClasseMatiereLinkedToEvaluations,\n ActionCode_AGREMENT_SECT2,\n AgrementLieuFormation,\n TypeCoursDifferentFromClasse,\n NouvelleInscription,\n SuspensionInscriptionSupprimee,\n InscriptionAlreadySuspended,\n InscriptionSoonSuspended,\n SuspensionInscription,\n MettreEntreAbandon,\n Terminer,\n InscriptionTermineeAvecSucces,\n AbandonInscription,\n AucuneInscriptionElligiblesAuxActionsMultiples,\n DateFinSuspension,\n Periode,\n VeuillezRemplirTousLesChamps,\n ChangementCentre,\n AncienneClasse,\n AvertirConvoquer,\n AvertirConvoquerConfirmTitle,\n AvertirConvoquerConfirmMessage,\n DashboardDossierType_FinAgrementProvisoire,\n Concerne,\n RemarqueRefusCentre,\n AtLeastOneField,\n OldCsBaremes,\n CurrentPri,\n BackendError_UserNotInCentres,\n BackendError_InscriptionVisibleBulletin,\n DateCannotBeBefore,\n AzureEmail,\n YouCantAccessThisApplication,\n BackendError_NoValidInscriptions,\n IdtypeContrat,\n EmailsRepresentants,\n EmailsContacts,\n Impersonate,\n AreYouSureYouWantToImpersonateThisUser,\n OnBehalfOf,\n RemplacantDecede,\n CloturerSuspension,\n SimpleSortieReseauConfirmMessage,\n InscriptionMasse_Degres,\n InscriptionMasse_Idsclasse,\n InscriptionMasse_Masculins,\n InscriptionMasse_Classes,\n InscriptionMasse_AnneesScolaires,\n InscriptionMasse_Deliberations,\n InscriptionMasse_Deliberations2sess,\n InscriptionMasse_CodesMetier,\n E8E9,\n TypeBulletin,\n Certification,\n PcMinReussite,\n UAA,\n VisibleBulletin,\n Sommative,\n TypesBulletin,\n CanPrintBulletin,\n GenererBulletins,\n SearchAtLeastAnneeAndCentre,\n BulletinGenerationWarningNb,\n BulletinGenerationWarningMetier,\n BulletinGenerationWarningQuestion,\n ErrorWhileCancellingPrinting,\n ErrorWhileDeletingPrinting,\n NoPrintingsToday,\n RapportWalter,\n RapportHope,\n ExportWalter,\n AddingBulletinToGenerationQueue,\n ErrorWhileAddingBulletinToQueue,\n BulletinsAddedToQueue,\n ErrorWhileDownloadingPrinting,\n TelechargerSelection,\n MatiereParente,\n VoirTout,\n DeletedByOn,\n RaisonVar,\n GenererAvisResultats1Sess,\n GenererAvisResultats2Sess,\n NoAvisToGenerate,\n GenerationIndisponibleAvant20232024,\n ValidateAvisResultats1Sess,\n ValidateAvisResultats2Sess,\n InvalidateAvisResultats,\n DownloadAvisResultats1S,\n DownloadAvisResultats2S,\n BackendError_AnneeScolaireMustBeBefore2024,\n CommissionParitaires,\n ActionCode_COMMISSIONPARITAIRE,\n DureeInoccupation,\n DonneeManquante,\n Apprenant_Create_SortieApprenant,\n Apprenant_Add_StatutApprenant,\n Apprenant_Update_StatutApprenant,\n Apprenant_Create_ParcoursFormation,\n AtLeastOneOfThoseField,\n BulletinGenerationWarningNbClasse,\n ErrorWhileShowingRow,\n RapportsImprimesAujourdhui,\n DeselectAll,\n AucunFichierATelecharger,\n ErrorWhileInvalidation,\n SelectionActions,\n MasquerSelection,\n SupprimerSelection,\n ErrorWhileMaskingprintings,\n ErrorWhileDeletingPrintings,\n MustWaitAfterGenerationBeforeInvalidating,\n AnnulerSelection,\n ErrorWhileCancellingPrintings,\n PrintingHistory,\n VoirHistorique,\n Hidden,\n NomRapport,\n BackendError_TypeBulletinMissingInClasse,\n DerniersAvisDeResultatsImprimes,\n AnnulerMasquerGenerationPrecedente,\n AnnulerMasquerGenerationPrecedenteMessage,\n BulletinHasEmptyEvaluations,\n AnErrorOccuredWhilePrintingAr,\n ManuelAvisResultats,\n FichierNonTrouve,\n NouvelleFonctionnalité,\n Acknowledged\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface ApprenantDoublonSearch\n */\nexport interface ApprenantDoublonSearch {\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantDoublonSearch\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof ApprenantDoublonSearch\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantDoublonSearch\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantDoublonSearch\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonSearch\n */\n idpersonne?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantDoublonSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantDoublonSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ApprenantDoublonSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantDoublonSearch interface.\n */\nexport function instanceOfApprenantDoublonSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantDoublonSearchFromJSON(json: any): ApprenantDoublonSearch {\n return ApprenantDoublonSearchFromJSONTyped(json, false);\n}\n\nexport function ApprenantDoublonSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantDoublonSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ApprenantDoublonSearchToJSON(value?: ApprenantDoublonSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n 'prenom': value.prenom,\n 'registreNational': value.registreNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'codePaysNaissance': value.codePaysNaissance,\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'idpersonne': value.idpersonne,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseMatiereDto\n */\nexport interface FcbClasseMatiereDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n idclasseMatiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n idclasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereDto\n */\n idmatiere?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n idreferentiel?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n idformateurLocalisationContrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n idlocal?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n section?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n nbheures?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n travail?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n pcReussite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n examen?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseMatiereDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseMatiereDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n categorie?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n idprojetFinancement?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereDto\n */\n isfinancementReferentiel?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n reelHours?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n agrementHoursS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n agrementHoursS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n niveau?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereDto\n */\n uaa?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereDto\n */\n isVisibleBulletin?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereDto\n */\n sommative?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereDto\n */\n idmatiereParent?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereDto\n */\n isCut?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbClasseMatiereDto interface.\n */\nexport function instanceOfFcbClasseMatiereDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseMatiereDtoFromJSON(json: any): FcbClasseMatiereDto {\n return FcbClasseMatiereDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseMatiereDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseMatiereDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idmatiere': !exists(json, 'idmatiere') ? undefined : json['idmatiere'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n 'idlocal': !exists(json, 'idlocal') ? undefined : json['idlocal'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'section': !exists(json, 'section') ? undefined : json['section'],\n 'nbheures': !exists(json, 'nbheures') ? undefined : json['nbheures'],\n 'travail': !exists(json, 'travail') ? undefined : json['travail'],\n 'pcReussite': !exists(json, 'pcReussite') ? undefined : json['pcReussite'],\n 'examen': !exists(json, 'examen') ? undefined : json['examen'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'categorie': !exists(json, 'categorie') ? undefined : json['categorie'],\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'isfinancementReferentiel': !exists(json, 'isfinancementReferentiel') ? undefined : json['isfinancementReferentiel'],\n 'reelHours': !exists(json, 'reelHours') ? undefined : json['reelHours'],\n 'agrementHoursS1': !exists(json, 'agrementHoursS1') ? undefined : json['agrementHoursS1'],\n 'agrementHoursS2': !exists(json, 'agrementHoursS2') ? undefined : json['agrementHoursS2'],\n 'niveau': !exists(json, 'niveau') ? undefined : json['niveau'],\n 'uaa': !exists(json, 'uaa') ? undefined : json['uaa'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'sommative': !exists(json, 'sommative') ? undefined : json['sommative'],\n 'idmatiereParent': !exists(json, 'idmatiereParent') ? undefined : json['idmatiereParent'],\n 'isCut': !exists(json, 'isCut') ? undefined : json['isCut'],\n };\n}\n\nexport function FcbClasseMatiereDtoToJSON(value?: FcbClasseMatiereDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasseMatiere': value.idclasseMatiere,\n 'idclasse': value.idclasse,\n 'idmatiere': value.idmatiere,\n 'idreferentiel': value.idreferentiel,\n 'idformateur': value.idformateur,\n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n 'idlocal': value.idlocal,\n 'code': value.code,\n 'description': value.description,\n 'section': value.section,\n 'nbheures': value.nbheures,\n 'travail': value.travail,\n 'pcReussite': value.pcReussite,\n 'examen': value.examen,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'categorie': value.categorie,\n 'idprojetFinancement': value.idprojetFinancement,\n 'isfinancementReferentiel': value.isfinancementReferentiel,\n 'reelHours': value.reelHours,\n 'agrementHoursS1': value.agrementHoursS1,\n 'agrementHoursS2': value.agrementHoursS2,\n 'niveau': value.niveau,\n 'uaa': value.uaa,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'sommative': value.sommative,\n 'idmatiereParent': value.idmatiereParent,\n 'isCut': value.isCut,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n DemandeApprenantSearch,\n FcbDemandeApprenantDto,\n FcbDemandeApprenantGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n} from '../models/index';\nimport {\n DemandeApprenantSearchFromJSON,\n DemandeApprenantSearchToJSON,\n FcbDemandeApprenantDtoFromJSON,\n FcbDemandeApprenantDtoToJSON,\n FcbDemandeApprenantGridDtoPaginatedResultsFromJSON,\n FcbDemandeApprenantGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n} from '../models/index';\n\nexport interface DemandeApprenantBaseSearchRequest {\n DemandeApprenantSearch?: DemandeApprenantSearch;\n}\n\nexport interface DemandeApprenantDeleteRequest {\n id?: number;\n}\n\nexport interface DemandeApprenantGetRequest {\n id?: number;\n}\n\nexport interface DemandeApprenantGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface DemandeApprenantGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface DemandeApprenantSaveRequest {\n FcbDemandeApprenantDto?: FcbDemandeApprenantDto;\n}\n\n/**\n * \n */\nexport class DemandeApprenantApi extends runtime.BaseAPI {\n\n /**\n */\n async demandeApprenantBaseSearchRaw(requestParameters: DemandeApprenantBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DemandeApprenant/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: DemandeApprenantSearchToJSON(requestParameters.DemandeApprenantSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDemandeApprenantGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async demandeApprenantBaseSearch(requestParameters: DemandeApprenantBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.demandeApprenantBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async demandeApprenantDeleteRaw(requestParameters: DemandeApprenantDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DemandeApprenant`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async demandeApprenantDelete(requestParameters: DemandeApprenantDeleteRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.demandeApprenantDeleteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async demandeApprenantGetRaw(requestParameters: DemandeApprenantGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DemandeApprenant`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDemandeApprenantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async demandeApprenantGet(requestParameters: DemandeApprenantGetRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.demandeApprenantGetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async demandeApprenantGetSearchCriteriasRaw(requestParameters: DemandeApprenantGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DemandeApprenant/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async demandeApprenantGetSearchCriterias(requestParameters: DemandeApprenantGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.demandeApprenantGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async demandeApprenantGetSelectItemsRaw(requestParameters: DemandeApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling demandeApprenantGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DemandeApprenant/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async demandeApprenantGetSelectItems(requestParameters: DemandeApprenantGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.demandeApprenantGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async demandeApprenantSaveRaw(requestParameters: DemandeApprenantSaveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/DemandeApprenant`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbDemandeApprenantDtoToJSON(requestParameters.FcbDemandeApprenantDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbDemandeApprenantDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async demandeApprenantSave(requestParameters: DemandeApprenantSaveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.demandeApprenantSaveRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n FcbVisiteFormateurDto,\n FcbVisiteFormateurGridDtoPaginatedResults,\n FilterCriteriaInfo,\n SelectItem,\n VisiteFormateurSearch,\n} from '../models/index';\nimport {\n FcbVisiteFormateurDtoFromJSON,\n FcbVisiteFormateurDtoToJSON,\n FcbVisiteFormateurGridDtoPaginatedResultsFromJSON,\n FcbVisiteFormateurGridDtoPaginatedResultsToJSON,\n FilterCriteriaInfoFromJSON,\n FilterCriteriaInfoToJSON,\n SelectItemFromJSON,\n SelectItemToJSON,\n VisiteFormateurSearchFromJSON,\n VisiteFormateurSearchToJSON,\n} from '../models/index';\n\nexport interface VisiteFormateurBaseSearchRequest {\n VisiteFormateurSearch?: VisiteFormateurSearch;\n}\n\nexport interface VisiteFormateurGetSearchCriteriasRequest {\n includeListsValues?: boolean;\n}\n\nexport interface VisiteFormateurGetSelectItemsRequest {\n searchField: string;\n}\n\nexport interface VisiteFormateurGetVisiteFormateurRequest {\n idVisite?: number;\n}\n\nexport interface VisiteFormateurSaveFormateursLiesRequest {\n FcbVisiteFormateurDto?: FcbVisiteFormateurDto;\n}\n\n/**\n * \n */\nexport class VisiteFormateurApi extends runtime.BaseAPI {\n\n /**\n */\n async visiteFormateurBaseSearchRaw(requestParameters: VisiteFormateurBaseSearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteFormateur/search`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: VisiteFormateurSearchToJSON(requestParameters.VisiteFormateurSearch),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbVisiteFormateurGridDtoPaginatedResultsFromJSON(jsonValue));\n }\n\n /**\n */\n async visiteFormateurBaseSearch(requestParameters: VisiteFormateurBaseSearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteFormateurBaseSearchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteFormateurGetSearchCriteriasRaw(requestParameters: VisiteFormateurGetSearchCriteriasRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n const queryParameters: any = {};\n\n if (requestParameters.includeListsValues !== undefined) {\n queryParameters['includeListsValues'] = requestParameters.includeListsValues;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteFormateur/criterias`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FilterCriteriaInfoFromJSON));\n }\n\n /**\n */\n async visiteFormateurGetSearchCriterias(requestParameters: VisiteFormateurGetSearchCriteriasRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.visiteFormateurGetSearchCriteriasRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteFormateurGetSelectItemsRaw(requestParameters: VisiteFormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> {\n if (requestParameters.searchField === null || requestParameters.searchField === undefined) {\n throw new runtime.RequiredError('searchField','Required parameter requestParameters.searchField was null or undefined when calling visiteFormateurGetSelectItems.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteFormateur/criteriaList/{searchField}`.replace(`{${\"searchField\"}}`, encodeURIComponent(String(requestParameters.searchField))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SelectItemFromJSON));\n }\n\n /**\n */\n async visiteFormateurGetSelectItems(requestParameters: VisiteFormateurGetSelectItemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const response = await this.visiteFormateurGetSelectItemsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteFormateurGetVisiteFormateurRaw(requestParameters: VisiteFormateurGetVisiteFormateurRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.idVisite !== undefined) {\n queryParameters['idVisite'] = requestParameters.idVisite;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteFormateur`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbVisiteFormateurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async visiteFormateurGetVisiteFormateur(requestParameters: VisiteFormateurGetVisiteFormateurRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteFormateurGetVisiteFormateurRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async visiteFormateurSaveFormateursLiesRaw(requestParameters: VisiteFormateurSaveFormateursLiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json-patch+json';\n\n if (this.configuration && this.configuration.accessToken) {\n // oauth required\n headerParameters[\"Authorization\"] = await this.configuration.accessToken(\"oauth2\", [\"api://9692bd2b-c5bb-44ee-bb80-ed39776806fb/ReadAccess\"]);\n }\n\n const response = await this.request({\n path: `/api/VisiteFormateur/save`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: FcbVisiteFormateurDtoToJSON(requestParameters.FcbVisiteFormateurDto),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FcbVisiteFormateurDtoFromJSON(jsonValue));\n }\n\n /**\n */\n async visiteFormateurSaveFormateursLies(requestParameters: VisiteFormateurSaveFormateursLiesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise {\n const response = await this.visiteFormateurSaveFormateursLiesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","import * as React from \"react\";\nimport { IButtonProps } from \"@blueprintjs/core\";\nimport { ETLCodes } from \"../locales\";\nimport { useTl } from \"../hooks\";\n\nexport type DialogResult = \"yes\" | \"no\" | \"ok\" | \"cancel\";\nexport type DialogResultButtonType = Omit & { resultType: DialogResult };\ntype ConfirmDialogData = {\n title?: string;\n buttons?: Array;\n message: string;\n onDialogClosed?: (result: DialogResult) => void;\n onConfirmed?: () => void;\n};\n\nexport type ConfirmDialogDataPromise = Omit;\n\ninterface IDialogContext {\n showDialog: (data: ConfirmDialogData) => void;\n showDialogPromise: (data: ConfirmDialogDataPromise) => Promise;\n hideDialog: (result: DialogResult) => void;\n dialogData: Omit;\n}\n\nconst DialogContext = React.createContext(null);\n\nconst DialogProvider: React.FunctionComponent = ({ children }) => {\n const { t } = useTl();\n const [dialogData, setDialogData] = React.useState(null);\n\n const showDialog = React.useCallback(\n (data: ConfirmDialogData) => {\n setDialogData({\n title: t(ETLCodes.DemandeConfirmation),\n ...data\n });\n },\n [t]\n );\n\n const showDialogPromise = React.useCallback(\n (data: ConfirmDialogData) => {\n let res;\n const promise = new Promise(resolve => {\n res = resolve;\n });\n const { ...other } = data;\n\n showDialog({\n title: t(ETLCodes.DemandeConfirmation),\n ...other,\n onDialogClosed: (result: DialogResult) => {\n res(result);\n }\n });\n return promise;\n },\n [showDialog, t]\n );\n\n const hideDialog = React.useCallback(\n (result: DialogResult) => {\n const { onDialogClosed, onConfirmed } = dialogData;\n setDialogData(null);\n if (onDialogClosed) onDialogClosed(result);\n if ((result === \"ok\" || result === \"yes\") && onConfirmed) {\n onConfirmed();\n }\n },\n [dialogData]\n );\n\n return (\n \n {children}\n \n );\n};\n\nconst useDialog = () => React.useContext(DialogContext);\n\nexport { DialogProvider, useDialog };\n","import * as signalR from \"@microsoft/signalr\";\nimport { showInfo } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation } from \"react-router\";\n\nimport { useGlobalData } from \".\";\nimport { CarteIdentiteApi, ETypeCarteIdentiteUser } from \"../api\";\nimport { ERoutes } from \"../AppRouter\";\nimport { useApiService, useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\nimport { useAuth } from \"./AuthContext\";\n\ninterface IBeIdCardContext {\n card?: CardData;\n connected: boolean;\n foundRowsData: {\n nationalNb: string;\n nom: string;\n prenom: string;\n dateNaissance: string;\n };\n singleFoundUser: { id: number; idpersonne: number; type: ETypeCarteIdentiteUser };\n loading: boolean;\n clearCardData: () => void;\n newVersionAvailable: boolean;\n}\n\nconst BeIdCardContext = React.createContext(null);\n\ninterface IBeIdCardProviderProps {}\n\nexport type CardData = {\n firstName: string;\n surname: string;\n firstNames: string;\n nationalNumber: string;\n nationality: string;\n dateOfBirth: string;\n dateOfBirthParsed: string;\n gender: string;\n addressStreetAndNumber: string;\n addressZip: string;\n addressMunicipality: string;\n photoB64: string;\n locationAndBirthDate: string;\n fullName: string;\n cardNumber: string;\n beginValidityDate: string;\n endValidityDate: string;\n validityDates: string;\n locationOfBirth: string;\n};\n\n// const beidToast = Toaster.create({ position: Position.TOP_RIGHT });\n\nconst connection = new signalR.HubConnectionBuilder()\n .withUrl(\"http://localhost:20050/carddata\")\n .withAutomaticReconnect()\n .build();\n\nexport const BeIdCardProvider: React.FunctionComponent = ({ children }) => {\n const { t } = useTl();\n const [cardData, setCardData] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [connected, setConnected] = React.useState(false);\n const [foundRowsData, setFoundRowsData] = React.useState<{\n nationalNb: string;\n nom: string;\n prenom: string;\n dateNaissance: string;\n }>(null);\n const [singleFoundUser, setSingleFoundUser] = React.useState<{\n id: number;\n idpersonne: number;\n type: ETypeCarteIdentiteUser;\n }>(null);\n const carteIdentiteApi = useApiService(CarteIdentiteApi);\n const history = useHistory();\n const location = useLocation();\n const { pathname } = location;\n const { user } = useAuth();\n const { beIDVersion } = useGlobalData();\n\n const clearCardData = React.useCallback(() => {\n setCardData(null);\n setSingleFoundUser(null);\n setFoundRowsData(null);\n }, []);\n\n const isPageNotRedirectable = React.useMemo(() => {\n return (\n pathname.startsWith(ERoutes.apprenant + \"/\") ||\n pathname.startsWith(ERoutes.representant + \"/\") ||\n pathname.startsWith(ERoutes.formateur + \"/\") ||\n pathname.startsWith(ERoutes.tuteur + \"/\") ||\n pathname.startsWith(ERoutes.chefEntreprise + \"/\")\n );\n }, [pathname]);\n\n const onNewCard = React.useCallback(\n async (data: CardData) => {\n if (!pathname.startsWith(\"/export\") && !pathname.startsWith(\"/report\") && user) {\n if (!data) {\n setCardData(null);\n return;\n }\n const fixedDateOfBirth = data.dateOfBirthParsed.endsWith(\"Z\")\n ? data.dateOfBirthParsed\n : `${data.dateOfBirthParsed}Z`;\n setCardData({ ...data, dateOfBirthParsed: fixedDateOfBirth });\n showInfo(t(ETLCodes.RechercheUtilisateurEnCours));\n try {\n setLoading(true);\n const result = await carteIdentiteApi.carteIdentiteCheckExisting({\n nationalNb: data.nationalNumber,\n nom: data.surname,\n prenom: data.firstName,\n dateNaissance: new Date(fixedDateOfBirth)\n });\n if (result.existingIds && result.existingIds.length > 0) {\n setFoundRowsData({\n nationalNb: data.nationalNumber,\n nom: data.surname,\n prenom: data.firstName,\n dateNaissance: fixedDateOfBirth\n });\n let ficheRoute = null;\n switch (result.typeUser) {\n case ETypeCarteIdentiteUser.Apprenant:\n ficheRoute = { route: ERoutes.apprenant, tab: \"signaletique\" };\n break;\n case ETypeCarteIdentiteUser.Representant:\n ficheRoute = { route: ERoutes.representant, tab: \"detail\" };\n break;\n case ETypeCarteIdentiteUser.Formateur:\n ficheRoute = { route: ERoutes.formateur, tab: \"signaletique\" };\n break;\n case ETypeCarteIdentiteUser.Tuteur:\n ficheRoute = { route: ERoutes.tuteur, tab: \"detail\" };\n break;\n case ETypeCarteIdentiteUser.ChefEntreprise:\n ficheRoute = { route: ERoutes.chefEntreprise, tab: \"detail\" };\n break;\n }\n const isSocieteExterneAdd = pathname.startsWith(ERoutes.apprenant) && pathname.endsWith(\"/societeExterne\");\n if (result.existingIds.length === 1) {\n setSingleFoundUser({\n id: result.existingIds[0],\n idpersonne: result.existingPersonneIds[0],\n type: result.typeUser\n });\n if (!isSocieteExterneAdd) {\n if (!isPageNotRedirectable) {\n history.push(`${ficheRoute.route}/${result.existingIds[0]}/${ficheRoute.tab}/edit`);\n }\n }\n } else {\n if (!isPageNotRedirectable) {\n history.push(`${ficheRoute.route}/0/${ficheRoute.tab}/checkDoublons`);\n }\n }\n } else {\n setSingleFoundUser(null);\n setFoundRowsData(null);\n showInfo(t(ETLCodes.AucuneUtilisateurTrouvé));\n }\n } catch (error) {\n console.error(\"An error has occured while checking card user existance:\", error);\n } finally {\n setLoading(false);\n }\n }\n },\n [carteIdentiteApi, history, isPageNotRedirectable, pathname, t, user]\n );\n\n React.useEffect(() => {\n connection.onreconnected(() => setConnected(true));\n connection.onreconnecting(() => setConnected(false));\n connection\n .start()\n .then(() => setConnected(true))\n .catch(error => console.error(error));\n }, []);\n\n React.useEffect(() => {\n connection.on(\"NewCardData\", onNewCard);\n return () => {\n connection.off(\"NewCardData\");\n };\n }, [onNewCard]);\n\n const fetchInstalledVersion = React.useCallback(async () => {\n try {\n const response = await window.fetch(\"http://localhost:20050/api/system/\");\n return response.status === 200 ? (await response.json())?.applicationVersion?.substr(0, 5) : null;\n } catch (e) {\n console.error(e);\n return null;\n }\n }, []);\n const { data: installedVersion } = useQuery(\"beid-version\", fetchInstalledVersion, { cacheTime: 0 });\n\n const newVersionAvailable = React.useMemo(() => {\n if (!installedVersion || !beIDVersion) return false;\n return (\n +beIDVersion.split(\".\")[0] > +installedVersion.split(\".\")[0] ||\n (+beIDVersion.split(\".\")[0] === +installedVersion.split(\".\")[0] &&\n +beIDVersion.split(\".\")[1] > +installedVersion.split(\".\")[1]) ||\n (+beIDVersion.split(\".\")[0] === +installedVersion.split(\".\")[0] &&\n +beIDVersion.split(\".\")[1] === +installedVersion.split(\".\")[1] &&\n +beIDVersion.split(\".\")[2] > +installedVersion.split(\".\")[2])\n );\n }, [beIDVersion, installedVersion]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useBeIdCardContext = () => React.useContext(BeIdCardContext);\n","import * as React from \"react\";\nimport produce from \"immer\";\n\nexport type EventTypes =\n | \"CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED\"\n | \"CLASSE_HORAIRE_SAVED\"\n | \"CLASSE_HORAIRE_ACTIONS\"\n | \"CLASSE_SAVED\"\n | \"CLASSE_HORAIRE_REMARQUE_SAVED\"\n | \"CLASSE_HORAIRE_EDIT\"\n | \"SEARCH_TABLE_REFRESH\"\n | \"CLASSE_COHERENCE_REFRESH\"\n | \"DELIBERATION_ANNEE_CHANGED\"\n | \"DELIBERATION_APPRENANT_CHANGED\"\n | \"DELIBERATION_SAVED\"\n | \"DELIBERATION_REFRESH\"\n | \"REFERENTIAL_REFRESH\"\n | \"REFRESH_NB_TABS\"\n | \"DASHBOARD_COUNTS_REFRESH_Inscriptions\"\n | \"DASHBOARD_COUNTS_REFRESH_Suivis\"\n | \"DASHBOARD_COUNTS_REFRESH_SuivisSL\"\n | \"DASHBOARD_COUNTS_REFRESH_Absence\"\n | \"DASHBOARD_COUNTS_REFRESH_Dossiers\"\n | \"DASHBOARD_COUNTS_REFRESH_PratiquePro\"\n | \"REFRESH_APPRENANT_SORTIR\"\n | \"RESET_DROPZONE_FILES\";\ninterface IEventsContext {\n dispatchEvent: (event: EventTypes, data?: any) => void;\n subscribeToEvent: (event: EventTypes, callback: CallBackType) => void;\n unsubscribeEvent: (event: EventTypes, callback: CallBackType) => void;\n}\nconst EventsContext = React.createContext(null);\n\ninterface IEventsProviderProps {}\n\ntype CallBackType = (data: any) => void;\n\nexport const EventsProvider: React.FunctionComponent = ({ children }) => {\n const [events, setEvents] = React.useState<{ [event: string]: Array }>({});\n const dispatchEvent = React.useCallback(\n (event: EventTypes, data?: any) => {\n if (!events[event]) return;\n for (let e of events[event]) {\n e(data);\n }\n },\n [events]\n );\n\n const subscribeToEvent = React.useCallback((event: EventTypes, callback: CallBackType) => {\n setEvents(prev =>\n produce(prev, draft => {\n if (!draft[event]) {\n draft[event] = [];\n }\n draft[event].push(callback);\n })\n );\n }, []);\n\n const unsubscribeEvent = React.useCallback((event: EventTypes, callback: CallBackType) => {\n setEvents(prev =>\n produce(prev, draft => {\n if (draft[event]) {\n draft[event] = draft[event].filter(cb => cb !== callback);\n }\n })\n );\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useEventsContext = () => React.useContext(EventsContext);\n\n// export const useEventSubscribe = (event: string, callback: (data: any) => void) => {\n// const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n\n// React.useEffect(() => {\n// subscribeToEvent(event, callback);\n// return () => unsubscribeEvent(event, callback);\n// }, []);\n// };\n","import { Breadcrumbs, IBreadcrumbsProps } from \"@blueprintjs/core\";\nimport * as React from \"react\";\n\nimport { useTheme } from \"../hooks\";\n\ninterface IAppBreadcrumbProps extends Pick {}\n\nexport const AppBreadcrumb: React.FunctionComponent = ({ items }) => {\n const { theme } = useTheme();\n\n React.useEffect(() => {\n if (items) {\n document.title =\n items\n .filter(i => !!i.text && typeof i.text === \"string\")\n .map(i => i.text)\n .join(\" > \") +\n \" - \" +\n theme.headerName;\n } else {\n document.title = theme.headerName;\n }\n }, [items, theme.headerName]);\n\n return ;\n};\n","import * as React from \"react\";\nimport { Col, Grid, Row } from \"react-flexbox-grid\";\nimport styled from \"styled-components\";\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales\";\nimport moment from \"moment\";\nimport assets from \"../../assets\";\n\ninterface ICardAttributeProps {\n label: string;\n value: string;\n}\n\nexport interface IToolTipContentProps {\n isLight: boolean;\n firstName: string;\n lastName: string;\n birthDate?: Date;\n sex?: string;\n nationality?: string;\n photo?: string;\n interne?: string;\n}\n\nconst LabelAttrt = styled.div`\n font-weight: bold;\n font-style: italic;\n font-size: 0.8em;\n color: white;\n`;\nconst ValueAttr = styled.div`\n color: white;\n word-wrap: break-word;\n max-width: 70%;\n`;\n\nconst CardAttributeContainer = styled.div`\n min-width: 160px;\n margin-bottom: 0.2em;\n color: black;\n`;\n\nconst PhotoImage = styled.img`\n object-fit: fill;\n width: 100px;\n border-radius: 10px;\n border: 1px solid lightgray;\n max-width: 120px;\n max-height: 160px;\n`;\n\nconst CardAttribute: React.FC = ({ label, value }) => {\n return (\n \n {label}\n {value}\n \n );\n};\n\nexport const ToolTipContent: React.FunctionComponent = ({\n firstName,\n lastName,\n birthDate,\n sex,\n nationality,\n photo,\n interne,\n isLight\n}) => {\n const { t } = useTl();\n return isLight ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n {photo ? : }\n \n \n \n );\n};\n","export function colName(n: number) {\n var ordA = \"A\".charCodeAt(0);\n var ordZ = \"Z\".charCodeAt(0);\n var len = ordZ - ordA + 1;\n\n var s = \"\";\n while (n >= 0) {\n s = String.fromCharCode((n % len) + ordA) + s;\n n = Math.floor(n / len) - 1;\n }\n return s;\n}\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { format, startOfDay } from \"date-fns\";\nimport { FGListen } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { ParcoursFormationApi, ParcoursFormationEditDto, ParcoursFormationEditDtoFromJSON } from \"../../api\";\nimport { useApiService, useTl } from \"../../hooks\";\nimport { useReferential } from \"../../hooks/useReferential\";\nimport { ETLCodes } from \"../../locales\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput } from \"../formGenerator\";\nimport { SmallFormGenerator } from \"../SmallFormGenerator\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n\n & .${Classes.RADIO} {\n align-self: center;\n min-width: 125px;\n }\n`;\n\nexport interface IAddParcoursFormationDialogProps {\n idApprenant: number;\n idCategorieStatut?: number;\n idStatut?: number;\n dateEntree?: Date;\n minDateEntree?: Date;\n isDialogOpen: boolean;\n onClose: (refresh: boolean) => void;\n title: string;\n iddureeInoccupation?: number;\n}\n\nexport const AddParcoursFormationDialog: React.FunctionComponent = ({\n idApprenant,\n isDialogOpen,\n onClose = (refresh: boolean) => {},\n idCategorieStatut,\n idStatut,\n dateEntree,\n title,\n minDateEntree,\n iddureeInoccupation\n}) => {\n const { t } = useTl();\n const api = useApiService(ParcoursFormationApi);\n const [idCatStatutSocial, setIdCatStatutSocial] = React.useState(idCategorieStatut);\n const [saving, setSaving] = React.useState(false);\n\n const [categoriesStatutSocial, cssLoading, , rawCatStatutSocial] = useReferential(a =>\n a.referentialGetCategoriesStatutSocial()\n );\n const [idstatutSocial, setIdstatutSocial] = React.useState(0);\n const [statutsSocial, ssLoading] = useReferential(\n a =>\n a.referentialGetSousStatutsByCategorie({ idCategorie: idCatStatutSocial, currentIdstatutSocial: idstatutSocial }),\n true,\n [idCatStatutSocial]\n );\n\n const saveItem = React.useCallback(\n async (d: ParcoursFormationEditDto) => {\n setSaving(true);\n await api.parcoursFormationSaveParcoursFormation({ ParcoursFormationEditDto: d });\n setSaving(false);\n\n onClose(true);\n },\n [api, onClose]\n );\n\n const data = React.useMemo(() => {\n return ParcoursFormationEditDtoFromJSON({\n idApprenant,\n idCategorieStatut,\n idStatut,\n dateEntree: dateEntree ?? new Date(),\n iddureeInoccupation\n });\n }, [dateEntree, idApprenant, idCategorieStatut, idStatut, iddureeInoccupation]);\n\n const FormSchema = React.useMemo(() => {\n let schema = {\n idCategorieStatut: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idStatut: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateEntree: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required)),\n iddureeInoccupation: Yup.number()\n .nullable()\n .when([\"idCategorieStatut\"], {\n is: idCategorieStatut =>\n !!rawCatStatutSocial &&\n +(rawCatStatutSocial.find(c => c.keyValue === \"DEM\")?.idValue ?? 0) === +idCategorieStatut,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n };\n if (!!minDateEntree)\n schema = {\n ...schema,\n dateEntree: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required))\n .min(startOfDay(minDateEntree), t(ETLCodes.DateCannotBeBefore, { date: format(minDateEntree, \"dd-MM-yyyy\") }))\n };\n\n return Yup.object().shape(schema);\n }, [minDateEntree, rawCatStatutSocial, t]);\n const [dureeInoccupations, diLoading] = useReferential(a => a.referentialGetDureeInoccupation(), true, []);\n\n const showDureeInoccupation = React.useMemo(\n () =>\n !!rawCatStatutSocial &&\n +(rawCatStatutSocial.find(c => c.keyValue === \"DEM\")?.idValue ?? 0) === +idCatStatutSocial,\n [idCatStatutSocial, rawCatStatutSocial]\n );\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n forceEnableSave\n watchChanges={{\n idStatut: setIdstatutSocial\n }}\n enableDirtyCheck={false}\n >\n {\n setIdCatStatutSocial(value);\n }}\n />\n \n \n {showDureeInoccupation && (\n \n )}\n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { EOrigineDossier, StatutApprenantApi, StatutApprenantEditDto, StatutApprenantEditDtoFromJSON } from \"../../api\";\nimport { useApiService, useTheme, useTl } from \"../../hooks\";\nimport { useReferential } from \"../../hooks/useReferential\";\nimport { ETLCodes } from \"../../locales\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput } from \"../formGenerator\";\nimport { SmallFormGenerator } from \"../SmallFormGenerator\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ISortieReseauDialogProps {\n idApprenant: number;\n dateStatut: Date;\n idCategorieStatut?: number;\n idParcoursFormation?: number;\n idStatut?: number;\n iddureeInoccupation?: number;\n isDialogOpen: boolean;\n onClose: () => void;\n}\n\nexport const SortieReseauDialog: React.FunctionComponent = ({\n idApprenant,\n dateStatut,\n isDialogOpen,\n onClose,\n idCategorieStatut,\n idParcoursFormation,\n idStatut,\n iddureeInoccupation\n}) => {\n const { t } = useTl();\n const { ifapmeSide } = useTheme();\n const api = useApiService(StatutApprenantApi);\n const [idCatStatutSocial, setIdCatStatutSocial] = React.useState(idCategorieStatut);\n const [saving, setSaving] = React.useState(false);\n\n const [categoriesStatutSocial, cssLoading, , rawCatStatutSocial] = useReferential(a =>\n a.referentialGetCategoriesStatutSocial()\n );\n const [statutsSocial, ssLoading] = useReferential(\n a => a.referentialGetSousStatutsByCategorie({ idCategorie: idCatStatutSocial, currentIdstatutSocial: 0 }),\n true,\n [idCatStatutSocial]\n );\n const [idtypeSortie, setIdtypeSortie] = React.useState(0);\n const [typesSortie, tLoading] = useReferential(a => a.referentialGetTypesSortie({ currentId: idtypeSortie }));\n const [motifsSortie, msLoading] = useReferential(a => a.referentialGetMotifsSortie({ idtypeSortie }), true, [\n idtypeSortie\n ]);\n\n const saveItem = React.useCallback(\n async (d: StatutApprenantEditDto) => {\n setSaving(true);\n await api.statutApprenantSaveStatutApprenant({ StatutApprenantEditDto: d });\n setSaving(false);\n\n onClose();\n },\n [api, onClose]\n );\n\n const data = React.useMemo(\n () =>\n StatutApprenantEditDtoFromJSON({\n idApprenant,\n dateStatut: dateStatut ?? new Date(),\n idCategorieStatut,\n idStatut,\n idParcoursFormation,\n origineSortie: ifapmeSide === \"hope\" ? EOrigineDossier.Hope : EOrigineDossier.Walter,\n iddureeInoccupation\n }),\n [dateStatut, idApprenant, idCategorieStatut, idParcoursFormation, idStatut, iddureeInoccupation, ifapmeSide]\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idCategorieStatut: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idStatut: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idtypeSortie: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idMotifSortie: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateStatut: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required))\n .min(\n data?.dateStatut,\n t(ETLCodes.DateCannotBePastOf, { minDate: data?.dateStatut && format(data?.dateStatut, \"dd/MM/yyyy\") })\n )\n }),\n [data?.dateStatut, t]\n );\n\n const [dureeInoccupations, diLoading] = useReferential(a => a.referentialGetDureeInoccupation(), true, []);\n\n const showDureeInoccupation = React.useMemo(\n () =>\n !!rawCatStatutSocial &&\n +(rawCatStatutSocial.find(c => c.keyValue === \"DEM\")?.idValue ?? 0) === +idCatStatutSocial,\n [idCatStatutSocial, rawCatStatutSocial]\n );\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n saving={saving}\n watchChanges={{\n idCategorieStatut: setIdCatStatutSocial,\n idtypeSortie: setIdtypeSortie\n }}\n >\n \n \n {showDureeInoccupation && (\n \n )}\n \n \n \n \n
\n
\n );\n};\n","import {\n Button,\n Checkbox,\n Colors,\n Icon,\n Intent,\n Menu,\n MenuItem,\n NonIdealState,\n Popover,\n Spinner,\n Tooltip\n} from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { faPeopleArrows } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { useSessionStorageState } from \"ahooks\";\nimport { IDataTableColumn, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { AriReassignmentDialog, CopReassignmentDialog, PriReassignmentDialog, DownloadAvisValidesDialog } from \"..\";\nimport {\n ApprenantApi,\n ApprenantHopeSearch,\n ApprenantSearch,\n EHopeApprenantSearchType,\n EListSearchType,\n ETextSearchType,\n ETypeDestinataireSms,\n FcbRechercheApprenantViewDto,\n RapportHopeApi\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n AddButton,\n ApprenantTooltip,\n CircleColumn,\n ColumnMask,\n CustomBulletList,\n EditButton,\n EmailButton,\n SearchTablePage,\n SmsButton,\n ViewButton\n} from \"../../../../components\";\nimport { useAuth, useGlobalData, useRouteParamsContext } from \"../../../../contexts\";\nimport { useTabMessage, useTheme, useTl } from \"../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { computeContratStatutColor } from \"../../../../utils/contratStatutColor\";\nimport { Guid } from \"../../../../utils/guid\";\n\ninterface IApprenantListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport const ApprenantListPage: React.FunctionComponent = () => {\n const { t, tUnsafe } = useTl();\n const history = useHistory();\n const apiFactory = useAbortableApiServiceFactory(ApprenantApi);\n const lastAbortController = React.useRef();\n const { currentAnneeScolaire } = useGlobalData();\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const { pushSmsRecipientIds, pushSmsRecipientType, pushSelectedApprenantIds } = useRouteParamsContext();\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n const { ifapmeSide, theme } = useTheme();\n const isHope = React.useMemo(() => ifapmeSide === \"hope\", [ifapmeSide]);\n const { user } = useAuth();\n const identifier = React.useMemo(() => Guid.newGuid(), []);\n const { openTabThenSendMessage } = useTabMessage(identifier);\n\n const lastSearchObject = React.useRef();\n const [searched, setSearched] = React.useState(false);\n\n const search = React.useCallback(\n (nextSearch?: ApprenantSearch | ApprenantHopeSearch) => {\n setSearched(true);\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject.current)) {\n lastSearchObject.current = nextSearch;\n }\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return isHope\n ? abortableApi.apprenantSearchHope({ ApprenantHopeSearch: nextSearch })\n : abortableApi.apprenantBaseSearch({ ApprenantSearch: nextSearch });\n },\n [apiFactory, isHope]\n );\n\n const api = useApiService(ApprenantApi);\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n (isHope\n ? api.apprenantSearchHopeApprenantIds({\n ApprenantHopeSearch: { ...lastSearchObject.current, forceSkip: 0, forceTake: 999999 }\n })\n : api.apprenantSearchApprenantIds({\n ApprenantSearch: { ...lastSearchObject.current, forceSkip: 0, forceTake: 999999 }\n })\n ).then(allIds => {\n if (allIds.length === selectedIDs.length) {\n setSelectedIDs([]);\n setNbReturnedIds(0);\n } else {\n setSelectedIDs(allIds);\n setNbReturnedIds(allIds.length);\n }\n setSelectAllLoading(false);\n });\n }, [api, isHope, selectedIDs.length]);\n\n const toggleSelection = React.useCallback(\n (item: FcbRechercheApprenantViewDto) => {\n if (!selectedIDs.includes(item.idapprenant)) {\n setSelectedIDs(ids => [...ids, item.idapprenant]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idapprenant));\n }\n },\n [selectedIDs]\n );\n\n const sendSms = React.useCallback(() => {\n if (selectedIDs.length > 0) {\n pushSmsRecipientIds(selectedIDs);\n pushSmsRecipientType(ETypeDestinataireSms.Etudiant);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [history, pushSmsRecipientIds, pushSmsRecipientType, selectedIDs, t]);\n\n const sendSmsSingle = React.useCallback(\n (id: number) => {\n pushSmsRecipientIds([id]);\n pushSmsRecipientType(ETypeDestinataireSms.Etudiant);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n },\n [history, pushSmsRecipientIds, pushSmsRecipientType]\n );\n\n const mailSent = React.useCallback(\n async (idApprenant: number) => {\n await api.apprenantMailSent({ IdApprenant: idApprenant });\n },\n [api]\n );\n\n const createSuivi = React.useCallback(\n (idapprenant: number, mode: \"walter\" | \"hope\") =>\n history.push(`${ERoutes.apprenant}/${idapprenant}/suiviApprenant/0/edit/${mode}`),\n [history]\n );\n const createMultipleSuivi = React.useCallback(() => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n pushSelectedApprenantIds(selectedIDs);\n history.push(`${ERoutes.suivi}/-1/multiple`);\n }, [history, pushSelectedApprenantIds, selectedIDs, t]);\n\n const walterColumns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\n ),\n render: (item: FcbRechercheApprenantViewDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheApprenantViewDto) => (\n \n history.push(`${ERoutes.apprenant}/${row.idapprenant}/signaletique/view`)}\n />\n history.push(`${ERoutes.apprenant}/${row.idapprenant}/signaletique/edit`)}\n />\n \n \n {}}\n disabled\n />\n {}}\n disabled\n />\n createSuivi(row.idapprenant, \"walter\")}\n />\n {\n const el = document.createElement(\"a\");\n el.setAttribute(\"href\", `mailto:${row.azureEmail}?bcc=${row.email}`);\n el.click();\n mailSent(row.idapprenant);\n }}\n />\n sendSmsSingle(row.idapprenant)}\n />\n {\n const el = document.createElement(\"a\");\n el.setAttribute(\"href\", `tel:${row.gsm.replace(/[^+\\d]/gm, \"\")}`);\n el.click();\n el.remove();\n mailSent(row.idapprenant);\n }}\n />\n \n \n }\n >\n \n \n \n )\n },\n {\n autoFitContent: true,\n alignment: \"center\",\n header: () => (\n \n {t(ETLCodes.C)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"statutContrat\",\n render: (row: FcbRechercheApprenantViewDto) => (\n \n )\n },\n {\n autoFitContent: true,\n alignment: \"center\",\n header: () => (\n \n {t(ETLCodes.I)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"statutInscriptions\",\n render: (row: FcbRechercheApprenantViewDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.Identifiant),\n computed: true,\n fieldName: \"info\",\n render: (value: FcbRechercheApprenantViewDto) => \n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.Gsm),\n fieldName: \"gsm\",\n autoFitContent: true,\n render: (value: FcbRechercheApprenantViewDto) => (\n sendSmsSingle(value.idapprenant)} disabled={!!value.dateDeces} />\n )\n },\n {\n header: () => t(ETLCodes.Tel),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.General_Email),\n fieldName: \"email\",\n autoFitContent: true,\n alignment: \"center\",\n render: (value: FcbRechercheApprenantViewDto) => (\n mailSent(value.idapprenant)}\n disabled={!!value.dateDeces}\n />\n )\n },\n {\n header: () => t(ETLCodes.NumeroNational),\n fieldName: \"registreNational\",\n render: (row: FcbRechercheApprenantViewDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.Inscription),\n autoFitContent: true,\n computed: true,\n fieldName: \"distinctsInscriptions\",\n render: (value: FcbRechercheApprenantViewDto) => {\n if (value.distinctsInscriptions?.length > 0) {\n return (\n \n {value.anneeScolaire}\n {value.distinctsInscriptions.length > 1 && (\n \n  \n \n {value.distinctsInscriptions.map((annee, i) => (\n
{annee}
\n ))}\n \n }\n position=\"right\"\n >\n
...
\n \n
\n )}\n
\n );\n } else {\n return
;\n }\n }\n }\n ],\n [\n createSuivi,\n history,\n mailSent,\n nbReturnedIds,\n selectAll,\n selectAllLoading,\n selectedIDs,\n sendSmsSingle,\n t,\n tUnsafe,\n theme,\n toggleSelection\n ]\n );\n\n const rapportApi = useApiService(RapportHopeApi);\n const fetchIdrapportFicheTutelle = React.useCallback(() => rapportApi.rapportHopeGetIdrapportFicheTutelle(), [\n rapportApi\n ]);\n const { data: idrapportFicheTutelle } = useQuery(\"idrapportFicheTutelle\", fetchIdrapportFicheTutelle);\n\n const hopeColumns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\n ),\n render: (item: FcbRechercheApprenantViewDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheApprenantViewDto) => (\n \n history.push(`${ERoutes.apprenant}/${row.idapprenant}/signaletique/view`)}\n />\n history.push(`${ERoutes.apprenant}/${row.idapprenant}/signaletique/edit`)}\n />\n \n \n \n openTabThenSendMessage(`/#${ERoutes.SSRSReports}/${idrapportFicheTutelle}`, [row.idapprenant])\n }\n disabled={!idrapportFicheTutelle}\n />\n createSuivi(row.idapprenant, \"hope\")}\n />\n {\n const el = document.createElement(\"a\");\n el.setAttribute(\"href\", `mailto:${row.azureEmail}?bcc=${row.email}`);\n el.click();\n mailSent(row.idapprenant);\n }}\n />\n sendSmsSingle(row.idapprenant)}\n />\n {\n const el = document.createElement(\"a\");\n el.setAttribute(\"href\", `tel:${row.gsm.replace(/[^+\\d]/gm, \"\")}`);\n el.click();\n el.remove();\n mailSent(row.idapprenant);\n }}\n />\n \n \n }\n >\n \n \n \n )\n },\n {\n disableSorting: true,\n autoFitContent: true,\n alignment: \"center\",\n header: () => (\n \n {t(ETLCodes.C)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"statutContrat\",\n render: (row: FcbRechercheApprenantViewDto) => (\n \n )\n },\n {\n disableSorting: true,\n autoFitContent: true,\n alignment: \"center\",\n header: () => (\n \n {t(ETLCodes.I)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"statutInscriptions\",\n render: (row: FcbRechercheApprenantViewDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.Identifiant),\n computed: true,\n fieldName: \"info\",\n render: (value: FcbRechercheApprenantViewDto) => \n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.NumeroNational),\n fieldName: \"registreNational\",\n render: (row: FcbRechercheApprenantViewDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.General_Email),\n fieldName: \"email\",\n autoFitContent: true,\n alignment: \"center\",\n render: (value: FcbRechercheApprenantViewDto) => (\n mailSent(value.idapprenant)}\n disabled={!!value.dateDeces}\n />\n )\n },\n {\n header: () => t(ETLCodes.Gsm),\n fieldName: \"gsm\",\n autoFitContent: true,\n render: (value: FcbRechercheApprenantViewDto) => (\n sendSmsSingle(value.idapprenant)} disabled={!!value.dateDeces} />\n )\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n computed: true,\n fieldName: \"dateNaissance\",\n render: (value: FcbRechercheApprenantViewDto) =>\n value?.isDeceased ? (\n <>\n {value?.dateNaissance?.toLocaleDateString()} \n \n ) : (\n value?.dateNaissance?.toLocaleDateString()\n )\n }\n ],\n [\n createSuivi,\n history,\n idrapportFicheTutelle,\n mailSent,\n nbReturnedIds,\n openTabThenSendMessage,\n selectAll,\n selectAllLoading,\n selectedIDs,\n sendSmsSingle,\n t,\n tUnsafe,\n theme,\n toggleSelection\n ]\n );\n\n const addItemFunction = React.useCallback(() => {\n if (user?.idsSocieteExterne?.length > 0) {\n history.push(`${ERoutes.apprenant}/0/signaletique/societeExterne`);\n } else {\n history.push(`${ERoutes.apprenant}/0/signaletique/checkDoublons`);\n }\n }, [history, user?.idsSocieteExterne?.length]);\n\n const getCriteria = React.useCallback(async () => {\n const criterias = await (isHope\n ? api.apprenantGetHopeSearchCriterias({ includeListsValues: true })\n : api.apprenantGetSearchCriterias({ includeListsValues: true }));\n criterias.forEach(c => {\n if (c.criteria === \"MesApprenants\") {\n c.listValues.forEach(v => (v.displayValue = tUnsafe(\"EHopeApprenantSearchType_\" + v.displayValue)));\n }\n if (c.criteria === \"StatutContrat\") {\n c.listValues.forEach(v => (v.displayValue = tUnsafe(\"StatutContrat_\" + v.displayValue)));\n }\n if (c.criteria === \"StatutInscription\") {\n c.listValues.forEach(v => (v.displayValue = tUnsafe(\"StatutInscription_\" + v.displayValue)));\n }\n });\n return criterias;\n }, [api, isHope, tUnsafe]);\n\n const hasDefaultCriteriaHope = React.useMemo(\n () =>\n [\"CALC\", \"RI\", \"ARI\", \"CALC\", \"Gestionnaire administratif\", \"Société externe\"].includes(user?.hopeMainLevelName),\n [user?.hopeMainLevelName]\n );\n\n const isSocieteExterne = React.useMemo(() => user?.hopeMainLevelName === \"Société externe\", [\n user?.hopeMainLevelName\n ]);\n\n const defaultCriteria = React.useMemo(\n () =>\n isHope\n ? hasDefaultCriteriaHope\n ? [\n {\n criteria: \"MesApprenants\",\n searchMode: EListSearchType.Equals,\n value: EHopeApprenantSearchType.CURRENT,\n mandatory: isSocieteExterne,\n readOnly: isSocieteExterne\n }\n ]\n : []\n : [\n {\n criteria: \"AnneeScolaireCriteria\",\n searchMode: ETextSearchType.Contains,\n value: currentAnneeScolaire?.idanneeScolaire\n }\n ],\n [currentAnneeScolaire?.idanneeScolaire, hasDefaultCriteriaHope, isHope, isSocieteExterne]\n );\n\n const sendEmail = React.useCallback(async () => {\n if (selectedIDs.length > 0) {\n const res = await api.apprenantGetEmails({ request_body: selectedIDs });\n if (!res) {\n showError(t(ETLCodes.NoSelectedApprenantHasAnEmail));\n return;\n }\n const el = document.createElement(\"a\");\n el.setAttribute(\"href\", `mailto:${res.azureEmails}?bcc=${res.emails}`);\n el.click();\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [api, selectedIDs, t]);\n\n const isCalcOrAdmin = React.useMemo(() => user?.hopeMainLevelName === \"CALC\" || user?.isAdmin, [\n user?.hopeMainLevelName,\n user?.isAdmin\n ]);\n\n const [copReassignmentDialogOpen, setCopReassignmentDialogOpen] = React.useState(false);\n const reassignCop = React.useCallback(() => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n setCopReassignmentDialogOpen(true);\n }, [selectedIDs.length, t]);\n\n const onCloseCopReassignment = React.useCallback(() => {\n setCopReassignmentDialogOpen(false);\n }, []);\n\n const [priReassignmentDialogOpen, setPriReassignmentDialogOpen] = React.useState(false);\n const reassignPri = React.useCallback(async () => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n const hasContratsActifs = await api.apprenantHasContratActif({ request_body: selectedIDs });\n if (hasContratsActifs.value) {\n showError(t(ETLCodes.ContratsActifsEnCoursApprenant));\n return;\n }\n\n setPriReassignmentDialogOpen(true);\n }, [api, selectedIDs, t]);\n\n const onClosePriReassignment = React.useCallback(() => {\n setPriReassignmentDialogOpen(false);\n }, []);\n\n const [ariReassignmentDialogOpen, setAriReassignmentDialogOpen] = React.useState(false);\n const reassignAri = React.useCallback(async () => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n const hasContratsActifs = await api.apprenantHasContratActif({ request_body: selectedIDs });\n if (hasContratsActifs.value) {\n showError(t(ETLCodes.ContratsActifsEnCoursApprenant));\n return;\n }\n\n setAriReassignmentDialogOpen(true);\n }, [api, selectedIDs, t]);\n\n const onCloseAriReassignment = React.useCallback(() => {\n setAriReassignmentDialogOpen(false);\n }, []);\n\n const [downloadAvisValidesDialogOpen, setDownloadAvisValidesDialogOpen] = React.useState<{ is2sess: boolean }>(null);\n const downloadAvisValides = React.useCallback(\n (is2sess: boolean) => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n setDownloadAvisValidesDialogOpen({ is2sess });\n },\n [selectedIDs.length, t]\n );\n\n const onDownloadAvisValidesDialogOpenClose = React.useCallback(() => {\n setDownloadAvisValidesDialogOpen(null);\n }, []);\n\n const buttons = React.useMemo(\n () => (\n <>\n \n \n {isHope && (\n <>\n {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n openTabThenSendMessage(`/#${ERoutes.SSRSReports}/${idrapportFicheTutelle}`, selectedIDs);\n }}\n />\n createMultipleSuivi()}\n />\n \n )}\n {isHope && isCalcOrAdmin && (\n <>\n }\n text={t(ETLCodes.ReassignerCOP)}\n intent={Intent.PRIMARY}\n onClick={() => reassignCop()}\n />\n }\n text={t(ETLCodes.ReassignerPRI)}\n intent={Intent.PRIMARY}\n onClick={() => reassignPri()}\n />\n }\n text={t(ETLCodes.ReassignerARI)}\n intent={Intent.PRIMARY}\n onClick={() => reassignAri()}\n />\n \n )}\n \n \n downloadAvisValides(false)}\n />\n downloadAvisValides(true)}\n />\n \n \n }\n >\n \n \n {\n e.stopPropagation();\n addItemFunction();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n ),\n [\n addItemFunction,\n createMultipleSuivi,\n downloadAvisValides,\n idrapportFicheTutelle,\n isCalcOrAdmin,\n isHope,\n openTabThenSendMessage,\n reassignAri,\n reassignCop,\n reassignPri,\n selectedIDs,\n sendEmail,\n sendSms,\n t\n ]\n );\n\n const columns = React.useMemo(() => (isHope ? hopeColumns : walterColumns), [hopeColumns, isHope, walterColumns]);\n\n const location = useLocation();\n const [savedCriterias] = useSessionStorageState(\"search_\" + location.pathname, { defaultValue: [] });\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n 0}\n searchStateInitialSearch={false}\n renderNoData={\n \n }\n />\n {copReassignmentDialogOpen && (\n \n )}\n {priReassignmentDialogOpen && (\n \n )}\n {ariReassignmentDialogOpen && (\n \n )}\n {!!downloadAvisValidesDialogOpen && (\n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { ApprenantApi, CopReassignmentDto, ELevelName } from \"../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport * as Yup from \"yup\";\nimport styled from \"styled-components\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { CustomBulletList, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { FGCustomPanel, FieldGroup } from \"nsitools-react\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\n\nconst StyledDialog = styled(Dialog)`\n width: 700px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ICopReassignmentDialogProps {\n idsApprenant: number[];\n dialogOpen: boolean;\n onClose: () => void;\n}\n\nexport const CopReassignmentDialog: React.FunctionComponent = ({\n idsApprenant = [],\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ApprenantApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.apprenantGetCopReassignment({ request_body: idsApprenant });\n },\n saveApiFn: async (d: CopReassignmentDto) => {\n return api.apprenantSaveCopReassignment({ CopReassignmentDto: d });\n },\n onSaved: () => onClose()\n }),\n [api, idsApprenant, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n newIdCop: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [usersCop, usersCopLoading] = useReferential(a =>\n a.referentialGetUsersByRoles({ ELevelName: [ELevelName.COP], currentIduser: 0 })\n );\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n {ctx => (\n 0\n ? ctx?.formik?.values?.cops?.map(c => ({ text: c }))\n : [{ text: t(ETLCodes.Aucun) }]\n }\n />\n )}\n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { ApprenantApi, ELevelName, PriReassignmentDto } from \"../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport * as Yup from \"yup\";\nimport styled from \"styled-components\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { CustomBulletList, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { FGCustomPanel, FieldGroup } from \"nsitools-react\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\n\nconst StyledDialog = styled(Dialog)`\n width: 700px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IPriReassignmentDialogProps {\n idsApprenant: number[];\n dialogOpen: boolean;\n onClose: () => void;\n}\n\nexport const PriReassignmentDialog: React.FunctionComponent = ({\n idsApprenant = [],\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ApprenantApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.apprenantGetPriReassignment({ request_body: idsApprenant });\n },\n saveApiFn: async (d: PriReassignmentDto) => {\n return api.apprenantSavePriReassignment({ PriReassignmentDto: d });\n },\n onSaved: () => onClose()\n }),\n [api, idsApprenant, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n newIdPri: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [usersPri, usersPriLoading] = useReferential(a =>\n a.referentialGetUsersByRoles({ ELevelName: [ELevelName.RI], currentIduser: 0 })\n );\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n {ctx => (\n 0\n ? ctx?.formik?.values?.pris?.map(c => ({ text: c }))\n : [{ text: t(ETLCodes.Aucun) }]\n }\n />\n )}\n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { ApprenantApi, ELevelName, AriReassignmentDto } from \"../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport * as Yup from \"yup\";\nimport styled from \"styled-components\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { CustomBulletList, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { FGCustomPanel, FieldGroup } from \"nsitools-react\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\n\nconst StyledDialog = styled(Dialog)`\n width: 700px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IAriReassignmentDialogProps {\n idsApprenant: number[];\n dialogOpen: boolean;\n onClose: () => void;\n}\n\nexport const AriReassignmentDialog: React.FunctionComponent = ({\n idsApprenant = [],\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ApprenantApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.apprenantGetAriReassignment({ request_body: idsApprenant });\n },\n saveApiFn: async (d: AriReassignmentDto) => {\n return api.apprenantSaveAriReassignment({ AriReassignmentDto: d });\n },\n onSaved: () => onClose()\n }),\n [api, idsApprenant, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n newIdAri: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [usersAri, usersAriLoading] = useReferential(a =>\n a.referentialGetUsersByRoles({ ELevelName: [ELevelName.ARI], currentIduser: 0 })\n );\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n {ctx => (\n 0\n ? ctx?.formik?.values?.aris?.map(c => ({ text: c }))\n : [{ text: t(ETLCodes.Aucun) }]\n }\n />\n )}\n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup, showInfo } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n ApprenantApi,\n FichierApi,\n GetApprenantAvisResultatsIdsfichierDto,\n GetApprenantAvisResultatsIdsfichierDtoFromJSON\n} from \"../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { b64toBlob } from \"../../../../utils\";\n\nconst StyledDialog = styled(Dialog)`\n width: 700px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IDownloadAvisValidesDialogProps {\n idsApprenant: number[];\n dialogOpen: boolean;\n onClose: () => void;\n is2sess: boolean;\n}\n\nexport const DownloadAvisValidesDialog: React.FunctionComponent = ({\n dialogOpen,\n idsApprenant,\n is2sess,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ApprenantApi);\n const fApi = useApiService(FichierApi);\n\n const saveFn = React.useCallback(\n async (d: GetApprenantAvisResultatsIdsfichierDto) => {\n const idsfichier = await api.apprenantGetAvisResultatsIdsfichier({\n GetApprenantAvisResultatsIdsfichierDto: d\n });\n if (idsfichier.length === 0) {\n showInfo(t(ETLCodes.AucunFichierATelecharger));\n return;\n }\n const zip = await fApi.fichierMassDownloadPdf({\n MassDownloadRequestDto: { idsfichier: idsfichier }\n });\n if (!zip) {\n showInfo(t(ETLCodes.AucunFichierATelecharger));\n return;\n }\n saveAs(b64toBlob(zip), zip.fileName);\n\n return d;\n },\n [api, fApi, t]\n );\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return GetApprenantAvisResultatsIdsfichierDtoFromJSON({\n idsApprenant,\n is2Sess: is2sess\n });\n },\n saveApiFn: saveFn,\n onSaved: () => onClose()\n }),\n [idsApprenant, is2sess, onClose, saveFn]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n anneeScolaire: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [anneesScolaires, anneesScolairesLoading] = useReferential(a => a.referentialGetAnneeScolaire());\n const finalAnneesScolaires = React.useMemo(\n () => anneesScolaires?.filter(a => +(a.value + \"\").split(\"-\")[0] >= 2023),\n [anneesScolaires]\n );\n\n return (\n onClose()}\n >\n
\n onClose()}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n
\n \n );\n};\n\nexport default DownloadAvisValidesDialog;\n","import * as React from \"react\";\r\nimport { useParams } from \"react-router\";\r\n\r\nimport {\r\n ApprenantStatistiquePresenceApi,\r\n EListSearchType,\r\n RechercheStatPresenceApprenantSearch\r\n} from \"../../../../../../api\";\r\nimport { ERoutes } from \"../../../../../../AppRouter\";\r\nimport { SearchTablePage } from \"../../../../../../components\";\r\nimport { useGlobalData } from \"../../../../../../contexts\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../../locales\";\r\n\r\nexport interface IApprenantAbsenceStatistiquePageProps {}\r\n\r\nexport const ApprenantAbsenceStatistiquePage: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const { id } = useParams<{ id: string }>();\r\n const { currentAnneeScolaire } = useGlobalData();\r\n const api = useApiService(ApprenantStatistiquePresenceApi);\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"anneeScolaire\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Classe),\r\n fieldName: \"codeclasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.NomClasse),\r\n fieldName: \"classe\"\r\n },\r\n {\r\n header: () => t(ETLCodes.StatutInscription),\r\n fieldName: \"statutInscription\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Heures),\r\n fieldName: \"nbretot\"\r\n },\r\n {\r\n header: () => t(ETLCodes.PresencesX),\r\n fieldName: \"nbrex\"\r\n },\r\n {\r\n header: () => t(ETLCodes.JDTCR),\r\n fieldName: \"nbrejdtc\"\r\n },\r\n {\r\n header: () => t(ETLCodes.AbsencesOEVA),\r\n fieldName: \"nbreo\"\r\n },\r\n {\r\n header: () => t(ETLCodes.PourcentagePresence),\r\n fieldName: \"percentPresence\"\r\n }\r\n ],\r\n [t]\r\n );\r\n\r\n const getCriterias = React.useCallback(\r\n () => api.apprenantStatistiquePresenceGetSearchCriterias({ includeListsValues: true }),\r\n [api]\r\n );\r\n\r\n const apiFactory = useAbortableApiServiceFactory(ApprenantStatistiquePresenceApi);\r\n const lastAbortController = React.useRef();\r\n const searchFunction = React.useCallback(\r\n (sObj?: RechercheStatPresenceApprenantSearch) => {\r\n sObj.idApprenant = +id;\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.apprenantStatistiquePresenceBaseSearch({ RechercheStatPresenceApprenantSearch: sObj });\r\n },\r\n [apiFactory, id]\r\n );\r\n\r\n const defaultCriterias = React.useMemo(\r\n () => [\r\n {\r\n criteria: \"AnneeScolaire\",\r\n searchMode: EListSearchType.Equals,\r\n value: currentAnneeScolaire?.idanneeScolaire\r\n }\r\n ],\r\n [currentAnneeScolaire]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import * as React from \"react\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../../../hooks\";\nimport { useHistory, useParams } from \"react-router\";\nimport { useGlobalData } from \"../../../../../../contexts\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../../components\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n AbsenceApprenantApi,\n RechercheDateAbsenceApprenantSearch,\n ETextSearchType,\n FcbRechercheDateAbsenceDto\n} from \"../../../../../../api\";\nimport { ButtonContainer } from \"nsitools-react\";\n\nexport interface IApprenantDateAbsenceListPageProps {}\n\nexport const ApprenantDateAbsenceListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const { currentAnneeScolaire } = useGlobalData();\n const api = useApiService(AbsenceApprenantApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheDateAbsenceDto) => (\n \n \n history.push(`${ERoutes.feuillePresence}/${row.idclasse}/detail/view/${row.jour.replaceAll(\"/\", \"-\")}`)\n }\n />\n \n history.push(`${ERoutes.feuillePresence}/${row.idclasse}/detail/edit/${row.jour.replaceAll(\"/\", \"-\")}`)\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"codeclasse\"\n },\n {\n header: () => t(ETLCodes.NomClasse),\n fieldName: \"classe\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"orderjour\"\n },\n {\n header: () => t(ETLCodes.Heures),\n fieldName: \"heures\"\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"statutAbsence\"\n }\n ],\n [history, t]\n );\n\n const getCriterias = React.useCallback(() => api.absenceApprenantGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(AbsenceApprenantApi);\n const lastAbortController = React.useRef();\n const searchFunction = React.useCallback(\n (sObj?: RechercheDateAbsenceApprenantSearch) => {\n sObj.idApprenant = +id;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.absenceApprenantBaseSearch({ RechercheDateAbsenceApprenantSearch: sObj });\n },\n [apiFactory, id]\n );\n\n const defaultCriterias = React.useMemo(\n () => [\n {\n criteria: \"AnneeScolaire\",\n searchMode: ETextSearchType.Contains,\n value: currentAnneeScolaire?.idanneeScolaire\n }\n ],\n [currentAnneeScolaire]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { ApprenantAbsenceStatistiquePage } from \"./ApprenantAbsenceStatistiquePage\";\nimport { ApprenantDateAbsenceListPage } from \"./ApprenantDateAbsenceListPage\";\n\nexport interface IApprenantAbsenceListPageProps {}\n\nexport const ApprenantAbsenceListPage: React.FunctionComponent = () => {\n return (\n <>\n \n \n \n );\n};\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ApprenantAbsenceListPage } from \"./list/ApprenantAbsenceListPage\";\ninterface IApprenantAbsenceProps {\n apprenantId: number;\n}\n\nexport const ApprenantAbsence: React.FunctionComponent = () => {\n return (\n \n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { AcquisScolaireApi, AcquisScolaireSearch, FcbAcquisScolaireGridDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IAcquisScolaireTableProps {}\n\nexport const AcquisScolaireTable: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n\n const api = useApiService(AcquisScolaireApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/acquis/scolaire`, [apprenantId]);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { annee: \"DESC\" }\n });\n\n const searchFunc = React.useCallback(\n (sObj?: AcquisScolaireSearch) => {\n sObj.idApprenant = apprenantId;\n return api.acquisScolaireBaseSearch({ AcquisScolaireSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbAcquisScolaireGridDto) => (\n \n history.push(`${path}/${row.idacquis}/view`)} />\n history.push(`${path}/${row.idacquis}/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"annee\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Acquis),\n fieldName: \"acquis\"\n },\n {\n header: () => t(ETLCodes.Resultat),\n fieldName: \"resultat\"\n },\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"certificat\"\n }\n ],\n [history, path, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${path}/0/edit`);\n }, [history, path]);\n\n return (\n <>\n {apprenantId > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n )}\n \n );\n};\n","import { Button, ButtonGroup, Classes, Dialog, Icon } from \"@blueprintjs/core\";\nimport { IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { EBooleanSearchTypes, EcoleApi, EcoleSearch, FcbEcoleGridDto } from \"../../../../../api\";\nimport { SearchTablePage } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IEcoleSelectModalProps {\n isOpen: boolean;\n onClose: (id?: number) => void;\n alreadySelectedId?: number;\n}\n\nconst DialogStyled = styled(Dialog)`\n width: 1500px;\n background: white;\n`;\n\nexport const EcoleSelectModal: React.FunctionComponent = ({\n isOpen,\n onClose,\n alreadySelectedId\n}) => {\n const { t } = useTl();\n const api = useApiService(EcoleApi);\n\n const apiFactory = useAbortableApiServiceFactory(EcoleApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n async (nextSearch?: EcoleSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return await abortableApi.ecoleBaseSearch({ EcoleSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const [selected, setSelected] = React.useState(alreadySelectedId ?? null);\n\n const toggleSelection = React.useCallback(\n (id: number) => {\n if (selected !== id) {\n setSelected(id);\n } else {\n setSelected(null);\n }\n },\n [selected]\n );\n\n const onRowClick = React.useCallback(\n (item: FcbEcoleGridDto) => {\n toggleSelection(item.idecole);\n },\n [toggleSelection]\n );\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"_action\",\n autoFitContent: true,\n computed: true,\n alignment: \"center\",\n render: (item: FcbEcoleGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Pays),\n fieldName: \"nomPays\"\n },\n {\n header: () => t(ETLCodes.Tel),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.Fax),\n fieldName: \"fax\"\n }\n ];\n }, [selected, t]);\n\n const onSave = React.useCallback(async () => {\n onClose(selected);\n setSelected(null);\n }, [onClose, selected]);\n\n const close = React.useCallback(() => {\n onClose(alreadySelectedId);\n setSelected(alreadySelectedId ?? null);\n }, [alreadySelectedId, onClose]);\n\n const getCriteria = React.useCallback(() => api.ecoleGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n \n );\n};\n","import { Checkbox, Intent } from \"@blueprintjs/core\";\r\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory, useParams } from \"react-router\";\r\n\r\nimport { ExamenEntreeApi, ExamenEntreeSearch, FcbExamenEntreeGridDto } from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\r\nimport { useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\n\r\nexport interface IExamenEntreeTableProps {}\r\n\r\nexport const ExamenEntreeTable: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const history = useHistory();\r\n const { id } = useParams<{ id: string }>();\r\n const apprenantId = React.useMemo(() => +id, [id]);\r\n\r\n const api = useApiService(ExamenEntreeApi);\r\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/acquis/examen`, [apprenantId]);\r\n\r\n const tableState = useGridState({\r\n serverMode: true,\r\n enablePagination: true,\r\n enableFilter: false,\r\n availablePageSizes: [5],\r\n pageSize: 5,\r\n sortKeys: { annee: \"DESC\" }\r\n });\r\n\r\n const searchFunction = React.useCallback(\r\n (sObj?: ExamenEntreeSearch) => {\r\n sObj.idApprenant = apprenantId;\r\n return api.examenEntreeBaseSearch({ ExamenEntreeSearch: sObj });\r\n },\r\n [api, apprenantId]\r\n );\r\n\r\n const { loading } = useSearchApi({\r\n searchFunction,\r\n tableState,\r\n initialSearch: true\r\n });\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbExamenEntreeGridDto) => (\r\n \r\n history.push(`${path}/${row.idexamenEntree}/view`)} />\r\n history.push(`${path}/${row.idexamenEntree}/edit`)} />\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeExamen),\r\n fieldName: \"annee\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.PointsMathematiques),\r\n fieldName: \"pointsmath\"\r\n },\r\n {\r\n header: () => t(ETLCodes.PointsFrancais),\r\n fieldName: \"pointsfrancais\"\r\n },\r\n {\r\n header: () => t(ETLCodes.PointsLogique),\r\n fieldName: \"pointslogique\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Reussite),\r\n fieldName: \"reussite\",\r\n autoFitContent: true,\r\n render: (row: FcbExamenEntreeGridDto) => \r\n },\r\n {\r\n header: () => t(ETLCodes.Remarque),\r\n fieldName: \"remarque\"\r\n }\r\n ],\r\n [history, path, t]\r\n );\r\n\r\n const onAddItem = React.useCallback(() => {\r\n history.push(`${path}/0/edit`);\r\n }, [history, path]);\r\n\r\n return (\r\n <>\r\n {apprenantId > 0 && (\r\n \r\n {\r\n e.stopPropagation();\r\n onAddItem();\r\n }}\r\n text={t(ETLCodes.General_Add)}\r\n intent={Intent.PRIMARY}\r\n />\r\n \r\n }\r\n >\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { Button, Divider } from \"@blueprintjs/core\";\r\nimport { FormikProps } from \"formik\";\r\nimport { ButtonContainer, FGCustomPanel, FGMaskInput, FieldGroup } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport { ApprenantApi, FcbApprenantDto, FcbApprenantDtoFromJSON } from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\r\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\r\nimport { useReferential } from \"../../../../../hooks/useReferential\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\nimport { AcquisScolaireTable } from \"./AcquisScolaireTable\";\r\nimport { EcoleSelectModal } from \"./EcoleSelectModal\";\r\nimport { ExamenEntreeTable } from \"./ExamenEntreeTable\";\r\n\r\ninterface IApprenantAcquisDetailProps {}\r\n\r\nexport const ApprenantAcquisDetail: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const api = useApiService(ApprenantApi);\r\n const { id } = useParams<{ id: string }>();\r\n const apprenantId = React.useMemo(() => +id, [id]);\r\n\r\n const [editMode, setEditMode] = React.useState(false);\r\n\r\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\r\n getApiFn: () =>\r\n +apprenantId <= 0\r\n ? FcbApprenantDtoFromJSON({ idApprenant: 0 })\r\n : api.apprenantGet({ id: +apprenantId, picture: false }),\r\n saveApiFn: d => api.apprenantSave({ FcbApprenantDto: d }),\r\n deleteApiFn: d => api.apprenantDeleteAcquis({ id: d.idapprenant }),\r\n onDeletedRoute: () => `${ERoutes.apprenant}/${apprenantId}/acquis`\r\n });\r\n\r\n const [ecoles, eLoading] = useReferential(a => a.referentialGetEcole(), true, []);\r\n const [anneesReussies, arLoading] = useReferential(a => a.referentialGetAnneeReussie(), true, []);\r\n const [diplomes, dLoading] = useReferential(a => a.referentialGetDiplome(), true, []);\r\n\r\n const formikRef = React.useRef>();\r\n const [showModal, setShowModal] = React.useState(false);\r\n const onClose = React.useCallback((selected: number) => {\r\n if (selected) {\r\n formikRef.current?.setFieldValue(\"idecole\", selected);\r\n }\r\n setShowModal(false);\r\n }, []);\r\n\r\n const EcoleModal = React.useCallback(\r\n () => (\r\n \r\n ),\r\n [onClose, showModal, formikRef]\r\n );\r\n\r\n return (\r\n <>\r\n setEditMode(true)}\r\n saving={saving}\r\n loading={loading}\r\n deleting={deleting}\r\n onDelete={deleteItem}\r\n showDeleteButton\r\n cancelEdit\r\n formikInnerRef={i => (formikRef.current = i)}\r\n >\r\n \r\n \r\n \r\n {() => (\r\n \r\n setShowModal(true)}\r\n title={t(ETLCodes.SelectionSchool)}\r\n loading={saving}\r\n disabled={!editMode}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {() => (!(saving || loading) ? : null)}\r\n \r\n );\r\n};\r\n","import { FGMaskInput, FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport * as Yup from \"yup\";\n\nimport { ExamenEntreeApi, FcbExamenEntreeDtoFromJSON } from \"../../../../../api\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IExamenEntreeDetailProps {\n idpersonne: number;\n listRoute: string;\n}\n\nexport const ExamenEntreeDetail: React.FunctionComponent = ({ idpersonne, listRoute }) => {\n const { t } = useTl();\n const api = useApiService(ExamenEntreeApi);\n const { idExamen, state } = useParams<{ id: string; idExamen: string; state: string }>();\n const idExamenEntree = React.useMemo(() => +idExamen, [idExamen]);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving, validationErrors } = useCrudApi({\n getApiFn: () =>\n +idExamenEntree <= 0\n ? FcbExamenEntreeDtoFromJSON({ idexamenEntree: 0, idpersonne: idpersonne, typeAcquis: \"ExamenEntree\" })\n : api.examenEntreeGet({ id: +idExamenEntree }),\n saveApiFn: d => api.examenEntreeSave({ FcbExamenEntreeDto: d }),\n onSavedRoute: d => listRoute,\n deleteApiFn: d => api.examenEntreeDelete({ id: d.idexamenEntree }),\n onDeletedRoute: () => listRoute\n });\n\n const validationSchema = React.useMemo(() => {\n return Yup.object().shape({\n annee: Yup.number().max(9999),\n pointsmath: Yup.number(),\n pointsfrancais: Yup.number(),\n remarque: Yup.string().required(t(ETLCodes.Required)),\n reussite: Yup.boolean()\n });\n }, [t]);\n\n return (\n = 0}\n onCancel={() => history.push(listRoute)}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n \n \n \n \n );\n};\n","import { Button } from \"@blueprintjs/core\";\nimport { FormikProps } from \"formik\";\nimport { ButtonContainer, FGCustomPanel, FGMaskInput, FGTextInput, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport * as Yup from \"yup\";\n\nimport { AcquisScolaireApi, FcbAcquisScolaireDto, FcbAcquisScolaireDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { EcoleSelectModal } from \"./EcoleSelectModal\";\n\nexport interface IAcquisScolaireDetailProps {}\n\nexport const AcquisScolaireDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireApi);\n const { id, idAcquis, state } = useParams<{ id: string; idAcquis: string; state: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const idAcquisScolaire = React.useMemo(() => +idAcquis, [idAcquis]);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idAcquisScolaire <= 0\n ? FcbAcquisScolaireDtoFromJSON({ idacquis: 0, idapprenant: apprenantId })\n : api.acquisScolaireGet({ id: +idAcquisScolaire }),\n saveApiFn: d => api.acquisScolaireSave({ FcbAcquisScolaireDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${d.idapprenant}/acquis`,\n deleteApiFn: d => api.acquisScolaireDelete({ id: d.idacquis }),\n onDeletedRoute: () => `${ERoutes.apprenant}/${apprenantId}/acquis`\n });\n\n const [ecoles, eLoading] = useReferential(a => a.referentialGetEcole(), true, []);\n const [diplomes, dLoading] = useReferential(a => a.referentialGetDiplome(), true, []);\n const [resultat, rLoading] = useReferential(a => a.referentialGetResultatAcquis(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n acquis: Yup.string().required(t(ETLCodes.Required)),\n idresultat: Yup.string().required(t(ETLCodes.Required)),\n annee: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const formikRef = React.useRef>();\n const [showModal, setShowModal] = React.useState(false);\n const onClose = React.useCallback((selected: number) => {\n if (selected) {\n formikRef.current?.setFieldValue(\"idecole\", selected);\n }\n setShowModal(false);\n }, []);\n\n const EcoleModal = React.useCallback(\n () => (\n \n ),\n [onClose, showModal, formikRef]\n );\n\n return (\n
\n (formikRef.current = i)}\n onCancel={() => history.push(`${ERoutes.apprenant}/${apprenantId}/acquis`)}\n >\n \n \n \n \n \n \n \n \n \n {() => (\n \n setShowModal(true)}\n title={t(ETLCodes.SelectionSchool)}\n loading={saving}\n />\n \n )}\n \n \n \n {() => (!(saving || loading) ? : null)}\n \n
\n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router\";\nimport { ApprenantAcquisDetail } from \"./ApprenantAcquisDetail\";\nimport { ExamenEntreeDetail } from \"./ExamenEntreeDetail\";\nimport { AcquisScolaireDetail } from \"./AcquisScolaireDetail\";\ninterface IApprenantAcquisProps {}\n\nexport const ApprenantAcquis: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n \n );\n};\n","import { FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { AcquisProfessionnelApi, FcbAcquisProfessionnelDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator, FGWalterDateMaskInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantAcquisProfessionnelDetailProps {}\n\nexport const ApprenantAcquisProfessionnelDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(AcquisProfessionnelApi);\n const { id, acquisProfessionnelId, state } = useParams<{\n id: string;\n acquisProfessionnelId: string;\n state: string;\n }>();\n const idApprenant = React.useMemo(() => +id, [id]);\n const idacquisProfessionnel = React.useMemo(() => +acquisProfessionnelId, [acquisProfessionnelId]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idacquisProfessionnel <= 0\n ? FcbAcquisProfessionnelDtoFromJSON({\n idAcquisProfessionnel: 0,\n idapprenant: idApprenant,\n dateDebut: new Date()\n })\n : api.acquisProfessionnelGet({ id: +idacquisProfessionnel }),\n saveApiFn: d => api.acquisProfessionnelSave({ FcbAcquisProfessionnelDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${idApprenant}/acquisprofessionnel/${d.idacquisProfessionnel}/${state}`,\n deleteApiFn: d => api.acquisProfessionnelDelete({ id: d.idacquisProfessionnel }),\n onDeletedRoute: d => `${ERoutes.apprenant}/${idApprenant}/acquisprofessionnel`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n entreprise: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n history.push(`${ERoutes.apprenant}/${idApprenant}/acquisprofessionnel`)}\n onDelete={deleteItem}\n showDeleteButton={+idacquisProfessionnel > 0}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n >\n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { AcquisProfessionnelApi, AcquisProfessionnelSearch, FcbAcquisProfessionnelGridDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantAcquisProfessionnelSearchProps {}\n\nexport const ApprenantAcquisProfessionnelSearch: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const api = useApiService(AcquisProfessionnelApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/acquisprofessionnel`, [apprenantId]);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { dateDebut: \"DESC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunc = React.useCallback(\n (sObj?: AcquisProfessionnelSearch) => {\n sObj.idapprenant = apprenantId;\n return api.acquisProfessionnelBaseSearch({ AcquisProfessionnelSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbAcquisProfessionnelGridDto) => (\n \n history.push(`${path}/${row.idacquisProfessionnel}/view`)} />\n history.push(`${path}/${row.idacquisProfessionnel}/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Entreprise),\n fieldName: \"entreprise\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\"\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n }\n ],\n [history, path, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${path}/0/edit`);\n }, [history, path]);\n\n return (\n <>\n {apprenantId > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { useRouteMatch, Switch, Route } from \"react-router\";\n\nimport { ApprenantAcquisProfessionnelDetail } from \"./ApprenantAcquisProfessionnelDetail\";\nimport { ApprenantAcquisProfessionnelSearch } from \"./ApprenantAcquisProfessionnelSearch\";\n\ninterface IApprenantAcquisProfessionnelProps {\n apprenantId: number;\n}\n\nexport const ApprenantAcquisProfessionnel: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { FcbPaiementGridDto, PaiementApi, PaiementSearch, ETextSearchType } from \"../../../../../api\";\r\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\nimport { useGlobalData } from \"../../../../../contexts\";\r\nimport { useHistory } from \"react-router\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\n\r\ninterface IPaiementsSearchTableProps {\r\n apprenantId: number;\r\n}\r\n\r\nexport const PaiementsSearchTable: React.FunctionComponent = ({ apprenantId }) => {\r\n const { t } = useTl();\r\n const api = useApiService(PaiementApi);\r\n const history = useHistory();\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbPaiementGridDto) => (\r\n \r\n history.push(`${ERoutes.apprenant}/${apprenantId}/finance/${row.idPaiement}/view`)}\r\n />\r\n history.push(`${ERoutes.apprenant}/${apprenantId}/finance/${row.idPaiement}/edit`)}\r\n />\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"anneeScolaire\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Date),\r\n fieldName: \"datePaiement\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Mode),\r\n fieldName: \"modePaiement\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Montant),\r\n fieldName: \"montantPaye\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.Centre),\r\n fieldName: \"nomCentre\"\r\n }\r\n ],\r\n [apprenantId, history, t]\r\n );\r\n\r\n const addItemFunction = React.useCallback(() => {\r\n history.push(`${ERoutes.apprenant}/${apprenantId}/finance/0/edit`);\r\n }, [apprenantId, history]);\r\n\r\n const getCriteriasFn = React.useCallback(() => api.paiementGetSearchCriterias({ includeListsValues: true }), [api]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(PaiementApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (sObj?: PaiementSearch) => {\r\n sObj.idapprenant = apprenantId;\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.paiementBaseSearch({ PaiementSearch: sObj });\r\n },\r\n [apiFactory, apprenantId]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n apprenantId > 0 && (\r\n \r\n )\r\n );\r\n};\r\n","import * as React from \"react\";\r\n\r\nimport { ETextSearchType, SoldeApprenantApi, SoldeApprenantSearch } from \"../../../../../api\";\r\nimport { SearchTablePage } from \"../../../../../components\";\r\nimport { useGlobalData } from \"../../../../../contexts\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\n\r\ninterface ISoldeSearchTableProps {\r\n apprenantId: number;\r\n}\r\n\r\nexport const SoldeSearchTable: React.FunctionComponent = ({ apprenantId }) => {\r\n const { t } = useTl();\r\n\r\n const api = useApiService(SoldeApprenantApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n header: () => t(ETLCodes.Centre),\r\n fieldName: \"nomCentre\"\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"anneeScolaire\"\r\n },\r\n {\r\n header: () => t(ETLCodes.TotalMontantDu),\r\n fieldName: \"totalMontantDu\"\r\n },\r\n {\r\n header: () => t(ETLCodes.TotalMontantPaye),\r\n fieldName: \"totalMontantPaye\"\r\n },\r\n {\r\n header: () => t(ETLCodes.TotalMinerval),\r\n fieldName: \"totalMinerval\"\r\n }\r\n ],\r\n [t]\r\n );\r\n\r\n const getCriteriasFn = React.useCallback(() => api.soldeApprenantGetSearchCriterias({ includeListsValues: true }), [\r\n api\r\n ]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(SoldeApprenantApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (sObj?: SoldeApprenantSearch) => {\r\n sObj.idapprenant = apprenantId;\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.soldeApprenantBaseSearch({ SoldeApprenantSearch: sObj });\r\n },\r\n [apiFactory, apprenantId]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n apprenantId > 0 && (\r\n c.displayValue }}\r\n />\r\n )\r\n );\r\n};\r\n","import * as React from \"react\";\n\nimport { MinervalSearchTable } from \"..\";\nimport { PaiementsSearchTable } from \"./PaiementsSearchTable\";\nimport { SoldeSearchTable } from \"./SoldeSearchTable\";\nimport { Divider } from \"@blueprintjs/core\";\nimport { useParams } from \"react-router\";\n\ninterface IApprenantFinanceDetailProps {}\n\nexport const ApprenantFinanceDetail: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string }>();\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n","import { FGListen, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbPaiementDtoFromJSON, PaiementApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { FGEuroMaskInput } from \"../../../../../components/formGenerator/FGEuroMaskInput\";\nimport { useGlobalData } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantFinancePaiementDetailProps {}\n\nexport const ApprenantFinancePaiementDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(PaiementApi);\n const history = useHistory();\n\n const { id, paiementId, state } = useParams<{ id: string; paiementId: string; state: string }>();\n const { currentAnneeScolaire } = useGlobalData();\n\n const [inscriptionRequest, setInscriptionRequest] = React.useState({\n idCentre: 0,\n anneeScolaire: \"\",\n idApprenant: +id\n });\n\n const [annees, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [modes, mLoading] = useReferential(a => a.referentialGetModesPaiement(), true, []);\n const [centres, cLoading] = useReferential(a => a.referentialGetCentreByApprenant({ idApprenant: +id }), true, []);\n const [inscriptions, iLoading] = useReferential(\n a => a.referentialGetInscriptionsApprenant(inscriptionRequest),\n true,\n [inscriptionRequest]\n );\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +paiementId <= 0\n ? FcbPaiementDtoFromJSON({\n paiementId: 0,\n idapprenant: +id,\n anneeScolaire: currentAnneeScolaire,\n datePaiement: new Date()\n })\n : api.paiementGetPaiement({ id: +paiementId }),\n saveApiFn: d => api.paiementSavePaiement({ FcbPaiementDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${id}/finance`,\n deleteApiFn: d => api.paiementDeletePaiement({ id: +paiementId }),\n onDeletedRoute: () => `${ERoutes.apprenant}/${id}/finance`\n });\n\n React.useEffect(() => {\n if (data) {\n setInscriptionRequest({\n idCentre: data.idcentre,\n anneeScolaire: data.anneeScolaire,\n idApprenant: data.idapprenant\n });\n }\n }, [data]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n datePaiement: Yup.string().required(t(ETLCodes.Required)),\n montantPaye: Yup.number().required(t(ETLCodes.Required)),\n anneeScolaire: Yup.string().required(t(ETLCodes.Required)),\n idmode: Yup.number().required(t(ETLCodes.Required)),\n idcentre: Yup.number().required(t(ETLCodes.Required)),\n idinscription: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n data && (\n history.push(`${ERoutes.apprenant}/${id}/finance`)}\n onDelete={deleteItem}\n showDeleteButton={+paiementId > 0}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd/MM/yyyy\"\n >\n \n setInscriptionRequest({\n idCentre: value,\n anneeScolaire: formik.values.anneeScolaire,\n idApprenant: +id\n })\n }\n />\n \n setInscriptionRequest({\n idCentre: formik.values.idcentre,\n anneeScolaire: value,\n idApprenant: +id\n })\n }\n />\n \n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import * as React from \"react\";\n\nimport { useRouteMatch, Switch, Route } from \"react-router\";\nimport { ApprenantFinanceDetail } from \"./ApprenantFinanceDetail\";\nimport { ApprenantFinancePaiementDetail } from \"./ApprenantFinancePaiementDetail\";\n\ninterface IApprenantFinanceProps {}\n\nexport const ApprenantFinance: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nimport { ETextSearchType, FcbMinervalGridDto, MinervalApi } from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport { SearchTablePage, ViewButton } from \"../../../../../components\";\r\nimport { useGlobalData } from \"../../../../../contexts\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\n\r\ninterface IMinervalSearchTableProps {\r\n apprenantId: number;\r\n}\r\n\r\nexport const MinervalSearchTable: React.FunctionComponent = ({ apprenantId }) => {\r\n const { t } = useTl();\r\n const api = useApiService(MinervalApi);\r\n const history = useHistory();\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbMinervalGridDto) => (\r\n \r\n \r\n history.push(`${ERoutes.apprenant}/${apprenantId}/inscription/${row.idInscription}/detail/edit`)\r\n }\r\n />\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"anneeScolaire\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.Inscription),\r\n fieldName: \"codeInscription\"\r\n },\r\n {\r\n header: () => t(ETLCodes.CodeClasse),\r\n fieldName: \"codeClasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Classe),\r\n fieldName: \"nomClasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Minerval),\r\n fieldName: \"minerval\"\r\n }\r\n ],\r\n [apprenantId, history, t]\r\n );\r\n\r\n const apiFactory = useAbortableApiServiceFactory(MinervalApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n sObj => {\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n sObj.idapprenant = apprenantId;\r\n return abortableApi.minervalBaseSearch({ MinervalSearch: sObj });\r\n },\r\n [apiFactory, apprenantId]\r\n );\r\n\r\n const getCriteriasFn = React.useCallback(() => {\r\n return api.minervalGetSearchCriterias({ includeListsValues: true });\r\n }, [api]);\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n apprenantId > 0 && (\r\n \r\n )\r\n );\r\n};\r\n","import { FGEmpty, FGMaskInput, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbFormationDtoFromJSON, FormationApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantFormationDetailProps {}\n\nexport const ApprenantFormationDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(FormationApi);\n const { id, formationId, state } = useParams<{ id: string; formationId: string; state: \"edit\" | \"view\" }>();\n const idApprenant = React.useMemo(() => +id, [id]);\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n const idFormation = React.useMemo(() => +formationId, [formationId]);\n const [idStade, setIdStade] = React.useState(0);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idFormation <= 0\n ? FcbFormationDtoFromJSON({ idFormation: 0, idapprenant: idApprenant })\n : api.formationGet({ id: +idFormation }),\n saveApiFn: d => api.formationSave({ FcbFormationDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${idApprenant}/formation/${d.idformation}`,\n deleteApiFn: d => api.formationDelete({ id: d.idformation }),\n onDeletedRoute: d => `${ERoutes.apprenant}/${idApprenant}/formation`\n });\n\n const [stade, sLoading] = useReferential(a => a.referentialGetStade(), true, []);\n const [metier, mLoading] = useReferential(a => a.referentialGetMetierByStade({ idStade }), true, [idStade]);\n const [statutStage, stLoading] = useReferential(a => a.referentialGetStatutStage(), true, []);\n const [idstatutSocial, setIdstatutSocial] = React.useState(null);\n const [statutSocial, soLoading] = useReferential(\n a => a.referentialGetStatutSocial({ currentIdstatutSocial: idstatutSocial }),\n true,\n []\n );\n const [enseignement, eLoading] = useReferential(a => a.referentialGetTypeEnseignement(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idstade: Yup.number().required(t(ETLCodes.Required)),\n idmetier: Yup.number().required(t(ETLCodes.Required)),\n idstatutSocial: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n history.push(`${ERoutes.apprenant}/${idApprenant}/formation`)}\n onDelete={deleteItem}\n showDeleteButton={+idFormation > 0}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n watchChanges={{\n idstade: value => setIdStade(value),\n idstatutSocial: value => setIdstatutSocial(value)\n }}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { FcbFormationGridDto, FormationApi, FormationSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantFormationSearchProps {}\n\nexport const ApprenantFormationSearch: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const api = useApiService(FormationApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/formation`, [apprenantId]);\n\n const [metier] = useReferential(a => a.referentialGetMetier(), true, [], false);\n const [stade] = useReferential(a => a.referentialGetStade(), true, [], false);\n const [statutStage] = useReferential(a => a.referentialGetStatutStage(), true, [], false);\n const [statutSocial] = useReferential(a => a.referentialGetStatutSocial({}), true, [], false);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { idmetier: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunc = React.useCallback(\n (sObj?: FormationSearch) => {\n sObj.idapprenant = apprenantId;\n return api.formationBaseSearch({ FormationSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFormationGridDto) => (\n
\n history.push(`${path}/${row.idformation}/view`)} />\n history.push(`${path}/${row.idformation}/edit`)} />\n
\n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"codeFormation\",\n computed: true\n },\n {\n header: () => t(ETLCodes.Metier),\n fieldName: \"idmetier\",\n render: (row: FcbFormationGridDto) =>
{metier?.find(m => m.value === row.idmetier)?.label}
\n },\n {\n header: () => t(ETLCodes.Stade),\n fieldName: \"idstade\",\n render: (row: FcbFormationGridDto) =>
{stade?.find(m => m.value === row.idstade)?.label}
\n },\n {\n header: () => t(ETLCodes.StatutStage),\n fieldName: \"idstatutStage\",\n render: (row: FcbFormationGridDto) =>
{statutStage?.find(m => m.value === row.idstatutStage)?.label}
\n },\n {\n header: () => t(ETLCodes.StatutSocial),\n fieldName: \"idstatutSocial\",\n render: (row: FcbFormationGridDto) => (\n
{statutSocial?.find(m => m.value === row.idstatutSocial)?.label}
\n )\n }\n ],\n [history, metier, path, stade, statutSocial, statutStage, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${path}/0/edit`);\n }, [history, path]);\n\n return (\n <>\n {apprenantId > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router\";\n\nimport { ApprenantFormationDetail } from \"./ApprenantFormationDetail\";\nimport { ApprenantFormationSearch } from \"./ApprenantFormationSearch\";\n\ninterface IApprenantFormationProps {}\n\nexport const ApprenantFormation: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\r\nimport { format, startOfToday } from \"date-fns\";\r\nimport { IDataTableColumn } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { ClasseHoraireApi, HoraireSearch, ETextSearchType, EDateSearchType } from \"../../../../../api\";\r\nimport { FcbHoraireGridDto } from \"../../../../../api/models/FcbHoraireGridDto\";\r\nimport { SearchTablePage, TimeDisplay } from \"../../../../../components\";\r\nimport { useGlobalData } from \"../../../../../contexts\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\n\r\ninterface IApprenantHoraireProps {\r\n apprenantId: number;\r\n}\r\n\r\nexport const ApprenantHoraire: React.FunctionComponent = ({ apprenantId }) => {\r\n const { t } = useTl();\r\n\r\n const api = useApiService(ClasseHoraireApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n header: () => t(ETLCodes.Annee),\r\n fieldName: \"anneeScolaire\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Date),\r\n fieldName: \"jourClasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Classe),\r\n fieldName: \"classe\"\r\n },\r\n {\r\n header: () => t(ETLCodes.NomClasse),\r\n fieldName: \"nomClasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.DateDebut),\r\n fieldName: \"heureDebut\",\r\n render: (item: FcbHoraireGridDto) => \r\n },\r\n {\r\n header: () => t(ETLCodes.Matiere),\r\n fieldName: \"matiere\",\r\n disableSorting: true\r\n },\r\n {\r\n header: () => t(ETLCodes.Local),\r\n fieldName: \"local\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Formateur),\r\n fieldName: \"formateur\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Visite),\r\n fieldName: \"visite\",\r\n alignment: \"center\",\r\n render: (row: FcbHoraireGridDto) => \r\n }\r\n ],\r\n [t]\r\n );\r\n\r\n const apiFactory = useAbortableApiServiceFactory(ClasseHoraireApi);\r\n const lastAbortController = React.useRef();\r\n const searchFunc = React.useCallback(\r\n (sObj?: HoraireSearch) => {\r\n sObj.idApprenant = apprenantId;\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.classeHoraireBaseSearch({ HoraireSearch: sObj });\r\n },\r\n [apiFactory, apprenantId]\r\n );\r\n\r\n const getCriteriasFunc = React.useCallback(() => api.classeHoraireGetSearchCriterias({ includeListsValues: true }), [\r\n api\r\n ]);\r\n\r\n const today = React.useMemo(() => startOfToday(), []);\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n apprenantId > 0 && (\r\n \r\n )\r\n );\r\n};\r\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ChangementClasseApi, ChangementClasseSearch, FcbChangementClasseGridDto } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IChangementClasseListProps {}\n\nexport const ChangementClasseList: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, inscriptionId, tabInscription } = useParams<{\n id: string;\n tab: string;\n state: string;\n inscriptionId: string;\n tabInscription: string;\n }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const idInscription = React.useMemo(() => +inscriptionId, [inscriptionId]);\n const api = useApiService(ChangementClasseApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/${tab}/${inscriptionId}/${tabInscription}`, [\n apprenantId,\n inscriptionId,\n tab,\n tabInscription\n ]);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: {\n datechangement: \"ASC\"\n }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ChangementClasseSearch) => {\n sObj.idinscription = idInscription;\n return api.changementClasseBaseSearch({ ChangementClasseSearch: sObj });\n },\n [api, idInscription]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbChangementClasseGridDto) => (\n
\n history.push(`${path}/${row.idchangementClasse}/view`)} />\n history.push(`${path}/${row.idchangementClasse}/edit`)}\n disabled={!row.isEditable}\n />\n
\n )\n },\n {\n header: () => t(ETLCodes.ClasseSource),\n fieldName: \"classesourceLabel\"\n },\n {\n header: () => t(ETLCodes.ClasseCible),\n fieldName: \"classecibleLabel\"\n },\n {\n header: () => t(ETLCodes.DateChangement),\n fieldName: \"datechangement\"\n }\n ],\n [history, path, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${path}/0/edit`);\n }, [history, path]);\n\n return (\n <>\n {apprenantId > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n )}\n \n );\n};\n","import { FGTextInput, FieldGroup, FieldSet, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport {\n ChangementClasseApi,\n FcbChangementClasseDto,\n FcbChangementClasseDtoFromJSON,\n InscriptionApi\n} from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IChangementClasseDetailProps {}\n\nexport const ChangementClasseDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { showDialogPromise } = useDialog();\n const { id, inscriptionId, changementClasseId, stateChangementClasse = \"view\" } = useParams<{\n id: string;\n inscriptionId: string;\n tabInscription: string;\n stateInscription: string;\n changementClasseId: string;\n stateChangementClasse: string;\n }>();\n\n const idApprenant = React.useMemo(() => +id, [id]);\n const idInscription = React.useMemo(() => +inscriptionId, [inscriptionId]);\n const idChangementClasse = React.useMemo(() => +changementClasseId, [changementClasseId]);\n\n const api = useApiService(ChangementClasseApi);\n const inscriptionApi = useApiService(InscriptionApi);\n\n const [hasDispense] = useApiEffect(() => inscriptionApi.inscriptionHasDispense({ idInscription }), [idInscription]);\n\n const deleteChangementClasse = React.useCallback(\n async idCC => {\n const hasEvals = await api.changementClasseCheckHasEvalsToDelete({ idChangementClasse: idCC });\n if (hasEvals) {\n const result = await showDialogPromise({\n message: t(ETLCodes.ChangementClasseHasEvaluationsToDelete),\n title: t(ETLCodes.ChangementClasseHasEvaluationsToDeleteTitle)\n });\n if (result === \"yes\") {\n await api.changementClasseDelete({ id: idCC });\n return true;\n }\n } else {\n await api.changementClasseDelete({ id: idCC });\n return true;\n }\n return false;\n },\n [api, showDialogPromise, t]\n );\n\n const saveChangementClasse = React.useCallback(\n async (dto: FcbChangementClasseDto) => {\n if (hasDispense?.value) {\n const result = await showDialogPromise({\n message: t(ETLCodes.InscriptionHasDispensesMessage),\n title: t(ETLCodes.InscriptionHasDispensesTitle)\n });\n if (result === \"yes\") {\n return api.changementClasseSave({ FcbChangementClasseDto: dto });\n }\n } else {\n return api.changementClasseSave({ FcbChangementClasseDto: dto });\n }\n },\n [api, hasDispense, showDialogPromise, t]\n );\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idChangementClasse <= 0\n ? FcbChangementClasseDtoFromJSON({ idchangementClasse: 0, idinscription: idInscription })\n : api.changementClasseGet({ id: +idChangementClasse }),\n saveApiFn: saveChangementClasse,\n onSavedRoute: d => `${ERoutes.apprenant}/${idApprenant}/inscription/${idInscription}/changement`,\n deleteApiFn: d => deleteChangementClasse(d.idchangementClasse),\n onDeletedRoute: d => `${ERoutes.apprenant}/${idApprenant}/inscription/${idInscription}/changement`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n classecible: Yup.number().required(t(ETLCodes.Required)),\n datechangement: Yup.mixed().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const [classe, cLoading] = useReferential(\n a => a.referentialGetClasseByInscription({ idInscription, isForChangementClasseTable: idChangementClasse > 0 }),\n true,\n [],\n false\n );\n\n const { data: inscription, isFetching: loadingInscription } = useQuery(\n [\"inscription\", idInscription],\n async () => await inscriptionApi.inscriptionGet({ id: idInscription })\n );\n const { data: otherInscriptionForClasseExists, isFetching: otherInscriptionForClasseExistsLoading } = useQuery(\n [\"other-insc-classse-exists\", idInscription, data?.classesource],\n async () =>\n !!idInscription &&\n data?.classesource &&\n (await api.changementClasseOtherInscriptionForClasseExists({\n idinscription: idInscription,\n idclasse: data?.classesource\n }))\n );\n const showDelete = React.useMemo(\n () =>\n +idChangementClasse > 0 && data?.classecible === inscription?.idclasse && !otherInscriptionForClasseExists?.value,\n [data?.classecible, idChangementClasse, inscription?.idclasse, otherInscriptionForClasseExists]\n );\n\n const editable = React.useMemo(() => +idChangementClasse <= 0, [idChangementClasse]);\n\n return (\n
\n history.push(`${ERoutes.apprenant}/${idApprenant}/inscription/${idInscription}/changement`)}\n onDelete={deleteItem}\n showDeleteButton={showDelete}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n >\n \n \n {editable ? (\n \n ) : (\n \n )}\n \n \n \n \n
\n );\n};\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { ChangementClasseList } from \"./ChangementClasseList\";\nimport { ChangementClasseDetail } from \"./ChangementClasseDetail\";\n\nexport interface IChangementClasseSwitchProps {}\n\nexport const ChangementClasseSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { FGMultiSuggestInput, FGTextAreaInput, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { DispenseApi, FcbDispenseDetailDtoFromJSON } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IDispenseDetailProps {}\n\nexport const DispenseDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, inscriptionId, dispenseId, stateDispense = \"view\" } = useParams<{\n id: string;\n inscriptionId: string;\n tabInscription: string;\n stateInscription: string;\n dispenseId: string;\n stateDispense: string;\n }>();\n\n const idApprenant = React.useMemo(() => +id, [id]);\n const idInscription = React.useMemo(() => +inscriptionId, [inscriptionId]);\n const idDispense = React.useMemo(() => +dispenseId, [dispenseId]);\n\n const api = useApiService(DispenseApi);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idDispense <= 0\n ? FcbDispenseDetailDtoFromJSON({ dispenseId: 0, idinscription: idInscription, classeMatiereIds: [] })\n : api.dispenseGet({ id: +idDispense }),\n saveApiFn: d => api.dispenseSave({ FcbDispenseDetailDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${idApprenant}/inscription/${idInscription}/dispense`,\n deleteApiFn: d => api.dispenseDelete({ id: d.dispenseId }),\n onDeletedRoute: d => `${ERoutes.apprenant}/${idApprenant}/inscription/${idInscription}/dispense`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n classeMatiereIds: Yup.array()\n .of(Yup.number())\n .min(1, t(ETLCodes.SelectAtLeastOne)),\n idtypeDispense: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const [typeDispense, tdLoading] = useReferential(a => a.referentialGetTypeDispense(), true, [], true);\n const [matiere, mLoading] = useReferential(a => a.referentialGetClasseMatiere({ idInscription }), true, [], true);\n\n return (\n
\n history.push(`${ERoutes.apprenant}/${idApprenant}/inscription/${idInscription}/dispense`)}\n onDelete={deleteItem}\n showDeleteButton={+idDispense > 0}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n >\n \n \n \n \n \n \n \n \n \n {/* {stateDispense === \"edit\" && } */}\n \n \n \n \n \n
\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { DispenseApi, DispenseSearch, FcbDispenseGridDto } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { AddButton, DeleteButton, ViewButton } from \"../../../../../../components\";\nimport { useAuth, useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IDispenseListProps {}\n\nexport const DispenseList: React.FunctionComponent = () => {\n const dialogContext = useDialog();\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, inscriptionId, tabInscription } = useParams<{\n id: string;\n tab: string;\n state: string;\n inscriptionId: string;\n tabInscription: string;\n }>();\n const { getCurrentPermission } = useAuth();\n const canDelete = React.useMemo(() => getCurrentPermission()?.permission === \"RWD\", [getCurrentPermission]);\n\n const apprenantId = React.useMemo(() => +id, [id]);\n const idInscription = React.useMemo(() => +inscriptionId, [inscriptionId]);\n const api = useApiService(DispenseApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/${tab}/${inscriptionId}/${tabInscription}`, [\n apprenantId,\n inscriptionId,\n tab,\n tabInscription\n ]);\n\n const [typeDispense] = useReferential(a => a.referentialGetTypeDispense(), true, [], false);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: {\n matiere: \"ASC\"\n }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: DispenseSearch) => {\n sObj.idinscription = idInscription;\n return api.dispenseBaseSearch({ DispenseSearch: sObj });\n },\n [api, idInscription]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const deleteFunc = React.useCallback(\n deleteId => {\n dialogContext.showDialog({\n message: t(ETLCodes.DeleteConfirmationMessage),\n onConfirmed: async () => {\n api.dispenseDelete({ id: deleteId }).then(() => {\n search({});\n });\n }\n });\n },\n [api, dialogContext, search, t]\n );\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbDispenseGridDto) => (\n
\n history.push(`${path}/${row.dispenseId}/view`)} />\n {canDelete ? (\n {\n deleteFunc(row.dispenseId);\n }}\n />\n ) : (\n <>\n )}\n
\n )\n },\n {\n header: () => t(ETLCodes.Demande),\n fieldName: \"dateDemande\"\n },\n {\n header: () => t(ETLCodes.Acceptation),\n fieldName: \"dateAcceptation\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"matiere\"\n },\n {\n header: () => t(ETLCodes.TypeDispense),\n fieldName: \"idtypeDispense\",\n render: (row: FcbDispenseGridDto) =>
{typeDispense?.find(m => m.value === row.idtypeDispense)?.label}
\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"classe\"\n }\n ],\n [canDelete, deleteFunc, history, path, t, typeDispense]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${path}/0/edit`);\n }, [history, path]);\n\n return (\n <>\n {apprenantId > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { DispenseDetail } from \"./DispenseDetail\";\nimport { DispenseList } from \"./DispenseList\";\n\nexport interface IDispenseSwitchProps {}\n\nexport const DispenseSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\nimport { InscriptionApi, InscriptionFichierUploadDto, InscriptionFichierUploadDtoFromJSON } from \"../../../../../api\";\nimport { FGWalterFileInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IInscriptionDocumentUploadDialogProps {\n idinscription: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const InscriptionDocumentUploadDialog: React.FunctionComponent = ({\n idinscription,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(InscriptionApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return InscriptionFichierUploadDtoFromJSON({ idinscription });\n },\n saveApiFn: async (d: InscriptionFichierUploadDto) => {\n return api.inscriptionUploadFichier({\n InscriptionFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idinscription, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n
\n
\n );\n};\n","import { Classes, Colors, Intent, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport { FormikProps } from \"formik\";\nimport {\n ButtonContainer,\n DataTable,\n DialogResult,\n FGCustomPanel,\n FGEmpty,\n FGListen,\n FGTextAreaInput,\n FieldGroup,\n IDataTableColumn,\n showError,\n showSuccess,\n useApiEffect,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { InscriptionDateConvocationSelector } from \"..\";\nimport {\n ClasseApi,\n EIfapmeSide,\n FcbInscriptionDetailDto,\n InscriptionApi,\n InscriptionFichierGridDto\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator,\n StyledError,\n WarningText\n} from \"../../../../../components\";\nimport { FGEuroMaskInput } from \"../../../../../components/formGenerator/FGEuroMaskInput\";\nimport { useAuth, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useManageError, useTheme, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { exportFile } from \"../../../../../utils\";\nimport { InscriptionDocumentUploadDialog } from \"./InscriptionDocumentUploadDialog\";\n\nconst StyledRadioGroup = styled(RadioGroup)`\n display: flex;\n & > .${Classes.RADIO} {\n flex: 1;\n margin-left: 1rem;\n font-weight: bold;\n }\n`;\n\nexport interface IInscriptionProps {}\n\ntype DegreAndClasseChange = \"nothing\" | \"degreAndClasse\" | \"onlyDegre\" | \"onlyClasse\";\n\nexport const Inscription: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { ifapmeSide } = useTheme();\n const api = useApiService(InscriptionApi);\n const classeApi = useApiService(ClasseApi);\n const { id, inscriptionId, stateInscription } = useParams<{\n id: string;\n inscriptionId: string;\n stateInscription: string;\n }>();\n const idApprenant = React.useMemo(() => +id, [id]);\n const idInscription = React.useMemo(() => +inscriptionId, [inscriptionId]);\n const [hasLinkedData, setHasLinkedData] = React.useState(false);\n const [classeChanged, setClasseChanged] = React.useState(false);\n const [degreChanged, setDegreChanged] = React.useState(false);\n const [showStadeError, setShowStadeError] = React.useState(false);\n const [currentIdClasse, setIdClasse] = React.useState(0);\n const [blockEdit, setBlockEdit] = React.useState(false);\n const [hardDeleting, setHardDeleting] = React.useState(false);\n const { showDialogPromise } = useDialog();\n const { manageError } = useManageError();\n const [hasDispense] = useApiEffect(() => api.inscriptionHasDispense({ idInscription }), [idInscription]);\n const formikInnerRef = React.useRef>();\n\n const { search } = useLocation();\n const iddemandeInscription = React.useMemo(() => +(new URLSearchParams(search).get(\"iddemandeInscription\") ?? 0), [\n search\n ]);\n\n const { user } = useAuth();\n const canHardDelete = React.useMemo(() => user.iduser === 2, [user.iduser]);\n\n const hardDeleteInscription = React.useCallback(async () => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage),\n title: t(ETLCodes.DeleteDialogTitle)\n });\n if (result === \"yes\") {\n try {\n setHardDeleting(true);\n await api.inscriptionDelete({ id: +inscriptionId });\n setTimeout(() => {\n history.push(`${ERoutes.apprenant}/${idApprenant}/inscription`);\n }, 0);\n showSuccess(t(ETLCodes.DeleteSuccess));\n } catch (error) {\n manageError(error);\n }\n setHardDeleting(false);\n }\n }, [api, history, idApprenant, inscriptionId, manageError, showDialogPromise, t]);\n\n const getHardDeleteFn = React.useMemo(() => (canHardDelete && +inscriptionId > 0 ? hardDeleteInscription : null), [\n canHardDelete,\n hardDeleteInscription,\n inscriptionId\n ]);\n\n const deleteDialogTitle = React.useMemo(\n () => (hasLinkedData ? t(ETLCodes.DispensesOrChangementsExists) : undefined),\n [hasLinkedData, t]\n );\n\n const [checkCanDelete, checkCanDeleteLoading] = useApiEffect(\n React.useCallback(() => {\n return api.inscriptionCheckSoftDelete({\n id: +inscriptionId\n });\n }, [api, inscriptionId]),\n [api, inscriptionId]\n );\n\n const deleteFn = React.useCallback(\n async d => {\n await api.inscriptionSoftDelete({ id: d.idinscription });\n },\n [api]\n );\n\n const getCanDeleteFn = React.useMemo(() => {\n return checkCanDelete?.value && +inscriptionId > 0 ? deleteFn : null;\n }, [checkCanDelete?.value, inscriptionId, deleteFn]);\n\n const classeChangedWithDispense = React.useMemo(() => hasDispense?.value && classeChanged, [\n classeChanged,\n hasDispense?.value\n ]);\n\n const valueDegreAndClasseChange = React.useMemo(\n () =>\n !degreChanged && !classeChangedWithDispense\n ? \"nothing\"\n : degreChanged && classeChangedWithDispense\n ? \"degreAndClasse\"\n : degreChanged\n ? \"onlyDegre\"\n : \"onlyClasse\",\n [classeChangedWithDispense, degreChanged]\n );\n\n const saveInscription = React.useCallback(\n async (dto: FcbInscriptionDetailDto) => {\n let res: DialogResult = \"no\";\n\n if (idInscription > 0) {\n switch (valueDegreAndClasseChange) {\n case \"nothing\":\n res = \"yes\";\n break;\n case \"degreAndClasse\":\n res = await showDialogPromise({\n message: `${t(ETLCodes.Attention)}\n ${t(ETLCodes.InscriptionDegreModifiedMessage)}\n ${t(ETLCodes.InscriptionHasDispensesMessage)}\n ${t(ETLCodes.ValidationDialogMessage)}`,\n title: t(ETLCodes.InscriptionDegreModifiedAndHasDispenseTitle)\n });\n break;\n case \"onlyDegre\":\n res = await showDialogPromise({\n message: `${t(ETLCodes.Attention)}\n ${t(ETLCodes.InscriptionDegreModifiedMessage)}\n ${t(ETLCodes.ValidationDialogMessage)}`,\n title: t(ETLCodes.InscriptionDegreModifiedTitle)\n });\n break;\n case \"onlyClasse\":\n res = await showDialogPromise({\n message: `${t(ETLCodes.Attention)}\n ${t(ETLCodes.InscriptionHasDispensesMessage)}\n ${t(ETLCodes.ValidationDialogMessage)}`,\n title: t(ETLCodes.InscriptionHasDispensesTitle)\n });\n break;\n default:\n break;\n }\n } else {\n res = \"yes\";\n }\n\n if (res === \"yes\") {\n return api.inscriptionSave({ FcbInscriptionDetailDto: dto });\n }\n },\n [api, idInscription, showDialogPromise, t, valueDegreAndClasseChange]\n );\n const [formation, fLoading, refetchFormations] = useReferential(\n a => a.referentialGetFormationApprenant({ idApprenant: idApprenant }),\n true,\n [idApprenant]\n );\n\n const { data, loading, deleteItem, deleting, saveItem, saving, refresh: refreshData } = useCrudApi<\n FcbInscriptionDetailDto\n >(\n React.useMemo(\n () => ({\n getApiFn: () => api.inscriptionGet({ id: +inscriptionId, idapprenant: idApprenant, iddemandeInscription }),\n saveApiFn: saveInscription,\n onSavedRoute: d => `${ERoutes.apprenant}/${idApprenant}/inscription/${d.idinscription}/detail/edit`,\n onSaved: () => refetchFormations(),\n deleteApiFn: getCanDeleteFn,\n onDeletedRoute: () => `${ERoutes.apprenant}/${idApprenant}/inscription`,\n deleteDialogTitle\n }),\n [\n api,\n deleteDialogTitle,\n getCanDeleteFn,\n idApprenant,\n iddemandeInscription,\n inscriptionId,\n refetchFormations,\n saveInscription\n ]\n )\n );\n\n React.useEffect(() => {\n setHasLinkedData(\n data &&\n (data.nbDispenses > 0 ||\n data.nbChangementsClasse > 0 ||\n data.nbPresStats > 0 ||\n data.nbPresences > 0 ||\n data.nbPaiements > 0 ||\n data.nbReports > 0 ||\n data.nbEvals > 0 ||\n data.nbBulletins > 0)\n );\n }, [data]);\n\n const [classeRequest, setClassRequest] = React.useState({\n idCentre: 0,\n anneeScolaire: \"\",\n typeCours: \"\",\n idApprenant: 0,\n idClasse: 0,\n isARE: false,\n isSB: false\n });\n\n React.useEffect(() => {\n if (data && +inscriptionId > 0) {\n setClassRequest({\n idCentre: data.idcentre,\n anneeScolaire: data.anneeScolaire,\n typeCours: data.typecours,\n idApprenant: idApprenant,\n idClasse: data.idclasse,\n isARE: data.isARE,\n isSB: data.isSB\n });\n setIdClasse(data.idclasse);\n api\n .inscriptionCanEditInscription({ idInscription: +inscriptionId, idClasse: data.idclasse })\n .then(result => setBlockEdit(result.value));\n\n setDegreChanged(false);\n setClasseChanged(false);\n }\n }, [api, data, idApprenant, inscriptionId]);\n\n const [annee, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [typeCours, tcLoading] = useReferential(\n a => a.referentialGetTypeCours({ ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Hope : EIfapmeSide.Walter }),\n false,\n [ifapmeSide]\n );\n const [degre, dLoading] = useReferential(a => a.referentialGetDegre(), false, []);\n const [centre, cLoading] = useReferential(\n a => a.referentialGetCentreByUser({ idCentre: classeRequest?.idCentre }),\n true,\n [classeRequest?.idCentre]\n );\n const [statutInscription, siLoading] = useReferential(a => a.referentialGetStatutInscription(), true, []);\n\n const [idStade, setIdStade] = React.useState(0);\n const [stade, sLoading] = useReferential(a => a.referentialGetStade(), true, []);\n const [metier, mLoading] = useReferential(\n a => a.referentialMetierByStadeForApprenant({ idStade, idApprenant }),\n true,\n [idStade]\n );\n\n const fetchClasseDegreId = React.useCallback(async () => {\n if (!currentIdClasse || currentIdClasse === 0) return null;\n return await classeApi.classeGetDegreId({ classeId: currentIdClasse });\n }, [classeApi, currentIdClasse]);\n\n const { data: classeIdDegre, isLoading: classeIdDegreLoading } = useQuery(\n [\"inscription-degreId\", currentIdClasse, id],\n fetchClasseDegreId,\n { enabled: true }\n );\n\n const fetchClasseTypeCours = React.useCallback(async () => {\n if (!currentIdClasse || currentIdClasse === 0) return null;\n return await classeApi.classeGetTypeCours({ classeId: currentIdClasse });\n }, [classeApi, currentIdClasse]);\n\n const { data: classeTypeCours, isLoading: classeTypeCoursLoading } = useQuery(\n [\"inscription-typeCours\", currentIdClasse, id],\n fetchClasseTypeCours,\n { enabled: true }\n );\n\n React.useEffect(() => {\n if (\n classeIdDegre &&\n formikInnerRef.current?.values?.idclasse !== data?.idclasse &&\n formikInnerRef.current?.values?.degre !== classeIdDegre &&\n !iddemandeInscription\n ) {\n formikInnerRef.current.setFieldValue(\"degre\", classeIdDegre);\n }\n }, [classeIdDegre, data?.idclasse, iddemandeInscription]);\n\n const [classes, claLoading] = useReferential(a => a.referentialGetClasseForInscription(classeRequest), true, [\n classeRequest\n ]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape(\n {\n idclasse: Yup.string()\n .required(t(ETLCodes.Required))\n .nullable(),\n anneeScolaire: Yup.string()\n .required(t(ETLCodes.Required))\n .nullable(),\n typecours: Yup.string()\n .required(t(ETLCodes.Required))\n .nullable(),\n degre: Yup.string()\n .required(t(ETLCodes.Required))\n .nullable(),\n idcentre: Yup.number()\n .required(t(ETLCodes.Required))\n .nullable(),\n idformation: Yup.number()\n .nullable()\n .when(\"formation\", (value, schema) => (!value ? schema.required(t(ETLCodes.Required)) : schema)),\n formation: Yup.object()\n .nullable()\n .when(\"idformation\", (value, schema) =>\n !value\n ? schema.shape({\n idstade: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idmetier: Yup.number().required(t(ETLCodes.Required))\n })\n : schema\n ),\n dateConvocation: Yup.date()\n .nullable()\n .when(\"dateConvocationString\", (value, schema) => (!value ? schema.required(t(ETLCodes.Required)) : schema)),\n dateConvocationString: Yup.string()\n .nullable()\n .when(\"dateConvocation\", (value, schema) => (!value ? schema.required(t(ETLCodes.Required)) : schema)),\n dateInscription: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateFinSuspension: Yup.date()\n .nullable()\n .when(\"idinscriptionSuspendue\", (value, schema) =>\n value > 0 ? schema.required(t(ETLCodes.Required)) : schema\n )\n },\n [\n [\"idformation\", \"formation\"],\n [\"dateConvocation\", \"dateConvocationString\"],\n [\"dateFinSuspension\", \"idinscriptionSuspendue\"]\n ]\n );\n }, [t]);\n\n const SetFinale = React.useCallback(\n async (value: any, formik: FormikProps) => {\n if (formik.values?.idformation && formik.values?.degre) {\n const finale = await (\n await api.inscriptionComputeDegreFinal({\n idFormation: formik.values?.idformation,\n idDegre: formik.values?.degre\n })\n ).value;\n if (value !== data?.finale) {\n formik.setFieldValue(\"finale\", finale);\n }\n }\n },\n [api, data]\n );\n\n const checkStadeFormationClasse = React.useCallback(\n async (idFormation: number, idClasse: number) => {\n if (idFormation && idClasse) {\n const res = await api.inscriptionCheckStades({ idClasse: idClasse, idFormation: idFormation });\n setShowStadeError(!res.isValid);\n } else {\n setShowStadeError(false);\n }\n },\n [api]\n );\n\n const cannotDelete = React.useMemo(() => !!checkCanDelete && !checkCanDelete.value, [checkCanDelete]);\n\n const getDegreHint = React.useCallback(\n ctx =>\n !!ctx?.formik?.values?.degre &&\n classeIdDegre &&\n ctx?.formik?.values?.degre !== classeIdDegre && (\n {t(ETLCodes.DegreDifferentFromClasse)}\n ),\n [classeIdDegre, t]\n );\n\n const FetchUserSocieteExterneCanEdit = React.useCallback(() => {\n if (idInscription <= 0) return null;\n return api.inscriptionUserSocieteExterneCanEdit({ idInscription });\n }, [api, idInscription]);\n const { data: userSocieteExterneCanEdit } = useQuery(\n [\"user-societe-externe-can-edit\", idInscription, user?.iduser],\n FetchUserSocieteExterneCanEdit\n );\n\n const fetchInscriptionSuspendue = React.useCallback(async () => {\n if (!currentIdClasse || !iddemandeInscription || !data?.isARE) return null;\n return await api.inscriptionSuspendueByClasse({ idApprenant, idClasse: currentIdClasse });\n }, [api, currentIdClasse, data?.isARE, idApprenant, iddemandeInscription]);\n\n const { data: inscriptionSuspendue } = useQuery(\n [\"inscription-suspendue\", currentIdClasse, idApprenant],\n fetchInscriptionSuspendue\n );\n\n React.useEffect(() => {\n if (inscriptionSuspendue > 0) {\n formikInnerRef.current?.setFieldValue(\"idinscriptionSuspendue\", inscriptionSuspendue);\n }\n }, [inscriptionSuspendue]);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const deleteFichier = React.useCallback(\n async (idinscriptionFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idinscriptionFichier);\n await api.inscriptionDeleteFichier({\n id: idinscriptionFichier\n });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idinscriptionFichier: number) => {\n try {\n setRowLoading(idinscriptionFichier);\n const file = await api.inscriptionDownloadFichier({\n id: idinscriptionFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: InscriptionFichierGridDto) => (\n \n downloadFichier(row.idinscriptionFichier)}\n loading={rowLoading === row.idinscriptionFichier}\n disabled={!!rowLoading && rowLoading !== row.idinscriptionFichier}\n />\n deleteFichier(row.idinscriptionFichier)}\n loading={rowLoading === row.idinscriptionFichier}\n disabled={!!rowLoading && rowLoading !== row.idinscriptionFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(`${ERoutes.apprenant}/${idApprenant}/inscription`)}\n onDelete={deleteItem}\n deleteBtnDisabled={cannotDelete}\n onHardDelete={getHardDeleteFn}\n showDeleteButton={+inscriptionId > 0}\n saving={saving}\n deleting={deleting}\n hardDeleting={hardDeleting}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={150}\n formikInnerRef={formikInnerRef}\n >\n \n setClassRequest({\n idCentre: formik.values.idcentre,\n anneeScolaire: value,\n typeCours: formik.values.typecours,\n idApprenant,\n idClasse: data.idclasse,\n isARE: formik.values.isARE,\n isSB: formik.values.isSB\n })\n }\n />\n \n setClassRequest({\n idCentre: value,\n anneeScolaire: formik.values.anneeScolaire,\n typeCours: formik.values.typecours,\n idApprenant,\n idClasse: data.idclasse,\n isARE: formik.values.isARE,\n isSB: formik.values.isSB\n })\n }\n />\n \n setClassRequest({\n idCentre: formik.values.idcentre,\n anneeScolaire: formik.values.anneeScolaire,\n typeCours: value,\n idApprenant,\n idClasse: data.idclasse,\n isARE: formik.values.isARE,\n isSB: formik.values.isSB\n })\n }\n />\n SetFinale(value, formik)} />\n {\n SetFinale(value, formik);\n setDegreChanged(value !== data?.degre);\n }}\n />\n {\n setIdClasse(value);\n checkStadeFormationClasse(+formik.values.idformation, +value);\n setClasseChanged(value !== data.idclasse);\n }}\n />\n checkStadeFormationClasse(+value, +formik.values.idclasse)}\n />\n setIdStade(value)} />\n {\n value && formik.touched?.dateConvocationString && formik.setFieldValue(\"dateConvocation\", undefined);\n }}\n />\n {\n value && formik.touched?.dateConvocation && formik.setFieldValue(\"dateConvocationString\", undefined);\n }}\n />\n\n \n \n {ctx => (\n <>\n {\n if (e.currentTarget.value === \"1\") {\n ctx.formik.setFieldValue(\"idformation\", null);\n ctx.formik.setFieldValue(\"formation\", {});\n } else {\n ctx.formik.setFieldValue(\"idformation\", -1);\n ctx.formik.setFieldValue(\"formation\", null);\n }\n }}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n {ctx => (\n \n {!!data?.typeCoursDemandeSeulement && (\n \n )}\n {!!ctx?.formik?.values?.typecours &&\n classeTypeCours &&\n ctx?.formik?.values?.typecours !== classeTypeCours && (\n {t(ETLCodes.TypeCoursDifferentFromClasse)}\n )}\n \n }\n />\n )}\n \n 0 && cannotDelete}\n />\n \n \n \n 0}\n />\n \n \n \n \n {inscriptionSuspendue > 0 && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {ctx => }\n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n
\n {uploadDialoOpen && (\n \n )}\n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { InscriptionSuspensionSwitch } from \"..\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ChangementClasseSwitch } from \"./changementClasse/ChangementClasseSwitch\";\nimport { DispenseSwitch } from \"./dispense/DispenseSwitch\";\nimport { Inscription } from \"./Inscription\";\n\nexport interface IApprenantInscriptionDetailProps {}\n\nexport const ApprenantInscriptionDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, inscriptionId, tabInscription, stateInscription = \"view\" } = useParams<{\n id: string;\n inscriptionId: string;\n tabInscription: string;\n stateInscription: string;\n }>();\n const idApprenant = React.useMemo(() => +id, [id]);\n const idInscription = React.useMemo(() => +inscriptionId, [inscriptionId]);\n\n return (\n {\n if (newTabId === \"detail\") {\n history.push(\n `${ERoutes.apprenant}/${idApprenant}/inscription/${idInscription}/${newTabId}/${\n stateInscription !== \"0\" ? stateInscription : \"view\"\n }`\n );\n } else {\n history.push(`${ERoutes.apprenant}/${idApprenant}/inscription/${idInscription}/${newTabId}`);\n }\n }}\n selectedTabId={tabInscription}\n renderActiveTabPanelOnly\n vertical\n >\n } panelClassName=\"full-width-panel\" />\n }\n panelClassName=\"full-width-panel\"\n disabled={+inscriptionId <= 0}\n />\n }\n panelClassName=\"full-width-panel\"\n disabled={+inscriptionId <= 0}\n />\n }\n panelClassName=\"full-width-panel\"\n disabled={+inscriptionId <= 0}\n />\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { InscriptionAbandonDto, InscriptionApi } from \"../../../../../api\";\nimport * as Yup from \"yup\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { FGWalterDateMaskInput, SmallFormGenerator } from \"../../../../../components\";\nimport { FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 500px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IInscriptionAbandonDetailDialogProps {\n dialogOpen: boolean;\n onClose: (toSave?: InscriptionAbandonDto) => void;\n currentAbandon: InscriptionAbandonDto;\n}\n\nexport const InscriptionAbandonDetailDialog: React.FunctionComponent = ({\n currentAbandon,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(InscriptionApi);\n\n const { data, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => currentAbandon,\n saveApiFn: async d => {\n await api.inscriptionAbandon({ InscriptionAbandonDto: d });\n return d;\n },\n onSaved: d => onClose(d),\n serverValidationRootKey: \"Dto\"\n }),\n [api, currentAbandon, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n dateAbandon: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n saving={saving}\n minLabelWidth={100}\n validationErrors={validationErrors}\n preventDefaultSaveOnEnter\n >\n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { InscriptionSuspensionApi, InscriptionSuspensionMultipleDto } from \"../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGWalterDateMaskInput, SmallFormGenerator } from \"../../../../../components\";\nimport { FGTextAreaInput, FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 500px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IInscriptionSuspensionMultipleDialogProps {\n dialogOpen: boolean;\n onClose: (toSave?: InscriptionSuspensionMultipleDto) => void;\n currentSuspension: InscriptionSuspensionMultipleDto;\n endMode?: boolean;\n}\n\nexport const InscriptionSuspensionMultipleDialog: React.FunctionComponent = ({\n currentSuspension,\n dialogOpen,\n onClose,\n endMode = false\n}) => {\n const { t } = useTl();\n const api = useApiService(InscriptionSuspensionApi);\n\n const { data, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => currentSuspension,\n saveApiFn: async d => {\n await api.inscriptionSuspensionSaveInscriptionSuspensionMultiple({ InscriptionSuspensionMultipleDto: d });\n return currentSuspension;\n },\n onSaved: d => onClose(d),\n serverValidationRootKey: \"Dto\"\n }),\n [api, currentSuspension, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape(\n {\n dateDebut: endMode\n ? Yup.date().nullable()\n : Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.max(Yup.ref(\"dateFin\"), t(ETLCodes.DateDebutGreaterThanDateFin)) : schema\n )\n .required(t(ETLCodes.Required)),\n dateFin: endMode\n ? Yup.date()\n .nullable()\n .required(t(ETLCodes.Required))\n : Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.min(Yup.ref(\"dateDebut\"), t(ETLCodes.DateFinGreaterThanDateDebut)) : schema\n )\n },\n [[\"dateFin\", \"dateFin\"]]\n ),\n [endMode, t]\n );\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n saving={saving}\n minLabelWidth={100}\n validationErrors={validationErrors}\n preventDefaultSaveOnEnter\n >\n \n {}\n \n \n \n \n
\n
\n );\n};\n","import { Button, Checkbox, Intent, Menu, MenuItem, Popover, Spinner } from \"@blueprintjs/core\";\r\nimport { IconNames } from \"@blueprintjs/icons\";\r\nimport { ButtonContainer, showError, showSuccess } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport styled from \"styled-components\";\r\n\r\nimport { InscriptionSuspensionDetailDialog } from \"..\";\r\nimport {\r\n ETextSearchType,\r\n FcbInscriptionGridDto,\r\n InscriptionAbandonDto,\r\n InscriptionAbandonDtoFromJSON,\r\n InscriptionApi,\r\n InscriptionSearch,\r\n InscriptionSuspensionApi,\r\n InscriptionSuspensionDto,\r\n InscriptionSuspensionMultipleDto,\r\n InscriptionSuspensionMultipleDtoFromJSON\r\n} from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport { AddButton, EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\r\nimport { useAuth, useEventsContext, useGlobalData } from \"../../../../../contexts\";\r\nimport { useAbortableApiServiceFactory, useApiService, useManageError, useTheme, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\nimport { InscriptionAbandonDetailDialog } from \"./InscriptionAbandonDetailDialog\";\r\nimport { InscriptionSuspensionMultipleDialog } from \"./InscriptionSuspensionMultipleDialog\";\r\n\r\nconst PopoverContent = styled.div`\r\n padding: 0.5rem;\r\n`;\r\n\r\nexport interface IApprenantInscriptionSearchProps {}\r\n\r\nexport const ApprenantInscriptionSearch: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const { user } = useAuth();\r\n const history = useHistory();\r\n const { id } = useParams<{ id: string }>();\r\n const { currentAnneeScolaire } = useGlobalData();\r\n const apprenantId = React.useMemo(() => +id, [id]);\r\n const api = useApiService(InscriptionApi);\r\n const sApi = useApiService(InscriptionSuspensionApi);\r\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/inscription`, [apprenantId]);\r\n const { ifapmeSide } = useTheme();\r\n const isHope = React.useMemo(() => ifapmeSide === \"hope\", [ifapmeSide]);\r\n const { dispatchEvent } = useEventsContext();\r\n const [currentSuspension, setCurrentSuspension] = React.useState(null);\r\n const [currentEditSuspension, setCurrentEditSuspension] = React.useState(null);\r\n const [currentEndSuspension, setCurrentEndSuspension] = React.useState(null);\r\n const [currentAbandon, setCurrentAbandon] = React.useState(null);\r\n const [selectedIDs, setSelectedIDs] = React.useState([]);\r\n const lastSearchObject = React.useRef();\r\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\r\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\r\n\r\n const onAddSuspensionClick = React.useCallback(idsinscription => {\r\n setCurrentSuspension(InscriptionSuspensionMultipleDtoFromJSON({ idsinscription: idsinscription }));\r\n }, []);\r\n\r\n const onEndSuspensionClick = React.useCallback(idsinscription => {\r\n setCurrentEndSuspension(\r\n InscriptionSuspensionMultipleDtoFromJSON({ idsinscription: idsinscription, endMode: true })\r\n );\r\n }, []);\r\n\r\n const onClose = React.useCallback(\r\n (toSave: InscriptionSuspensionMultipleDto) => {\r\n if (!!toSave) {\r\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\r\n }\r\n setCurrentSuspension(null);\r\n setCurrentEndSuspension(null);\r\n },\r\n [dispatchEvent]\r\n );\r\n\r\n const [actionsLoading, setActionsLoading] = React.useState(false);\r\n const onEditSuspensionClick = React.useCallback(\r\n async (row: FcbInscriptionGridDto) => {\r\n setActionsLoading(true);\r\n try {\r\n const suspension = await sApi.inscriptionSuspensionGetByInscriptionId({ idinscription: row.idinscription });\r\n setCurrentEditSuspension(suspension);\r\n } finally {\r\n setActionsLoading(false);\r\n }\r\n },\r\n [sApi]\r\n );\r\n\r\n const onCloseEdit = React.useCallback(\r\n (toSave: InscriptionSuspensionDto) => {\r\n if (!!toSave) {\r\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\r\n }\r\n setCurrentEditSuspension(null);\r\n },\r\n [dispatchEvent]\r\n );\r\n\r\n const onAbandonClick = React.useCallback((idsinscription: number[]) => {\r\n setCurrentAbandon(InscriptionAbandonDtoFromJSON({ idsinscription: idsinscription }));\r\n }, []);\r\n\r\n const onCloseAbandon = React.useCallback(\r\n (toSave: InscriptionAbandonDto) => {\r\n if (!!toSave) {\r\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\r\n }\r\n setCurrentAbandon(null);\r\n },\r\n [dispatchEvent]\r\n );\r\n\r\n const { manageError } = useManageError();\r\n const onTerminerClick = React.useCallback(\r\n async (idsinscription: number[]) => {\r\n try {\r\n await api.inscriptionTerminer({ request_body: idsinscription });\r\n showSuccess(t(ETLCodes.InscriptionTermineeAvecSucces));\r\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\r\n } catch (e) {\r\n manageError(e);\r\n }\r\n },\r\n [api, dispatchEvent, manageError, t]\r\n );\r\n\r\n const selectAll = React.useCallback(() => {\r\n setSelectAllLoading(true);\r\n api\r\n .inscriptionSearchIds({\r\n InscriptionSearch: {\r\n ...lastSearchObject.current,\r\n statuts: [\"En cours\", \"Suspendue\"],\r\n forceSkip: 0,\r\n forceTake: 999999\r\n }\r\n })\r\n .then(allIds => {\r\n if (allIds.length === 0) showError(t(ETLCodes.AucuneInscriptionElligiblesAuxActionsMultiples));\r\n if (allIds.length === selectedIDs.length) {\r\n setSelectedIDs([]);\r\n setNbReturnedIds(0);\r\n } else {\r\n setSelectedIDs(allIds);\r\n setNbReturnedIds(allIds.length);\r\n }\r\n setSelectAllLoading(false);\r\n });\r\n }, [api, selectedIDs.length, t]);\r\n\r\n const toggleSelection = React.useCallback(\r\n (item: FcbInscriptionGridDto) => {\r\n if (!selectedIDs.includes(item.idinscription)) {\r\n setSelectedIDs(ids => [...ids, item.idinscription]);\r\n } else {\r\n setSelectedIDs(ids => ids.filter(id => id !== item.idinscription));\r\n }\r\n },\r\n [selectedIDs]\r\n );\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"checkboxes\",\r\n autoFitContent: true,\r\n header: () =>\r\n selectAllLoading ? (\r\n \r\n ) : (\r\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\r\n ),\r\n render: (item: FcbInscriptionGridDto) => (\r\n {\r\n toggleSelection(item);\r\n }}\r\n />\r\n )\r\n },\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbInscriptionGridDto) => (\r\n \r\n history.push(`${path}/${row.idinscription}/detail/view`)} />\r\n {!isHope &&\r\n (!user.idsSocieteExterne?.length ||\r\n user.idsSocieteExterne.some(idsocieteExterne => row.idssocieteExterne.includes(idsocieteExterne))) && (\r\n history.push(`${path}/${row.idinscription}/detail/edit`)} />\r\n )}\r\n {!isHope &&\r\n (!user.idsSocieteExterne?.length ||\r\n user.idsSocieteExterne.some(idsocieteExterne => row.idssocieteExterne.includes(idsocieteExterne))) &&\r\n (user?.hopeMainLevelName === \"CENTRE - Global\" || user?.isAdmin) && (\r\n \r\n \r\n onAbandonClick([row.idinscription])}\r\n disabled={![\"En cours\", \"Suspendue\"].includes(row.statut)}\r\n />\r\n {row.statut === \"En cours\" && (\r\n onAddSuspensionClick([row.idinscription])}\r\n />\r\n )}\r\n {row.statut === \"Suspendue\" && (\r\n onEditSuspensionClick(row)}\r\n />\r\n )}\r\n onTerminerClick([row.idinscription])}\r\n disabled={![\"En cours\", \"Suspendue\"].includes(row.statut)}\r\n />\r\n \r\n \r\n }\r\n >\r\n \r\n \r\n )}\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.Code),\r\n fieldName: \"codeFormation\",\r\n computed: true\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"anneeScolaire\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.DateInscription),\r\n fieldName: \"dateInscription\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.Statut),\r\n fieldName: \"statut\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Contrat),\r\n fieldName: \"contrat\"\r\n },\r\n {\r\n header: () => t(ETLCodes.CodeClasse),\r\n fieldName: \"codeClasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.NomClasse),\r\n fieldName: \"nomClasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Inscription),\r\n fieldName: \"codeInscription\"\r\n }\r\n ],\r\n [\r\n actionsLoading,\r\n history,\r\n isHope,\r\n nbReturnedIds,\r\n onAbandonClick,\r\n onAddSuspensionClick,\r\n onEditSuspensionClick,\r\n onTerminerClick,\r\n path,\r\n selectAll,\r\n selectAllLoading,\r\n selectedIDs,\r\n t,\r\n toggleSelection,\r\n user?.hopeMainLevelName,\r\n user.idsSocieteExterne,\r\n user?.isAdmin\r\n ]\r\n );\r\n\r\n const onAddItem = React.useCallback(() => {\r\n if (isHope) return null;\r\n history.push(`${path}/0/detail/edit`);\r\n }, [history, isHope, path]);\r\n\r\n const getCriteriasFn = React.useCallback(() => api.inscriptionGetSearchCriterias({ includeListsValues: true }), [\r\n api\r\n ]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(InscriptionApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (sObj?: InscriptionSearch) => {\r\n sObj.idapprenant = apprenantId;\r\n if (JSON.stringify(sObj) !== JSON.stringify(lastSearchObject.current)) {\r\n lastSearchObject.current = sObj;\r\n }\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.inscriptionBaseSearch({ InscriptionSearch: sObj });\r\n },\r\n [apiFactory, apprenantId]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n const buttons = React.useMemo(\r\n () => (\r\n <>\r\n \r\n \r\n onAbandonClick(selectedIDs)}\r\n />\r\n onAddSuspensionClick(selectedIDs)}\r\n />\r\n onEndSuspensionClick(selectedIDs)}\r\n />\r\n onTerminerClick(selectedIDs)}\r\n />\r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n [onAbandonClick, onAddItem, onAddSuspensionClick, onEndSuspensionClick, onTerminerClick, selectedIDs, t]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n {!!currentSuspension && (\r\n \r\n )}\r\n {!!currentEndSuspension && (\r\n \r\n )}\r\n {!!currentEditSuspension && (\r\n \r\n )}\r\n {!!currentAbandon && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ApprenantInscriptionDetail } from \"./ApprenantInscriptionDetail\";\nimport { ApprenantInscriptionSearch } from \"./ApprenantInscriptionSearch\";\nimport { ERoutes } from \"../../../../../AppRouter\";\n\ninterface IApprenantInscriptionProps {}\n\nexport const ApprenantInscription: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\nimport * as React from \"react\";\n\nimport { FcbJustificatifAbsenceGridDto, JustificatifAbsenceApi, JustificatifAbsenceSearch } from \"../../../../../api\";\nimport { SearchTablePage, ViewButton, EditButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useParams, useHistory } from \"react-router\";\nimport { IDataTableColumn, ButtonContainer } from \"nsitools-react\";\nimport { ERoutes } from \"../../../../../AppRouter\";\n\ninterface IApprenantJustificatifsSearchProps {}\n\nexport const ApprenantJustificatifsSearch: React.FunctionComponent = () => {\n const { t } = useTl();\n const { tUnsafe } = useTl();\n const api = useApiService(JustificatifAbsenceApi);\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbJustificatifAbsenceGridDto) => (\n \n history.push(`${ERoutes.apprenant}/${id}/justificatifs/${row.idJustificatif}/view`)}\n />\n history.push(`${ERoutes.apprenant}/${id}/justificatifs/${row.idJustificatif}/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n },\n {\n header: () => t(ETLCodes.Genre),\n fieldName: \"genre\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"type\"\n },\n {\n header: () => t(ETLCodes.Accepte),\n fieldName: \"accepte\",\n autofitcontent: true,\n alignment: \"center\",\n render: (row: FcbJustificatifAbsenceGridDto) => \n },\n {\n header: () => t(ETLCodes.Jours),\n fieldName: \"jours\",\n render: (row: FcbJustificatifAbsenceGridDto) => (\n <>{row.jours.length > 0 ? row.jours.map(jour => tUnsafe(jour)).join(\" / \") : \"\"}\n )\n },\n {\n header: () => t(ETLCodes.Plages),\n fieldName: \"plages\"\n },\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"remarque\"\n }\n ],\n [history, id, t, tUnsafe]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.apprenant}/${+id}/justificatifs/0/edit`);\n }, [history, id]);\n\n const getCriterias = React.useCallback(\n () => api.justificatifAbsenceGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(JustificatifAbsenceApi);\n const lastAbortController = React.useRef();\n const searchFunction = React.useCallback(\n (sObj?: JustificatifAbsenceSearch) => {\n sObj.idApprenant = +id;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.justificatifAbsenceBaseSearch({ JustificatifAbsenceSearch: sObj });\n },\n [apiFactory, id]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n +id > 0 && (\n \n )\n );\n};\n","import { Divider } from \"@blueprintjs/core\";\nimport { FGEmpty, FGListen, FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbJustificatifsAbsenceDetailsDtoFromJSON, JustificatifAbsenceApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterMultiCheckboxInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IApprenantJustificatifsDetailProps {}\n\nexport const ApprenantJustificatifsDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(JustificatifAbsenceApi);\n const history = useHistory();\n\n const { id, justificatifId, state } = useParams<{ id: string; justificatifId: string; state: string }>();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +justificatifId <= 0\n ? FcbJustificatifsAbsenceDetailsDtoFromJSON({\n justificatifId: 0,\n idapprenant: +id,\n accepte: true,\n dateDebut: new Date(),\n dateFin: new Date(),\n plages: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n jours: [1, 2, 3, 4, 5, 6, 7]\n })\n : api.justificatifAbsenceGet({ id: +justificatifId }),\n saveApiFn: d => api.justificatifAbsenceSave({ FcbJustificatifsAbsenceDetailsDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${+id}/justificatifs`,\n deleteApiFn: d => api.justificatifAbsenceDelete({ id: +justificatifId }),\n onDeletedRoute: () => `${ERoutes.apprenant}/${+id}/justificatifs`\n });\n\n const [disabledTypeRequest, setDisabledTypeRequest] = React.useState(false);\n const [disabledAccepteRequest, setDisabledAccepteRequest] = React.useState(false);\n\n const [types, tLoading] = useReferential(a => a.referentialGetTypeJustificatifs(), true, []);\n const [genres, gLoading] = useReferential(a => a.referentialGetGenreJustificatifs(), false, []);\n const [centres, cLoading] = useReferential(a => a.referentialGetCentre(), true, []);\n const [plages, pLoading] = useReferential(a => a.referentialGetJustificatifsPlages(), true, [], false);\n\n const jours = React.useMemo(\n () => [\n {\n label: t(ETLCodes.Lundi),\n value: 2\n },\n {\n label: t(ETLCodes.Mardi),\n value: 3\n },\n {\n label: t(ETLCodes.Mercredi),\n value: 4\n },\n {\n label: t(ETLCodes.Jeudi),\n value: 5\n },\n {\n label: t(ETLCodes.Vendredi),\n value: 6\n },\n {\n label: t(ETLCodes.Samedi),\n value: 7\n },\n {\n label: t(ETLCodes.Dimanche),\n value: 1\n }\n ],\n [t]\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idcentre: Yup.string().required(t(ETLCodes.Required)),\n dateDebut: Yup.date()\n .max(Yup.ref(\"dateFin\"), t(ETLCodes.DateDebutGreaterThanDateFin))\n .required(t(ETLCodes.Required)),\n dateFin: Yup.date()\n .min(Yup.ref(\"dateDebut\"), t(ETLCodes.DateFinGreaterThanDateDebut))\n .required(t(ETLCodes.Required)),\n idjustificatifGenre: Yup.string().required(t(ETLCodes.Required)),\n idjustificatifType: Yup.number().when(\"idjustificatifGenre\", (value, schema) =>\n value === \"J\" ? schema.required(t(ETLCodes.Required)) : schema\n )\n });\n }, [t]);\n\n return (\n data && (\n history.push(`${ERoutes.apprenant}/${id}/justificatifs`)}\n onDelete={deleteItem}\n showDeleteButton={+justificatifId > 0}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd/MM/yyyy\"\n >\n {\n setDisabledTypeRequest(value !== \"J\");\n setDisabledAccepteRequest(value === \"R\");\n if (value !== data.idjustificatifGenre) {\n formik.setFieldValue(\"accepte\", value !== \"R\" ? formik.values.accepte : false);\n formik.setFieldValue(\"idjustificatifType\", value === \"J\" ? formik.values.idjustificatifType : undefined);\n }\n }}\n />\n {\n if (value !== undefined && value !== data.idjustificatifType) {\n const legit = await api.justificatifAbsenceGetLegalite({ id: value });\n formik.setFieldValue(\"legitime\", legit.value);\n formik.setFieldValue(\"accepte\", legit.value);\n }\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import * as React from \"react\";\n\nimport { useRouteMatch, Switch, Route } from \"react-router\";\nimport { ApprenantJustificatifsSearch } from \"./ApprenantJustificatifsSearch\";\nimport { ApprenantJustificatifsDetail } from \"./ApprenantJustificatifDetail\";\n\ninterface IApprenantJustificatifsProps {}\n\nexport const ApprenantJustificatifs: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n );\n};\n","import { FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { DemandeApprenantApi, FcbDemandeApprenantDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantRecherchePatronDetailPageProps {}\n\nexport const ApprenantRecherchePatronDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(DemandeApprenantApi);\n const { id, idRecherchePatron, state } = useParams<{ id: string; idRecherchePatron: string; state: string }>();\n const idApprenant = React.useMemo(() => +id, [id]);\n const IdRecherchePatron = React.useMemo(() => +idRecherchePatron, [idRecherchePatron]);\n\n const [metier, metierLoading] = useReferential(a => a.referentialGetMetier(), true, []);\n const [delegue, delegueLoading] = useReferential(a => a.referentialGetDelegue(), true, []);\n const [type, typeLoading] = useReferential(a => a.referentialGetDemandeType(), true, []);\n const [centre, centreLoading] = useReferential(a => a.referentialGetCentre(), true, []);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n IdRecherchePatron <= 0\n ? FcbDemandeApprenantDtoFromJSON({ iddemande: 0, idapprenant: id })\n : api.demandeApprenantGet({ id: IdRecherchePatron }),\n saveApiFn: d => api.demandeApprenantSave({ FcbDemandeApprenantDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${idApprenant}/recherchepatron/${d.iddemande}/edit`,\n deleteApiFn: d => api.demandeApprenantDelete({ id: d.iddemande }),\n onDeletedRoute: d => `${ERoutes.apprenant}/${idApprenant}/recherchepatron`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape(\n {\n idtype: Yup.number().required(t(ETLCodes.Required)),\n idcentre: Yup.number()\n .nullable()\n .when(\"iddelegueTutelle\", (value, schema) =>\n value === undefined || value === null\n ? schema\n .required(t(ETLCodes.Required))\n .notOneOf([0, -1, null, undefined], t(ETLCodes.CentreOuDelegueRequis))\n : schema\n ),\n iddelegueTutelle: Yup.number()\n .nullable()\n .when(\"idcentre\", (value, schema) =>\n value === undefined || value === null\n ? schema\n .required(t(ETLCodes.Required))\n .notOneOf([0, -1, null, undefined], t(ETLCodes.CentreOuDelegueRequis))\n : schema\n ),\n date: Yup.string().required(t(ETLCodes.Required)),\n idmetier: Yup.number().required(t(ETLCodes.Required))\n },\n [[\"idcentre\", \"iddelegueTutelle\"]]\n );\n }, [t]);\n\n return (\n history.push(`${ERoutes.apprenant}/${idApprenant}/recherchepatron`)}\n onDelete={deleteItem}\n showDeleteButton={IdRecherchePatron > 0}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n >\n \n \n \n \n \n \n \n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { DemandeApprenantApi } from \"../../../../../api/apis/DemandeApprenantApi\";\nimport { DemandeApprenantSearch } from \"../../../../../api/models/DemandeApprenantSearch\";\nimport { FcbDemandeApprenantGridDto } from \"../../../../../api/models/FcbDemandeApprenantGridDto\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantRecherchePatronListPageProps {}\n\nexport const ApprenantRecherchePatronListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const api = useApiService(DemandeApprenantApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/recherchepatron`, [apprenantId]);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { date: \"DESC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: DemandeApprenantSearch) => {\n sObj.idApprenant = apprenantId;\n return api.demandeApprenantBaseSearch({ DemandeApprenantSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbDemandeApprenantGridDto) => (\n \n history.push(`${path}/${row.iddemande}/view`)} />\n history.push(`${path}/${row.iddemande}/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Metier),\n fieldName: \"metier\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"type\"\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.Delegue),\n fieldName: \"delegueTutelle\"\n }\n ],\n [history, path, t]\n );\n\n return (\n <>\n {\n e.stopPropagation();\n history.push(`${path}/0/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n >\n
\n \n \n );\n};\n","import * as React from \"react\";\nimport { useRouteMatch, Switch, Route } from \"react-router\";\nimport { ApprenantRecherchePatronDetailPage } from \"./ApprenantRecherchePatronDetailPage\";\nimport { ApprenantRecherchePatronListPage } from \"./ApprenantRecherchePatronListPage\";\n\ninterface IApprenantRecherchePatronProps {\n apprenantId: number;\n}\n\nexport const ApprenantRecherchePatron: React.FunctionComponent = () => {\n const match = useRouteMatch();\n return (\n \n \n \n \n );\n};\n","import { IOptionProps } from \"@blueprintjs/core\";\nimport { FormikProps } from \"formik\";\nimport { FGCustomPanel, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport * as Yup from \"yup\";\n\nimport {\n ApprenantApi,\n ApprenantRepresentantHopeApi,\n ApprenantRepresentantInstitutionEditDto,\n ApprenantRepresentantInstitutionEditDtoFromJSON,\n InstitutionApi,\n RepresentantApi\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n CommuneSelect,\n FGWalterCheckboxInput,\n FGWalterSelectInput,\n InstitutionSelectorField,\n LocaliteSelect,\n RepresentantSelectorField,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantRepresentantInstitutionDetailProps {\n onTypeRepresentantChange: (typeAcquis: string) => void;\n}\n\nexport const ApprenantRepresentantInstitutionDetail: React.FunctionComponent = ({\n onTypeRepresentantChange\n}) => {\n const { t, tUnsafe } = useTl();\n const history = useHistory();\n const [typeRepresentant, trLoading] = useReferential(a => a.referentialGetRepresentantTypes(), false, []);\n const mappedTypeRepresentant = React.useMemo(\n () => typeRepresentant?.map(l => ({ ...l, label: tUnsafe(l.label) } as IOptionProps)) ?? [],\n [typeRepresentant, tUnsafe]\n );\n const formikInnerRef = React.useRef>();\n const { id, state, subId } = useParams<{\n id: string;\n tab: string;\n state: string;\n subId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n const api = useApiService(ApprenantRepresentantHopeApi);\n const institutionApi = useApiService(InstitutionApi);\n const representantApi = useApiService(RepresentantApi);\n const apprenantApi = useApiService(ApprenantApi);\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +subId <= 0\n ? ApprenantRepresentantInstitutionEditDtoFromJSON({\n idapprenant: +id,\n type: \"Institution\"\n })\n : api.apprenantRepresentantHopeGetApprenantRepresentantInstitution({\n idapprenant: +id,\n idapprenantInstitution: +subId\n });\n },\n saveApiFn: d =>\n api.apprenantRepresentantHopeSaveApprenantRepresentantInstitution({\n ApprenantRepresentantInstitutionEditDto: d\n }),\n onSavedRoute: d => `${ERoutes.apprenant}/${id}/representants`,\n getDeps: [subId],\n deleteApiFn: d =>\n api.apprenantRepresentantHopeDeleteApprenantRepresentantInstitution({\n idapprenantInstitution: d.idapprenantInstitution,\n idapprenant: d.idapprenant\n }),\n onDeletedRoute: () => `${ERoutes.apprenant}/${id}/representants`\n }),\n [subId, id, api]\n )\n );\n\n const [institutionIdFromSelect, setInstitutionIdFromSelect] = React.useState(0);\n const [previousIdinstitution, setPreviousIdinstitution] = React.useState(data?.idinstitution);\n React.useEffect(() => {\n if (data?.idinstitution) {\n setPreviousIdinstitution(data?.idinstitution);\n setInstitutionIdFromSelect(data?.idinstitution);\n }\n }, [data?.idinstitution]);\n const fetchInstitutiontId = React.useCallback(async () => {\n if (!institutionIdFromSelect || institutionIdFromSelect === 0) return null;\n return await institutionApi.institutionGetInstitution({ id: institutionIdFromSelect });\n }, [institutionApi, institutionIdFromSelect]);\n\n const { data: representantInstitution } = useQuery(\n [\"representant-for-select\", institutionIdFromSelect],\n fetchInstitutiontId,\n { enabled: true }\n );\n React.useEffect(() => {\n if (\n institutionIdFromSelect !== 0 &&\n institutionIdFromSelect !== previousIdinstitution &&\n !!representantInstitution &&\n !loading\n ) {\n formikInnerRef.current?.setFieldValue(\"adresseInstitution\", representantInstitution?.adresse);\n formikInnerRef.current?.setFieldValue(\"localiteInstitution\", representantInstitution?.localite);\n formikInnerRef.current?.setFieldValue(\"communeInstitution\", representantInstitution?.localite);\n formikInnerRef.current?.setFieldValue(\"gsmInstitution\", representantInstitution?.gsm);\n formikInnerRef.current?.setFieldValue(\"telephoneInstitution\", representantInstitution?.telephone);\n formikInnerRef.current?.setFieldValue(\"emailInstitution\", representantInstitution?.email);\n setPreviousIdinstitution(institutionIdFromSelect);\n }\n }, [institutionIdFromSelect, loading, previousIdinstitution, representantInstitution]);\n\n const [representantIdFromSelect, setRepresentantIdFromSelect] = React.useState(0);\n const [previousIdrepresentant, setPreviousIdrepresentant] = React.useState(data?.idrepresentant);\n React.useEffect(() => {\n if (data?.idrepresentant) {\n setPreviousIdrepresentant(data?.idrepresentant);\n setRepresentantIdFromSelect(data?.idrepresentant);\n }\n }, [data?.idrepresentant]);\n const fetchRepresentantId = React.useCallback(async () => {\n if (!representantIdFromSelect || representantIdFromSelect === 0) return null;\n return await representantApi.representantGet({ id: representantIdFromSelect });\n }, [representantApi, representantIdFromSelect]);\n\n const { data: representantPersonne } = useQuery(\n [\"representant-for-select\", representantIdFromSelect],\n fetchRepresentantId,\n { enabled: true }\n );\n\n React.useEffect(() => {\n if (\n representantIdFromSelect !== 0 &&\n representantIdFromSelect !== previousIdrepresentant &&\n !loading &&\n !!representantPersonne\n ) {\n formikInnerRef.current?.setFieldValue(\"idgsmPersonne\", representantPersonne?.gsmRepresentant?.idtelephone);\n formikInnerRef.current?.setFieldValue(\n \"idtelephonePersonne\",\n representantPersonne?.telephoneRepresentant?.idtelephone\n );\n formikInnerRef.current?.setFieldValue(\"idemailPersonne\", representantPersonne?.emailRepresentant?.idemail);\n setPreviousIdrepresentant(representantIdFromSelect);\n }\n }, [loading, previousIdrepresentant, representantIdFromSelect, representantPersonne]);\n\n const { data: alreadyContact } = useQuery(\n [\"alreadyContact-check\"],\n () => {\n return api.apprenantRepresentantHopeAlreadyHasEmergencyContactQuery({\n idapprenant: +id,\n idapprenantInstitution: +subId\n });\n },\n { enabled: true }\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape(\n {\n type: Yup.string().required(t(ETLCodes.Required)),\n idinstitution: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n gsmInstitution: Yup.string()\n .nullable()\n .when([\"telephoneInstitution\", \"emailInstitution\"], {\n is: (telephoneInstitution, emailInstitution) => !telephoneInstitution && !emailInstitution,\n then: Yup.string()\n .nullable()\n .required(t(ETLCodes.AtLeastOneContactField))\n }),\n telephoneInstitution: Yup.string()\n .nullable()\n .when([\"emailInstitution\", \"gsmInstitution\"], {\n is: (gsmInstitution, emailInstitution) => !gsmInstitution && !emailInstitution,\n then: Yup.string()\n .nullable()\n .required(t(ETLCodes.AtLeastOneContactField))\n }),\n emailInstitution: Yup.string()\n .nullable()\n .when([\"telephoneInstitution\", \"gsmInstitution\"], {\n is: (gsmInstitution, telephoneInstitution) => !gsmInstitution && !telephoneInstitution,\n then: Yup.string()\n .nullable()\n .required(t(ETLCodes.AtLeastOneContactField))\n }),\n idgsmPersonne: Yup.number()\n .nullable()\n .when([\"idtelephonePersonne\", \"idemailPersonne\", \"idrepresentant\"], {\n is: (idtelephonePersonne, idemailPersonne, idrepresentant) =>\n !!idrepresentant && !idtelephonePersonne && !idemailPersonne,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.AtLeastOneContactField))\n }),\n idtelephonePersonne: Yup.number()\n .nullable()\n .when([\"idemailPersonne\", \"idgsmPersonne\", \"idrepresentant\"], {\n is: (idgsmPersonne, idemailPersonne, idrepresentant) =>\n !!idrepresentant && !idgsmPersonne && !idemailPersonne,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.AtLeastOneContactField))\n }),\n idemailPersonne: Yup.number()\n .nullable()\n .when([\"idtelephonePersonne\", \"idgsmPersonne\", \"idrepresentant\"], {\n is: (idgsmPersonne, idtelephonePersonne, idrepresentant) =>\n !!idrepresentant && !idgsmPersonne && !idtelephonePersonne,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.AtLeastOneContactField))\n })\n },\n [\n [\"gsmInstitution\", \"telephoneInstitution\"],\n [\"gsmInstitution\", \"emailInstitution\"],\n [\"telephoneInstitution\", \"emailInstitution\"],\n [\"idgsmPersonne\", \"idtelephonePersonne\"],\n [\"idgsmPersonne\", \"idemailPersonne\"],\n [\"idtelephonePersonne\", \"idemailPersonne\"]\n ]\n );\n }, [t]);\n\n const fetchIdPersonne = React.useCallback(async () => {\n if (!+(representantIdFromSelect ?? 0)) return 0;\n\n return await representantApi.representantGetIdpersonne({ idrepresentant: representantIdFromSelect });\n }, [representantApi, representantIdFromSelect]);\n const { data: idpersonne } = useQuery(\n [\"apprenant-representant-idpersonne\", representantIdFromSelect],\n fetchIdPersonne\n );\n const [personneTelephones, personneTelephonesLoading] = useReferential(\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\n true,\n [idpersonne]\n );\n\n const [personneGsms, personneGsmsLoading] = useReferential(a => a.referentialGetGsmsPersonne({ idpersonne }), true, [\n idpersonne\n ]);\n const [personneEmails, personneEmailsLoading] = useReferential(\n a => a.referentialGetEmailsPersonne({ idpersonne }),\n true,\n [idpersonne]\n );\n\n const fetchAlreadySelectedinstitutionIds = React.useCallback(async () => {\n if (+id <= 0) return [];\n\n return await apprenantApi.apprenantGetAlreadySelectedInstituttionIds({ idapprenant: +id });\n }, [apprenantApi, id]);\n const { data: alreadySelectedInstitutionIds } = useQuery(\n [\"apprenant-alreadyselected-institutions\", id],\n fetchAlreadySelectedinstitutionIds\n );\n\n return (\n history.push(`${ERoutes.apprenant}/${id}/representants`)}\n saving={saving}\n showDeleteButton={+subId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n formikInnerRef={formikInnerRef}\n validationErrors={validationErrors}\n watchChanges={{\n type: onTypeRepresentantChange,\n idinstitution: value => setInstitutionIdFromSelect(value),\n idrepresentant: value => setRepresentantIdFromSelect(value)\n }}\n >\n \n \n 0}\n isCleareable={false}\n />\n \n \n \n \n {ctx => (\n \n )}\n \n \n {ctx => (\n \n )}\n \n \n \n \n\n \n \n {ctx => (\n <>\n \n \n \n \n \n \n )}\n \n\n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport {\n ApprenantApi,\n ApprenantRepresentantHopeApi,\n ApprenantRepresentantPersonneEditDto,\n ApprenantRepresentantPersonneEditDtoFromJSON,\n RepresentantApi\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport {\n AdresseInfos,\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n RepresentantSelectorField,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { FGCustomInput, FGCustomPanel, FGListen, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport { IOptionProps } from \"@blueprintjs/core\";\nimport { FormikProps } from \"formik\";\nimport { useQuery } from \"react-query\";\n\nexport interface IApprenantRepresentantPersonneDetailProps {\n onTypeRepresentantChange: (typeAcquis: string) => void;\n}\n\nexport const ApprenantRepresentantPersonneDetail: React.FunctionComponent = ({\n onTypeRepresentantChange\n}) => {\n const { t, tUnsafe } = useTl();\n const history = useHistory();\n const [typeRepresentant, trLoading] = useReferential(a => a.referentialGetRepresentantTypes(), false, []);\n const mappedTypeRepresentant = React.useMemo(\n () => typeRepresentant?.map(l => ({ ...l, label: tUnsafe(l.label) } as IOptionProps)) ?? [],\n [typeRepresentant, tUnsafe]\n );\n const [lienRepresentant, lrLoading, , rawLiensParente] = useReferential(\n a => a.referentialGetRepresentantLiens(),\n true,\n []\n );\n\n const formikInnerRef = React.useRef>();\n\n const { id, state, subId } = useParams<{\n id: string;\n tab: string;\n state: string;\n subId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n const api = useApiService(ApprenantRepresentantHopeApi);\n const representantApi = useApiService(RepresentantApi);\n const apprenantApi = useApiService(ApprenantApi);\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +subId <= 0\n ? ApprenantRepresentantPersonneEditDtoFromJSON({\n idapprenant: +id,\n type: \"Personne\"\n })\n : api.apprenantRepresentantHopeGetApprenantRepresentantPersonne({\n idapprenantRepresentant: +subId,\n idapprenant: +id\n });\n },\n saveApiFn: d =>\n api.apprenantRepresentantHopeSaveApprenantRepresentantPersonne({ ApprenantRepresentantPersonneEditDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${id}/representants`,\n getDeps: [subId],\n deleteApiFn: d =>\n api.apprenantRepresentantHopeDeleteApprenantRepresentantPersonne({\n idapprenantRepresentant: +subId,\n idapprenant: +id\n }),\n onDeletedRoute: () => `${ERoutes.apprenant}/${id}/representants`\n }),\n [subId, id, api]\n )\n );\n const [previousIdrepresentant, setPreviousIdrepresentant] = React.useState();\n const [representantIdFromSelect, setRepresentantIdFromSelect] = React.useState();\n React.useEffect(() => {\n if (data?.idrepresentant) {\n setPreviousIdrepresentant(data?.idrepresentant);\n setRepresentantIdFromSelect(data?.idrepresentant);\n }\n }, [data?.idrepresentant]);\n const fetchRepresentantId = React.useCallback(async () => {\n if (!representantIdFromSelect || representantIdFromSelect === 0) return null;\n return await representantApi.representantGet({ id: representantIdFromSelect });\n }, [representantApi, representantIdFromSelect]);\n\n const { data: representantPersonne, isLoading: representantPersonneLoading } = useQuery(\n [\"representant-for-select\", representantIdFromSelect],\n fetchRepresentantId,\n { enabled: true }\n );\n React.useEffect(() => {\n if (\n representantIdFromSelect !== 0 &&\n representantIdFromSelect !== previousIdrepresentant &&\n !!representantPersonne &&\n !loading\n ) {\n formikInnerRef.current?.setFieldValue(\"dateNaissance\", representantPersonne?.dateNaissance);\n formikInnerRef.current?.setFieldValue(\"nationalite\", representantPersonne?.nationalite);\n formikInnerRef.current?.setFieldValue(\"numeroNational\", representantPersonne?.numeroNational);\n formikInnerRef.current?.setFieldValue(\"adresseNaissance\", representantPersonne?.adresseNaissance);\n formikInnerRef.current?.setFieldValue(\"adresseRepresentant\", representantPersonne?.adresseRepresentant);\n formikInnerRef.current?.setFieldValue(\"idgsm\", representantPersonne?.gsmRepresentant?.idtelephone);\n formikInnerRef.current?.setFieldValue(\"idtelephone\", representantPersonne?.telephoneRepresentant?.idtelephone);\n formikInnerRef.current?.setFieldValue(\"idemail\", representantPersonne?.emailRepresentant?.idemail);\n setPreviousIdrepresentant(representantIdFromSelect);\n }\n }, [loading, previousIdrepresentant, representantIdFromSelect, representantPersonne]);\n\n const { data: alreadyContact } = useQuery(\n [\"alreadyContact-check\"],\n () => {\n return api.apprenantRepresentantHopeAlreadyHasEmergencyContactQuery({\n idapprenant: +id,\n idapprenantRepresentant: +subId\n });\n },\n { enabled: true }\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape(\n {\n type: Yup.string().required(t(ETLCodes.Required)),\n idrepresentant: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idgsm: Yup.number()\n .nullable()\n .when([\"idtelephone\", \"idemail\"], {\n is: (idtelephone, idemail) => !idtelephone && !idemail,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.AtLeastOneContactField))\n }),\n idtelephone: Yup.number()\n .nullable()\n .when([\"idemail\", \"idgsm\"], {\n is: (idgsm, idemail) => !idgsm && !idemail,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.AtLeastOneContactField))\n }),\n idemail: Yup.number()\n .nullable()\n .when([\"idtelephone\", \"idgsm\"], {\n is: (idgsm, idtelephone) => !idgsm && !idtelephone,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.AtLeastOneContactField))\n })\n },\n [\n [\"idgsm\", \"idtelephone\"],\n [\"idgsm\", \"idemail\"],\n [\"idtelephone\", \"idemail\"]\n ]\n );\n }, [t]);\n\n const fetchIdPersonne = React.useCallback(async () => {\n if (!+(representantIdFromSelect ?? 0)) return 0;\n\n return await representantApi.representantGetIdpersonne({ idrepresentant: representantIdFromSelect });\n }, [representantApi, representantIdFromSelect]);\n const { data: idpersonne } = useQuery(\n [\"apprenant-representant-idpersonne\", representantIdFromSelect],\n fetchIdPersonne\n );\n\n const [personneTelephones, personneTelephonesLoading] = useReferential(\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n\n const [personneGsms, personneGsmsLoading] = useReferential(a => a.referentialGetGsmsPersonne({ idpersonne }), false, [\n idpersonne\n ]);\n const [personneEmails, personneEmailsLoading] = useReferential(\n a => a.referentialGetEmailsPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n\n const fetchAlreadySelectedRepresentantIds = React.useCallback(async () => {\n if (+id <= 0) return [];\n\n return await apprenantApi.apprenantGetAlreadySelectedRepresentantIds({ idapprenant: +id });\n }, [apprenantApi, id]);\n const { data: alreadySelectedRepresentantIds } = useQuery(\n [\"apprenant-alreadyselected-representants\", id],\n fetchAlreadySelectedRepresentantIds\n );\n const [nationalites, nLoading] = useReferential(a => a.referentialGetAllNationalite(), false, []);\n\n return (\n history.push(`${ERoutes.apprenant}/${id}/representants`)}\n saving={saving}\n showDeleteButton={+subId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n formikInnerRef={formikInnerRef}\n validationErrors={validationErrors}\n >\n \n \n 0}\n isCleareable={false}\n />\n \n setRepresentantIdFromSelect(value)}>\n {\n if (!!value) {\n const lp = rawLiensParente?.find(l => +l.idValue === +value);\n if (lp?.keyValue === \"TuteurLegal\") {\n formik.setFieldValue(\"representantLegal\", true);\n }\n }\n }}\n >
\n \n \n \n \n \n \n {ctx =>\n ctx?.formik?.values?.adresseRepresentant && (\n \n )\n }\n \n \n {ctx => (\n <>\n \n \n \n \n )}\n \n\n \n {ctx => (\n <>\n \n {\n const lp = rawLiensParente?.find(l => +l.idValue === +(ctx?.formik?.values?.idlienParente ?? 0));\n return lp?.keyValue === \"AutreLien\" || lp?.keyValue === \"AutreLienFamiliale\";\n }}\n />\n \n\n +l.idValue === +(ctx?.formik?.values?.idlienParente ?? 0))?.keyValue ===\n \"TuteurLegal\"\n }\n />\n \n )}\n \n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport { ApprenantRepresentantInstitutionDetail } from \"./ApprenantRepresentantInstitutionDetail\";\nimport { ApprenantRepresentantPersonneDetail } from \"./ApprenantRepresentantPersonneDetail\";\n\nexport interface IApprenantRepresentantGlobalProps {}\nexport const ApprenantRepresentantGlobal: React.FunctionComponent = () => {\n const [typeRepresentantForm, setTypeRepresentantForm] = React.useState(\"Personne\");\n const changeFormType = React.useMemo(() => {\n if (typeRepresentantForm === \"Personne\")\n return ;\n if (typeRepresentantForm === \"Institution\")\n return ;\n }, [typeRepresentantForm]);\n\n return <>{changeFormType};\n};\n","import { Colors, Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport {\n ApprenantRepresentantHopeApi,\n ApprenantRepresentantHopeGridDto,\n ApprenantRepresentantSearchDto\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, BooleanColumn, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantRepresentantsSearchPageProps {}\n\nexport const ApprenantRepresentantsSearchPage: React.FunctionComponent = () => {\n const { t, tUnsafe } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const api = useApiService(ApprenantRepresentantHopeApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/representants`, [apprenantId]);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ApprenantRepresentantSearchDto) => {\n sObj.idapprenant = apprenantId;\n return api.apprenantRepresentantHopeBaseSearch({ ApprenantRepresentantSearchDto: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const getRouteForRepresentant = React.useCallback((type: string) => {\n switch (type) {\n case \"Personne\":\n return ERoutes.representant;\n case \"Institution\":\n return ERoutes.institution;\n case \"PersonneContact\":\n return ERoutes.representant;\n }\n }, []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ApprenantRepresentantHopeGridDto) => (\n \n \n history.push(`${path}/${row.type === \"Personne\" ? \"Personne\" : \"Institution\"}/${row.id}/view`)\n }\n />\n \n history.push(`${path}/${row.type === \"Personne\" ? \"Personne\" : \"Institution\"}/${row.id}/edit`)\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"type\",\n render: (row: ApprenantRepresentantHopeGridDto) => tUnsafe(\"Representant_\" + row.type)\n },\n {\n header: () => t(ETLCodes.Representant),\n fieldName: \"nom\",\n render: (row: ApprenantRepresentantHopeGridDto) => (\n \n {`${row.nom}`}\n \n )\n },\n {\n header: () => t(ETLCodes.LienParente),\n fieldName: \"lien\"\n },\n {\n header: () => t(ETLCodes.EmergencyContact),\n alignment: \"center\",\n autoFitContent: true,\n fieldName: \"contactUrgence\",\n render: (row: ApprenantRepresentantHopeGridDto) => \n }\n ],\n [history, path, t, tUnsafe, getRouteForRepresentant]\n );\n\n return (\n <>\n {\n e.stopPropagation();\n history.push(`${path}/0/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n >\n css`\n & * {\n color: ${row.representantLegal ? Colors.GREEN3 + \" !important\" : null};\n }\n `}\n filterMode=\"OnEnter\"\n >\n \n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router\";\n\nimport { ApprenantRepresentantGlobal } from \"./ApprenantRepresentantGlobal\";\nimport { ApprenantRepresentantInstitutionDetail } from \"./ApprenantRepresentantInstitutionDetail\";\nimport { ApprenantRepresentantPersonneDetail } from \"./ApprenantRepresentantPersonneDetail\";\nimport { ApprenantRepresentantsSearchPage } from \"./ApprenantRepresentantsSearchPage\";\n\ninterface IApprenantRepresentantsProps {\n apprenantId: number;\n}\n\nexport const ApprenantRepresentants: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n {/* */}\n \n \n \n \n );\n};\n","import { Button } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { DataTable, FieldSet, Loading, useApiEffect, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport {\n BulletinApprenantRecapitulatifSearch,\n BulletinApprenantRecaputilatifApi,\n FcbBulletinApprenantRecapitulatifGridDto\n} from \"../../../../../api\";\nimport { TableBASelectGradeEditor } from \"../../../../../components\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantBulletingRecapitulatifListProps {}\n\nexport const ApprenantBulletingRecapitulatifList: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, anneeTab } = useParams<{ id: string; tab: string; anneeTab: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n\n const api = useApiService(BulletinApprenantRecaputilatifApi);\n const [grades, gloading] = useReferential(a => a.referentialGetGrade(), true);\n const { subscribeToEvent, unsubscribeEvent, dispatchEvent } = useEventsContext();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5, 10, 25, 100],\n pageSize: 5,\n sortKeys: { anneeScolaire: \"ASC\" }\n });\n\n const searchFn = React.useCallback(\n (sObj?: BulletinApprenantRecapitulatifSearch) => {\n sObj.idapprenant = apprenantId;\n return api.bulletinApprenantRecaputilatifBaseSearch({ BulletinApprenantRecapitulatifSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction: searchFn,\n tableState,\n initialSearch: true\n });\n\n const [data, dLoading] = useApiEffect(\n () => api.bulletinApprenantRecaputilatifGetClasseName({ id: apprenantId, anneeScolaire: anneeTab }),\n [apprenantId, anneeTab]\n );\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.Metier),\n fieldName: \"metier\"\n },\n {\n header: () => t(ETLCodes.Degre),\n fieldName: \"degre\"\n },\n {\n header: () => t(ETLCodes.Point),\n fieldName: \"points\"\n },\n {\n header: () => t(ETLCodes.Grade),\n fieldName: \"idgrade\",\n customizeCellStyle: () =>\n css`\n width: 250px;\n `,\n render: (row: FcbBulletinApprenantRecapitulatifGridDto) => {\n if (row.idbulletinApprenant > 0) {\n return (\n \n );\n }\n }\n }\n ],\n [gloading, grades, t]\n );\n\n React.useEffect(() => {\n subscribeToEvent(\"DELIBERATION_ANNEE_CHANGED\", search);\n return () => {\n unsubscribeEvent(\"DELIBERATION_ANNEE_CHANGED\", search);\n };\n }, [search, subscribeToEvent, unsubscribeEvent]);\n\n const refresh = React.useCallback(() => {\n search();\n dispatchEvent(\"DELIBERATION_REFRESH\");\n }, [dispatchEvent, search]);\n\n return (\n \n {apprenantId > 0 && (\n }\n >\n \n \n )}\n \n );\n};\n","import { Tab, Tabs, Text } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { ApprenantBulletinDetailList } from \".\";\nimport { BulletinApprenantRecaputilatifApi } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IApprenantBulletinTabsProps {}\n\nconst StyledText = styled(Text)`\n align-self: center;\n font-weight: bold;\n`;\n\nexport const ApprenantBulletinTabs: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, anneeTab, coursTypeTab } = useParams<{\n id: string;\n anneeTab: string;\n coursTypeTab: string;\n }>();\n const idApprenant = React.useMemo(() => +id, [id]);\n const api = useApiService(BulletinApprenantRecaputilatifApi);\n\n const [cours] = useApiEffect(async () => {\n return await api.bulletinApprenantRecaputilatifGetListTypeCoursInscription({\n id: idApprenant,\n anneeScolaire: anneeTab\n });\n }, [idApprenant, anneeTab]);\n\n const [coursType, setCoursType] = React.useState(\"\");\n\n React.useEffect(() => {\n if (coursTypeTab || cours) setCoursType(coursTypeTab ?? cours[0]);\n }, [cours, coursType, coursTypeTab]);\n\n return (\n cours &&\n cours.length > 0 && (\n {\n history.push(`${ERoutes.apprenant}/${idApprenant}/resultats/${anneeTab}/${newTabId}`);\n }}\n selectedTabId={coursType}\n renderActiveTabPanelOnly\n large\n >\n {t(ETLCodes.CourseType)} : \n {cours.map(c => {\n return (\n }\n panelClassName=\"full-width-panel\"\n />\n );\n })}\n \n )\n );\n};\n","import { Card, Divider, Label } from \"@blueprintjs/core\";\nimport { FGEmpty, FGTextAreaInput, FGTextInput, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { ApprenantBulletinDeliberation2SessGrid, ApprenantBulletinDeliberationGrid } from \".\";\nimport { ETypeDeliberation, FcbBulletinApprenantTypeDetailDto } from \"../../../../../../api\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IApprenantBulletinDetailProps {\n bulletin: FcbBulletinApprenantTypeDetailDto;\n}\nconst StyledLabel = styled(Label)`\n font-weight: bold;\n`;\n\nexport const ApprenantBulletinDetail: React.FunctionComponent = ({ bulletin }) => {\n const { t } = useTl();\n\n const { data, loading } = useCrudApi({\n getApiFn: () => bulletin,\n saveApiFn: d => {\n return bulletin;\n },\n deleteApiFn: d => {},\n onDeletedRoute: () => ``\n });\n\n const [d1Sess, d1Sessloading] = useReferential(\n apiDelib => apiDelib.referentialGetDeliberationTypes({ typeDeliberation: ETypeDeliberation.Bulletin1Session }),\n true\n );\n const [d2Sess, d2Sessloading] = useReferential(\n apiDelib => apiDelib.referentialGetDeliberationTypes({ typeDeliberation: ETypeDeliberation.Bulletin2Session }),\n true\n );\n return (\n data && (\n <>\n \n {t(ETLCodes.TotalCourseType)} : {data.totalTypeCours}\n \n \n
\n {}}\n editMode={false}\n hideButtons={true}\n loading={loading}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n {data.view2Sess && (\n \n
\n {}}\n editMode={false}\n hideButtons={true}\n loading={loading}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n )}\n \n )\n );\n};\n","import { Loading, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ApprenantBulletinDetail } from \".\";\nimport { BulletinApprenantTypeApi } from \"../../../../../../api\";\nimport { useEventsContext } from \"../../../../../../contexts\";\nimport { useApiService } from \"../../../../../../hooks\";\n\nexport interface IApprenantBulletinDetailListProps {\n idApprenant: number;\n idTypeCours: string;\n anneeScolaire: string;\n}\n\nexport const ApprenantBulletinDetailList: React.FunctionComponent = ({\n idApprenant,\n anneeScolaire,\n idTypeCours\n}) => {\n const api = useApiService(BulletinApprenantTypeApi);\n\n const getBulletinType = React.useCallback(() => {\n return api.bulletinApprenantTypeGetBulletinType({\n idApprenant: idApprenant,\n anneeScolaire: anneeScolaire,\n idTypeCours: idTypeCours\n });\n }, [anneeScolaire, api, idApprenant, idTypeCours]);\n\n const [data, loading, , refresh] = useApiEffect(getBulletinType, [idApprenant, anneeScolaire, idTypeCours]);\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n\n React.useEffect(() => {\n subscribeToEvent(\"DELIBERATION_REFRESH\", refresh);\n return () => {\n unsubscribeEvent(\"DELIBERATION_REFRESH\", refresh);\n };\n }, [refresh, subscribeToEvent, unsubscribeEvent]);\n\n return (\n \n {data &&\n data.map(d => (\n \n ))}\n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { ApprenantBulletinTabs } from \"./ApprenantBulletinTabs\";\n\nexport interface IApprenantBulletinSwitchProps {}\n\nexport const ApprenantBulletinSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n );\n};\n","import { Button, Intent, Tab, Tabs, Text } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { DeliberationBulletinDetailList } from \".\";\nimport { BulletinApprenantRecaputilatifApi, BulletinApprenantTypeApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDeliberationBulletinTabsProps {}\n\nconst StyledText = styled(Text)`\n align-self: center;\n font-weight: bold;\n`;\n\nconst ButtonContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const DeliberationBulletinTabs: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, idApprenant, annee, coursTypeTab } = useParams<{\n id: string;\n tab: string;\n idApprenant: string;\n annee: string;\n coursTypeTab: string;\n state: string;\n }>();\n const apprenantId = React.useMemo(() => +idApprenant, [idApprenant]);\n const api = useApiService(BulletinApprenantRecaputilatifApi);\n const batApi = useApiService(BulletinApprenantTypeApi);\n const [refreshingBulletin, setRefreshingBulletin] = React.useState(false);\n\n const { dispatchEvent } = useEventsContext();\n\n const [cours] = useApiEffect(async () => {\n return await api.bulletinApprenantRecaputilatifGetListTypeCoursInscription({\n id: apprenantId,\n anneeScolaire: annee\n });\n }, [apprenantId, annee]);\n\n const [coursType, setCoursType] = React.useState(\"\");\n\n React.useEffect(() => {\n if (cours && coursTypeTab) {\n setCoursType(cours.includes(coursTypeTab) ? coursTypeTab ?? cours[0] : cours[0]);\n } else if (coursTypeTab || cours) {\n setCoursType(coursTypeTab);\n }\n }, [cours, coursType, coursTypeTab]);\n\n const refreshBulletin = React.useCallback(async () => {\n setRefreshingBulletin(true);\n await batApi.bulletinApprenantTypeRefreshPresenceDeliberation({\n idApprenant: +idApprenant,\n anneeScolaire: annee\n });\n await batApi.bulletinApprenantTypeRefreshDeliberationAsync({\n idApprenant: +idApprenant,\n anneeScolaire: annee\n });\n setRefreshingBulletin(false);\n dispatchEvent(\"DELIBERATION_REFRESH\");\n }, [annee, batApi, dispatchEvent, idApprenant]);\n\n return (\n cours &&\n cours.length > 0 && (\n <>\n \n \n \n {\n history.push(`${ERoutes.deliberationType}/${id}/detail/${apprenantId}/${annee}/${newTabId}`);\n dispatchEvent(\"DELIBERATION_ANNEE_CHANGED\");\n }}\n selectedTabId={coursType}\n renderActiveTabPanelOnly\n large\n >\n {t(ETLCodes.CourseType)} : \n {cours.map(c => {\n return (\n \n }\n panelClassName=\"full-width-panel\"\n />\n );\n })}\n \n \n )\n );\n};\n","import { Card, Divider, Intent, Label } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n FGCustomPanel,\n FGEmpty,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n FieldSet,\n showError,\n showSuccess\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { DeliberationBulletinDeliberation2SessGrid, DeliberationBulletinDeliberationGrid } from \".\";\nimport {\n BulletinApprenantTypeApi,\n ETypeDeliberation,\n FcbBulletinApprenantTypeDetailDto,\n UtilisateurApi\n} from \"../../../../../api\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useEventsContext, usePrintingQueueContext } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDeliberationBulletinDetailProps {\n bulletin: FcbBulletinApprenantTypeDetailDto;\n}\nconst StyledLabel = styled(Label)`\n font-weight: bold;\n`;\n\nexport const DeliberationBulletinDetail: React.FunctionComponent = ({ bulletin }) => {\n const { t } = useTl();\n const api = useApiService(BulletinApprenantTypeApi);\n const userApi = useApiService(UtilisateurApi);\n const { dispatchEvent } = useEventsContext();\n const { refreshQueue, setIsQueueForcedOpen } = usePrintingQueueContext();\n\n const [hasEmptyEvaluations, setHasEmptyEvaluations] = React.useState(false);\n const [markingAsWrong, setMarkingAsWrong] = React.useState(false);\n\n const getData = React.useCallback(() => {\n return bulletin;\n }, [bulletin]);\n\n const { data, loading, saveItem, saving, deleteItem, deleting } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: getData,\n saveApiFn: async (d: FcbBulletinApprenantTypeDetailDto) => {\n if (hasEmptyEvaluations && !!d.delibe1sess) {\n showError(t(ETLCodes.BulletinHasEmptyEvaluations));\n return;\n }\n\n const dataSaved = await api.bulletinApprenantTypeSave({ FcbBulletinApprenantTypeSaveDto: d });\n dispatchEvent(\"DELIBERATION_SAVED\", dataSaved);\n return dataSaved;\n },\n onSaved: (d: FcbBulletinApprenantTypeDetailDto) => {\n if (!!d.sentToQueue) {\n refreshQueue();\n setIsQueueForcedOpen(true);\n showSuccess(t(ETLCodes.BulletinsAddedToQueue));\n }\n },\n deleteApiFn: d => {},\n onDeletedRoute: () => ``\n }),\n [api, dispatchEvent, getData, hasEmptyEvaluations, refreshQueue, setIsQueueForcedOpen, t]\n )\n );\n\n const [search, setSearch] = React.useState(false);\n\n const [d1Sess, d1Sessloading] = useReferential(\n apiDelib => apiDelib.referentialGetDeliberationTypes({ typeDeliberation: ETypeDeliberation.Bulletin1Session }),\n true\n );\n const [d2Sess, d2Sessloading] = useReferential(\n apiDelib => apiDelib.referentialGetDeliberationTypes({ typeDeliberation: ETypeDeliberation.Bulletin2Session }),\n true\n );\n const FormSchemaSess1 = React.useMemo(() => {\n return Yup.object().shape({\n iddeliberationType: Yup.number()\n .nullable()\n .test(\"defined\", t(ETLCodes.Required), value => value !== undefined),\n dateDeliberation: Yup.date().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const FormSchemaSess2 = React.useMemo(() => {\n return Yup.object().shape({\n iddeliberationType2sess: Yup.number()\n .nullable()\n .test(\"defined\", t(ETLCodes.Required), value => value !== undefined),\n dateDeliberation2sess: Yup.date().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const markAsWrong = React.useCallback(async () => {\n if (data) {\n setMarkingAsWrong(true);\n await api.bulletinApprenantTypeSetBulletinApprenantTypeVisible({\n FcbBulletinApprenantTypeDetailDto: { ...data, isVisibleBulletin: false }\n });\n setMarkingAsWrong(false);\n dispatchEvent(\"DELIBERATION_REFRESH\");\n }\n }, [api, data, dispatchEvent]);\n\n const fetchUserCanValidate = React.useCallback(async () => {\n const res = await userApi.utilisateurGetUserValidationDirectionRight();\n return res.value;\n }, [userApi]);\n const { data: hasRightToDevalidate, isLoading: hasRightToDevalidateLoading } = useQuery(\n \"user-can-validate\",\n fetchUserCanValidate,\n { enabled: true, cacheTime: 0 }\n );\n\n return (\n data && (\n <>\n \n {t(ETLCodes.TotalCourseType)} : {data.totalTypeCours}\n \n \n \n {\n form.isSecondeSession = false;\n await saveItem(form);\n setSearch(true);\n }}\n editMode={true}\n loading={loading}\n onCancel={() => {}}\n onDelete={deleteItem}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n validationSchema={FormSchemaSess1}\n >\n \n \n \n \n \n \n \n {ctx => (\n 0 &&\n ctx.formik.values.resultatsSession1?.results?.every(r => r.dispenseTotale)\n }\n />\n )}\n \n \n \n {ctx => (\n 0 &&\n ctx.formik.values.resultatsSession1?.results?.every(r => r.dispenseTotale))\n }\n />\n )}\n \n \n \n \n \n \n \n \n \n \n {ctx => (\n 0 &&\n ctx.formik.values.resultatsSession1?.results?.every(r => r.dispenseTotale)\n }\n />\n )}\n \n \n \n \n \n \n {ctx => (\n 0 &&\n ctx.formik.values.resultatsSession1?.results?.every(r => r.dispenseTotale)\n }\n />\n )}\n \n \n \n \n \n \n \n
\n {data.view2Sess && (\n \n
\n {\n form.isSecondeSession = true;\n await saveItem(form);\n setSearch(true);\n }}\n editMode={false}\n loading={loading}\n onCancel={() => {}}\n onDelete={deleteItem}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n validationSchema={FormSchemaSess2}\n >\n \n \n \n \n \n \n \n \n \n \n {ctx => (\n 0 &&\n ctx.formik.values.resultatsSession2?.results?.every(r => r.dispenseTotale)\n }\n />\n )}\n \n \n \n \n \n \n {ctx => (\n 0 &&\n ctx.formik.values.resultatsSession2?.results?.every(r => r.dispenseTotale)\n }\n />\n )}\n \n \n {ctx => (\n 0 &&\n ctx.formik.values.resultatsSession2?.results?.every(r => r.dispenseTotale))\n }\n />\n )}\n \n \n \n \n \n {ctx => (\n 0 &&\n ctx.formik.values.resultatsSession2?.results?.every(r => r.dispenseTotale)\n }\n />\n )}\n \n \n \n \n \n
\n
\n )}\n \n )\n );\n};\n","import { Loading, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { DeliberationBulletinDetail } from \".\";\nimport { BulletinApprenantTypeApi } from \"../../../../../api\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService } from \"../../../../../hooks\";\n\nexport interface IDeliberationBulletinDetailListProps {\n idApprenant: number;\n idTypeCours: string;\n anneeScolaire: string;\n}\n\nexport const DELIBERATION_SAVED = \"DELIBERATION_SAVED\";\n\nexport const DeliberationBulletinDetailList: React.FunctionComponent = ({\n idApprenant,\n anneeScolaire,\n idTypeCours\n}) => {\n const api = useApiService(BulletinApprenantTypeApi);\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n\n const getBulletinType = React.useCallback(() => {\n return api.bulletinApprenantTypeGetBulletinType({\n idApprenant: idApprenant,\n anneeScolaire: anneeScolaire,\n idTypeCours: idTypeCours\n });\n }, [anneeScolaire, api, idApprenant, idTypeCours]);\n\n const [data, loading, , refresh] = useApiEffect(getBulletinType, [idApprenant, anneeScolaire, idTypeCours]);\n\n React.useEffect(() => {\n subscribeToEvent(\"DELIBERATION_REFRESH\", refresh);\n return () => {\n unsubscribeEvent(\"DELIBERATION_REFRESH\", refresh);\n };\n }, [refresh, subscribeToEvent, unsubscribeEvent]);\n\n return (\n \n {data &&\n data.map(d => (\n \n ))}\n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { DeliberationBulletinTabs } from \"./DeliberationBulletinTabs\";\n\nexport interface IDeliberationBulletinSwitchProps {}\n\nexport const DeliberationBulletinSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n );\n};\n","import { Button, Colors, Divider, Icon } from \"@blueprintjs/core\";\nimport { DataTable, IDataTableColumn, showError, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { css } from \"styled-components\";\n\nimport { DeliberationBulletinCaterorySumGrid, DeliberationBulletinEvaluationGrid } from \".\";\nimport {\n BulletinApprenantTypeApi,\n BulletinDetailSearch,\n ETypeDeliberation,\n FcbResultatTypeGridDto,\n FcbResultatTypeGridDtoPaginatedResults\n} from \"../../../../../api\";\nimport { TableCheckboxEditor, TableDateEditor, TableSelectEditor } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDeliberationBulletinDeliberationGridProps {\n idbulletinApprenantType: number;\n execSearch: boolean;\n validationDirection1sess: boolean;\n setHasEmptyEvaluations: (value: boolean) => void;\n}\n\nexport const DeliberationBulletinDeliberationGrid: React.FunctionComponent = ({\n idbulletinApprenantType,\n execSearch,\n validationDirection1sess,\n setHasEmptyEvaluations\n}) => {\n const { t } = useTl();\n\n const api = useApiService(BulletinApprenantTypeApi);\n const [dMatiere, dMatiereloading] = useReferential(\n a => a.referentialGetDeliberationTypes({ typeDeliberation: ETypeDeliberation.Matiere }),\n true\n );\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [9999],\n pageSize: 9999,\n sortKeys: { categorie: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: BulletinDetailSearch) => {\n sObj.idbulletinApprenantType = idbulletinApprenantType;\n return api.bulletinApprenantTypeBulletinDeliberationSession1Search({ BulletinDetailSearch: sObj });\n },\n [api, idbulletinApprenantType]\n );\n\n const { loading, search, gridResults } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n React.useEffect(() => {\n if (!!gridResults) {\n setHasEmptyEvaluations(gridResults.results.some(r => r.evaluations.totalCount === 0));\n }\n }, [gridResults, setHasEmptyEvaluations]);\n\n React.useEffect(() => {\n if (execSearch) {\n search();\n }\n }, [execSearch, search]);\n\n const onCheckedRemediationConseillee = React.useCallback(\n async (value: boolean, id: number) => {\n try {\n await api.bulletinApprenantTypeSaveBulletinRemediationConseillee({\n idBulletinInscriptionMatiere: id,\n conseille: value\n });\n } catch (Error) {\n showError(`Unable to save`);\n }\n },\n [api]\n );\n\n const onCheckedRemediationObligatoire = React.useCallback(\n async (value: boolean, id: number) => {\n try {\n await api.bulletinApprenantTypeSaveBulletinRemediationObligatoire({\n idBulletinInscriptionMatiere: id,\n obligatoire: value\n });\n } catch (Error) {\n showError(`Unable to save`);\n }\n },\n [api]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"_toggle\",\n render: (item: FcbResultatTypeGridDto, _, { subPanelOpened, toggleSubPanel }) => {\n if (item.evaluations.totalCount > 0) {\n return ;\n } else {\n return
;\n }\n }\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"codematiere\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"matiere\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.TJ),\n fieldName: \"tj\"\n },\n {\n header: () => t(ETLCodes.Examen),\n fieldName: \"exa\"\n },\n {\n header: () => t(ETLCodes.Categorie),\n fieldName: \"categorie\"\n },\n {\n header: () => t(ETLCodes.Deliberation),\n fieldName: \"iddeliberationType\",\n customizeCellStyle: () =>\n css`\n width: 250px;\n `,\n render: (row: FcbResultatTypeGridDto) => {\n if (row.idclassematiere > 0) {\n return (\n \n );\n }\n }\n },\n {\n header: () => t(ETLCodes.RCons),\n fieldName: \"remediationconseil\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbResultatTypeGridDto) => {\n if (row.idclassematiere > 0) {\n return (\n onCheckedRemediationConseillee(value, row.idbulletininscriptionmatiere)}\n readonly={validationDirection1sess}\n />\n );\n }\n }\n },\n {\n header: () => t(ETLCodes.ROb),\n fieldName: \"remediationobligatoire\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbResultatTypeGridDto) => {\n if (row.idclassematiere > 0) {\n return (\n onCheckedRemediationObligatoire(value, row.idbulletininscriptionmatiere)}\n readonly={validationDirection1sess}\n />\n );\n }\n }\n },\n {\n header: () => t(ETLCodes.DeuxiemeSession),\n fieldName: \"date2sess\",\n customizeCellStyle: () =>\n css`\n width: 150px;\n `,\n render: (row: FcbResultatTypeGridDto) => {\n if (row.idclassematiere > 0) {\n return (\n \n );\n }\n }\n },\n {\n header: () => t(ETLCodes.TotalMax),\n fieldName: \"totalmax\"\n },\n {\n computed: true,\n fieldName: \"_danger\",\n render: (item: FcbResultatTypeGridDto, _) => {\n if (item.evaluations.totalCount === 0) {\n return ;\n } else {\n return
;\n }\n }\n }\n ],\n [\n dMatiere,\n dMatiereloading,\n onCheckedRemediationConseillee,\n onCheckedRemediationObligatoire,\n t,\n validationDirection1sess\n ]\n );\n\n const getRowStyles = React.useCallback((item: FcbResultatTypeGridDto) => {\n if (!item.totalmax) return null;\n const total = item.totalmax.split(\"/\")[0];\n const max = item.totalmax.split(\"/\")[1];\n const reussite = item.reussite ?? 50;\n\n const presenceJ =\n item.evaluations.results.length > 0 &&\n item.evaluations.results.every(e => e.typeEvaluation === \"Examen\" && e.presence === \"J\" && !e.cote);\n\n let newColor = reussite > (+total / +max) * 100 ? Colors.RED3 + \" !important\" : null;\n if (presenceJ) {\n newColor = Colors.ORANGE4 + \" !important\";\n }\n\n return css`\n & * {\n color: ${newColor};\n }\n `;\n }, []);\n\n return (\n <>\n {idbulletinApprenantType > 0 && (\n <>\n (\n \n )}\n />\n \n \n \n )}\n \n );\n};\n","import { Card, Checkbox } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, IDataTableColumn, useGridState } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { FcbResultatTypeEvaluationGridDto, FcbResultatTypeEvaluationGridDtoPaginatedResults } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDeliberationBulletinEvaluationGridProps {\n data: FcbResultatTypeEvaluationGridDtoPaginatedResults;\n}\n\nexport const DeliberationBulletinEvaluationGrid: React.FunctionComponent = ({\n data\n}) => {\n const { t } = useTl();\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [9999],\n pageSize: 9999,\n sortKeys: { date: \"ASC\" },\n data: data.results\n });\n\n const onViewClick = React.useCallback((dto: FcbResultatTypeEvaluationGridDto) => {\n window.open(`/#${ERoutes.evaluation}/${dto.idevaluation}/detail/view`, \"_blank\");\n }, []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbResultatTypeEvaluationGridDto) => (\n \n onViewClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.TypeEvaluation),\n fieldName: \"typeEvaluation\"\n },\n {\n header: () => t(ETLCodes.Cote),\n fieldName: \"cote\"\n },\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"remarque\"\n },\n {\n header: () => t(ETLCodes.Remediation),\n fieldName: \"remediation\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbResultatTypeEvaluationGridDto) => \n },\n {\n header: () => t(ETLCodes.CoteRemediation),\n fieldName: \"coteRemediation\"\n },\n\n {\n header: () => t(ETLCodes.Presence),\n fieldName: \"presence\"\n },\n {\n header: () => t(ETLCodes.Neutralise),\n fieldName: \"neutralise\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbResultatTypeEvaluationGridDto) => \n }\n ],\n [onViewClick, t]\n );\n\n return (\n \n } />\n \n );\n};\n","import { Colors } from \"@blueprintjs/core\";\nimport { DataTable, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { css } from \"styled-components\";\n\nimport {\n BulletinApprenantTypeApi,\n BulletinDetailSearch,\n ETypeDeliberation,\n FcbResultatTypeBulletinSession2GridDto\n} from \"../../../../../api\";\nimport { TableSelectEditor } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDeliberationBulletinDeliberation2SessGridProps {\n idbulletinApprenantType: number;\n execSearch: boolean;\n validationDirection2sess: boolean;\n}\n\nexport const DeliberationBulletinDeliberation2SessGrid: React.FunctionComponent = ({\n idbulletinApprenantType,\n execSearch,\n validationDirection2sess\n}) => {\n const { t } = useTl();\n\n const api = useApiService(BulletinApprenantTypeApi);\n\n const [dMatiere, dMatiereloading] = useReferential(\n a => a.referentialGetDeliberationTypes({ typeDeliberation: ETypeDeliberation.Matiere }),\n true\n );\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [9999],\n pageSize: 9999,\n sortKeys: { categorie: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: BulletinDetailSearch) => {\n sObj.idbulletinApprenantType = idbulletinApprenantType;\n return api.bulletinApprenantTypeBulletinDeliberationSession2Search({ BulletinDetailSearch: sObj });\n },\n [api, idbulletinApprenantType]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n React.useEffect(() => {\n if (execSearch) {\n search();\n }\n }, [execSearch, search]);\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"codematiere\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"matiere\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.Examen),\n fieldName: \"exa\"\n },\n {\n header: () => t(ETLCodes.Total),\n fieldName: \"total\"\n },\n {\n header: () => t(ETLCodes.Deliberation),\n fieldName: \"idDeliberationType\",\n render: (row: FcbResultatTypeBulletinSession2GridDto) => (\n \n )\n }\n ],\n [dMatiere, dMatiereloading, t, validationDirection2sess]\n );\n\n const getRowStyles = React.useCallback((item: FcbResultatTypeBulletinSession2GridDto) => {\n if (!item.total) return null;\n const total = item.total.split(\"/\")[0];\n const max = item.total.split(\"/\")[1];\n const reussite = item.reussite ?? 50;\n\n return css`\n & * {\n color: ${reussite > (+total / +max) * 100 ? Colors.RED3 + \" !important\" : null};\n }\n `;\n }, []);\n\n return (\n <>\n {idbulletinApprenantType > 0 && (\n \n )}\n \n );\n};\n","import { DataTable, IDataTableColumn, useGridState } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { FcbResultatTypeGridDto } from \"../../../../../api\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useTl } from \"../../../../../hooks\";\nimport { css } from \"styled-components\";\nimport { Colors } from \"@blueprintjs/core\";\n\nexport interface IDeliberationBulletinCaterorySumGridProps {\n deliberation1SessResults: FcbResultatTypeGridDto[];\n loading: boolean;\n}\n\nexport const DeliberationBulletinCaterorySumGrid: React.FunctionComponent = ({\n deliberation1SessResults,\n loading\n}) => {\n const { t } = useTl();\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [9999],\n pageSize: 9999,\n sortKeys: { categorie: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (deliberation1SessResults) {\n var result = [];\n deliberation1SessResults.reduce((res, value) => {\n if (!res[value.categorie]) {\n res[value.categorie] = { categorie: value.categorie, bulletintotal: 0, totaldenommax: 0 };\n result.push(res[value.categorie]);\n }\n res[value.categorie].bulletintotal += value.bulletintotal;\n res[value.categorie].totaldenommax += value.totaldenommax;\n return res;\n }, {});\n setData(result);\n }\n }, [deliberation1SessResults, setData]);\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Categorie),\n fieldName: \"categorie\"\n },\n {\n header: () => t(ETLCodes.Total),\n fieldName: \"bulletintotal\",\n render: (item: FcbResultatTypeGridDto) => `${item.bulletintotal}/${item.totaldenommax}`\n },\n {\n header: () => t(ETLCodes.TotalPercent),\n fieldName: \"totalpercent\",\n render: (item: FcbResultatTypeGridDto) =>\n `${\n item.totaldenommax > 0\n ? ((item.bulletintotal * 100) / item.totaldenommax).toFixed(2)\n : item.bulletintotal.toFixed(2)\n } %`\n }\n ],\n [t]\n );\n\n const getRowStyles = React.useCallback((item: FcbResultatTypeGridDto) => {\n const total =\n item.totaldenommax > 0\n ? ((item.bulletintotal * 100) / item.totaldenommax).toFixed(2)\n : item.bulletintotal.toFixed(2);\n return css`\n & * {\n color: ${+total < 50 ? Colors.RED3 + \" !important\" : null};\n }\n `;\n }, []);\n\n return (\n \n );\n};\n","import { Button, Checkbox, Colors, Divider } from \"@blueprintjs/core\";\nimport { DataTable, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { css } from \"styled-components\";\n\nimport {\n BulletinApprenantTypeApi,\n BulletinDetailSearch,\n ETypeDeliberation,\n FcbResultatTypeGridDto\n} from \"../../../../../../api\";\nimport { TableSelectEditor } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport {\n DeliberationBulletinCaterorySumGrid,\n DeliberationBulletinEvaluationGrid\n} from \"../../../../deliberationType/item/bulletins\";\n\nexport interface IApprenantBulletinDeliberationGridProps {\n idbulletinApprenantType: number;\n execSearch: boolean;\n}\n\nexport const ApprenantBulletinDeliberationGrid: React.FunctionComponent = ({\n idbulletinApprenantType,\n execSearch\n}) => {\n const { t } = useTl();\n\n const api = useApiService(BulletinApprenantTypeApi);\n const [dMatiere, dMatiereLoading] = useReferential(\n a => a.referentialGetDeliberationTypes({ typeDeliberation: ETypeDeliberation.Matiere }),\n true\n );\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [9999],\n pageSize: 9999,\n sortKeys: { categorie: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: BulletinDetailSearch) => {\n sObj.idbulletinApprenantType = idbulletinApprenantType;\n return api.bulletinApprenantTypeBulletinDeliberationSession1Search({ BulletinDetailSearch: sObj });\n },\n [api, idbulletinApprenantType]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n React.useEffect(() => {\n if (execSearch) {\n search();\n }\n }, [execSearch, search]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"_toggle\",\n render: (item: FcbResultatTypeGridDto, _, { subPanelOpened, toggleSubPanel }) => {\n if (item.idclassematiere) {\n return ;\n } else {\n return
;\n }\n }\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"codematiere\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"matiere\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.TJ),\n fieldName: \"tj\"\n },\n {\n header: () => t(ETLCodes.Examen),\n fieldName: \"exa\"\n },\n {\n header: () => t(ETLCodes.Categorie),\n fieldName: \"categorie\"\n },\n {\n header: () => t(ETLCodes.Deliberation),\n fieldName: \"iddeliberationType\",\n customizeCellStyle: () =>\n css`\n width: 250px;\n `,\n render: (row: FcbResultatTypeGridDto) => {\n if (row.idclassematiere > 0) {\n return (\n \n );\n }\n }\n },\n {\n header: () => t(ETLCodes.RCons),\n fieldName: \"remediationconseil\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbResultatTypeGridDto) => {\n return ;\n }\n },\n {\n header: () => t(ETLCodes.ROb),\n fieldName: \"remediationobligatoire\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbResultatTypeGridDto) => {\n return ;\n }\n },\n {\n header: () => t(ETLCodes.DeuxiemeSession),\n fieldName: \"date2sess\",\n customizeCellStyle: () =>\n css`\n width: 150px;\n `\n },\n {\n header: () => t(ETLCodes.TotalMax),\n fieldName: \"totalmax\"\n }\n ],\n [dMatiere, dMatiereLoading, t]\n );\n\n const getRowStyles = React.useCallback((item: FcbResultatTypeGridDto) => {\n if (!item.total) return null;\n const total = item.total.split(\"/\")[0];\n const max = item.total.split(\"/\")[1];\n const reussite = item.reussite ?? 50;\n return css`\n & * {\n color: ${reussite > (+total / +max) * 100 ? Colors.RED3 + \" !important\" : null};\n }\n `;\n }, []);\n\n return (\n <>\n {idbulletinApprenantType > 0 && (\n <>\n (\n \n )}\n />\n \n \n \n )}\n \n );\n};\n","import { Card, Checkbox } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, IDataTableColumn, useGridState } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport {\n FcbResultatTypeEvaluationGridDto,\n FcbResultatTypeEvaluationGridDtoPaginatedResults\n} from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../../components\";\nimport { useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IApprenantBulletinEvaluationGridProps {\n data: FcbResultatTypeEvaluationGridDtoPaginatedResults;\n}\n\nexport const ApprenantBulletinEvaluationGrid: React.FunctionComponent = ({\n data\n}) => {\n const { t } = useTl();\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [9999],\n pageSize: 9999,\n sortKeys: { date: \"ASC\" },\n data: data.results\n });\n\n const onViewClick = React.useCallback((dto: FcbResultatTypeEvaluationGridDto) => {\n window.open(`/#${ERoutes.evaluation}/${dto.idevaluation}/detail/view`, \"_blank\");\n }, []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbResultatTypeEvaluationGridDto) => (\n \n onViewClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.TypeEvaluation),\n fieldName: \"typeEvaluation\"\n },\n {\n header: () => t(ETLCodes.Cote),\n fieldName: \"cote\"\n },\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"remarque\"\n },\n {\n header: () => t(ETLCodes.Remediation),\n fieldName: \"remediation\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbResultatTypeEvaluationGridDto) => \n },\n {\n header: () => t(ETLCodes.CoteRemediation),\n fieldName: \"coteRemediation\"\n },\n\n {\n header: () => t(ETLCodes.Presence),\n fieldName: \"presence\"\n },\n {\n header: () => t(ETLCodes.Neutralise),\n fieldName: \"neutralise\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbResultatTypeEvaluationGridDto) => \n }\n ],\n [onViewClick, t]\n );\n\n return (\n \n } />\n \n );\n};\n","import { DataTable, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport {\n BulletinApprenantTypeApi,\n BulletinDetailSearch,\n ETypeDeliberation,\n FcbResultatTypeBulletinSession2GridDto\n} from \"../../../../../../api\";\nimport { TableSelectEditor } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IApprenantBulletinDeliberation2SessGridProps {\n idbulletinApprenantType: number;\n execSearch: boolean;\n}\n\nexport const ApprenantBulletinDeliberation2SessGrid: React.FunctionComponent = ({\n idbulletinApprenantType,\n execSearch\n}) => {\n const { t } = useTl();\n\n const api = useApiService(BulletinApprenantTypeApi);\n\n const [dMatiere, dMatiereloading] = useReferential(\n a => a.referentialGetDeliberationTypes({ typeDeliberation: ETypeDeliberation.Matiere }),\n true\n );\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [9999],\n pageSize: 9999,\n sortKeys: { categorie: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: BulletinDetailSearch) => {\n sObj.idbulletinApprenantType = idbulletinApprenantType;\n return api.bulletinApprenantTypeBulletinDeliberationSession2Search({ BulletinDetailSearch: sObj });\n },\n [api, idbulletinApprenantType]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n React.useEffect(() => {\n if (execSearch) {\n search();\n }\n }, [execSearch, search]);\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"codematiere\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"matiere\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.Examen),\n fieldName: \"exa\"\n },\n {\n header: () => t(ETLCodes.Total),\n fieldName: \"total\"\n },\n {\n header: () => t(ETLCodes.Deliberation),\n fieldName: \"idDeliberationType\",\n render: (row: FcbResultatTypeBulletinSession2GridDto) => (\n \n )\n }\n ],\n [dMatiere, dMatiereloading, t]\n );\n\n return (\n <>\n {idbulletinApprenantType > 0 && (\n \n )}\n \n );\n};\n","import * as React from \"react\";\n\nimport { ApprenantBulletingRecapitulatifList } from \"./ApprenantBulletinRecapitulatifList\";\nimport { ApprenantBulletinSwitch } from \"./bulletins\";\n\ninterface IApprenantResultatTypeProps {\n apprenantId: number;\n}\n\nexport const ApprenantResultatType: React.FunctionComponent = ({ apprenantId }) => {\n return (\n <>\n \n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ApprenantApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService } from \"../../../../../hooks\";\nimport { ApprenantResultatType } from \"./ApprenantResultatType\";\n\nexport interface IApprenantResultatTypeTabsProps {}\n\nexport const ApprenantResultatTypeTabs: React.FunctionComponent = () => {\n const history = useHistory();\n const { id, anneeTab } = useParams<{\n id: string;\n anneeTab: string;\n }>();\n const idApprenant = React.useMemo(() => +id, [id]);\n const api = useApiService(ApprenantApi);\n const { dispatchEvent } = useEventsContext();\n\n const [annees] = useApiEffect(() => api.apprenantGetAnneesScolairesInscrites({ IdApprenant: idApprenant }), [\n idApprenant\n ]);\n\n return (\n annees && (\n {\n // setAnneeEnCours(newTabId.toString());\n history.push(`${ERoutes.apprenant}/${idApprenant}/resultats/${newTabId}`);\n dispatchEvent(\"DELIBERATION_ANNEE_CHANGED\");\n }}\n selectedTabId={anneeTab}\n renderActiveTabPanelOnly\n vertical\n >\n {annees.map(a => {\n return (\n }\n panelClassName=\"full-width-panel\"\n />\n );\n })}\n \n )\n );\n};\n","import * as React from \"react\";\r\n\r\nimport { SmsApi, SmsSearch, ETextSearchType } from \"../../../../../api\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\nimport { SearchTablePage } from \"../../../../../components\";\r\nimport { useGlobalData } from \"../../../../../contexts\";\r\n\r\ninterface IApprenantSMSProps {\r\n apprenantId: number;\r\n}\r\n\r\nexport const ApprenantSMS: React.FunctionComponent = ({ apprenantId }) => {\r\n const { t } = useTl();\r\n const api = useApiService(SmsApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n header: () => t(ETLCodes.Message),\r\n fieldName: \"message\"\r\n },\r\n {\r\n header: () => t(ETLCodes.DateEnvoi),\r\n fieldName: \"dateEnvoi\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Statut),\r\n fieldName: \"status\"\r\n }\r\n ],\r\n [t]\r\n );\r\n\r\n const getCriteriasFn = React.useCallback(() => api.smsGetSearchCriterias({ includeListsValues: true }), [api]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(SmsApi);\r\n const lastAbortController = React.useRef();\r\n const searchFunction = React.useCallback(\r\n (sObj?: SmsSearch) => {\r\n sObj.idApprenant = apprenantId;\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.smsBaseSearch({ SmsSearch: sObj });\r\n },\r\n [apiFactory, apprenantId]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n apprenantId > 0 && (\r\n \r\n )\r\n );\r\n};\r\n","import { Colors, Icon, Spinner, Tooltip } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { FcbRepresentantDto, RepresentantApi } from \"../../api\";\nimport { useApiService } from \"../../hooks\";\nimport { ToolTipContent } from \"./ToolTipContent\";\n\nexport interface IRepresentantTooltipProps {\n idApprenant: number;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport const RepresentantTooltip: React.FunctionComponent = ({ idApprenant }) => {\n const api = useApiService(RepresentantApi);\n const [request, setRequest] = React.useState(false);\n const [representant, setRepresentant] = React.useState(null);\n React.useEffect(() => {\n async function getRepresentant() {\n setRepresentant(await api.representantGetEmergencyContact({ apprenantId: idApprenant }));\n }\n if (request) {\n getRepresentant();\n setRequest(false);\n }\n }, [api, idApprenant, request]);\n\n return (\n \n \n ) : (\n \n )\n }\n onOpening={() => {\n setRequest(true);\n }}\n >\n \n \n \n );\n};\n","import { Button, Classes, Dialog, Divider, Icon, Intent, Radio, RadioGroup } from \"@blueprintjs/core\";\r\nimport { IconNames } from \"@blueprintjs/icons\";\r\nimport classNames from \"classnames\";\r\nimport Cleave from \"cleave.js/react\";\r\nimport { format } from \"date-fns\";\r\nimport { FormikProps } from \"formik\";\r\nimport * as IBAN from \"iban\";\r\nimport isEqual from \"lodash/isEqual\";\r\nimport pick from \"lodash/pick\";\r\nimport moment from \"moment\";\r\nimport {\r\n ButtonContainer,\r\n FGCustomInput,\r\n FGCustomPanel,\r\n FGCustomReadOnly,\r\n FGEmpty,\r\n FGIBANNumberInput,\r\n FGListen,\r\n FGMaskInput,\r\n FGMultiSuggestInput,\r\n FGTextAreaInput,\r\n FGTextInput,\r\n FieldGroup,\r\n IFGContext,\r\n useCleaveOptions,\r\n useDebouncedCallback,\r\n usePrevious\r\n} from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useQuery } from \"react-query\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport {\r\n AdresseDtoFromJSON,\r\n ApprenantApi,\r\n ApprenantDoublonSearch,\r\n ELevelName,\r\n EStatutContrat,\r\n ETypeContrat,\r\n FcbApprenantDto,\r\n FcbApprenantDtoFromJSON,\r\n FormateurApi\r\n} from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport {\r\n AdresseDoublonErrorLink,\r\n CommuneSelect,\r\n EditButton,\r\n ErrorText,\r\n FGPersonneCodePostal,\r\n FGReadOnlyInput,\r\n FGWalterCheckboxInput,\r\n FGWalterDateMaskInput,\r\n FGWalterSelectInput,\r\n LinkButton,\r\n LocaliteSelect,\r\n NationaliteSelect,\r\n PhotoModifier,\r\n SmallFormGenerator,\r\n StyledError,\r\n ViewButton\r\n} from \"../../../../../components\";\r\nimport { ButtonsBloc, InlineButtonContainer } from \"../../../../../components/applicationButtons/ButtonContainerStyles\";\r\nimport FGCopyTextInput from \"../../../../../components/formGenerator/FGCopyTextInput\";\r\nimport { AddParcoursFormationButton } from \"../../../../../components/parcoursFormation/AddParcoursFormationButton\";\r\nimport { SortieReseauButton } from \"../../../../../components/parcoursFormation/SortieReseauButton\";\r\nimport { RepresentantTooltip } from \"../../../../../components/personTooltip/RepresentantToolTip\";\r\nimport { useAuth, useBeIdCardContext, useDialog, useModifiedByComponent } from \"../../../../../contexts\";\r\nimport { useApiService, useCrudApi, useFetchPicture, useTheme, useTl } from \"../../../../../hooks\";\r\nimport { useReferential } from \"../../../../../hooks/useReferential\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\nimport { belgianIdValidate } from \"../../../../../utils/belgianIdValidate\";\r\nimport { computeContratStatutColor } from \"../../../../../utils/contratStatutColor\";\r\nimport { phoneRegex } from \"../../../../../utils/phoneRegex\";\r\n\r\ninterface IApprenantSignaletiqueProps {\r\n baseData: ApprenantDoublonSearch;\r\n}\r\n\r\nconst RoContainer = styled.div<{ color?: string }>`\r\n display: flex;\r\n align-items: center;\r\n height: 30px;\r\n color: ${props => props.color};\r\n font-weight: bold;\r\n padding: 0 10px;\r\n`;\r\n\r\nconst EcRoContainer = styled.div<{ color?: string }>`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n height: 30px;\r\n padding: 0 10px;\r\n`;\r\n\r\nconst DiagonalBarHider = styled.div`\r\n overflow: hidden;\r\n position: relative;\r\n`;\r\n\r\nconst DiagonalBar = styled.div`\r\n width: 140px;\r\n background: black;\r\n height: 15px;\r\n transform: rotate(-45deg);\r\n position: absolute;\r\n top: 25px;\r\n left: -40px;\r\n\r\n &.hide {\r\n visibility: hidden;\r\n }\r\n`;\r\n\r\nconst StyledIcon = styled(Icon)`\r\n &.invert {\r\n filter: invert(100%);\r\n }\r\n`;\r\n\r\nconst DialogStyled = styled(Dialog)`\r\n background: white;\r\n`;\r\n\r\nconst BeneficiaryReadonlyContainer = styled.div`\r\n height: 30px;\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst CodeContrat = styled.div<{ color: string }>`\r\n color: ${props => props.color};\r\n font-weight: bold;\r\n height: 30px;\r\n display: flex;\r\n align-items: center;\r\n padding-left: 10px;\r\n`;\r\n\r\nconst TopContainer = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n`;\r\n\r\nconst IbanDisplay = styled(Cleave)`\r\n box-shadow: none;\r\n background-color: transparent;\r\n border: none;\r\n cursor: pointer;\r\n -webkit-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n\r\n &:focus,\r\n :focus-visible {\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst MissingDataContainer = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nexport const ApprenantSignaletique: React.FunctionComponent = ({ baseData }) => {\r\n const { t } = useTl();\r\n const history = useHistory();\r\n const api = useApiService(ApprenantApi);\r\n const formateurApi = useApiService(FormateurApi);\r\n const formikRef = React.useRef>();\r\n const { user } = useAuth();\r\n const { theme, ifapmeSide } = useTheme();\r\n\r\n const { id: idApprenant, state } = useParams<{ id: string; state: string }>();\r\n const { card } = useBeIdCardContext();\r\n const genderMapping = React.useMemo(() => ({ M: \"H\", F: \"F\", V: \"F\", W: \"F\" }), []);\r\n const [cardDataDifferent, setCardDataDifferent] = React.useState(false);\r\n const [mustLoadPicture, setMustLoadPicture] = React.useState(true);\r\n const { showDialogPromise, showDialog } = useDialog();\r\n const [deceasedChanged, setDeceasedChanged] = React.useState(false);\r\n const [idCatStatutSocial, setIdCatStatutSocial] = React.useState(formikRef?.current?.values?.idCategorieStatut);\r\n const isHope = React.useMemo(() => ifapmeSide === \"hope\", [ifapmeSide]);\r\n\r\n const { data, loading, saveItem, saving, setData, refresh, validationErrors } = useCrudApi(\r\n React.useMemo(\r\n () => ({\r\n getApiFn: () => {\r\n let newData = {};\r\n if (baseData) {\r\n newData = { ...baseData };\r\n }\r\n if (card) {\r\n newData = {\r\n ...newData,\r\n nom: card?.surname.toUpperCase(),\r\n prenom: card?.firstName,\r\n dateNaissance: card?.dateOfBirthParsed,\r\n registreNational: card?.nationalNumber,\r\n communeNaissance: card?.locationOfBirth,\r\n beidnumber: card?.cardNumber,\r\n photo: card?.photoB64,\r\n codesexe: card?.gender ? genderMapping[card?.gender] : null,\r\n adresseApprenant: !!card\r\n ? AdresseDtoFromJSON({\r\n adresse: card?.addressStreetAndNumber,\r\n codePostalText: card?.addressZip\r\n })\r\n : null\r\n };\r\n }\r\n return +idApprenant <= 0\r\n ? FcbApprenantDtoFromJSON({\r\n ...newData,\r\n idApprenant: 0,\r\n courrierPrincipal: true,\r\n bankAccountBeneficiaryId: null,\r\n idsSocieteExterne: +idApprenant <= 0 && user.idsSocieteExterne\r\n })\r\n : api.apprenantGet({ id: +idApprenant, picture: false });\r\n },\r\n saveApiFn: async (d: FcbApprenantDto) => {\r\n if (d.isDeceased && deceasedChanged) {\r\n const result = await showDialogPromise({\r\n message: t(ETLCodes.IsDeceasedConfirmation)\r\n });\r\n if (result === \"no\") {\r\n d.isDeceased = false;\r\n d.dateDeces = null;\r\n return;\r\n }\r\n }\r\n return api.apprenantSave({ FcbApprenantDto: d });\r\n },\r\n deleteApiFn: (d: FcbApprenantDto) => api.apprenantDelete({ id: d.idapprenant }),\r\n onDeletedRoute: () => ERoutes.apprenant,\r\n onSavedRoute: (d: FcbApprenantDto) => `${ERoutes.apprenant}/${d.idapprenant}/signaletique/edit`\r\n }),\r\n [api, baseData, card, deceasedChanged, genderMapping, idApprenant, showDialogPromise, t, user.idsSocieteExterne]\r\n )\r\n );\r\n\r\n const { modifiedByComponent, setModifiedByData } = useModifiedByComponent();\r\n const [photoDialogOpen, setPhotoDialogOpen] = React.useState(false);\r\n const [sexe, sLoading] = useReferential(a => a.referentialGetSexe());\r\n const [pays, pLoading] = useReferential(a => a.referentialGetPays());\r\n const [societesExternes, seLoading] = useReferential(apiC => apiC.referentialGetSocietesExternes(), true, []);\r\n const [categoriesStatutSocial, cssLoading, , rawCatStatutSocial] = useReferential(a =>\r\n a.referentialGetCategoriesStatutSocial()\r\n );\r\n const [idstatutSocial, setIdstatutSocial] = React.useState(0);\r\n const [statutsSocial, ssLoading] = useReferential(\r\n a =>\r\n a.referentialGetSousStatutsByCategorie({ idCategorie: idCatStatutSocial, currentIdstatutSocial: idstatutSocial }),\r\n true,\r\n [idCatStatutSocial]\r\n );\r\n const [typesSortie, tLoading] = useReferential(a => a.referentialGetTypesSortie({}));\r\n const [idtypeSortie, setIdtypeSortie] = React.useState(0);\r\n const [motifsSortie, msLoading] = useReferential(a => a.referentialGetMotifsSortie({ idtypeSortie }), true, [\r\n idtypeSortie\r\n ]);\r\n\r\n const idpersonne = React.useMemo(() => data?.idpersonne ?? 0, [data?.idpersonne]);\r\n const [personneTelephones, personneTelephonesLoading] = useReferential(\r\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\r\n false,\r\n [idpersonne]\r\n );\r\n const [personneGsms, personneGsmsLoading] = useReferential(a => a.referentialGetGsmsPersonne({ idpersonne }), false, [\r\n idpersonne\r\n ]);\r\n\r\n const [personneEmails, personneEmailsLoading] = useReferential(\r\n a => a.referentialGetEmailsPersonne({ idpersonne }),\r\n false,\r\n [idpersonne]\r\n );\r\n\r\n const [personneComptesBancaires, personneComptesBancairesLoading, , rawPersonneComptesBancaires] = useReferential(\r\n a => a.referentialGetComptesBancairesPersonne({ idpersonne }),\r\n false,\r\n [idpersonne]\r\n );\r\n\r\n const [picture, picLoading] = useFetchPicture(idpersonne, [data]);\r\n const [representatives, rLoading] = useReferential(r =>\r\n r.referentialGetLearnerRepresentatives({ learnerId: +idApprenant })\r\n );\r\n React.useEffect(() => {\r\n if (picture && data && !loading && !cardDataDifferent && mustLoadPicture) {\r\n setMustLoadPicture(false);\r\n setData({ ...data, photo: picture });\r\n }\r\n }, [cardDataDifferent, data, loading, mustLoadPicture, picture, setData]);\r\n\r\n React.useEffect(() => {\r\n if (data) {\r\n setModifiedByData({ modificationDate: data.modificationDate, modificationUser: data.modificationUserName });\r\n }\r\n }, [data, setModifiedByData]);\r\n\r\n React.useEffect(() => {\r\n if (data?.securise && user?.iduser !== data?.idPri) {\r\n showDialog({\r\n title: t(ETLCodes.ApprenantSecuriseTitle),\r\n message: t(ETLCodes.ApprenantSecuriseMessage),\r\n buttons: [\r\n {\r\n resultType: \"ok\",\r\n intent: \"success\",\r\n text: t(ETLCodes.OK)\r\n }\r\n ]\r\n });\r\n }\r\n }, [data?.idPri, data?.securise, showDialog, t, user?.iduser]);\r\n\r\n const askDataDifferent = React.useCallback(async () => {\r\n const result = await showDialogPromise({\r\n message: t(ETLCodes.ApprenantIdCardIsDifferent)\r\n });\r\n if (result === \"yes\") {\r\n setCardDataDifferent(true);\r\n }\r\n }, [showDialogPromise, t]);\r\n\r\n const isDeceasedConfirm = React.useCallback(async (isDeceased: boolean, formik) => {\r\n if (!isDeceased && !!formik?.values?.dateDeces) {\r\n formik.setFieldValue(\"dateDeces\", null);\r\n return;\r\n } else if (!formik?.values?.dateDeces) return;\r\n }, []);\r\n\r\n const canUseCardData = React.useMemo(() => {\r\n if (+idApprenant > 0) {\r\n return !data?.registreNational || data?.registreNational === card?.nationalNumber;\r\n }\r\n\r\n return false;\r\n }, [card?.nationalNumber, data?.registreNational, idApprenant]);\r\n\r\n React.useEffect(() => {\r\n if (!picLoading && data && card) {\r\n const cardObj = FcbApprenantDtoFromJSON({\r\n nom: card?.surname.toUpperCase(),\r\n prenom: card?.firstName,\r\n dateNaissance: card?.dateOfBirthParsed,\r\n registreNational: card?.nationalNumber,\r\n communeNaissance: card?.locationOfBirth,\r\n beidnumber: card?.cardNumber,\r\n photo: card?.photoB64,\r\n codesexe: card?.gender ? genderMapping[card?.gender] : null,\r\n adresseApprenant: AdresseDtoFromJSON({\r\n adresse: card?.addressStreetAndNumber,\r\n codePostalText: card?.addressZip\r\n })\r\n });\r\n\r\n const propsToPick = [\r\n \"nom\",\r\n \"prenom\",\r\n \"dateNaissance\",\r\n \"registreNational\",\r\n \"communeNaissance\",\r\n \"beidnumber\",\r\n \"codesexe\"\r\n ];\r\n const cardBirthdate = new Date(card.dateOfBirthParsed);\r\n const cardBirthdateString = `${cardBirthdate.getDate()}/${cardBirthdate.getMonth() +\r\n 1}/${cardBirthdate.getFullYear()}`;\r\n const dataBirthdateString = `${data.dateNaissance.getDate()}/${data.dateNaissance.getMonth() +\r\n 1}/${data.dateNaissance.getFullYear()}`;\r\n if (\r\n +idApprenant > 0 &&\r\n (!isEqual(pick(cardObj, propsToPick), pick(data, propsToPick)) || cardBirthdateString !== dataBirthdateString)\r\n ) {\r\n if (canUseCardData) {\r\n askDataDifferent();\r\n }\r\n }\r\n }\r\n }, [askDataDifferent, canUseCardData, card, data, genderMapping, idApprenant, picLoading]);\r\n\r\n React.useEffect(() => {\r\n if (cardDataDifferent) {\r\n setCardDataDifferent(false);\r\n setMustLoadPicture(false);\r\n formikRef?.current?.setValues(\r\n FcbApprenantDtoFromJSON({\r\n ...data,\r\n nom: card?.surname.toUpperCase() ?? data.nom,\r\n prenom: card?.firstName ?? data.prenom,\r\n dateNaissance: card?.dateOfBirthParsed ?? data.dateNaissance,\r\n registreNational: card?.nationalNumber ?? data.registreNational,\r\n communeNaissance: card?.locationOfBirth ?? data.communeNaissance,\r\n beidnumber: card?.cardNumber ?? data.beidnumber,\r\n photo: card?.photoB64 ?? picture,\r\n codesexe: card?.gender ? genderMapping[card?.gender] : data.codesexe,\r\n adresseApprenant: AdresseDtoFromJSON({\r\n ...data.adresseApprenant,\r\n adresse: card?.addressStreetAndNumber ?? data.adresseApprenant?.adresse,\r\n codePostalText: card?.addressZip ?? data.adresseApprenant?.codePostal\r\n })\r\n }),\r\n true\r\n );\r\n }\r\n }, [\r\n card?.addressStreetAndNumber,\r\n card?.addressZip,\r\n card?.cardNumber,\r\n card?.dateOfBirthParsed,\r\n card?.firstName,\r\n card?.gender,\r\n card?.locationOfBirth,\r\n card?.nationalNumber,\r\n card?.photoB64,\r\n card?.surname,\r\n cardDataDifferent,\r\n data,\r\n genderMapping,\r\n picture,\r\n saveItem,\r\n setData,\r\n formikRef\r\n ]);\r\n\r\n const [hasDoublonsName, setHasDoublonsName] = React.useState(false);\r\n\r\n const checkDoublonsName = React.useCallback(\r\n async values => {\r\n const res = await api.apprenantCheckDoublonsName({ FcbApprenantDto: values });\r\n setHasDoublonsName(!res.isValid);\r\n },\r\n [api]\r\n );\r\n const debouncedCheckDoublonsName = useDebouncedCallback(checkDoublonsName, 1000);\r\n\r\n const saveApprenant = React.useCallback(\r\n async d => {\r\n let result = \"yes\";\r\n if (hasDoublonsName) {\r\n result = await showDialogPromise({\r\n message: t(ETLCodes.ApprenantNameExistsSave)\r\n });\r\n }\r\n if (result === \"yes\") {\r\n await saveItem(d);\r\n }\r\n },\r\n [hasDoublonsName, saveItem, showDialogPromise, t]\r\n );\r\n\r\n const [hasDoublonsNatNumber, setHasDoublonsNatNumber] = React.useState(false);\r\n const checkDoublonsNatNumber = React.useCallback(\r\n async values => {\r\n const res = await api.apprenantCheckDoublonsNationalNumber({ FcbApprenantDto: values });\r\n setHasDoublonsNatNumber(\r\n !res.isValid && (values.registreNational !== data?.registreNational || +idApprenant <= 0)\r\n );\r\n },\r\n [api, data?.registreNational, idApprenant]\r\n );\r\n const debouncedCheckDoublonsNatNumber = useDebouncedCallback(checkDoublonsNatNumber, 1000);\r\n const [codePaysNaissance, setCodePaysNaissance] = React.useState();\r\n const [localites, lLoading] = useReferential(\r\n a => a.referentialGetLocalitesSuggest({ pays: codePaysNaissance }),\r\n false,\r\n [codePaysNaissance]\r\n );\r\n\r\n const isRegNatDateNaiss = React.useCallback((ctx: IFGContext) => {\r\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\").replace(\"-\", \"\");\r\n if (ctx.formik.values.dateNaissance && ctx.formik.values.nationalite === \"BE\") {\r\n const parsedDateNaissance = new Date(ctx.formik.values.dateNaissance);\r\n if (parsedDateNaissance && value) {\r\n const year = value.slice(0, 2);\r\n const month = value.slice(2, 4);\r\n const day = value.slice(4, 6);\r\n if (\r\n +year !==\r\n +parsedDateNaissance\r\n .getFullYear()\r\n .toString()\r\n .substr(2, 2)\r\n ) {\r\n return false;\r\n }\r\n if (+month !== 0 && +month !== parsedDateNaissance.getMonth() + 1) {\r\n return false;\r\n }\r\n if (+day !== 0 && +day !== parsedDateNaissance.getDate()) {\r\n return false;\r\n }\r\n return true;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }, []);\r\n\r\n const isRegNatGenre = React.useCallback((ctx: IFGContext) => {\r\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\")?.replace(\"-\", \"\");\r\n if (value && ctx.formik.values.codesexe !== \"X\" && ctx.formik.values.nationalite === \"BE\") {\r\n const code = +value.slice(7, 9) % 2 === 0 ? \"F\" : \"H\";\r\n return ctx.formik.values.codesexe === code;\r\n }\r\n return true;\r\n }, []);\r\n\r\n const FormSchema = React.useMemo(() => {\r\n return Yup.object().shape(\r\n {\r\n compteBancaire: Yup.object()\r\n .nullable()\r\n .shape({\r\n iban: Yup.string()\r\n .nullable()\r\n .test(\"iban-valid\", t(ETLCodes.InvalidIban), async function(value) {\r\n if (!value || value.trim() === \"\" || !!this.parent.idcompteBancaire) return true;\r\n return IBAN.isValid(value);\r\n }),\r\n idcompteBancaire: Yup.number()\r\n .nullable()\r\n .test(\"iban-valid-id\", t(ETLCodes.InvalidIban), async function(value) {\r\n if (!value || !this.parent.iban || this.parent.iban.trim() === \"\") return true;\r\n return IBAN.isValid(this.parent.iban);\r\n })\r\n }),\r\n nom: Yup.string()\r\n .required(t(ETLCodes.Required))\r\n .max(100, t(ETLCodes.MaxCharacterApprenantNom)),\r\n prenom: Yup.string()\r\n .required(t(ETLCodes.Required))\r\n .max(100, t(ETLCodes.MaxCharacterApprenantPrenom)),\r\n codesexe: Yup.string().required(t(ETLCodes.Required)),\r\n dateNaissance: Yup.date()\r\n .required(t(ETLCodes.Required))\r\n .min(new Date(new Date().getFullYear() - 100, 1, 1), t(ETLCodes.ApprenantTooOld))\r\n .max(new Date(new Date().getFullYear() - 12, 1, 1), t(ETLCodes.ApprenantTooYoung)),\r\n nationalite: Yup.string().required(t(ETLCodes.Required)),\r\n registreNational: Yup.string()\r\n .nullable()\r\n .test(\"registre-checksum\", t(ETLCodes.NotValid), function(value) {\r\n if (!value || value === \"\") return true;\r\n\r\n var millenial = false;\r\n if (this.parent.dateNaissance) {\r\n const parsedDateNaissance = new Date(this.parent.dateNaissance);\r\n if (parsedDateNaissance.getFullYear() > 1999) {\r\n millenial = true;\r\n }\r\n }\r\n\r\n return belgianIdValidate(value, millenial);\r\n })\r\n .when([\"nationalite\", \"numeroIdentification\"], {\r\n is: (nationalite, numeroIdentification) => nationalite === \"BE\" || !numeroIdentification,\r\n then: schema => schema.required(t(ETLCodes.AtLeastOneRegNatFields))\r\n }),\r\n numeroIdentification: Yup.string()\r\n .nullable()\r\n .when([\"nationalite\", \"registreNational\"], {\r\n is: (nationalite, registreNational) => nationalite !== \"BE\" && !registreNational,\r\n then: schema => schema.required(t(ETLCodes.AtLeastOneRegNatFields))\r\n }),\r\n telephoneApprenant: Yup.object().test(\"tel-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\r\n if (this.parent.idapprenant > 0 || !value?.numero) return true;\r\n const numero = value?.numero as string;\r\n return !!numero.match(phoneRegex);\r\n }),\r\n gsmApprenant: Yup.object().test(\"gsm-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\r\n if (this.parent.idapprenant > 0 || !value?.numero) return true;\r\n const numero = value?.numero as string;\r\n return !!numero.match(phoneRegex);\r\n }),\r\n emailApprenant: Yup.object().when(\"idapprenant\", {\r\n is: idapprenant => idapprenant <= 0,\r\n then: Yup.object().shape({\r\n adresseEmail: Yup.string().email(t(ETLCodes.InvalidEmail))\r\n })\r\n }),\r\n communeNaissance: Yup.string()\r\n .nullable()\r\n .test(\"localite-nationalite\", t(ETLCodes.Required), function(value) {\r\n return !!value || this.parent.nationalite !== \"BE\";\r\n }),\r\n bankAccountBeneficiaryId: Yup.number()\r\n .nullable()\r\n .test(\"bankAccountBeneficiaryId-required\", t(ETLCodes.Required), function(value) {\r\n return !value || value > 0;\r\n }),\r\n dateDeces: Yup.string()\r\n .nullable()\r\n .test(\"dateDeces-required\", t(ETLCodes.Required), function(value) {\r\n return this.parent.isDeceased ? !!value : true;\r\n }),\r\n courrierPrincipal: Yup.bool().test(\"courrier-principal-required\", t(ETLCodes.AtLeastOneCourrier), function(\r\n value\r\n ) {\r\n return !!value || this.parent.courrierAutre;\r\n }),\r\n courrierAutre: Yup.bool().test(\"courrier-autre-required\", t(ETLCodes.AtLeastOneCourrier), function(value) {\r\n return !!value || this.parent.courrierPrincipal;\r\n }),\r\n idCategorieStatut: Yup.number()\r\n .nullable()\r\n .test(\"categorie-entree-required\", t(ETLCodes.Required), function(value) {\r\n if (!!this.parent.idstatutEntree || this.parent.idapprenant > 0) return true;\r\n return this.parent.dateEntree || this.parent.idStatut ? !!value : true;\r\n }),\r\n idStatut: Yup.number()\r\n .nullable()\r\n .test(\"statut-entree-required\", t(ETLCodes.Required), function(value) {\r\n if (!!this.parent.idstatutEntree || this.parent.idapprenant > 0) return true;\r\n return this.parent.dateEntree || this.parent.idCategorieStatut ? !!value : true;\r\n })\r\n },\r\n [\r\n [\"numeroIdentification\", \"nationalite\"],\r\n [\"numeroIdentification\", \"registreNational\"],\r\n [\"registreNational\", \"nationalite\"],\r\n [\"registreNational\", \"numeroIdentification\"]\r\n ]\r\n );\r\n }, [t]);\r\n\r\n const [bankAccount, setBankAccount] = React.useState(null);\r\n const queryEnabled = React.useMemo(() => bankAccount?.toUpperCase()?.startsWith(\"BE\") && bankAccount?.length > 8, [\r\n bankAccount\r\n ]);\r\n const fetchBic = React.useCallback(async () => {\r\n if (queryEnabled) return formateurApi.formateurGetBicFromAccount({ account: bankAccount });\r\n return \"\";\r\n }, [bankAccount, formateurApi, queryEnabled]);\r\n\r\n const { data: bic, isFetching: bicLoading } = useQuery([\"bic\", idApprenant, bankAccount], fetchBic);\r\n\r\n const previousBic = usePrevious(bic);\r\n React.useEffect(() => {\r\n if (bic && previousBic !== bic) {\r\n formikRef?.current?.setFieldValue(\"compteBancaire.bic\", bic);\r\n }\r\n }, [bic, previousBic]);\r\n\r\n const [idPri, setIdPri] = React.useState(0);\r\n const [users, usersLoading] = useReferential(\r\n a =>\r\n a.referentialGetUsersByRoles({\r\n ELevelName: [ELevelName.RI, ELevelName.ARI, ELevelName.COP],\r\n currentIduser: idPri\r\n }),\r\n true,\r\n [idPri]\r\n );\r\n\r\n React.useEffect(() => {\r\n if (\r\n !!data &&\r\n user &&\r\n !usersLoading &&\r\n users?.some(u => +u.value === user.iduser) &&\r\n formikRef.current &&\r\n data.idPri === null\r\n ) {\r\n formikRef.current.setFieldValue(\"idPri\", user.iduser);\r\n }\r\n }, [data, user, users, usersLoading]);\r\n\r\n const [idAri, setIdAri] = React.useState(0);\r\n const [usersAri, usersAriLoading] = useReferential(\r\n a => a.referentialGetUsersByRoles({ ELevelName: [ELevelName.ARI], currentIduser: idAri }),\r\n true,\r\n [idAri]\r\n );\r\n\r\n const [idCop, setIdCop] = React.useState(0);\r\n const [usersCop, usersCopLoading] = useReferential(\r\n a => a.referentialGetUsersByRoles({ ELevelName: [ELevelName.COP], currentIduser: idCop }),\r\n true,\r\n [idCop]\r\n );\r\n\r\n const isUserCop = React.useMemo(() => user && usersCop && usersCop.some(u => +u.value === user.iduser), [\r\n user,\r\n usersCop\r\n ]);\r\n\r\n const isFullCreation = React.useMemo(() => +idApprenant <= 0 && !data?.idpersonne, [data?.idpersonne, idApprenant]);\r\n\r\n const isCalcOrAdmin = React.useMemo(() => user?.hopeMainLevelName === \"CALC\" || user?.isAdmin, [\r\n user?.hopeMainLevelName,\r\n user?.isAdmin\r\n ]);\r\n\r\n const edit = React.useMemo(() => state === \"edit\", [state]);\r\n const ibanCleaveOptions = useCleaveOptions(\"iban\");\r\n\r\n const showDureeInoccupation = React.useMemo(\r\n () =>\r\n !!rawCatStatutSocial &&\r\n +(rawCatStatutSocial.find(c => c.keyValue === \"DEM\")?.idValue ?? 0) === +idCatStatutSocial,\r\n [idCatStatutSocial, rawCatStatutSocial]\r\n );\r\n const [dureeInoccupations, diLoading] = useReferential(a => a.referentialGetDureeInoccupation(), true, []);\r\n\r\n return (\r\n history.push(ERoutes.apprenant)}\r\n saving={saving}\r\n formikInnerRef={i => (formikRef.current = i)}\r\n minLabelWidth={201} // For idPri field label length\r\n forceEnableSave={Object.values(baseData).some(el => !!el)}\r\n watchChanges={{\r\n idStatut: setIdstatutSocial,\r\n idtypeSortie: setIdtypeSortie\r\n }}\r\n validationErrors={validationErrors}\r\n >\r\n debouncedCheckDoublonsName(formik?.values)} />\r\n debouncedCheckDoublonsName(formik?.values)} />\r\n debouncedCheckDoublonsName(formik?.values)} />\r\n setCodePaysNaissance(value)} />\r\n debouncedCheckDoublonsNatNumber(formik?.values)}\r\n />\r\n\r\n {\r\n if (!!value) {\r\n setBankAccount(value);\r\n } else if (!!formik.values.compteBancaire?.bic) {\r\n formik.setFieldValue(\"compteBancaire.bic\", null);\r\n }\r\n }}\r\n />\r\n {\r\n if (value === null) {\r\n formik.setFieldValue(\"compteBancaire.iban\", null);\r\n formik.setFieldValue(\"compteBancaire.bic\", null);\r\n }\r\n }}\r\n />\r\n {\r\n if (formik?.initialValues?.isDeceased !== value) {\r\n setDeceasedChanged(true);\r\n } else {\r\n setDeceasedChanged(false);\r\n }\r\n isDeceasedConfirm(value, formik);\r\n }}\r\n />\r\n setIdCatStatutSocial(value)} />\r\n setIdPri(value)} />\r\n setIdAri(value)} />\r\n setIdCop(value)} />\r\n \r\n \r\n {ctx =>\r\n user.iduser === ctx?.formik?.values?.idPri && (\r\n ctx?.formik?.setFieldValue(\"securise\", !ctx?.formik?.values?.securise)}\r\n />\r\n )\r\n }\r\n \r\n {modifiedByComponent}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(ctx: IFGContext) => (\r\n
\r\n {t(ETLCodes.XYear, { ageNumber: moment().diff(ctx?.formik?.values?.dateNaissance, \"years\") })}\r\n
\r\n )}\r\n
\r\n \r\n \r\n {ctx => (\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {ctx => (\r\n \r\n )}\r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {ctx =>\r\n !!ctx?.formik?.values?.emergencyContactId && !!ctx?.formik?.values?.emergencyContactPhone ? (\r\n }\r\n />\r\n ) : (\r\n \r\n {val =>\r\n !!ctx?.formik?.values?.emergencyContactId && (\r\n \r\n {!val && t(ETLCodes.PasDeNumero)}\r\n \r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {ctx => (\r\n
\r\n
\r\n {ctx.formik.values.photo ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n {ctx => (\r\n \r\n \r\n \r\n setPhotoDialogOpen(true)}\r\n disabled={!ctx.editMode}\r\n />\r\n ctx.formik.setFieldValue(\"photo\", null)}\r\n disabled={!ctx.editMode}\r\n />\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n <>\r\n {isRegNatDateNaiss(ctx) ? null : (\r\n {t(ETLCodes.DateDeNaissanceNeCorrespondPas)}\r\n )}\r\n {isRegNatGenre(ctx) ? null : (\r\n {t(ETLCodes.GenreNeCorrespondPas)}\r\n )}\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n !!ctx.formik?.values?.nationalite && ctx.formik?.values?.nationalite !== \"BE\"}\r\n />\r\n \r\n \r\n {user && !user.idsSocieteExterne?.length && (user.hopeMainLevelName === \"CENTRE - Global\" || user.isAdmin) && (\r\n \r\n )}\r\n \r\n \r\n \r\n {ctx => (\r\n \r\n \r\n {ctx.formik.values.hasAdresseDoublons && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ctx.formik.values.hasAdresseCourrierDoublons && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {ctx =>\r\n (!ctx.formik.values?.idstatutEntree ||\r\n !!ctx.formik.values?.idstatutSortie ||\r\n (!!ctx.formik.values?.idstatutEntree && !ctx.formik.values?.idParcoursFormation)) &&\r\n +idApprenant > 0 && (\r\n {\r\n ctx.formik.resetForm(ctx.formik.values);\r\n if (toRefresh) {\r\n if (isHope) {\r\n history.push(`${ERoutes.apprenant}/${idApprenant}/parcoursFormation/view`);\r\n } else {\r\n history.push(`${ERoutes.apprenant}/${idApprenant}/inscription/0/detail/edit`);\r\n }\r\n }\r\n }}\r\n loading={loading}\r\n idCategorieStatut={ctx.formik.values?.idCategorieStatut}\r\n idStatut={ctx.formik.values?.idStatut}\r\n iddureeInoccupation={ctx.formik.values?.iddureeInoccupation}\r\n dateEntree={\r\n !!data?.dateEntreeReseau && !!data?.idstatutEntree\r\n ? data?.dateSortie > data?.dateEntreeReseau\r\n ? data?.dateSortie\r\n : data?.dateEntreeReseau\r\n : new Date()\r\n }\r\n minDateEntree={data?.lastDateSortie}\r\n title={isHope ? t(ETLCodes.NouveauParcoursFormation) : t(ETLCodes.NouvelleInscription)}\r\n />\r\n )\r\n }\r\n \r\n \r\n {ctx => (\r\n <>\r\n 0}\r\n />\r\n \r\n window.open(\r\n `#${ERoutes.contrat}/${ctx.formik.values.contrat?.idcontrat}/detail/${ctx.formik.values.contrat?.type}/view`\r\n )\r\n }\r\n />\r\n }\r\n leftElement={\r\n \r\n {ctx.formik.values.contrat?.code}\r\n \r\n }\r\n />\r\n {!!ctx.formik.values?.idstatutEntree && (\r\n <>\r\n \r\n \r\n history.push(`${ERoutes.apprenant}/${idApprenant}/statutMotifs/edit`)}\r\n />\r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n history.push(`${ERoutes.apprenant}/${idApprenant}/statutMotifs/edit`)}\r\n />\r\n \r\n )\r\n }\r\n />\r\n {showDureeInoccupation && (\r\n \r\n \r\n history.push(`${ERoutes.apprenant}/${idApprenant}/statutMotifs/edit`)}\r\n />\r\n \r\n )\r\n }\r\n />\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {(val, formik) => (\r\n = 90 ? theme.dangerColor : theme.warningColor) : theme.sucessColor}\r\n >\r\n {t(\r\n !val && val !== 0\r\n ? ETLCodes.General_No\r\n : val === 0\r\n ? ETLCodes.DepuisAujourdhui\r\n : ETLCodes.DepuisNJours,\r\n { nb: val }\r\n )}\r\n {!!formik.values.dateDebutRechercheEntreprise &&\r\n ` (${format(formik.values.dateDebutRechercheEntreprise, \"dd/MM/yyyy\")})`}\r\n \r\n )}\r\n \r\n \r\n {ctx =>\r\n !!ctx.formik.values?.idstatutEntree &&\r\n !ctx.formik.values?.idstatutSortie &&\r\n !!ctx.formik?.values?.idParcoursFormation ? (\r\n {\r\n refresh();\r\n setMustLoadPicture(true);\r\n }}\r\n loading={loading}\r\n withConfirm={!!ctx.formik.values?.idParcoursFormation}\r\n isSortieEnCours={ctx.formik.values?.isSortieEnCours}\r\n iddureeInoccupation={ctx.formik.values?.iddureeInoccupation}\r\n />\r\n ) : (\r\n !!ctx.formik.values?.idstatutSortie && (\r\n <>\r\n \r\n \r\n \r\n history.push(`${ERoutes.apprenant}/${idApprenant}/statutMotifs/edit`)}\r\n />\r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n history.push(`${ERoutes.apprenant}/${idApprenant}/statutMotifs/edit`)}\r\n />\r\n \r\n )\r\n }\r\n />\r\n \r\n )\r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {ctx => (\r\n <>\r\n {!!ctx?.formik?.values?.idCop && (isCalcOrAdmin || isUserCop) && (\r\n ctx?.formik?.setFieldValue(\"idCop\", null)}\r\n />\r\n ) : (\r\n ctx?.formik?.setFieldValue(\"idCop\", user?.iduser)}\r\n />\r\n ))\r\n }\r\n />\r\n )}\r\n \r\n {!ctx?.formik?.values?.idCop && isUserCop && (\r\n ctx?.formik?.setFieldValue(\"idCop\", user?.iduser)}\r\n />\r\n )}\r\n \r\n {isCalcOrAdmin && !ctx?.formik?.values?.idCop && (\r\n \r\n {ctx => (\r\n
\r\n {t(ETLCodes.PasDeCopAssigné)}\r\n
\r\n )}\r\n
\r\n )}\r\n \r\n )}\r\n
\r\n {isFullCreation ? (\r\n <>\r\n = 0 && !!data?.compteBancaire?.iban}\r\n />\r\n = 0 && !!data?.compteBancaire?.bic}\r\n />\r\n \r\n ) : (\r\n }\r\n helperText={ctx => {\r\n var foundBic = rawPersonneComptesBancaires?.find(\r\n c => +c.idValue === ctx.formik?.values?.compteBancaire?.idcompteBancaire\r\n )?.keyValue;\r\n if (!foundBic) return;\r\n return `${t(ETLCodes.CodeBIC)}: ${foundBic}`;\r\n }}\r\n />\r\n )}\r\n \r\n {ctx =>\r\n ctx?.editMode ? (\r\n {\r\n if (e.currentTarget.value === \"1\") {\r\n ctx.formik.setFieldValue(\"bankAccountBeneficiaryId\", null);\r\n } else {\r\n ctx.formik.setFieldValue(\"bankAccountBeneficiaryId\", -1);\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n ) : (\r\n \r\n {!ctx?.formik?.values?.bankAccountBeneficiaryId ? t(ETLCodes.Apprenant) : t(ETLCodes.Representant)} (\r\n {ctx?.formik?.values?.bankAccountBeneficiaryName})\r\n \r\n )\r\n }\r\n \r\n \r\n {ctx =>\r\n !!ctx?.formik?.values?.bankAccountBeneficiaryId &&\r\n ctx?.editMode && (\r\n \r\n )\r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ctx => (\r\n setPhotoDialogOpen(false)}\r\n canOutsideClickClose={true}\r\n canEscapeKeyClose={true}\r\n title={`Photo ${ctx.formik.values?.nom ?? \"\"} ${ctx.formik.values?.prenom ?? \"\"}`}\r\n style={{ width: \"90%\", height: \"800px\" }}\r\n enforceFocus={false}\r\n >\r\n {\r\n ctx.formik.setFieldValue(\"photo\", newPhoto);\r\n setPhotoDialogOpen(false);\r\n }}\r\n onCancel={() => setPhotoDialogOpen(false)}\r\n />\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport {\n EContentHidingMode,\n FcbSuiviApprenantGridDto,\n SuiviApprenantApi,\n SuiviApprenantSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useAuth } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IApprenantSuiviListPageProps {\n apprenantId: number;\n}\n\nexport const ApprenantSuiviListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const api = useApiService(SuiviApprenantApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/suiviApprenant`, [apprenantId]);\n const tableState = useGridState({\n sortKeys: { dateSuivi: \"DESC\" },\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: SuiviApprenantSearch) => {\n sObj.idApprenant = apprenantId;\n return api.suiviApprenantBaseSearch({ SuiviApprenantSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const user = useAuth().user;\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbSuiviApprenantGridDto) =>\n ((row.fromHope && user.ifapmeSide.includes(\"Hope\")) ||\n (!row.fromHope && user.ifapmeSide.includes(\"Walter\"))) && (\n \n history.push(`${path}/${row.idsuiviApprenant}/view`)} />\n\n history.push(`${path}/${row.idsuiviApprenant}/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"dateSuivi\"\n },\n {\n header: () => t(ETLCodes.ContenuCachePour),\n fieldName: \"contentHidingMode\",\n render: (row: FcbSuiviApprenantGridDto) => {\n switch (row.contentHidingMode) {\n case EContentHidingMode.NONE:\n return t(ETLCodes.Personne);\n case EContentHidingMode.SERVICES:\n return t(ETLCodes.Services);\n case EContentHidingMode.ALL:\n return t(ETLCodes.Tous);\n }\n }\n },\n {\n header: () => t(ETLCodes.Utilisateur),\n fieldName: \"utilisateur\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Lieu),\n fieldName: \"lieu\"\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"classe\"\n },\n {\n header: () => t(ETLCodes.Categorie),\n fieldName: \"types\",\n render: (row: FcbSuiviApprenantGridDto) => (\n <>{row.types.length > 0 ? row.types.map(type => type).join(\", \") : \"\"}\n )\n }\n ],\n [history, path, t, user.iduser, user.ifapmeSide]\n );\n\n return (\n <>\n {\n history.push(`${path}/0/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n >\n \n \n \n );\n};\n","import { FGEmpty, FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { AgrementApi, FcbAgrementDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantValidationCEDetailPageProps {}\n\nexport const ApprenantValidationCEDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(AgrementApi);\n const { id, idValidation, state } = useParams<{ id: string; idValidation: string; state: string }>();\n const idApprenant = React.useMemo(() => +id, [id]);\n const IdValidation = React.useMemo(() => +idValidation, [idValidation]);\n\n const [formation, formationLoading] = useReferential(\n a => a.referentialGetFormationApprenant({ idApprenant: idApprenant }),\n true,\n []\n );\n const [decision, decisionLoading] = useReferential(a => a.referentialGetDecision(), true, []);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n IdValidation <= 0\n ? FcbAgrementDtoFromJSON({\n idagrement: 0,\n idapprenant: idApprenant,\n c8: false,\n derogation: false,\n dateDecision: new Date()\n })\n : api.agrementGet({ id: IdValidation }),\n saveApiFn: d => api.agrementSave({ FcbAgrementDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${idApprenant}/validationce/${d.idagrement}/edit`,\n deleteApiFn: d => api.agrementDelete({ id: d.idagrement }),\n onDeletedRoute: d => `${ERoutes.apprenant}/${idApprenant}/validationce`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n iddecision: Yup.number().required(t(ETLCodes.Required)),\n idformation: Yup.number().required(t(ETLCodes.Required)),\n dateDecision: Yup.date().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n history.push(`${ERoutes.apprenant}/${idApprenant}/validationce`)}\n onDelete={deleteItem}\n showDeleteButton={IdValidation > 0}\n saving={saving}\n deleting={deleting}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Checkbox, Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { AgrementApi, AgrementSearch, FcbAgrementGridDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantValidationCEListPageProps {}\nexport const ApprenantValidationCEListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const api = useApiService(AgrementApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/validationce`, [apprenantId]);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { dateDecision: \"DESC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: AgrementSearch) => {\n sObj.idApprenant = apprenantId;\n return api.agrementBaseSearch({ AgrementSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const columns = React.useMemo(\n () => [\n {\n sortKeys: { formation: \"ASC\" },\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbAgrementGridDto) => (\n \n history.push(`${path}/${row.idagrement}/view`)} />\n\n history.push(`${path}/${row.idagrement}/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Formation),\n fieldName: \"formation\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"dateDecision\"\n },\n {\n header: () => t(ETLCodes.Decision),\n fieldName: \"decision\"\n },\n {\n autoFitContent: true,\n header: () => t(ETLCodes.Derogation),\n fieldName: \"derogation\",\n alignment: \"center\",\n render: (row: FcbAgrementGridDto) => \n },\n {\n autoFitContent: true,\n header: () => t(ETLCodes.C8),\n fieldName: \"c8\",\n alignment: \"center\",\n render: (row: FcbAgrementGridDto) => \n }\n ],\n [history, path, t]\n );\n return (\n <>\n {\n e.stopPropagation();\n history.push(`${path}/0/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n >\n \n \n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router\";\n\nimport { ApprenantValidationCEDetailPage } from \"./ApprenantValidationCEDetailPage\";\nimport { ApprenantValidationCEListPage } from \"./ApprenantValidationCEListPage\";\n\ninterface IApprenantValidationCEProps {\n apprenantId: number;\n}\n\nexport const ApprenantValidationCE: React.FunctionComponent = () => {\n const match = useRouteMatch();\n return (\n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n AcquisAdmissionApi,\n BilanCompetenceFichierUploadDto,\n BilanCompetenceFichierUploadDtoFromJSON\n} from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IBilanCompetenceDocumentUploadDialogProps {\n idbilanCompetence: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const BilanCompetenceDocumentUploadDialog: React.FunctionComponent = ({\n idbilanCompetence,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return BilanCompetenceFichierUploadDtoFromJSON({ idbilanCompetence });\n },\n saveApiFn: async (d: BilanCompetenceFichierUploadDto) => {\n return api.acquisAdmissionUploadBilanCompetenceFichier({ BilanCompetenceFichierUploadDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idbilanCompetence, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { AcquisAdmissionApi, BilanCompetenceFichierDto } from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport * as Yup from \"yup\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport styled from \"styled-components\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IBilanCompetenceDocumentEditDialogProps {\n idbilanCompetenceFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const BilanCompetenceDocumentEditDialog: React.FunctionComponent = ({\n idbilanCompetenceFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.acquisAdmissionGetBilanCompetenceFichier({ id: idbilanCompetenceFichier });\n },\n saveApiFn: async (d: BilanCompetenceFichierDto) => {\n return api.acquisAdmissionSaveBilanCompetenceFichier({ BilanCompetenceFichierDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idbilanCompetenceFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n AcquisAdmissionApi,\n DossierAdmissionFichierUploadDto,\n DossierAdmissionFichierUploadDtoFromJSON\n} from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IDossierAdmissionDocumentUploadDialogProps {\n iddossierAdmission: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const DossierAdmissionDocumentUploadDialog: React.FunctionComponent = ({\n iddossierAdmission,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return DossierAdmissionFichierUploadDtoFromJSON({ iddossierAdmission });\n },\n saveApiFn: async (d: DossierAdmissionFichierUploadDto) => {\n return api.acquisAdmissionUploadDossierAdmissionFichier({ DossierAdmissionFichierUploadDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, iddossierAdmission, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { AcquisAdmissionApi, DossierAdmissionFichierDto } from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport * as Yup from \"yup\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport styled from \"styled-components\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IDossierAdmissionDocumentEditDialogProps {\n iddossierAdmissionFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const DossierAdmissionDocumentEditDialog: React.FunctionComponent = ({\n iddossierAdmissionFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.acquisAdmissionGetDossierAdmissionFichier({ id: iddossierAdmissionFichier });\n },\n saveApiFn: async (d: DossierAdmissionFichierDto) => {\n return api.acquisAdmissionSaveDossierAdmissionFichier({ DossierAdmissionFichierDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, iddossierAdmissionFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n AcquisAdmissionApi,\n ExamenEntreeFceFichierUploadDto,\n ExamenEntreeFceFichierUploadDtoFromJSON\n} from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IExamenEntreeFceDocumentUploadDialogProps {\n idexamenEntreeFce: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const ExamenEntreeFceDocumentUploadDialog: React.FunctionComponent = ({\n idexamenEntreeFce,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return ExamenEntreeFceFichierUploadDtoFromJSON({ idexamenEntreeFce });\n },\n saveApiFn: async (d: ExamenEntreeFceFichierUploadDto) => {\n return api.acquisAdmissionUploadExamenEntreeFceFichier({ ExamenEntreeFceFichierUploadDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idexamenEntreeFce, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { AcquisAdmissionApi, ExamenEntreeFceFichierDto } from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport * as Yup from \"yup\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport styled from \"styled-components\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IExamenEntreeFceDocumentEditDialogProps {\n idexamenEntreeFceFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const ExamenEntreeFceDocumentEditDialog: React.FunctionComponent = ({\n idexamenEntreeFceFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.acquisAdmissionGetExamenEntreeFceFichier({ id: idexamenEntreeFceFichier });\n },\n saveApiFn: async (d: ExamenEntreeFceFichierDto) => {\n return api.acquisAdmissionSaveExamenEntreeFceFichier({ ExamenEntreeFceFichierDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idexamenEntreeFceFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n AcquisAdmissionApi,\n ExamenEntreeFichierUploadDto,\n ExamenEntreeFichierUploadDtoFromJSON\n} from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IExamenEntreeDocumentUploadDialogProps {\n idexamenEntree: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const ExamenEntreeDocumentUploadDialog: React.FunctionComponent = ({\n idexamenEntree,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return ExamenEntreeFichierUploadDtoFromJSON({ idexamenEntree });\n },\n saveApiFn: async (d: ExamenEntreeFichierUploadDto) => {\n return api.acquisAdmissionUploadExamenEntreeFichier({ ExamenEntreeFichierUploadDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idexamenEntree, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { AcquisAdmissionApi, ExamenEntreeFichierDto } from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport * as Yup from \"yup\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport styled from \"styled-components\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IExamenEntreeDocumentEditDialogProps {\n idexamenEntreeFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const ExamenEntreeDocumentEditDialog: React.FunctionComponent = ({\n idexamenEntreeFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.acquisAdmissionGetExamenEntreeFichier({ id: idexamenEntreeFichier });\n },\n saveApiFn: async (d: ExamenEntreeFichierDto) => {\n return api.acquisAdmissionSaveExamenEntreeFichier({ ExamenEntreeFichierDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idexamenEntreeFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGListen,\n FGNumberInput,\n FGTextAreaInput,\n FieldGroup,\n IDataTableColumn,\n showError,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { BilanCompetenceDocumentEditDialog, BilanCompetenceDocumentUploadDialog } from \".\";\nimport {\n AcquisAdmissionApi,\n BilanCompetenceEditDtoFromJSON,\n BilanCompetenceFichierGridDto\n} from \"../../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nexport interface IBilanCompetenceDetailProps {\n onTypeAcquisChange?: (typeAcquis: string) => void;\n idpersonne: number;\n listRoute: string;\n}\n\nexport const BilanCompetenceDetail: React.FunctionComponent = ({\n onTypeAcquisChange,\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n const [typeAcquis, taLoading] = useReferential(a => a.referentialGetAcquisAdmissionTypes(), false, []);\n const [examinateurs, eLoading] = useReferential(a => a.referentialGetCentreGlobalUsers({ currentIduser: 0 }));\n const [anneeFormations, afLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [commentaires, comLoading] = useReferential(a => a.referentialGetAcquisCommentaires(), true, []);\n const history = useHistory();\n const { state, acquisId } = useParams<{\n id: string;\n tab: string;\n state: string;\n acquisId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors, refresh: refreshData } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +acquisId <= 0\n ? BilanCompetenceEditDtoFromJSON({\n idbilanCompetence: +acquisId,\n idpersonne: idpersonne,\n typeAcquis: \"BilanCompetence\"\n })\n : api.acquisAdmissionGetBilanCompetence({ id: +acquisId });\n },\n saveApiFn: d => api.acquisAdmissionSaveBilanCompetence({ BilanCompetenceEditDto: d }),\n onSavedRoute: d => listRoute,\n getDeps: [acquisId],\n deleteApiFn: d => api.acquisAdmissionDeleteBilanCompetence({ id: d.idbilanCompetence }),\n onDeletedRoute: () => listRoute\n }),\n [acquisId, idpersonne, api, listRoute]\n )\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n typeAcquis: Yup.string().required(t(ETLCodes.Required)),\n date: Yup.date().typeError(t(ETLCodes.DateInvalide))\n });\n }, [t]);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentBilanCompetenceFichierId, setCurrentBilanCompetenceFichierId] = React.useState(null);\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idbilanCompetenceFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idbilanCompetenceFichier);\n await api.acquisAdmissionDeleteBilanCompetenceFichier({ id: idbilanCompetenceFichier });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idbilanCompetenceFichier: number) => {\n try {\n setRowLoading(idbilanCompetenceFichier);\n const file = await api.acquisAdmissionDownloadBilanCompetenceFichier({ id: idbilanCompetenceFichier });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: BilanCompetenceFichierGridDto) => (\n \n setCurrentBilanCompetenceFichierId(row.idbilanCompetenceFichier)}\n loading={rowLoading === row.idbilanCompetenceFichier}\n disabled={!!rowLoading && rowLoading !== row.idbilanCompetenceFichier}\n />\n downloadFichier(row.idbilanCompetenceFichier)}\n loading={rowLoading === row.idbilanCompetenceFichier}\n disabled={!!rowLoading && rowLoading !== row.idbilanCompetenceFichier}\n />\n deleteFichier(row.idbilanCompetenceFichier)}\n loading={rowLoading === row.idbilanCompetenceFichier}\n disabled={!!rowLoading && rowLoading !== row.idbilanCompetenceFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeAcquisFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentBilanCompetenceFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(listRoute)}\n saving={saving}\n showDeleteButton={+acquisId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n validationErrors={validationErrors}\n >\n \n \n 0}\n />\n \n \n \n \n \n \n \n \n \n
\n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n \n {uploadDialoOpen && (\n \n )}\n {!!currentBilanCompetenceFichierId && (\n \n )}\n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGListen,\n FGNumberInput,\n FGTextAreaInput,\n FieldGroup,\n IDataTableColumn,\n showError,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { ExamenEntreeFceDocumentEditDialog, ExamenEntreeFceDocumentUploadDialog } from \".\";\nimport {\n AcquisAdmissionApi,\n ExamenEntreeFceEditDtoFromJSON,\n ExamenEntreeFceFichierGridDto\n} from \"../../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nexport interface IExamenEntreeFceDetailProps {\n onTypeAcquisChange?: (typeAcquis: string) => void;\n idpersonne: number;\n listRoute: string;\n}\n\nexport const ExamenEntreeFceDetail: React.FunctionComponent = ({\n onTypeAcquisChange,\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n const [typeAcquis, taLoading] = useReferential(a => a.referentialGetAcquisAdmissionTypes(), false, []);\n const [anneeFormation, afLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [acquisCom, acLoading] = useReferential(a => a.referentialGetAcquisCommentaires(), true, []);\n const [resultats, resuLoading] = useReferential(a => a.referentialGetResultatExamenEntreeFce(), true, []);\n const [decisionDossierAdmission, ddaLoading] = useReferential(\n a => a.referentialGetDecisionDossierAdmissions(),\n true,\n []\n );\n const [examinateurs, eLoading] = useReferential(a => a.referentialGetCentreGlobalUsers({ currentIduser: 0 }));\n const history = useHistory();\n const { state, acquisId } = useParams<{\n id: string;\n tab: string;\n state: string;\n acquisId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors, refresh: refreshData } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +acquisId <= 0\n ? ExamenEntreeFceEditDtoFromJSON({\n idexamenEntreeFce: +acquisId,\n idpersonne: idpersonne,\n typeAcquis: \"ExamenEntreeFCE\"\n })\n : api.acquisAdmissionGetExamenEntreeFce({ id: +acquisId });\n },\n saveApiFn: d => api.acquisAdmissionSaveExamenEntreeFce({ ExamenEntreeFceEditDto: d }),\n onSavedRoute: d => listRoute,\n getDeps: [acquisId],\n deleteApiFn: d => api.acquisAdmissionDeleteExamenEntreeFce({ id: d.idexamenEntreeFce }),\n onDeletedRoute: () => listRoute\n }),\n [acquisId, idpersonne, api, listRoute]\n )\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n typeAcquis: Yup.string().required(t(ETLCodes.Required)),\n date: Yup.date().typeError(t(ETLCodes.DateInvalide))\n });\n }, [t]);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentExamenEntreeFceFichierId, setCurrentExamenEntreeFceFichierId] = React.useState(null);\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idexamenEntreeFceFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idexamenEntreeFceFichier);\n await api.acquisAdmissionDeleteExamenEntreeFceFichier({ id: idexamenEntreeFceFichier });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idexamenEntreeFceFichier: number) => {\n try {\n setRowLoading(idexamenEntreeFceFichier);\n const file = await api.acquisAdmissionDownloadExamenEntreeFceFichier({ id: idexamenEntreeFceFichier });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ExamenEntreeFceFichierGridDto) => (\n \n setCurrentExamenEntreeFceFichierId(row.idexamenEntreeFceFichier)}\n loading={rowLoading === row.idexamenEntreeFceFichier}\n disabled={!!rowLoading && rowLoading !== row.idexamenEntreeFceFichier}\n />\n downloadFichier(row.idexamenEntreeFceFichier)}\n loading={rowLoading === row.idexamenEntreeFceFichier}\n disabled={!!rowLoading && rowLoading !== row.idexamenEntreeFceFichier}\n />\n deleteFichier(row.idexamenEntreeFceFichier)}\n loading={rowLoading === row.idexamenEntreeFceFichier}\n disabled={!!rowLoading && rowLoading !== row.idexamenEntreeFceFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeAcquisFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentExamenEntreeFceFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(listRoute)}\n saving={saving}\n showDeleteButton={+acquisId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n validationErrors={validationErrors}\n >\n \n \n \n 0}\n />\n \n \n \n \n \n \n \n \n \n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n \n {uploadDialoOpen && (\n \n )}\n {!!currentExamenEntreeFceFichierId && (\n \n )}\n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGListen,\n FGTextAreaInput,\n FieldGroup,\n IDataTableColumn,\n showError,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { DossierAdmissionDocumentEditDialog, DossierAdmissionDocumentUploadDialog } from \".\";\nimport {\n AcquisAdmissionApi,\n DossierAdmissionEditDtoFromJSON,\n DossierAdmissionFichierGridDto\n} from \"../../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nexport interface IDossierAdmissionDetailProps {\n onTypeAcquisChange?: (typeAcquis: string) => void;\n idpersonne: number;\n listRoute: string;\n}\n\nexport const DossierAdmissionDetail: React.FunctionComponent = ({\n onTypeAcquisChange,\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n const [typeAcquis, taLoading] = useReferential(a => a.referentialGetAcquisAdmissionTypes(), false, []);\n const [anneeFormation, afLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [resultats, resuLoading] = useReferential(a => a.referentialGetResultatDossierAdmissions(), false, []);\n const [examinateurs, eLoading] = useReferential(a => a.referentialGetCentreGlobalUsers({ currentIduser: 0 }));\n const history = useHistory();\n const { state, acquisId } = useParams<{\n id: string;\n tab: string;\n state: string;\n acquisId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors, refresh: refreshData } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +acquisId <= 0\n ? DossierAdmissionEditDtoFromJSON({\n iddossierAdmission: +acquisId,\n idpersonne: idpersonne,\n typeAcquis: \"DossierAdmission\"\n })\n : api.acquisAdmissionGetDossierAdmission({ id: +acquisId });\n },\n saveApiFn: d => api.acquisAdmissionSaveDossierAdmission({ DossierAdmissionEditDto: d }),\n onSavedRoute: d => listRoute,\n getDeps: [acquisId],\n deleteApiFn: d => api.acquisAdmissionDeleteDossierAdmission({ id: d.iddossierAdmission }),\n onDeletedRoute: () => listRoute\n }),\n [acquisId, idpersonne, api, listRoute]\n )\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n typeAcquis: Yup.string().required(t(ETLCodes.Required)),\n date: Yup.date().typeError(t(ETLCodes.DateInvalide))\n });\n }, [t]);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentDossierAdmissionFichierId, setCurrentDossierAdmissionFichierId] = React.useState(null);\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (iddossierAdmissionFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(iddossierAdmissionFichier);\n await api.acquisAdmissionDeleteDossierAdmissionFichier({ id: iddossierAdmissionFichier });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (iddossierAdmissionFichier: number) => {\n try {\n setRowLoading(iddossierAdmissionFichier);\n const file = await api.acquisAdmissionDownloadDossierAdmissionFichier({ id: iddossierAdmissionFichier });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: DossierAdmissionFichierGridDto) => (\n \n setCurrentDossierAdmissionFichierId(row.iddossierAdmissionFichier)}\n loading={rowLoading === row.iddossierAdmissionFichier}\n disabled={!!rowLoading && rowLoading !== row.iddossierAdmissionFichier}\n />\n downloadFichier(row.iddossierAdmissionFichier)}\n loading={rowLoading === row.iddossierAdmissionFichier}\n disabled={!!rowLoading && rowLoading !== row.iddossierAdmissionFichier}\n />\n deleteFichier(row.iddossierAdmissionFichier)}\n loading={rowLoading === row.iddossierAdmissionFichier}\n disabled={!!rowLoading && rowLoading !== row.iddossierAdmissionFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeAcquisFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentDossierAdmissionFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(listRoute)}\n saving={saving}\n showDeleteButton={+acquisId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n validationErrors={validationErrors}\n >\n \n \n \n 0}\n />\n \n \n \n \n \n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n \n {uploadDialoOpen && (\n \n )}\n {!!currentDossierAdmissionFichierId && (\n \n )}\n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGListen,\n FGNumberInput,\n FGTextAreaInput,\n FieldGroup,\n IDataTableColumn,\n showError,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { ExamenEntreeDocumentEditDialog, ExamenEntreeDocumentUploadDialog } from \".\";\nimport {\n AcquisAdmissionApi,\n ELevelName,\n ExamenEntreeEditDto,\n ExamenEntreeEditDtoFromJSON,\n ExamenEntreeFichierGridDto\n} from \"../../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nexport interface IExamenEntreeHopeDetailProps {\n onTypeAcquisChange?: (typeAcquis: string) => void;\n idpersonne: number;\n listRoute: string;\n}\n\nexport const ExamenEntreeHopeDetail: React.FunctionComponent = ({\n onTypeAcquisChange,\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisAdmissionApi);\n const [typeAcquis, taLoading] = useReferential(a => a.referentialGetAcquisAdmissionTypes(), false, []);\n const [acquisCom, acLoading] = useReferential(a => a.referentialGetAcquisCommentaires(), true, []);\n const [anneeFormation, afLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [resultats, resuLoading] = useReferential(a => a.referentialGetResultatExamenEntree(), true, []);\n const [examinateurs, eLoading] = useReferential(a =>\n a.referentialGetUsersByRoles({ ELevelName: [ELevelName.RI, ELevelName.COP], currentIduser: 0 })\n );\n const history = useHistory();\n const { state, acquisId } = useParams<{\n id: string;\n tab: string;\n state: string;\n acquisId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors, refresh: refreshData } = useCrudApi<\n ExamenEntreeEditDto\n >(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +acquisId <= 0\n ? ExamenEntreeEditDtoFromJSON({\n idexamenEntree: +acquisId,\n idpersonne: idpersonne,\n typeAcquis: \"ExamenEntree\"\n })\n : api.acquisAdmissionGetExamenEntree({ id: +acquisId });\n },\n saveApiFn: d => api.acquisAdmissionSaveExamenEntree({ ExamenEntreeEditDto: d }),\n onSavedRoute: d => listRoute,\n getDeps: [acquisId],\n deleteApiFn: d => api.acquisAdmissionDeleteExamenEntree({ id: d.idexamenEntree }),\n onDeletedRoute: () => listRoute\n }),\n [acquisId, idpersonne, api, listRoute]\n )\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n typeAcquis: Yup.string().required(t(ETLCodes.Required)),\n date: Yup.date().typeError(t(ETLCodes.DateInvalide))\n });\n }, [t]);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentExamenEntreeFichierId, setCurrentExamenEntreeFichierId] = React.useState(null);\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idexamenEntreeFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idexamenEntreeFichier);\n await api.acquisAdmissionDeleteExamenEntreeFichier({ id: idexamenEntreeFichier });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idexamenEntreeFichier: number) => {\n try {\n setRowLoading(idexamenEntreeFichier);\n const file = await api.acquisAdmissionDownloadExamenEntreeFichier({ id: idexamenEntreeFichier });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ExamenEntreeFichierGridDto) => (\n \n setCurrentExamenEntreeFichierId(row.idexamenEntreeFichier)}\n loading={rowLoading === row.idexamenEntreeFichier}\n disabled={!!rowLoading && rowLoading !== row.idexamenEntreeFichier}\n />\n downloadFichier(row.idexamenEntreeFichier)}\n loading={rowLoading === row.idexamenEntreeFichier}\n disabled={!!rowLoading && rowLoading !== row.idexamenEntreeFichier}\n />\n deleteFichier(row.idexamenEntreeFichier)}\n loading={rowLoading === row.idexamenEntreeFichier}\n disabled={!!rowLoading && rowLoading !== row.idexamenEntreeFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeAcquisFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentExamenEntreeFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(listRoute)}\n saving={saving}\n showDeleteButton={+acquisId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n validationErrors={validationErrors}\n >\n \n \n \n 0}\n />\n \n \n \n \n \n \n \n \n \n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n \n {uploadDialoOpen && (\n \n )}\n {!!currentExamenEntreeFichierId && (\n \n )}\n \n \n );\n};\n","import { BilanCompetenceDetail } from \"./BilanCompetenceDetail\";\nimport { ExamenEntreeFceDetail } from \"./ExamenEntreeFceDetail\";\nimport { DossierAdmissionDetail } from \"./DossierAdmissionDetail\";\nimport { ExamenEntreeHopeDetail } from \"./ExamenEntreeHopeDetail\";\nimport * as React from \"react\";\nexport interface IAcquisAdmissionGlobalProps {\n idpersonne: number;\n listRoute: string;\n}\n\nexport const AcquisAdmissionGlobal: React.FunctionComponent = ({\n idpersonne,\n listRoute\n}) => {\n const [typeAcquisForm, setTypeAcquisForm] = React.useState(\"ExamenEntree\");\n const changeFormType = React.useMemo(() => {\n switch (typeAcquisForm) {\n case \"BilanCompetence\":\n return (\n \n );\n case \"ExamenEntreeFCE\":\n return (\n \n );\n case \"ExamenEntree\":\n return (\n \n );\n case \"DossierAdmission\":\n return (\n \n );\n default:\n return (\n \n );\n }\n }, [idpersonne, listRoute, typeAcquisForm]);\n\n return <>{changeFormType};\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { AcquisAdmissionApi, AdmissionGridDto, AdmissionSearchDto } from \"../../../../../../api\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IAcquisAdmissionListProps {\n idpersonne: number;\n listRoute: string;\n}\n\nexport const AcquisAdmissionList: React.FunctionComponent = ({ idpersonne, listRoute }) => {\n const { t, tUnsafe } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n\n const api = useApiService(AcquisAdmissionApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5\n });\n\n const searchFunc = React.useCallback(\n (sObj?: AdmissionSearchDto) => {\n sObj.idpersonne = idpersonne;\n return api.acquisAdmissionBaseSearch({ AdmissionSearchDto: sObj });\n },\n [api, idpersonne]\n );\n\n const { loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const getTypeAcquisTab = React.useCallback((type: string) => {\n switch (type) {\n case \"ExamenEntree\":\n return \"examenEntree\";\n case \"ExamenEntreeFCE\":\n return \"examenEntreeFce\";\n case \"DossierAdmission\":\n return \"dossierAdmission\";\n case \"BilanCompetence\":\n return \"bilanCompetence\";\n }\n }, []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: AdmissionGridDto) => (\n \n history.push(`${listRoute}/${getTypeAcquisTab(row.type)}/${row.id}/view`)}\n />\n history.push(`${listRoute}/${getTypeAcquisTab(row.type)}/${row.id}/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeTexte\",\n render: (row: AdmissionGridDto) => tUnsafe(row.type)\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.Resultat),\n fieldName: \"resultat\"\n }\n ],\n [history, listRoute, getTypeAcquisTab, t, tUnsafe]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${listRoute}/acquisAdmission/0/edit`);\n }, [history, listRoute]);\n\n return (\n <>\n {+id > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.New)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n )}\n \n );\n};\n","import { Colors, Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport { AcquisScolaireGridDto, AcquisScolaireHopeApi, AcquisScolaireSearchDto } from \"../../../../../../api\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IAcquisScolaireListProps {\n idpersonne: number;\n listRoute: string;\n}\n\nexport const AcquisScolaireList: React.FunctionComponent = ({ idpersonne, listRoute }) => {\n const { t, tUnsafe } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n\n const api = useApiService(AcquisScolaireHopeApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5\n });\n\n const searchFunc = React.useCallback(\n (sObj?: AcquisScolaireSearchDto) => {\n sObj.idpersonne = idpersonne;\n return api.acquisScolaireHopeBaseSearch({ AcquisScolaireSearchDto: sObj });\n },\n [api, idpersonne]\n );\n\n const { loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const getTypeAcquisTab = React.useCallback((type: string) => {\n switch (type) {\n case \"AnneeFormationSuivieIfapme\":\n return \"anneeFormationSuivieIfapme\";\n case \"DiplomeCertificationIfapme\":\n return \"diplomeCertificationIfapme\";\n case \"AnneeFormationSuivie\":\n return \"anneeFormationSuivie\";\n case \"DiplomeCertification\":\n return \"diplomeCertification\";\n }\n }, []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: AcquisScolaireGridDto) => (\n \n history.push(`${listRoute}/${getTypeAcquisTab(row.type)}/${row.id}/view`)}\n />\n history.push(`${listRoute}/${getTypeAcquisTab(row.type)}/${row.id}/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Acquis),\n fieldName: \"titre\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeText\",\n render: (row: AcquisScolaireGridDto) => tUnsafe(row.type)\n },\n {\n header: () => t(ETLCodes.Operateur),\n fieldName: \"operateur\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.Resultat),\n fieldName: \"resultat\"\n }\n ],\n [history, listRoute, getTypeAcquisTab, t, tUnsafe]\n );\n\n const onAddItem = React.useCallback(\n (ifapme: boolean) => {\n if (ifapme) {\n history.push(`${listRoute}/acquisScolaireIfapme/0/edit`);\n } else {\n history.push(`${listRoute}/acquisScolaire/0/edit`);\n }\n },\n [history, listRoute]\n );\n\n return (\n <>\n {+id > 0 && (\n \n {\n e.stopPropagation();\n onAddItem(false);\n }}\n text={t(ETLCodes.NewAcquis)}\n intent={Intent.PRIMARY}\n />\n {\n e.stopPropagation();\n onAddItem(true);\n }}\n text={t(ETLCodes.NewAcquisIfapme)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n css`\n & * {\n color: ${row.type === \"AnneeFormationSuivieIfapme\" || row.type === \"DiplomeCertificationIfapme\"\n ? Colors.BLUE3 + \" !important\"\n : null};\n }\n `}\n />\n \n )}\n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport {\n ExperienceProfessionnelleApi,\n ExperienceProfessionnelleGridDto,\n ExperienceProfessionnelleSearchDto\n} from \"../../../../../../api\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IExperienceProfessionnelleListProps {\n idpersonne: number;\n listRoute: string;\n}\n\nexport const ExperienceProfessionnelleList: React.FunctionComponent = ({\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n\n const api = useApiService(ExperienceProfessionnelleApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5\n });\n\n const searchFunc = React.useCallback(\n (sObj?: ExperienceProfessionnelleSearchDto) => {\n sObj.idpersonne = idpersonne;\n return api.experienceProfessionnelleBaseSearch({ ExperienceProfessionnelleSearchDto: sObj });\n },\n [api, idpersonne]\n );\n\n const { loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ExperienceProfessionnelleGridDto) => (\n \n \n history.push(`${listRoute}/experienceProfessionnelle/${row.idexperienceProfessionnelle}/view`)\n }\n />\n \n history.push(`${listRoute}/experienceProfessionnelle/${row.idexperienceProfessionnelle}/edit`)\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Fonction),\n fieldName: \"fonction\"\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDeDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateDeFin\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n }\n ],\n [history, listRoute, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${listRoute}/experienceProfessionnelle/0/edit`);\n }, [history, listRoute]);\n\n return (\n <>\n {+id > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.NewExperiencePro)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n )}\n \n );\n};\n","import { Divider } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { AcquisAdmissionList } from \"./acquisAdmission/AcquisAdmissionList\";\nimport { AcquisScolaireList } from \"./acquisScolaire/AcquisScolaireList\";\nimport { ExperienceProfessionnelleList } from \"./experienceProfessionnelle/ExperienceProfessionnelleList\";\n\nexport interface IAcquisGlobalProps {\n listRoute: string;\n idpersonne: number;\n}\n\nexport const AcquisGlobal: React.FunctionComponent = ({ listRoute, idpersonne }) => {\n return (\n <>\n \n \n \n \n \n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n AcquisScolaireHopeApi,\n AnneeFormationSuivieFichierUploadDto,\n AnneeFormationSuivieFichierUploadDtoFromJSON\n} from \"../../../../../../api\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IAnneeFormationSuivieDocumentUploadDialogProps {\n idanneeFormationSuivie: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const AnneeFormationSuivieDocumentUploadDialog: React.FunctionComponent = ({\n idanneeFormationSuivie,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return AnneeFormationSuivieFichierUploadDtoFromJSON({ idanneeFormationSuivie });\n },\n saveApiFn: async (d: AnneeFormationSuivieFichierUploadDto) => {\n return api.acquisScolaireHopeUploadAnneeFormationSuivieFichier({\n AnneeFormationSuivieFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idanneeFormationSuivie, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { AcquisScolaireHopeApi, AnneeFormationSuivieFichierDto } from \"../../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IAnneeFormationSuivieDocumentEditDialogProps {\n idanneeFormationSuivieFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const AnneeFormationSuivieDocumentEditDialog: React.FunctionComponent = ({\n idanneeFormationSuivieFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.acquisScolaireHopeGetAnneeFormationSuivieFichier({\n id: idanneeFormationSuivieFichier\n });\n },\n saveApiFn: async (d: AnneeFormationSuivieFichierDto) => {\n return api.acquisScolaireHopeSaveAnneeFormationSuivieFichier({\n AnneeFormationSuivieFichierDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idanneeFormationSuivieFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}\n >\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n AcquisScolaireHopeApi,\n AnneeFormationSuivieIfapmeFichierUploadDto,\n AnneeFormationSuivieIfapmeFichierUploadDtoFromJSON\n} from \"../../../../../../api\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IAnneeFormationSuivieIfapmeDocumentUploadDialogProps {\n idanneeFormationSuivieIfapme: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const AnneeFormationSuivieIfapmeDocumentUploadDialog: React.FunctionComponent = ({\n idanneeFormationSuivieIfapme,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return AnneeFormationSuivieIfapmeFichierUploadDtoFromJSON({ idanneeFormationSuivieIfapme });\n },\n saveApiFn: async (d: AnneeFormationSuivieIfapmeFichierUploadDto) => {\n return api.acquisScolaireHopeUploadAnneeFormationSuivieIfapmeFichier({\n AnneeFormationSuivieIfapmeFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idanneeFormationSuivieIfapme, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { AcquisScolaireHopeApi, AnneeFormationSuivieIfapmeFichierDto } from \"../../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IAnneeFormationSuivieIfapmeDocumentEditDialogProps {\n idanneeFormationSuivieIfapmeFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const AnneeFormationSuivieIfapmeDocumentEditDialog: React.FunctionComponent = ({\n idanneeFormationSuivieIfapmeFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.acquisScolaireHopeGetAnneeFormationSuivieIfapmeFichier({\n id: idanneeFormationSuivieIfapmeFichier\n });\n },\n saveApiFn: async (d: AnneeFormationSuivieIfapmeFichierDto) => {\n return api.acquisScolaireHopeSaveAnneeFormationSuivieIfapmeFichier({\n AnneeFormationSuivieIfapmeFichierDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idanneeFormationSuivieIfapmeFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}\n >\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n AcquisScolaireHopeApi,\n DiplomeCertificationFichierUploadDto,\n DiplomeCertificationFichierUploadDtoFromJSON\n} from \"../../../../../../api\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IDiplomeCertificationDocumentUploadDialogProps {\n iddiplomeCertification: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const DiplomeCertificationDocumentUploadDialog: React.FunctionComponent = ({\n iddiplomeCertification,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return DiplomeCertificationFichierUploadDtoFromJSON({ iddiplomeCertification });\n },\n saveApiFn: async (d: DiplomeCertificationFichierUploadDto) => {\n return api.acquisScolaireHopeUploadDiplomeCertificationFichier({\n DiplomeCertificationFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, iddiplomeCertification, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { AcquisScolaireHopeApi, DiplomeCertificationFichierDto } from \"../../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IDiplomeCertificationDocumentEditDialogProps {\n iddiplomeCertificationFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const DiplomeCertificationDocumentEditDialog: React.FunctionComponent = ({\n iddiplomeCertificationFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.acquisScolaireHopeGetDiplomeCertificationFichier({\n id: iddiplomeCertificationFichier\n });\n },\n saveApiFn: async (d: DiplomeCertificationFichierDto) => {\n return api.acquisScolaireHopeSaveDiplomeCertificationFichier({\n DiplomeCertificationFichierDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, iddiplomeCertificationFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}\n >\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n AcquisScolaireHopeApi,\n DiplomeCertificationIfapmeFichierUploadDto,\n DiplomeCertificationIfapmeFichierUploadDtoFromJSON\n} from \"../../../../../../api\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IDiplomeCertificationIfapmeDocumentUploadDialogProps {\n iddiplomeCertificationIfapme: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const DiplomeCertificationIfapmeDocumentUploadDialog: React.FunctionComponent = ({\n iddiplomeCertificationIfapme,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return DiplomeCertificationIfapmeFichierUploadDtoFromJSON({ iddiplomeCertificationIfapme });\n },\n saveApiFn: async (d: DiplomeCertificationIfapmeFichierUploadDto) => {\n return api.acquisScolaireHopeUploadDiplomeCertificationIfapmeFichier({\n DiplomeCertificationIfapmeFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, iddiplomeCertificationIfapme, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { AcquisScolaireHopeApi, DiplomeCertificationIfapmeFichierDto } from \"../../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IDiplomeCertificationIfapmeDocumentEditDialogProps {\n iddiplomeCertificationIfapmeFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const DiplomeCertificationIfapmeDocumentEditDialog: React.FunctionComponent = ({\n iddiplomeCertificationIfapmeFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.acquisScolaireHopeGetDiplomeCertificationIfapmeFichier({\n id: iddiplomeCertificationIfapmeFichier\n });\n },\n saveApiFn: async (d: DiplomeCertificationIfapmeFichierDto) => {\n return api.acquisScolaireHopeSaveDiplomeCertificationIfapmeFichier({\n DiplomeCertificationIfapmeFichierDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, iddiplomeCertificationIfapmeFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}\n >\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGListen,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n IFGContext,\n showError,\n showSuccess,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { AnneeFormationSuivieDocumentEditDialog, AnneeFormationSuivieDocumentUploadDialog } from \".\";\nimport {\n AcquisScolaireHopeApi,\n AnneeFormationSuivieEditDto,\n AnneeFormationSuivieEditDtoFromJSON,\n AnneeFormationSuivieFichierGridDto\n} from \"../../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterSelectInput,\n SaveButton,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nexport interface IAnneeFormationSuivieDetailProps {\n onTypeAcquisChange?: (typeAcquis: string) => void;\n idpersonne: number;\n listRoute: string;\n}\n\nexport const AnneeFormationSuivieDetail: React.FunctionComponent = ({\n onTypeAcquisChange,\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n const [typeAcquis, taLoading] = useReferential(a => a.referentialGetAcquisScolaireTypes(), false, []);\n const [niveauFormations, nfLoading] = useReferential(a => a.referentialGetNiveauFormations(), true, []);\n const [anneeFormations, afLoading] = useReferential(a => a.referentialGetAnneeFormations(), false, []);\n const [ecoles, eLoading] = useReferential(a => a.referentialGetEcole(), true, []);\n const [formeFormations, ffLoading] = useReferential(a => a.referentialGetFormeFormations(), true, []);\n const [resultatDossierAdmissions, rdaLoading] = useReferential(a => a.referentialGetResultatFormations(), true, []);\n const [anneeScolaires, asLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const history = useHistory();\n const { state, acquisId } = useParams<{\n id: string;\n tab: string;\n state: string;\n acquisId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const saveFn = React.useCallback(\n d => api.acquisScolaireHopeSaveAnneeFormationSuivie({ AnneeFormationSuivieEditDto: d }),\n [api]\n );\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors, refresh: refreshData } = useCrudApi<\n AnneeFormationSuivieEditDto\n >(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +acquisId <= 0\n ? AnneeFormationSuivieEditDtoFromJSON({\n idanneeFormationSuivie: +acquisId,\n idpersonne: idpersonne,\n typeAcquis: \"AnneeFormationSuivie\"\n })\n : api.acquisScolaireHopeGetAnneeFormationSuivie({ id: +acquisId });\n },\n saveApiFn: saveFn,\n onSavedRoute: d => listRoute,\n getDeps: [acquisId],\n deleteApiFn: d => api.acquisScolaireHopeDeleteAnneeFormationSuivie({ id: d.idanneeFormationSuivie }),\n onDeletedRoute: () => listRoute\n }),\n [saveFn, acquisId, idpersonne, api, listRoute]\n )\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n typeAcquis: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const additionalRightButtons = React.useCallback(\n (ctx: IFGContext) =>\n +acquisId <= 0 && (\n {\n await saveFn(ctx.formik.values);\n showSuccess(t(ETLCodes.SaveSuccess));\n ctx.formik.resetForm();\n }}\n text={t(ETLCodes.SauverEtNouveau)}\n minimal={false}\n loading={saving}\n disabled={!ctx.formik.dirty}\n />\n ),\n [acquisId, saveFn, saving, t]\n );\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentAnneeFormationSuivieFichierId, setCurrentAnneeFormationSuivieFichierId] = React.useState(null);\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idanneeFormationSuivieFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idanneeFormationSuivieFichier);\n await api.acquisScolaireHopeDeleteAnneeFormationSuivieFichier({ id: idanneeFormationSuivieFichier });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idanneeFormationSuivieFichier: number) => {\n try {\n setRowLoading(idanneeFormationSuivieFichier);\n const file = await api.acquisScolaireHopeDownloadAnneeFormationSuivieFichier({\n id: idanneeFormationSuivieFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: AnneeFormationSuivieFichierGridDto) => (\n \n setCurrentAnneeFormationSuivieFichierId(row.idanneeFormationSuivieFichier)}\n loading={rowLoading === row.idanneeFormationSuivieFichier}\n disabled={!!rowLoading && rowLoading !== row.idanneeFormationSuivieFichier}\n />\n downloadFichier(row.idanneeFormationSuivieFichier)}\n loading={rowLoading === row.idanneeFormationSuivieFichier}\n disabled={!!rowLoading && rowLoading !== row.idanneeFormationSuivieFichier}\n />\n deleteFichier(row.idanneeFormationSuivieFichier)}\n loading={rowLoading === row.idanneeFormationSuivieFichier}\n disabled={!!rowLoading && rowLoading !== row.idanneeFormationSuivieFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeAcquisFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentAnneeFormationSuivieFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(listRoute)}\n saving={saving}\n showDeleteButton={+acquisId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n validationErrors={validationErrors}\n additionalRightButtons={additionalRightButtons}\n >\n \n \n \n 0}\n />\n \n \n \n \n \n \n \n \n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n
\n {uploadDialoOpen && (\n \n )}\n {!!currentAnneeFormationSuivieFichierId && (\n \n )}\n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGListen,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n showError,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { DiplomeCertificationDocumentEditDialog, DiplomeCertificationDocumentUploadDialog } from \".\";\nimport {\n AcquisScolaireHopeApi,\n DiplomeCertificationEditDtoFromJSON,\n DiplomeCertificationFichierGridDto\n} from \"../../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nexport interface IDiplomeCertificationDetailProps {\n onTypeAcquisChange?: (typeAcquis: string) => void;\n idpersonne: number;\n listRoute: string;\n}\n\nexport const DiplomeCertificationDetail: React.FunctionComponent = ({\n onTypeAcquisChange,\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n const [typeAcquis, taLoading] = useReferential(a => a.referentialGetAcquisScolaireTypes(), false, []);\n\n const [idtitreDiplomeCertification, setIdtitreDiplomeCertification] = React.useState(0);\n const [titreDiplomeCertification, tdcLoading] = useReferential(\n a => a.referentialGetTitreDiplomeCertifications({ currentId: idtitreDiplomeCertification }),\n true,\n []\n );\n\n const [anneeScolaires, asLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const history = useHistory();\n const { state, acquisId } = useParams<{\n id: string;\n tab: string;\n state: string;\n acquisId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors, refresh: refreshData } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +acquisId <= 0\n ? DiplomeCertificationEditDtoFromJSON({\n iddiplomeCertification: +acquisId,\n idpersonne: idpersonne,\n typeAcquis: \"DiplomeCertification\"\n })\n : api.acquisScolaireHopeGetDiplomeCertification({ id: +acquisId });\n },\n saveApiFn: d => api.acquisScolaireHopeSaveDiplomeCertification({ DiplomeCertificationEditDto: d }),\n onSavedRoute: d => listRoute,\n getDeps: [acquisId],\n deleteApiFn: d => api.acquisScolaireHopeDeleteDiplomeCertification({ id: d.iddiplomeCertification }),\n onDeletedRoute: () => listRoute\n }),\n [acquisId, idpersonne, api, listRoute]\n )\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n typeAcquis: Yup.string().required(t(ETLCodes.Required)),\n date: Yup.date().typeError(t(ETLCodes.DateInvalide))\n });\n }, [t]);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentDiplomeCertificationFichierId, setCurrentDiplomeCertificationFichierId] = React.useState(null);\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idanneeFormationSuivieFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idanneeFormationSuivieFichier);\n await api.acquisScolaireHopeDeleteDiplomeCertificationFichier({ id: idanneeFormationSuivieFichier });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idanneeFormationSuivieFichier: number) => {\n try {\n setRowLoading(idanneeFormationSuivieFichier);\n const file = await api.acquisScolaireHopeDownloadDiplomeCertificationFichier({\n id: idanneeFormationSuivieFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: DiplomeCertificationFichierGridDto) => (\n \n setCurrentDiplomeCertificationFichierId(row.iddiplomeCertificationFichier)}\n loading={rowLoading === row.iddiplomeCertificationFichier}\n disabled={!!rowLoading && rowLoading !== row.iddiplomeCertificationFichier}\n />\n downloadFichier(row.iddiplomeCertificationFichier)}\n loading={rowLoading === row.iddiplomeCertificationFichier}\n disabled={!!rowLoading && rowLoading !== row.iddiplomeCertificationFichier}\n />\n deleteFichier(row.iddiplomeCertificationFichier)}\n loading={rowLoading === row.iddiplomeCertificationFichier}\n disabled={!!rowLoading && rowLoading !== row.iddiplomeCertificationFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeAcquisFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentDiplomeCertificationFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(listRoute)}\n saving={saving}\n showDeleteButton={+acquisId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n validationErrors={validationErrors}\n watchChanges={{\n titre: setIdtitreDiplomeCertification\n }}\n >\n \n \n \n 0}\n />\n \n \n \n \n \n \n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n
\n {uploadDialoOpen && (\n \n )}\n {!!currentDiplomeCertificationFichierId && (\n \n )}\n \n \n );\n};\n","import { AnneeFormationSuivieDetail } from \"./AnneeFormationSuivieDetail\";\nimport { DiplomeCertificationDetail } from \"./DiplomeCertificationDetail\";\nimport * as React from \"react\";\nexport interface IAcquisScolaireGlobalProps {\n idpersonne: number;\n listRoute: string;\n}\n\nexport const AcquisScolaireGlobal: React.FunctionComponent = ({\n idpersonne,\n listRoute\n}) => {\n const [typeAcquisForm, SetTypeAcquisForm] = React.useState(\"DiplomeCertification\");\n const changeFormType = React.useMemo(() => {\n switch (typeAcquisForm) {\n case \"AnneeFormationSuivie\":\n return (\n \n );\n case \"DiplomeCertification\":\n return (\n \n );\n default:\n return (\n \n );\n }\n }, [idpersonne, listRoute, typeAcquisForm]);\n\n return <>{changeFormType};\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGListen,\n FGTextAreaInput,\n FieldGroup,\n IDataTableColumn,\n IFGContext,\n showError,\n showSuccess,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { AnneeFormationSuivieIfapmeDocumentEditDialog, AnneeFormationSuivieIfapmeDocumentUploadDialog } from \".\";\nimport {\n AcquisScolaireHopeApi,\n AnneeFormationSuivieIfapmeEditDtoFromJSON,\n AnneeFormationSuivieIfapmeFichierGridDto,\n EIfapmeSide\n} from \"../../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterSelectInput,\n SaveButton,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTheme, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nexport interface IAnneeFormationSuivieIfapmeDetailProps {\n onTypeAcquisChange?: (typeAcquis: string) => void;\n idpersonne: number;\n listRoute: string;\n}\n\nexport const AnneeFormationSuivieIfapmeDetail: React.FunctionComponent = ({\n onTypeAcquisChange,\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n const [typeAcquis, taLoading] = useReferential(a => a.referentialGetAcquisScolaireTypes(), false, []);\n const [centres, cLoading] = useReferential(a => a.referentialGetCentre(), true, []);\n const [degres, dLoading] = useReferential(a => a.referentialGetDegre(), false, []);\n const [metiers, mLoading] = useReferential(a => a.referentialGetMetier(), true, []);\n const [resultats, rLoading] = useReferential(a => a.referentialGetResultatValides(), true, []);\n const [stades, sLoading] = useReferential(a => a.referentialGetStade(), true, []);\n const { ifapmeSide } = useTheme();\n const [typeCours, tcLoading] = useReferential(\n a => a.referentialGetTypeCours({ ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Hope : EIfapmeSide.Walter }),\n false,\n [ifapmeSide]\n );\n\n const [anneeFormations, afLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const history = useHistory();\n const { state, acquisId } = useParams<{\n id: string;\n tab: string;\n state: string;\n acquisId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const saveFn = React.useCallback(\n d => api.acquisScolaireHopeSaveAnneeFormationSuivieIfapme({ AnneeFormationSuivieIfapmeEditDto: d }),\n [api]\n );\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors, refresh: refreshData } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +acquisId <= 0\n ? AnneeFormationSuivieIfapmeEditDtoFromJSON({\n idanneeFormationSuivieIfapme: +acquisId,\n idpersonne: idpersonne,\n typeAcquis: \"AnneeFormationSuivie\"\n })\n : api.acquisScolaireHopeGetAnneeFormationSuivieIfapme({ id: +acquisId });\n },\n saveApiFn: saveFn,\n onSavedRoute: d => listRoute,\n getDeps: [acquisId],\n deleteApiFn: d =>\n api.acquisScolaireHopeDeleteAnneeFormationSuivieIfapme({ id: d.idanneeFormationSuivieIfapme }),\n onDeletedRoute: () => listRoute\n }),\n [saveFn, acquisId, idpersonne, api, listRoute]\n )\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n typeAcquis: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const additionalRightButtons = React.useCallback(\n (ctx: IFGContext) =>\n +acquisId <= 0 && (\n {\n await saveFn(ctx.formik.values);\n showSuccess(t(ETLCodes.SaveSuccess));\n ctx.formik.resetForm();\n }}\n text={t(ETLCodes.SauverEtNouveau)}\n minimal={false}\n loading={saving}\n disabled={!ctx.formik.dirty}\n />\n ),\n [acquisId, saveFn, saving, t]\n );\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentAnneeFormationSuivieIfapmeFichierId, setCurrentAnneeFormationSuivieIfapmeFichierId] = React.useState(\n null\n );\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idanneeFormationSuivieIfapmeFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idanneeFormationSuivieIfapmeFichier);\n await api.acquisScolaireHopeDeleteAnneeFormationSuivieFichier({\n id: idanneeFormationSuivieIfapmeFichier\n });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idanneeFormationSuivieIfapmeFichier: number) => {\n try {\n setRowLoading(idanneeFormationSuivieIfapmeFichier);\n const file = await api.acquisScolaireHopeDownloadAnneeFormationSuivieFichier({\n id: idanneeFormationSuivieIfapmeFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: AnneeFormationSuivieIfapmeFichierGridDto) => (\n \n setCurrentAnneeFormationSuivieIfapmeFichierId(row.idanneeFormationSuivieIfapmeFichier)}\n loading={rowLoading === row.idanneeFormationSuivieIfapmeFichier}\n disabled={!!rowLoading && rowLoading !== row.idanneeFormationSuivieIfapmeFichier}\n />\n downloadFichier(row.idanneeFormationSuivieIfapmeFichier)}\n loading={rowLoading === row.idanneeFormationSuivieIfapmeFichier}\n disabled={!!rowLoading && rowLoading !== row.idanneeFormationSuivieIfapmeFichier}\n />\n deleteFichier(row.idanneeFormationSuivieIfapmeFichier)}\n loading={rowLoading === row.idanneeFormationSuivieIfapmeFichier}\n disabled={!!rowLoading && rowLoading !== row.idanneeFormationSuivieIfapmeFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeAcquisFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentAnneeFormationSuivieIfapmeFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(listRoute)}\n saving={saving}\n showDeleteButton={+acquisId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n validationErrors={validationErrors}\n additionalRightButtons={additionalRightButtons}\n >\n \n \n \n 0}\n />\n \n \n \n \n \n \n \n \n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n \n {uploadDialoOpen && (\n \n )}\n {!!currentAnneeFormationSuivieIfapmeFichierId && (\n \n )}\n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGListen,\n FieldGroup,\n IDataTableColumn,\n showError,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { DiplomeCertificationIfapmeDocumentEditDialog, DiplomeCertificationIfapmeDocumentUploadDialog } from \".\";\nimport {\n AcquisScolaireHopeApi,\n DiplomeCertificationIfapmeEditDtoFromJSON,\n DiplomeCertificationIfapmeFichierGridDto\n} from \"../../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nexport interface IDiplomeCertificationIfapmeDetailProps {\n onTypeAcquisChange?: (typeAcquis: string) => void;\n idpersonne: number;\n listRoute: string;\n}\n\nexport const DiplomeCertificationIfapmeDetail: React.FunctionComponent = ({\n onTypeAcquisChange,\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const api = useApiService(AcquisScolaireHopeApi);\n const [typeAcquis, taLoading] = useReferential(a => a.referentialGetAcquisScolaireTypes(), false, []);\n const [titreDiplomeCertification, tdcLoading] = useReferential(\n a => a.referentialGetTitreDiplomeCertificationsIfapme(),\n true,\n []\n );\n const [anneeScolaires, asLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const history = useHistory();\n const { state, acquisId } = useParams<{\n id: string;\n tab: string;\n state: string;\n acquisId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving, validationErrors, refresh: refreshData } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +acquisId <= 0\n ? DiplomeCertificationIfapmeEditDtoFromJSON({\n iddiplomeCertificationIfapme: +acquisId,\n idpersonne: idpersonne,\n typeAcquis: \"DiplomeCertification\"\n })\n : api.acquisScolaireHopeGetDiplomeCertificationIfapme({ id: +acquisId });\n },\n saveApiFn: d => api.acquisScolaireHopeSaveDiplomeCertificationIfapmee({ DiplomeCertificationIfapmeEditDto: d }),\n onSavedRoute: d => listRoute,\n getDeps: [acquisId],\n deleteApiFn: d =>\n api.acquisScolaireHopeDeleteDiplomeCertificationIfapme({ id: d.iddiplomeCertificationIfapme }),\n onDeletedRoute: () => listRoute\n }),\n [acquisId, api, idpersonne, listRoute]\n )\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n typeAcquis: Yup.string().required(t(ETLCodes.Required)),\n date: Yup.date().typeError(t(ETLCodes.DateInvalide))\n });\n }, [t]);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentDiplomeCertificationIfapmeFichierId, setCurrentDiplomeCertificationIfapmeFichierId] = React.useState(\n null\n );\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (iddiplomeCertificationIfapmeFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(iddiplomeCertificationIfapmeFichier);\n await api.acquisScolaireHopeDeleteDiplomeCertificationIfapmeFichier({\n id: iddiplomeCertificationIfapmeFichier\n });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (iddiplomeCertificationIfapmeFichier: number) => {\n try {\n setRowLoading(iddiplomeCertificationIfapmeFichier);\n const file = await api.acquisScolaireHopeDownloadDiplomeCertificationIfapmeFichier({\n id: iddiplomeCertificationIfapmeFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: DiplomeCertificationIfapmeFichierGridDto) => (\n \n setCurrentDiplomeCertificationIfapmeFichierId(row.iddiplomeCertificationIfapmeFichier)}\n loading={rowLoading === row.iddiplomeCertificationIfapmeFichier}\n disabled={!!rowLoading && rowLoading !== row.iddiplomeCertificationIfapmeFichier}\n />\n downloadFichier(row.iddiplomeCertificationIfapmeFichier)}\n loading={rowLoading === row.iddiplomeCertificationIfapmeFichier}\n disabled={!!rowLoading && rowLoading !== row.iddiplomeCertificationIfapmeFichier}\n />\n deleteFichier(row.iddiplomeCertificationIfapmeFichier)}\n loading={rowLoading === row.iddiplomeCertificationIfapmeFichier}\n disabled={!!rowLoading && rowLoading !== row.iddiplomeCertificationIfapmeFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeAcquisFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentDiplomeCertificationIfapmeFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(listRoute)}\n saving={saving}\n showDeleteButton={+acquisId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n validationErrors={validationErrors}\n >\n \n \n \n 0}\n />\n \n \n \n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n \n {uploadDialoOpen && (\n \n )}\n {!!currentDiplomeCertificationIfapmeFichierId && (\n \n )}\n \n \n );\n};\n","import { AnneeFormationSuivieIfapmeDetail } from \"./AnneeFormationSuivieIfapmeDetail\";\nimport { DiplomeCertificationIfapmeDetail } from \"./DiplomeCertificationIfapmeDetail\";\nimport * as React from \"react\";\nexport interface IAcquisScolaireGlobalIfapmeProps {\n idpersonne: number;\n listRoute: string;\n}\n\nexport const AcquisScolaireGlobalIfapme: React.FunctionComponent = ({\n idpersonne,\n listRoute\n}) => {\n const [typeAcquisForm, SetTypeAcquisForm] = React.useState(\"DiplomeCertification\");\n const changeFormType = React.useMemo(() => {\n switch (typeAcquisForm) {\n case \"AnneeFormationSuivie\":\n return (\n \n );\n case \"DiplomeCertification\":\n return (\n \n );\n default:\n return (\n \n );\n }\n }, [idpersonne, listRoute, typeAcquisForm]);\n\n return <>{changeFormType};\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n ExperienceProfessionnelleApi,\n ExperienceProfessionnelleFichierUploadDto,\n ExperienceProfessionnelleFichierUploadDtoFromJSON\n} from \"../../../../../../api\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IExperienceProfessionnelleDocumentUploadDialogProps {\n idexperienceProfessionnelle: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const ExperienceProfessionnelleDocumentUploadDialog: React.FunctionComponent = ({\n idexperienceProfessionnelle,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ExperienceProfessionnelleApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return ExperienceProfessionnelleFichierUploadDtoFromJSON({ idexperienceProfessionnelle });\n },\n saveApiFn: async (d: ExperienceProfessionnelleFichierUploadDto) => {\n return api.experienceProfessionnelleUploadExperienceProfessionnelleFichier({\n ExperienceProfessionnelleFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idexperienceProfessionnelle, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { ExperienceProfessionnelleApi, ExperienceProfessionnelleFichierDto } from \"../../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IExperienceProfessionnelleDocumentEditDialogProps {\n idexperienceProfessionnelleFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const ExperienceProfessionnelleDocumentEditDialog: React.FunctionComponent = ({\n idexperienceProfessionnelleFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ExperienceProfessionnelleApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.experienceProfessionnelleGetExperienceProfessionnelleFichier({\n id: idexperienceProfessionnelleFichier\n });\n },\n saveApiFn: async (d: ExperienceProfessionnelleFichierDto) => {\n return api.experienceProfessionnelleSaveExperienceProfessionnelleFichier({\n ExperienceProfessionnelleFichierDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idexperienceProfessionnelleFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeAcquisFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesAcquisFichier, tLoading] = useReferential(a => a.referentialGetTypesAcquisFichier());\n\n return (\n onClose(false)}\n >\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n IFGContext,\n showError,\n showSuccess,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport * as Yup from \"yup\";\n\nimport { ExperienceProfessionnelleDocumentEditDialog, ExperienceProfessionnelleDocumentUploadDialog } from \".\";\nimport {\n ExperienceProfessionnelleApi,\n ExperienceProfessionnelleEditDtoFromJSON,\n ExperienceProfessionnelleFichierGridDto\n} from \"../../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterDateMaskInput,\n SaveButton,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nexport interface IExperienceProfessionnelleDetailProps {\n idpersonne: number;\n listRoute: string;\n}\n\nexport const ExperienceProfessionnelleDetail: React.FunctionComponent = ({\n idpersonne,\n listRoute\n}) => {\n const { t } = useTl();\n const api = useApiService(ExperienceProfessionnelleApi);\n const history = useHistory();\n const { state, experienceProId } = useParams<{\n id: string;\n tab: string;\n state: string;\n experienceProId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const saveFn = React.useCallback(\n d => api.experienceProfessionnelleSaveExperienceProfessionnelle({ ExperienceProfessionnelleEditDto: d }),\n [api]\n );\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors, refresh: refreshData } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return +experienceProId <= 0\n ? ExperienceProfessionnelleEditDtoFromJSON({\n idexperienceProfessionnelle: +experienceProId,\n idpersonne: idpersonne\n })\n : api.experienceProfessionnelleGetExperienceProfessionnelle({ id: +experienceProId });\n },\n saveApiFn: saveFn,\n onSavedRoute: d => listRoute,\n getDeps: [experienceProId],\n deleteApiFn: d =>\n api.experienceProfessionnelleDeleteExperienceProfessionnelle({ id: d.idexperienceProfessionnelle }),\n onDeletedRoute: () => listRoute\n }),\n [saveFn, experienceProId, idpersonne, api, listRoute]\n )\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n fonction: Yup.string().required(t(ETLCodes.Required)),\n dateDeDebut: Yup.date().typeError(t(ETLCodes.DateInvalide)),\n dateDeFin: Yup.date().typeError(t(ETLCodes.DateInvalide))\n });\n }, [t]);\n\n const additionalRightButtons = React.useCallback(\n (ctx: IFGContext) =>\n +experienceProId <= 0 && (\n {\n await saveFn(ctx.formik.values);\n showSuccess(t(ETLCodes.SaveSuccess));\n ctx.formik.resetForm();\n }}\n text={t(ETLCodes.SauverEtNouveau)}\n minimal={false}\n loading={saving}\n disabled={!ctx.formik.dirty}\n />\n ),\n [experienceProId, saveFn, saving, t]\n );\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentExperienceProfessionnelleFichierId, setCurrentExperienceProfessionnelleFichierId] = React.useState(\n null\n );\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idexperienceProfessionnelleFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idexperienceProfessionnelleFichier);\n await api.experienceProfessionnelleDeleteExperienceProfessionnelleFichier({\n id: idexperienceProfessionnelleFichier\n });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idexperienceProfessionnelleFichier: number) => {\n try {\n setRowLoading(idexperienceProfessionnelleFichier);\n const file = await api.experienceProfessionnelleDownloadExperienceProfessionnelleFichier({\n id: idexperienceProfessionnelleFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ExperienceProfessionnelleFichierGridDto) => (\n \n setCurrentExperienceProfessionnelleFichierId(row.idexperienceProfessionnelleFichier)}\n loading={rowLoading === row.idexperienceProfessionnelleFichier}\n disabled={!!rowLoading && rowLoading !== row.idexperienceProfessionnelleFichier}\n />\n downloadFichier(row.idexperienceProfessionnelleFichier)}\n loading={rowLoading === row.idexperienceProfessionnelleFichier}\n disabled={!!rowLoading && rowLoading !== row.idexperienceProfessionnelleFichier}\n />\n deleteFichier(row.idexperienceProfessionnelleFichier)}\n loading={rowLoading === row.idexperienceProfessionnelleFichier}\n disabled={!!rowLoading && rowLoading !== row.idexperienceProfessionnelleFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeAcquisFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentExperienceProfessionnelleFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n history.push(listRoute)}\n saving={saving}\n additionalRightButtons={additionalRightButtons}\n showDeleteButton={+experienceProId > 0}\n onDelete={deleteItem}\n deleting={deleting}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n \n \n \n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n \n {uploadDialoOpen && (\n \n )}\n {!!currentExperienceProfessionnelleFichierId && (\n \n )}\n \n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useParams, useRouteMatch } from \"react-router\";\n\nimport { AcquisAdmissionGlobal } from \"./acquisAdmission/AcquisAdmissionGlobal\";\nimport { BilanCompetenceDetail } from \"./acquisAdmission/BilanCompetenceDetail\";\nimport { DossierAdmissionDetail } from \"./acquisAdmission/DossierAdmissionDetail\";\nimport { ExamenEntreeFceDetail } from \"./acquisAdmission/ExamenEntreeFceDetail\";\nimport { ExamenEntreeHopeDetail } from \"./acquisAdmission/ExamenEntreeHopeDetail\";\nimport { AcquisGlobal } from \"./AcquisGlobal\";\nimport { AcquisScolaireGlobal } from \"./acquisScolaire/AcquisScolaireGlobal\";\nimport { AcquisScolaireGlobalIfapme } from \"./acquisScolaire/AcquisScolaireGlobalIfapme\";\nimport { AnneeFormationSuivieDetail } from \"./acquisScolaire/AnneeFormationSuivieDetail\";\nimport { AnneeFormationSuivieIfapmeDetail } from \"./acquisScolaire/AnneeFormationSuivieIfapmeDetail\";\nimport { DiplomeCertificationDetail } from \"./acquisScolaire/DiplomeCertificationDetail\";\nimport { DiplomeCertificationIfapmeDetail } from \"./acquisScolaire/DiplomeCertificationIfapmeDetail\";\nimport { ExperienceProfessionnelleDetail } from \"./experienceProfessionnelle/ExperienceProfessionnelleDetail\";\n\ninterface IAcquisSwitchProps {\n baseRoute: string;\n idpersonne: number;\n}\n\nexport const AcquisSwitch: React.FunctionComponent = ({ baseRoute, idpersonne }) => {\n const match = useRouteMatch();\n const { id, tab } = useParams<{\n id: string;\n tab: string;\n state: string;\n experienceProId: string;\n acquisId: string;\n }>();\n\n const listRoute = React.useMemo(() => `${baseRoute}/${id}/${tab}`, [baseRoute, id, tab]);\n\n return (\n !!idpersonne && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import * as React from \"react\";\n\nimport { DemandeInscriptionEditDto } from \"../../../../../../api\";\nimport { FGWalterSelectInput, WarningText } from \"../../../../../../components\";\nimport { useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface ICentresDemandeSelectProps {\n values: DemandeInscriptionEditDto;\n name: string;\n}\n\nexport const CentresDemandeSelect: React.FunctionComponent = ({ values, name }) => {\n const { t } = useTl();\n\n const idmetier = React.useMemo(() => values?.idmetier ?? 0, [values?.idmetier]);\n const iddegre = React.useMemo(() => values?.iddegre ?? 0, [values?.iddegre]);\n const idtypeCours = React.useMemo(() => values?.idtypeCours ?? 0, [values?.idtypeCours]);\n const anneeScolaire = React.useMemo(() => values?.anneeAcademique, [values?.anneeAcademique]);\n\n const [centres, cLoading] = useReferential(\n a => a.referentialGetCentresDemande({ CentreDemandeRequestDto: { anneeScolaire, idmetier, iddegre, idtypeCours } }),\n true,\n [anneeScolaire, idmetier, iddegre, idtypeCours]\n );\n\n return (\n \n }\n />\n );\n};\n","import { Button, Card, Intent } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport { FieldArray, FormikProps, getIn } from \"formik\";\nimport { FGCustomInput, FGCustomPanel, FGListen, FieldGroup, FieldSet, IFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport {\n CentreApi,\n DemandeInscriptionCreateDto,\n DemandeInscriptionCreateDtoFromJSON,\n EIfapmeSide,\n EStatutDemande,\n ParcoursFormationApi\n} from \"../../../../../../api\";\nimport { DemandeInscriptionEditDtoFromJSON } from \"../../../../../../api/models/DemandeInscriptionEditDto\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { ErrorText, FGWalterSelectInput, SmallFormGenerator, WarningText } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTheme, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { CentresDemandeSelect } from \"./CentresDemandeSelect\";\n\nconst ButtonContainer = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 0.5rem;\n`;\n\nconst ErrorTextContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n`;\n\nexport interface IDemandeInscriptionCreateProps {}\n\nexport const DemandeInscriptionCreate: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(ParcoursFormationApi);\n const history = useHistory();\n\n const { id, state, idParcoursFormation } = useParams<{\n id: string;\n state: string;\n idParcoursFormation: string;\n idDemande: string;\n }>();\n\n const idParcours = React.useMemo(() => (+idParcoursFormation > 0 ? +idParcoursFormation : 0), [idParcoursFormation]);\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const formikInnerRef = React.useRef>();\n\n const fetchParcours = React.useCallback(async () => {\n if (idParcours > 0) {\n return api.parcoursFormationGetParcoursFormation({ idApprenant: +id, idParcoursFormation: idParcours });\n } else return api.parcoursFormationGetParcoursFormation({ idApprenant: +id });\n }, [api, id, idParcours]);\n\n const { data: parcours } = useQuery([\"parcoursFormation\", id, idParcoursFormation], fetchParcours);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi({\n getApiFn: () =>\n DemandeInscriptionCreateDtoFromJSON({\n idParcoursFormation: idParcours,\n demandes: [{ idparcoursFormation: idParcours }]\n }),\n saveApiFn: d => api.parcoursFormationCreateDemandeInscriptionMultiple({ DemandeInscriptionCreateDto: d }),\n onSavedRoute: () => `${ERoutes.apprenant}/${id}/parcoursFormation/${state}`\n });\n\n const [categoriesStatutSocial] = useReferential(a => a.referentialGetCategoriesStatutSocial());\n const [statutsSocial] = useReferential(a => a.referentialGetSousStatutsByCategorie({ currentIdstatutSocial: 0 }));\n const [services, sLoading] = useReferential(a => a.referentialGetServicesByIdApprenant({ idApprenant: +id }));\n\n const [metiers, mLoading, , rawMetiers] = useReferential(a => a.referentialGetMetier());\n const [annees, aLoading] = useReferential(a => a.referentialGetAnneeScolaire());\n const { ifapmeSide } = useTheme();\n const [typeCours, tcLoading] = useReferential(\n a => a.referentialGetTypeCoursId({ ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Hope : EIfapmeSide.Walter }),\n false,\n [ifapmeSide]\n );\n const [stades, stLoading, , rawStades] = useReferential(a => a.referentialGetStade());\n\n const [degres, dLoading, , rawDegres] = useReferential(a => a.referentialGetDegreIds());\n\n const categorie = React.useMemo(\n () => categoriesStatutSocial?.find(c => +c.value === parcours?.idStatutSocialEntree)?.label,\n [categoriesStatutSocial, parcours]\n );\n const statut = React.useMemo(() => statutsSocial?.find(c => +c.value === parcours?.idSousStatutEntree)?.label, [\n parcours,\n statutsSocial\n ]);\n\n const filteredStades = React.useCallback(\n idmetier => {\n const idstade = (rawMetiers ?? [])?.find(m => +m.idValue === +idmetier)?.keyValue;\n return (stades ?? []).filter(s => +s.value === +idstade);\n },\n [rawMetiers, stades]\n );\n\n const filteredDegres = React.useCallback(\n idmetier => {\n const idstade = (rawMetiers ?? [])?.find(m => +m.idValue === +idmetier)?.keyValue;\n if (+idstade === 2) {\n const filteredRawDegres = (rawDegres ?? [])\n .filter(s => [\"00\", \"01\", \"02\", \"03\"].includes(s.displayValue.substr(0, 2)))\n .map(d => +d.idValue);\n return degres?.filter(d => filteredRawDegres.includes(+d.value));\n }\n const filteredRawDegres = (rawDegres ?? []).filter(s => +s.keyValue === +idstade).map(d => +d.idValue);\n return degres?.filter(d => filteredRawDegres.includes(+d.value));\n },\n [degres, rawDegres, rawMetiers]\n );\n\n const onCancelFunc = React.useCallback(() => {\n history.push(`${ERoutes.apprenant}/${id}/parcoursFormation/${state}`);\n }, [history, id, state]);\n\n const centreApi = useApiService(CentreApi);\n const [idscentre, setIdscentre] = React.useState([]);\n const fetchCentreExterieur = React.useCallback(() => centreApi.centreIsAnyExterieur({ request_body: idscentre }), [\n centreApi,\n idscentre\n ]);\n const { data: centreExterieur, isFetching: loadingCentreExterieur } = useQuery(\n [\"any-centre-exterieur\", idscentre],\n fetchCentreExterieur\n );\n\n const sendButtons = React.useCallback(\n (ctx: IFGContext) => {\n const canSendCentres =\n ctx.formik?.values?.demandes?.length > 0 &&\n !!ctx.formik?.values?.idService &&\n ctx.formik?.values?.demandes?.every(\n d =>\n !!d.idcentre &&\n !!d.anneeAcademique &&\n !!d.iddegre &&\n !!d.idmetier &&\n !!d.idstade &&\n !!d.idtypeCours &&\n rawStades?.find(s => +s.idValue === +d.idstade)?.keyValue === \"AP\"\n );\n const canSendValidation =\n ctx.formik?.values?.demandes?.length > 0 &&\n !!ctx.formik?.values?.idService &&\n ctx.formik?.values?.demandes?.every(\n d => !!d.idcentre && !!d.anneeAcademique && !!d.iddegre && !!d.idmetier && !!d.idstade && !!d.idtypeCours\n );\n return centreExterieur?.value ? (\n <>\n ) : (\n <>\n {\n if (formikInnerRef.current?.isValid)\n formikInnerRef.current?.setFieldValue(\"statutToSend\", EStatutDemande.EV);\n formikInnerRef.current?.submitForm();\n }}\n loading={saving || loadingCentreExterieur}\n disabled={!canSendValidation}\n />\n {\n if (formikInnerRef.current?.isValid)\n formikInnerRef.current?.setFieldValue(\"statutToSend\", EStatutDemande.E);\n formikInnerRef.current?.submitForm();\n }}\n loading={saving || loadingCentreExterieur}\n disabled={!canSendCentres}\n />\n \n );\n },\n [centreExterieur?.value, loadingCentreExterieur, rawStades, saving, t]\n );\n\n const clearCentre = React.useCallback((index: number, formik: FormikProps) => {\n if (!!getIn(formik.values, `demandes.${index}.idcentre`)) {\n formik.setFieldValue(`demandes.${index}.idcentre`, null);\n }\n }, []);\n\n return (\n
\n setIdscentre(value?.filter(d => !!d.idcentre)?.map(d => d.idcentre) ?? [])\n }}\n >\n \n \n \n {() => (\n
\n {!!parcours?.dateEntree ? format(parcours?.dateEntree, \"dd-MM-yyyy\") : \"\"}\n
\n )}\n
\n \n {() =>
{categorie}
}\n
\n \n {() =>
{statut}
}\n
\n
\n \n }\n />\n \n
\n \n \n {({ formik, validationErrors }) => (\n {\n const data = (formik.values as DemandeInscriptionCreateDto)?.demandes;\n return (\n \n {data?.map((d, index) => (\n \n \n \n clearCentre(index, formik)}\n />\n clearCentre(index, formik)}\n />\n clearCentre(index, formik)}\n />\n clearCentre(index, formik)}\n />\n \n \n \n \n {ctx => (\n <>\n \n \n \n )}\n \n \n \n \n arrayHelpers.remove(index)}\n style={{ height: \"16px\" }}\n >\n \n \n {validationErrors[`demandes[${index}]`]?.length > 0 && (\n \n \n \n )}\n \n ))}\n \n {ctx => (\n \n {\n arrayHelpers.insert(\n data?.length ?? 0,\n DemandeInscriptionEditDtoFromJSON({\n idparcoursFormation: idParcours,\n idmetier: ctx?.formik?.values?.demandes?.[0]?.idmetier,\n anneeAcademique: ctx?.formik?.values?.demandes?.[0]?.anneeAcademique,\n idstade: ctx?.formik?.values?.demandes?.[0]?.idstade\n })\n );\n }}\n >\n \n )}\n \n \n );\n }}\n >\n )}\n \n \n \n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n DemandeInscriptionFichierUploadDto,\n DemandeInscriptionFichierUploadDtoFromJSON,\n ParcoursFormationApi\n} from \"../../../../../../api\";\nimport { FGWalterFileInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IDemandeInscriptionDocumentUploadDialogProps {\n iddemandeInscription: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const DemandeInscriptionDocumentUploadDialog: React.FunctionComponent = ({\n iddemandeInscription,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ParcoursFormationApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return DemandeInscriptionFichierUploadDtoFromJSON({ iddemandeInscription });\n },\n saveApiFn: async (d: DemandeInscriptionFichierUploadDto) => {\n return api.parcoursFormationUploadDemandeInscriptionFichier({\n DemandeInscriptionFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, iddemandeInscription, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n
\n
\n );\n};\n","import { Button, Classes, Dialog, Intent } from \"@blueprintjs/core\";\nimport { addMinutes, format, parseJSON } from \"date-fns\";\nimport { FormikProps } from \"formik\";\nimport {\n ButtonContainer,\n DataTable,\n FGCustomInput,\n FGCustomPanel,\n FGListen,\n FGTextAreaInput,\n FieldGroup,\n IDataTableColumn,\n showError,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport {\n DashboardApi,\n DemandeInscriptionFichierGridDto,\n EIfapmeSide,\n ELevelName,\n EStatutDemande,\n ParcoursFormationApi\n} from \"../../../../../../api\";\nimport {\n DemandeInscriptionEditDto,\n DemandeInscriptionEditDtoFromJSON\n} from \"../../../../../../api/models/DemandeInscriptionEditDto\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n ErrorText,\n FGWalterSelectInput,\n SmallFormGenerator,\n WarningText\n} from \"../../../../../../components\";\nimport { useAuth, useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTheme, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\nimport { CentresDemandeSelect } from \"./CentresDemandeSelect\";\nimport { DemandeInscriptionDocumentUploadDialog } from \"./DemandeInscriptionDocumentUploadDialog\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nconst ErrorTextContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n`;\n\nexport interface IDemandeInscriptionSaveProps {}\n\nexport const DemandeInscriptionSave: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(ParcoursFormationApi);\n const dashboardApi = useApiService(DashboardApi);\n const history = useHistory();\n const [invalidationDialogOpen, setInvalidationDialogOpen] = React.useState(false);\n\n const { id, state, idParcoursFormation, idDemande } = useParams<{\n id: string;\n state: string;\n idParcoursFormation: string;\n idDemande: string;\n }>();\n\n const getStatutDemandeCodeIdFunc = React.useCallback(async () => {\n return await api.parcoursFormationGetStatutDemandeCodeId();\n }, [api]);\n\n const { data: statutDemandeCode } = useQuery(\"StatutDemandeCode\", getStatutDemandeCodeIdFunc);\n\n const idParcours = React.useMemo(() => (+idParcoursFormation > 0 ? +idParcoursFormation : 0), [idParcoursFormation]);\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const fetchParcours = React.useCallback(async () => {\n if (idParcours > 0) {\n return api.parcoursFormationGetParcoursFormation({ idApprenant: +id, idParcoursFormation: idParcours });\n } else return api.parcoursFormationGetParcoursFormation({ idApprenant: +id });\n }, [api, id, idParcours]);\n\n const { data: parcours } = useQuery([\"parcoursFormation\", id, idParcoursFormation], fetchParcours);\n\n const formikInnerRef = React.useRef>();\n\n const { data, loading, saveItem, saving, deleteItem, deleting, refresh: refreshData, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n +idDemande <= 0\n ? DemandeInscriptionEditDtoFromJSON({ iddemandeInscription: 0, idparcoursFormation: +idParcoursFormation })\n : api.parcoursFormationGetDemandeInscription({ idDemande: +idDemande }),\n saveApiFn: (d: DemandeInscriptionEditDto) => {\n if (\n (d.changeStatut === EStatutDemande.E || d.changeStatut === EStatutDemande.EV) &&\n (!formikInnerRef.current?.values.idcentre ||\n !formikInnerRef.current?.values.iddegre ||\n !formikInnerRef.current?.values.idmetier ||\n !formikInnerRef.current?.values.idservice ||\n !formikInnerRef.current?.values.idstade ||\n !formikInnerRef.current?.values.idtypeCours)\n ) {\n showError(t(ETLCodes.VeuillezRemplirTousLesChamps));\n return;\n }\n return api.parcoursFormationSaveDemandeInscription({ DemandeInscriptionEditDto: d });\n },\n onSavedRoute: () => `${ERoutes.apprenant}/${id}/parcoursFormation/${state}`,\n deleteApiFn: d => api.parcoursFormationCancelDemandeInscription({ idDemande: +idDemande }),\n onDeletedRoute: () => `${ERoutes.apprenant}/${id}/parcoursFormation/${state}`\n }),\n [api, id, idDemande, idParcoursFormation, state, t]\n )\n );\n\n const [categoriesStatutSocial] = useReferential(a => a.referentialGetCategoriesStatutSocial());\n const [idstatutSocial, setIdstatutSocial] = React.useState(0);\n const [statutsSocial] = useReferential(a =>\n a.referentialGetSousStatutsByCategorie({ currentIdstatutSocial: idstatutSocial })\n );\n const [services, sLoading] = useReferential(a => a.referentialGetServicesByIdApprenant({ idApprenant: +id }));\n\n const [metiers, mLoading, , rawMetiers] = useReferential(a => a.referentialGetMetier());\n const [annees, aLoading] = useReferential(a => a.referentialGetAnneeScolaire());\n const { ifapmeSide } = useTheme();\n const [typeCours, tcLoading] = useReferential(\n a => a.referentialGetTypeCoursId({ ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Hope : EIfapmeSide.Walter }),\n false,\n [ifapmeSide]\n );\n const [idmetier, setIdmetier] = React.useState(0);\n const [stades, stLoading, , rawStades] = useReferential(a => a.referentialGetStadeByMetier({ idmetier }), false, [\n idmetier\n ]);\n const idStade = React.useMemo(() => +(rawMetiers?.find(m => +m.idValue === +idmetier)?.keyValue ?? 0), [\n idmetier,\n rawMetiers\n ]);\n const [degres, dLoading, , rawDegres] = useReferential(\n a => a.referentialDegreIdsByStade({ idStade: idStade }),\n true,\n [idStade]\n );\n const filteredDegres = React.useMemo(() => {\n const filteredRawDegres = (rawDegres ?? [])\n .filter(s =>\n rawStades?.find(s => +s.idValue === +idStade)?.keyValue === \"AP\"\n ? [\"00\", \"01\", \"02\", \"03\"].includes(s.displayValue.substr(0, 2))\n : true\n )\n .map(d => +d.idValue);\n return degres?.filter(d => filteredRawDegres.includes(+d.value));\n }, [degres, idStade, rawDegres, rawStades]);\n\n const categorie = React.useMemo(\n () => categoriesStatutSocial?.find(c => +c.value === parcours?.idStatutSocialEntree)?.label,\n [categoriesStatutSocial, parcours]\n );\n const statut = React.useMemo(() => statutsSocial?.find(c => +c.value === parcours?.idSousStatutEntree)?.label, [\n parcours,\n statutsSocial\n ]);\n\n const editable = React.useMemo(() => (!!data ? data.editable : false), [data]);\n const [actionGlobaleLoading, setActionGlobaleLoading] = React.useState(false);\n const ChangeStatut = React.useCallback(\n async (codeStatut: string, validate: boolean) => {\n if (\n validate &&\n (!formikInnerRef.current?.values.idcentre ||\n !formikInnerRef.current?.values.iddegre ||\n !formikInnerRef.current?.values.idmetier ||\n !formikInnerRef.current?.values.idservice ||\n !formikInnerRef.current?.values.idstade ||\n !formikInnerRef.current?.values.idtypeCours)\n ) {\n showError(t(ETLCodes.VeuillezRemplirTousLesChamps));\n return;\n }\n setActionGlobaleLoading(true);\n await api.parcoursFormationChangeStatutMultipleDemande({\n ChangeStatutMultipleDto: {\n codeStatut,\n demandes: [+idDemande]\n }\n });\n setActionGlobaleLoading(false);\n history.push(`${ERoutes.apprenant}/${id}/parcoursFormation/${state}`);\n },\n [api, history, id, idDemande, state, t]\n );\n\n const onClose = React.useCallback(\n async (remarque: string = null) => {\n setInvalidationDialogOpen(false);\n setActionGlobaleLoading(true);\n await dashboardApi.dashboardInvaliderDemandeInscription({\n DemandeInscriptionInvalidationDto: {\n iddemandeInscription: data?.iddemandeInscription,\n remarqueInvalidation: remarque\n }\n });\n setActionGlobaleLoading(false);\n history.push(`${ERoutes.apprenant}/${id}/parcoursFormation/${state}`);\n },\n [dashboardApi, data?.iddemandeInscription, history, id, state]\n );\n\n const { user } = useAuth();\n const userCanValidate = React.useMemo(\n () =>\n user?.iduser !== data?.creationUser &&\n ((data?.priCanValidate && user?.iduser === data?.idpriApprenant) ||\n user?.delegationSignature ||\n user?.hopeMainLevelName === ELevelName.CALC),\n [\n data?.creationUser,\n data?.idpriApprenant,\n data?.priCanValidate,\n user?.delegationSignature,\n user?.hopeMainLevelName,\n user?.iduser\n ]\n );\n\n const SendButtons = React.useCallback(() => {\n if (!!parcours?.idstatutSortie) {\n return <>;\n }\n const isApprentissage = rawStades?.find(s => +s.idValue === +idStade)?.keyValue === \"AP\";\n return (\n <>\n {[EStatutDemande.EV].includes(\n statutDemandeCode?.find(sdc => +sdc.idstatutDemande === +data?.idstatutDemande)?.code\n ) &&\n userCanValidate && (\n <>\n {\n setInvalidationDialogOpen(true);\n }}\n loading={actionGlobaleLoading}\n />\n {\n ChangeStatut(EStatutDemande.E, true);\n }}\n loading={actionGlobaleLoading}\n />\n \n )}\n {!data?.centreExterieur &&\n [EStatutDemande.EC, EStatutDemande.AE, EStatutDemande.P].includes(\n statutDemandeCode?.find(sdc => +sdc.idstatutDemande === +data?.idstatutDemande)?.code\n ) && (\n {\n if (formikInnerRef.current?.isValid)\n formikInnerRef.current?.setFieldValue(\"changeStatut\", EStatutDemande.EV);\n formikInnerRef.current?.submitForm();\n }}\n loading={actionGlobaleLoading}\n />\n )}\n {[EStatutDemande.AE, EStatutDemande.P].includes(\n statutDemandeCode?.find(sdc => +sdc.idstatutDemande === +data?.idstatutDemande)?.code\n ) &&\n !data?.centreExterieur &&\n isApprentissage && (\n {\n if (formikInnerRef.current?.isValid)\n formikInnerRef.current?.setFieldValue(\"changeStatut\", EStatutDemande.E);\n formikInnerRef.current?.submitForm();\n }}\n loading={actionGlobaleLoading}\n />\n )}\n \n );\n }, [\n ChangeStatut,\n actionGlobaleLoading,\n data?.centreExterieur,\n data?.idstatutDemande,\n idStade,\n parcours?.idstatutSortie,\n rawStades,\n statutDemandeCode,\n t,\n userCanValidate\n ]);\n\n const onCancelFunc = React.useCallback(() => {\n history.push(`${ERoutes.apprenant}/${id}/parcoursFormation/${state}`);\n }, [history, id, state]);\n\n const codeStatut = React.useMemo(\n () => statutDemandeCode?.find(sdc => sdc.idstatutDemande === data?.idstatutDemande)?.code,\n [data?.idstatutDemande, statutDemandeCode]\n );\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (iddemandeInscriptionFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(iddemandeInscriptionFichier);\n await api.parcoursFormationDeleteDemandeInscriptionFichier({\n id: iddemandeInscriptionFichier\n });\n refreshData();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refreshData, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (iddemandeInscriptionFichier: number) => {\n try {\n setRowLoading(iddemandeInscriptionFichier);\n const file = await api.parcoursFormationDownloadDemandeInscriptionFichier({\n id: iddemandeInscriptionFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: DemandeInscriptionFichierGridDto) => (\n \n downloadFichier(row.iddemandeInscriptionFichier)}\n loading={rowLoading === row.iddemandeInscriptionFichier}\n disabled={!!rowLoading && rowLoading !== row.iddemandeInscriptionFichier}\n />\n deleteFichier(row.iddemandeInscriptionFichier)}\n loading={rowLoading === row.iddemandeInscriptionFichier}\n disabled={!!rowLoading && rowLoading !== row.iddemandeInscriptionFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onCloseFichier = React.useCallback(\n (refresh?: boolean) => {\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n const clearCentre = React.useCallback((formik: FormikProps) => {\n if (!!formik.values?.idcentre) {\n formik.setFieldValue(\"idcentre\", null);\n }\n }, []);\n\n return (\n <>\n }\n watchChanges={{\n idStatut: setIdstatutSocial,\n idmetier: setIdmetier\n }}\n validationErrors={validationErrors}\n formikInnerRef={formikInnerRef}\n >\n \n \n \n \n {() => (\n
\n {!!parcours?.dateEntree ? format(parcours?.dateEntree, \"dd-MM-yyyy\") : \"\"}\n
\n )}\n
\n \n {() =>
{categorie}
}\n
\n \n {() =>
{statut}
}\n
\n
\n \n }\n />\n \n
\n \n \n formik.touched.idmetier && clearCentre(formik)} />\n formik.touched.anneeAcademique && clearCentre(formik)}\n />\n formik.touched.idtypeCours && clearCentre(formik)}\n />\n formik.touched.iddegre && clearCentre(formik)} />\n \n \n \n \n \n \n {ctx => }\n \n {codeStatut === EStatutDemande.EC && (\n \n )}\n \n \n \n {ctx =>\n !!ctx.formik.values?.remarqueRefus && (\n \n )\n }\n \n \n \n {validationErrors[\"dto\"]?.length > 0 && (\n \n \n \n )}\n
\n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n \n {uploadDialoOpen && (\n \n )}\n \n \n onClose()}>\n
\n onClose(d.remarqueInvalidation)}\n editMode={true}\n onCancel={onClose}\n showDeleteButton={false}\n enableDirtyCheck={false}\n >\n \n \n \n \n
\n
\n \n );\n};\n","import * as React from \"react\";\nimport { useParams } from \"react-router-dom\";\n\nimport { DemandeInscriptionCreate } from \"./DemandeInscriptionCreate\";\nimport { DemandeInscriptionSave } from \"./DemandeInscriptionSave\";\n\nexport interface IDemandeInscriptionProps {}\n\nexport const DemandeInscription: React.FunctionComponent = () => {\n const { idDemande } = useParams<{\n id: string;\n state: string;\n idParcoursFormation: string;\n idDemande: string;\n }>();\n\n return <>{+idDemande > 0 ? : };\n};\n","import { ButtonContainer, DataTable, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { ParcoursFormationApi, ParcoursFormationSearch } from \"../../../../../api\";\nimport { ParcoursFormationGridDto } from \"../../../../../api/models/ParcoursFormationGridDto\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IParcoursFormationHistoriqueProps {}\n\nexport const ParcoursFormationHistorique: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, state } = useParams<{ id: string; state: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const history = useHistory();\n const api = useApiService(ParcoursFormationApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n pageSize: 999999,\n sortKeys: { dateEntree: \"DESC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: ParcoursFormationSearch) => {\n sObj.idApprenant = apprenantId;\n return api.parcoursFormationBaseSearch({ ParcoursFormationSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const OnRefreshSearchTablesEvent = React.useCallback(() => {\n search();\n }, [search]);\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n React.useEffect(() => {\n subscribeToEvent(\"SEARCH_TABLE_REFRESH\", OnRefreshSearchTablesEvent);\n return () => unsubscribeEvent(\"SEARCH_TABLE_REFRESH\", OnRefreshSearchTablesEvent);\n }, [OnRefreshSearchTablesEvent, subscribeToEvent, unsubscribeEvent]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ParcoursFormationGridDto) => (\n \n \n history.push(`${ERoutes.apprenant}/${id}/parcoursFormation/${state}/${row.idParcoursFormation}`)\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.DateEntreeParcours),\n fieldName: \"dateEntree\"\n },\n\n {\n header: () => t(ETLCodes.CategorieStatut),\n fieldName: \"catStatutEntree\"\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"statutEntree\"\n },\n {\n header: () => t(ETLCodes.DateSortieReseau),\n fieldName: \"dateSortie\"\n },\n {\n header: () => t(ETLCodes.CategorieStatut),\n fieldName: \"catStatutSortie\"\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"statutSortie\"\n },\n {\n header: () => t(ETLCodes.MotifSortie),\n fieldName: \"motifSortie\"\n }\n ],\n [history, id, t, state]\n );\n\n return (\n \n );\n};\n","import { Button, Checkbox, Colors, Icon, Intent, Menu, MenuItem, Popover, Tooltip } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ButtonContainer, DataTable, IDataTableColumn, showSuccess, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport {\n DemandeInscriptionGridDto,\n EStatutDemande,\n ParcoursFormationApi,\n ParcoursInterneSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { CircleColumn, CustomBulletList, EditButton, ViewButton } from \"../../../../../components\";\nimport { useDialog, useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useManageError, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nexport interface IParcoursInterneListProps {\n idParcoursFormation: number;\n hasButtons: boolean;\n isSortieEnCours: boolean;\n refetchFunc: () => void;\n setSelectedDemandeIds?: (value: React.SetStateAction) => void;\n setCanSendCentre: (value: boolean) => void;\n}\n\nexport const ParcoursInterneList: React.FunctionComponent = ({\n idParcoursFormation,\n hasButtons,\n isSortieEnCours,\n refetchFunc = () => {},\n setSelectedDemandeIds = () => {},\n setCanSendCentre\n}) => {\n const { t } = useTl();\n const history = useHistory();\n const { showDialogPromise } = useDialog();\n const { manageError } = useManageError();\n const api = useApiService(ParcoursFormationApi);\n const { id, idParcoursFormation: oldIdParcoursFormation } = useParams<{\n id: string;\n state: string;\n idParcoursFormation: string;\n }>();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n pageSize: 999999,\n sortKeys: { anneeScolaire: \"DESC\" }\n });\n\n const { data } = tableState;\n\n const searchFunc = React.useCallback(\n (sObj?: ParcoursInterneSearch) => {\n sObj.idParcoursFormation = idParcoursFormation;\n return api.parcoursFormationSearchParcoursInterne({ ParcoursInterneSearch: sObj });\n },\n [api, idParcoursFormation]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const OnRefreshSearchTablesEvent = React.useCallback(() => {\n search();\n }, [search]);\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n React.useEffect(() => {\n subscribeToEvent(\"SEARCH_TABLE_REFRESH\", OnRefreshSearchTablesEvent);\n return () => unsubscribeEvent(\"SEARCH_TABLE_REFRESH\", OnRefreshSearchTablesEvent);\n }, [OnRefreshSearchTablesEvent, subscribeToEvent, unsubscribeEvent]);\n\n const getStatutDemandeCodeIdFunc = React.useCallback(async () => {\n return await api.parcoursFormationGetStatutDemandeCodeId();\n }, [api]);\n\n const { data: statutDemandeCode } = useQuery(\"StatutDemandeCode\", getStatutDemandeCodeIdFunc);\n\n const allIds = React.useMemo(() => {\n return data\n ?.filter(\n d =>\n ![\n EStatutDemande.I,\n EStatutDemande.E,\n EStatutDemande.EA,\n EStatutDemande.CC,\n EStatutDemande.CE,\n EStatutDemande.ER,\n EStatutDemande.MS,\n EStatutDemande.SU\n ].includes(statutDemandeCode?.find(sdc => sdc.idstatutDemande === d.idstatutDemande)?.code) &&\n d.stade === \"AP\" &&\n !d.centreExterieur\n )\n .map(d => d.iddemandeInscription);\n }, [data, statutDemandeCode]);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n\n React.useEffect(() => {\n if (data && selectedIDs.length > 0) {\n setCanSendCentre(\n (data as DemandeInscriptionGridDto[])\n .filter(d => selectedIDs.includes(d.iddemandeInscription))\n .every(d => d.stade !== \"CE\")\n );\n }\n }, [data, selectedIDs, setCanSendCentre]);\n\n const selectAll = React.useCallback(() => {\n if (allIds.length === selectedIDs.length) {\n setSelectedIDs([]);\n setSelectedDemandeIds([]);\n } else {\n setSelectedIDs(allIds);\n setSelectedDemandeIds(allIds);\n }\n }, [allIds, selectedIDs.length, setSelectedDemandeIds]);\n\n const toggleSelection = React.useCallback(\n (item: DemandeInscriptionGridDto) => {\n if (!selectedIDs.includes(item.iddemandeInscription)) {\n setSelectedIDs(ids => [...ids, item.iddemandeInscription]);\n setSelectedDemandeIds(ids => [...ids, item.iddemandeInscription]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.iddemandeInscription));\n setSelectedDemandeIds(ids => ids.filter(id => id !== item.iddemandeInscription));\n }\n },\n [selectedIDs, setSelectedDemandeIds]\n );\n\n const defineColor = React.useCallback(\n (idstatutDemande: number) => {\n const codeStatut = statutDemandeCode?.find(sdc => sdc.idstatutDemande === idstatutDemande)?.code;\n\n switch (codeStatut) {\n case EStatutDemande.I:\n case EStatutDemande.V:\n return Colors.GREEN3;\n case EStatutDemande.EA:\n return Colors.RED3;\n case EStatutDemande.EV:\n return Colors.ORANGE3;\n case EStatutDemande.E:\n return Colors.GOLD5;\n case EStatutDemande.P:\n return Colors.BLUE3;\n case EStatutDemande.AE:\n return Colors.GRAY1;\n case EStatutDemande.EC:\n return Colors.GRAY3;\n case EStatutDemande.CC:\n return Colors.RED3;\n case EStatutDemande.CE:\n return Colors.RED3;\n case EStatutDemande.ER:\n return Colors.RED3;\n case EStatutDemande.MS:\n return Colors.VIOLET4;\n case EStatutDemande.DS:\n return Colors.RED3;\n case EStatutDemande.SU:\n return Colors.RED3;\n case EStatutDemande.RC:\n return Colors.RED3;\n default:\n return Colors.GRAY3;\n }\n },\n [statutDemandeCode]\n );\n\n const defineTextCode = React.useCallback(\n (idstatutDemande: number) => {\n const codeStatut = statutDemandeCode?.find(sdc => sdc.idstatutDemande === idstatutDemande)?.code;\n\n switch (codeStatut) {\n case EStatutDemande.I:\n return t(ETLCodes.Inscrit);\n case EStatutDemande.V:\n return t(ETLCodes.Validee);\n case EStatutDemande.E:\n return t(ETLCodes.Envoyee);\n case EStatutDemande.EA:\n return t(ETLCodes.EnAbandon);\n case EStatutDemande.EV:\n return t(ETLCodes.EnValidation);\n case EStatutDemande.P:\n return t(ETLCodes.BrouillonPret);\n case EStatutDemande.AE:\n return t(ETLCodes.Brouillon);\n case EStatutDemande.EC:\n return t(ETLCodes.EnCorrection);\n case EStatutDemande.CC:\n return t(ETLCodes.ChangementClasse);\n case EStatutDemande.CE:\n return t(ETLCodes.ChangementCentre);\n case EStatutDemande.ER:\n return t(ETLCodes.EnRenvoi);\n case EStatutDemande.MS:\n return t(ETLCodes.MisEnSortie);\n case EStatutDemande.DS:\n return t(ETLCodes.DemandeSuppression);\n case EStatutDemande.SU:\n return t(ETLCodes.Supprime);\n case EStatutDemande.RC:\n return t(ETLCodes.RefuseCentres);\n default:\n return \"\";\n }\n },\n [statutDemandeCode, t]\n );\n\n const BulletList = React.useCallback(() => {\n return (\n \n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n );\n }, [t]);\n\n const [deleting, setDeleting] = React.useState(0);\n const deleteFunc = React.useCallback(\n async (row: DemandeInscriptionGridDto) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.CancelConfirmationMessage),\n title: t(ETLCodes.CancelDialogTitle)\n });\n if (result === \"yes\") {\n try {\n setDeleting(row.iddemandeInscription);\n await api.parcoursFormationCancelDemandeInscription({ idDemande: row.iddemandeInscription });\n showSuccess(t(ETLCodes.DeleteSuccess));\n } catch (error) {\n manageError(error);\n }\n setDeleting(0);\n let resultCreate = \"no\";\n if (!isSortieEnCours)\n resultCreate = await showDialogPromise({\n message: t(ETLCodes.CreateNewDemandeMessage),\n title: t(ETLCodes.CreateNewDemande)\n });\n if (resultCreate === \"yes\") {\n history.push(`${ERoutes.apprenant}/${id}/parcoursFormation/edit/${idParcoursFormation}/demandeInscription/0`);\n } else {\n refetchFunc();\n }\n }\n },\n [api, history, id, idParcoursFormation, isSortieEnCours, manageError, refetchFunc, showDialogPromise, t]\n );\n\n const [rowLoading, setRowLoading] = React.useState(0);\n const changeStatut = React.useCallback(\n async (codeStatut: string, iddemande: number) => {\n setRowLoading(iddemande);\n await api.parcoursFormationChangeStatutMultipleDemande({\n ChangeStatutMultipleDto: {\n codeStatut,\n demandes: [iddemande]\n }\n });\n setRowLoading(0);\n refetchFunc();\n },\n [api, refetchFunc]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n !oldIdParcoursFormation && hasButtons ? (\n \n ) : (\n <>\n ),\n render: (item: DemandeInscriptionGridDto) =>\n allIds?.includes(item.iddemandeInscription) &&\n !oldIdParcoursFormation &&\n hasButtons &&\n item.stade === \"AP\" &&\n !item.centreExterieur ? (\n
\n {\n toggleSelection(item);\n }}\n />\n
\n ) : (\n <>\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: DemandeInscriptionGridDto) => (\n \n {\n history.push(\n `${ERoutes.apprenant}/${id}/parcoursFormation/view/${idParcoursFormation}/demandeInscription/${row.iddemandeInscription}`\n );\n }}\n loading={row.iddemandeInscription === rowLoading}\n />\n {\n history.push(\n `${ERoutes.apprenant}/${id}/parcoursFormation/edit/${idParcoursFormation}/demandeInscription/${row.iddemandeInscription}`\n );\n }}\n disabled={!row.editable}\n loading={row.iddemandeInscription === rowLoading}\n />\n \n \n {[EStatutDemande.EC, EStatutDemande.P].includes(\n statutDemandeCode?.find(sdc => sdc.idstatutDemande === row.idstatutDemande)?.code\n ) && (\n changeStatut(EStatutDemande.EV, row.iddemandeInscription)}\n />\n )}\n {!row.centreExterieur &&\n row.stade !== \"CE\" &&\n [EStatutDemande.P].includes(\n statutDemandeCode?.find(sdc => sdc.idstatutDemande === row.idstatutDemande)?.code\n ) && (\n changeStatut(EStatutDemande.E, row.iddemandeInscription)}\n />\n )}\n {![EStatutDemande.EA, EStatutDemande.SU, EStatutDemande.ER, EStatutDemande.DS].includes(\n statutDemandeCode?.find(sdc => sdc.idstatutDemande === row.idstatutDemande)?.code\n ) && (\n sdc.idstatutDemande === row.idstatutDemande)?.code ===\n EStatutDemande.I\n ? IconNames.Cross\n : IconNames.Trash\n }\n text={t(\n statutDemandeCode?.find(sdc => sdc.idstatutDemande === row.idstatutDemande)?.code ===\n EStatutDemande.I\n ? ETLCodes.DemanderSuppression\n : ETLCodes.Supprimer\n )}\n onClick={() => deleteFunc(row)}\n intent={Intent.PRIMARY}\n />\n )}\n \n \n }\n >\n \n \n \n )\n },\n {\n disableSorting: true,\n autoFitContent: true,\n alignment: \"center\",\n header: () => ,\n fieldName: \"statutDemande\",\n render: (row: DemandeInscriptionGridDto) =>\n row.idstatutDemande && (\n
\n \n
\n )\n },\n {\n header: () => t(ETLCodes.Metier),\n fieldName: \"metier\"\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.TypeCours),\n fieldName: \"typeCoursLibelle\"\n },\n {\n header: () => t(ETLCodes.Degre),\n fieldName: \"degre\"\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"nomClasse\"\n },\n {\n header: () => t(ETLCodes.CodeClasse),\n fieldName: \"classe\"\n },\n {\n header: () => t(ETLCodes.StatutInscription),\n fieldName: \"statutInscription\"\n }\n ],\n [\n oldIdParcoursFormation,\n hasButtons,\n allIds,\n selectedIDs,\n selectAll,\n toggleSelection,\n rowLoading,\n t,\n statutDemandeCode,\n deleting,\n history,\n id,\n idParcoursFormation,\n changeStatut,\n deleteFunc,\n BulletList,\n defineColor,\n defineTextCode\n ]\n );\n\n return ;\n};\n","import { Button, Intent, Menu, MenuItem, Popover } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ButtonContainer, FGCustomPanel, FGListen, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport { EStatutDemande, ParcoursFormationApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { AddParcoursFormationButton } from \"../../../../../components/parcoursFormation/AddParcoursFormationButton\";\nimport { SortieReseauButton } from \"../../../../../components/parcoursFormation/SortieReseauButton\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ParcoursFormationHistorique } from \"./ParcoursFormationHistorique\";\nimport { ParcoursInterneList } from \"./ParcoursInterneList\";\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\nexport interface IParcoursFormationDetailPageProps {}\n\nexport const ParcoursFormationDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { dispatchEvent } = useEventsContext();\n const { id, idParcoursFormation } = useParams<{\n id: string;\n state: string;\n idParcoursFormation: string;\n }>();\n const api = useApiService(ParcoursFormationApi);\n\n const idParcours = React.useMemo(() => (+idParcoursFormation > 0 ? +idParcoursFormation : 0), [idParcoursFormation]);\n\n const [idCatStatutSocial, setIdCatStatutSocial] = React.useState();\n const [categoriesStatutSocial, cssLoading] = useReferential(a => a.referentialGetCategoriesStatutSocial());\n const [idstatutSocial, setIdstatutSocial] = React.useState(0);\n const [statutsSocial, ssLoading] = useReferential(a =>\n a.referentialGetSousStatutsByCategorie({ idCategorie: idCatStatutSocial, currentIdstatutSocial: idstatutSocial })\n );\n const [typesSortie, tLoading] = useReferential(a => a.referentialGetTypesSortie({}));\n const [idtypeSortie, setIdtypeSortie] = React.useState(0);\n const [motifsSortie, msLoading] = useReferential(a => a.referentialGetMotifsSortie({ idtypeSortie }), true, [\n idtypeSortie\n ]);\n\n const fetchParcours = React.useCallback(async () => {\n if (idParcours > 0) {\n return api.parcoursFormationGetParcoursFormation({ idApprenant: +id, idParcoursFormation: idParcours });\n } else return api.parcoursFormationGetParcoursFormation({ idApprenant: +id });\n }, [api, id, idParcours]);\n\n const { data, isFetching: loading, refetch } = useQuery(\n [\"parcoursFormation\", id, idParcoursFormation],\n fetchParcours\n );\n const refresh = React.useCallback(() => {\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n dispatchEvent(\"REFRESH_APPRENANT_SORTIR\");\n refetch();\n }, [dispatchEvent, refetch]);\n\n const fetchCanAddParcours = React.useCallback(async () => {\n if (idParcours > 0) {\n return api.parcoursFormationCanAddParcours({ idApprenant: +id, idParcoursFormation: idParcours });\n } else return api.parcoursFormationCanAddParcours({ idApprenant: +id });\n }, [api, id, idParcours]);\n\n const { data: CanAddParcours, isFetching: capLoading } = useQuery(\n [\"canAddParcoursFormation\", id, data?.idparcoursFormation],\n fetchCanAddParcours\n );\n\n const AddDemandeFunc = React.useCallback(\n () =>\n history.push(\n `${ERoutes.apprenant}/${id}/parcoursFormation/edit/${data?.idparcoursFormation}/demandeInscription/0`\n ),\n [history, id, data]\n );\n\n const ButtonSortieReseau = React.useCallback(() => {\n return (\n refresh()}\n loading={loading}\n isSortieEnCours={data?.isSortieEnCours}\n iddureeInoccupation={data?.iddureeInoccupation}\n />\n );\n }, [\n data?.dateSortie,\n data?.idSousStatutEntree,\n data?.idStatutSocialEntree,\n data?.iddureeInoccupation,\n data?.idparcoursFormation,\n data?.isSortieEnCours,\n id,\n loading,\n refresh\n ]);\n\n const ButtonAddParcours = React.useCallback(() => {\n return (\n <>\n {CanAddParcours?.value && !data?.isSortieEnCours && idParcours === 0 ? (\n {\n if (toRefresh) refresh();\n }}\n loading={loading || capLoading}\n title={t(ETLCodes.NouveauParcoursFormation)}\n iddureeInoccupation={data?.iddureeInoccupation}\n />\n ) : (\n <>\n )}\n \n );\n }, [\n CanAddParcours?.value,\n capLoading,\n data?.dateEntreeReseau,\n data?.idSousStatutEntree,\n data?.idStatutSocialEntree,\n data?.iddureeInoccupation,\n data?.isSortieEnCours,\n data?.lastDateSortie,\n id,\n idParcours,\n loading,\n refresh,\n t\n ]);\n\n const [selectedDemandeIds, setSelectedDemandeIds] = React.useState([]);\n\n const [actionGlobaleLoading, setActionGlobaleLoading] = React.useState(false);\n const ChangeStatut = React.useCallback(\n async (codeStatut: string) => {\n setActionGlobaleLoading(true);\n await api.parcoursFormationChangeStatutMultipleDemande({\n ChangeStatutMultipleDto: {\n codeStatut,\n demandes: selectedDemandeIds\n }\n });\n setActionGlobaleLoading(false);\n setSelectedDemandeIds([]);\n refresh();\n },\n [api, refresh, selectedDemandeIds]\n );\n\n const [canSendCentre, setCanSendCentre] = React.useState(false);\n const demandeButtons = React.useMemo(\n () =>\n idParcours === 0 && !data?.idstatutSortie && !data?.isSortieEnCours ? (\n <>\n \n \n ChangeStatut(EStatutDemande.EV)}\n disabled={selectedDemandeIds.length === 0}\n />\n ChangeStatut(EStatutDemande.E)}\n disabled={selectedDemandeIds.length === 0 || !canSendCentre}\n />\n \n \n }\n >\n \n \n {!!data?.idparcoursFormation && !data?.idstatutSortie && (\n {\n AddDemandeFunc();\n }}\n disabled={loading}\n loading={capLoading}\n />\n )}\n \n ) : (\n <>\n ),\n [\n AddDemandeFunc,\n ChangeStatut,\n actionGlobaleLoading,\n canSendCentre,\n capLoading,\n data?.idparcoursFormation,\n data?.idstatutSortie,\n data?.isSortieEnCours,\n idParcours,\n loading,\n selectedDemandeIds.length,\n t\n ]\n );\n\n const dataTitle = React.useMemo(\n () =>\n idParcours > 0 ? t(ETLCodes.Detail) : data?.idstatutSortie ? t(ETLCodes.DernierParcours) : t(ETLCodes.EnCours),\n [data, idParcours, t]\n );\n\n return (\n <>\n {!!data?.idparcoursFormation && (\n <>\n
\n
\n {}}\n loading={loading}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={200}\n hideButtons\n watchChanges={{\n idStatut: setIdstatutSocial,\n idtypeSortie: setIdtypeSortie\n }}\n >\n {\n setIdCatStatutSocial(value);\n }}\n />\n \n \n \n \n \n \n \n \n \n {ctx =>\n !!ctx.formik.values?.idparcoursFormation && !ctx.formik.values?.idstatutSortie ? (\n ButtonSortieReseau()\n ) : (\n <>\n \n \n \n \n \n \n )\n }\n \n \n \n \n
\n
\n
\n
\n \n
\n
\n \n )}\n
\n {!idParcoursFormation ? (\n
\n \n
\n ) : !data?.idparcoursFormation ? (\n {ButtonAddParcours()}\n ) : (\n history.push(`${ERoutes.apprenant}/${id}/parcoursFormation/edit`)}\n />\n )}\n
\n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router\";\n\nimport { DemandeInscription } from \"./demandeInscription/DemandeInscription\";\nimport { ParcoursFormationDetailPage } from \"./ParcoursFormationDetailPage\";\n\nexport interface IParcoursFormationProps {}\n\nexport const ParcoursFormation: React.FunctionComponent = props => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ApprenantResultatTypeTabs } from \"./ApprenantResultatTypeTabs\";\n\nexport interface IApprenantResultatTypeSwitchProps {}\n\nexport const ApprenantResultatTypeSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n );\n};\n","import { Colors } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useParams } from \"react-router-dom\";\nimport { css } from \"styled-components\";\n\nimport {\n StatutApprenantApi,\n StatutApprenantEditDto,\n StatutApprenantEditDtoFromJSON,\n StatutApprenantGridDto,\n StatutApprenantSearch\n} from \"../../../../../api\";\nimport { AddStatutPostSortieButton, EditButton, EditStatutApprenantDialog } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantStatutListPageProps {}\n\nexport const ApprenantStatutListPage: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { id } = useParams<{ id: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const api = useApiService(StatutApprenantApi);\n const [statutApprenantEditOpen, setStatutApprenantEditOpen] = React.useState(null);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { dateStatut: \"DESC\", creationDate: \"DESC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: StatutApprenantSearch) => {\n sObj.idApprenant = apprenantId;\n return api.statutApprenantBaseSearch({ StatutApprenantSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: StatutApprenantGridDto) => (\n \n \n setStatutApprenantEditOpen(\n StatutApprenantEditDtoFromJSON({\n idApprenant: row.idApprenant,\n idStatutApprenant: row.idStatutApprenant\n })\n )\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"dateStatut\",\n render: (row: StatutApprenantGridDto) =>\n `${format(row.dateStatut, \"dd/MM/yyyy\")}${row.sortieAnnulee ? \" (\" + t(ETLCodes.SortieAnnulee) + \")\" : \"\"}\n ${row.postSortie ? \" (\" + t(ETLCodes.PostFormation) + \")\" : \"\"}`\n },\n {\n header: () => t(ETLCodes.Categorie),\n fieldName: \"categorie\",\n render: (row: StatutApprenantGridDto) => tUnsafe(`CategorieStatutApprenant_${row.categorie}`)\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"categorieStatutSocial\"\n },\n {\n header: () => t(ETLCodes.SousStatut),\n fieldName: \"statutSocial\"\n },\n {\n header: () => t(ETLCodes.DureeInoccupation),\n fieldName: \"dureeInoccupation\"\n },\n {\n header: () => t(ETLCodes.TypeSortie),\n fieldName: \"typeSortie\"\n },\n {\n header: () => t(ETLCodes.MotifSortie),\n fieldName: \"motifSortie\"\n },\n {\n header: () => t(ETLCodes.Par),\n fieldName: \"creationUser\"\n },\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"remarque\",\n render: (row: StatutApprenantGridDto) => (row.sortieAnnulee ? row.remarqueRefus : row.remarque)\n }\n ],\n [t, tUnsafe]\n );\n\n const fetchIsSorti = React.useCallback(() => api.statutApprenantIsSorti({ idapprenant: apprenantId }), [\n api,\n apprenantId\n ]);\n const { data: isSorti } = useQuery([!\"apprenant-is-sorti\", apprenantId], fetchIsSorti, { cacheTime: 0 });\n\n const addPostSortieButton = React.useMemo(\n () =>\n isSorti?.value && (\n {\n if (refresh) search();\n }}\n />\n ),\n [apprenantId, search, isSorti]\n );\n\n const onStatutApprenantEditClose = React.useCallback(\n (toRefresh: boolean) => {\n setStatutApprenantEditOpen(null);\n if (toRefresh) {\n search();\n }\n },\n [search]\n );\n\n return (\n \n css`\n & * {\n color: ${row.sortieAnnulee ? Colors.RED3 + \" !important\" : null};\n }\n `}\n />\n {!!statutApprenantEditOpen && (\n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router-dom\";\n\nimport { ApprenantStatutListPage } from \"./ApprenantStatutListPage\";\n\nexport interface IApprenantStatutProps {}\n\nexport const ApprenantStatut: React.FunctionComponent = (props) => {\n const match = useRouteMatch();\n\n return (\n \n \n \n );\n};\n","import { showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ApprenantSuiviForm } from \"..\";\nimport { EContentHidingMode, FcbSuiviApprenantDetailsDtoFromJSON, SuiviApprenantApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useAuth, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { exportFile } from \"../../../../../utils\";\n\nexport interface IApprenantSuiviDetailPageProps {}\n\nexport const ApprenantSuiviDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(SuiviApprenantApi);\n const { id, idSuivi, state } = useParams<{ id: string; idSuivi: string; state: string }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n const idApprenant = React.useMemo(() => +id, [id]);\n const IdSuivi = React.useMemo(() => +idSuivi, [idSuivi]);\n const auth = useAuth();\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving, validationErrors, refresh } = useCrudApi({\n getApiFn: () =>\n IdSuivi <= 0\n ? FcbSuiviApprenantDetailsDtoFromJSON({\n idsuiviApprenant: 0,\n idrealisateurSuivi: auth.user.iduser,\n idapprenant: idApprenant,\n utilisateur: `${auth?.user.nom} ${auth?.user.prenom}`,\n dateSuivi: new Date(),\n dateRealisation: new Date(),\n datePrevue: new Date(),\n contentHidingMode: EContentHidingMode.NONE\n })\n : api.suiviApprenantGet({ id: IdSuivi }),\n saveApiFn: d => api.suiviApprenantSave({ FcbSuiviApprenantDetailsDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${idApprenant}/suiviApprenant/${d.idsuiviApprenant}/${state}/walter`,\n deleteApiFn: d => api.suiviApprenantDelete({ id: d.idsuiviApprenant }),\n onDeletedRoute: d => `${ERoutes.apprenant}/${idApprenant}/suiviApprenant/${state}`\n });\n\n const onCancel = React.useCallback(() => history.push(`${ERoutes.apprenant}/${id}/suiviApprenant/${state}`), [\n history,\n id,\n state\n ]);\n\n const [rowLoading, setRowLoading] = React.useState(null);\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idsuiviFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idsuiviFichier);\n await api.suiviApprenantDeleteSuiviApprenantFichier({\n id: idsuiviFichier\n });\n refresh();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refresh, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idsuiviFichier: number) => {\n try {\n setRowLoading(idsuiviFichier);\n const file = await api.suiviApprenantDownloadSuiviApprenantFichier({\n id: idsuiviFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n return (\n \n );\n};\n","import { parseISO } from \"date-fns\";\nimport { showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation, useParams } from \"react-router-dom\";\n\nimport { SuiviApprenantForm } from \"..\";\nimport {\n DashboardAbsenceDtoFromJSON,\n DashboardApi,\n ETypeDernierAvertissement,\n SuiviApi,\n SuiviHopeEditDto\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useAuth, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTabMessage, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { exportFile } from \"../../../../../utils\";\nimport { Guid } from \"../../../../../utils/guid\";\n\nexport interface SuiviApprenantDetailPageProps {}\n\nexport const SuiviApprenantDetailPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(SuiviApi);\n const dashboardApi = useApiService(DashboardApi);\n const { user } = useAuth();\n const history = useHistory();\n const { id, state, suiviId } = useParams<{\n id: string;\n tab: string;\n state: string;\n suiviId: string;\n }>();\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n const { search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { messageValue, clearMessageValue } = useTabMessage(cfs);\n const [absencesRow, setAbsencesRow] = React.useState();\n React.useEffect(() => {\n if (!!messageValue) {\n setAbsencesRow(messageValue);\n clearMessageValue();\n }\n }, [clearMessageValue, messageValue]);\n\n const [, , , modes] = useReferential(a => a.referentialGetModes(), true, []);\n\n const identifier = React.useMemo(() => Guid.newGuid(), []);\n const { openTabThenSendMessage } = useTabMessage(identifier);\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors, refresh } = useCrudApi<\n SuiviHopeEditDto\n >(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n const suivi = await api.suiviGetSuiviHope({\n id: +suiviId,\n idapprenant: absencesRow?.idapprenant ?? +id,\n typeAvertissement: absencesRow?.typeAvertissement\n });\n if (+suiviId <= 0) {\n if (!!absencesRow) {\n suivi.dateSuivi = parseISO(absencesRow.dateSuivi);\n } else {\n suivi.idsuivi = +suiviId;\n suivi.iduserService = user.iduser;\n suivi.encodeur = user.nom + \" \" + user.prenom;\n suivi.dateSuivi = new Date();\n }\n }\n return suivi;\n },\n closeCfs: false,\n saveApiFn: d => api.suiviSaveSuiviHope({ SuiviHopeEditDto: d }),\n onSaved:\n !!absencesRow &&\n (async d => {\n const mode = modes.find(m => +m.idValue === d.idmode)?.keyValue;\n if (mode === \"MAIL\" && absencesRow.typeAvertissement === ETypeDernierAvertissement.Convocation)\n absencesRow.typeAvertissement = ETypeDernierAvertissement.Avertissement;\n\n if (mode === \"COURRIER\" && absencesRow.typeAvertissement === ETypeDernierAvertissement.Avertissement)\n absencesRow.typeAvertissement = ETypeDernierAvertissement.Convocation;\n\n var res = await dashboardApi.dashboardMarquerAbsenceVue({\n DashboardAbsenceDto: DashboardAbsenceDtoFromJSON(absencesRow)\n });\n if (absencesRow.typeAvertissement === ETypeDernierAvertissement.Avertissement) {\n const el = document.createElement(\"a\");\n el.setAttribute(\"href\", `mailto:${res.emailIfapme}?cc=${res.emailPerso}`);\n el.click();\n el.remove();\n } else {\n openTabThenSendMessage(`/#${ERoutes.SSRSReports}/${res.idrapportHope}`, [res.idapprenant]);\n }\n history.push(`${ERoutes.apprenant}/${id}/suiviApprenant/${d.idsuivi}/${state}/hope`);\n }),\n onSavedRoute:\n !absencesRow &&\n (d => {\n clearMessageValue();\n return `${ERoutes.apprenant}/${id}/suiviApprenant/${d.idsuivi}/${state}/hope`;\n }),\n getDeps: [suiviId, absencesRow],\n deleteApiFn: d => api.suiviDeleteSuiviHope({ id: d.idsuivi }),\n onDeletedRoute: () => `${ERoutes.apprenant}/${id}/suiviApprenant/${state}`\n }),\n [\n absencesRow,\n suiviId,\n api,\n id,\n user.iduser,\n user.nom,\n user.prenom,\n modes,\n dashboardApi,\n history,\n state,\n openTabThenSendMessage,\n clearMessageValue\n ]\n )\n );\n\n const onCancel = React.useCallback(() => history.push(`${ERoutes.apprenant}/${id}/suiviApprenant/${state}/hope`), [\n history,\n id,\n state\n ]);\n\n const [rowLoading, setRowLoading] = React.useState(null);\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idsuiviFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idsuiviFichier);\n await api.suiviDeleteSuiviFichier({\n id: idsuiviFichier\n });\n refresh();\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, refresh, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idsuiviFichier: number) => {\n try {\n setRowLoading(idsuiviFichier);\n const file = await api.suiviDownloadSuiviFichier({\n id: idsuiviFichier\n });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n return (\n \n );\n};\n","import { Icon, Intent, Tooltip } from \"@blueprintjs/core\";\nimport { format, isAfter, startOfDay } from \"date-fns\";\nimport { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { EOrigineSuivi, SuiviApi, SuiviGridDto, SuiviSearchDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, CustomBulletList, EditButton, LinkButton, ViewButton } from \"../../../../../components\";\nimport { useAuth } from \"../../../../../contexts\";\nimport { useApiService, useTheme, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport interface SuiviApprenantSearchPageProps {}\n\nexport const SuiviApprenantSearchPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { user } = useAuth();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const { theme, ifapmeSide } = useTheme();\n const apprenantId = React.useMemo(() => +id, [id]);\n const api = useApiService(SuiviApi);\n const path = React.useMemo(() => `${ERoutes.apprenant}/${apprenantId}/suiviApprenant`, [apprenantId]);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { dateSuivi: \"DESC\", encodeur: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunc = React.useCallback(\n (sObj?: SuiviSearchDto) => {\n sObj.idapprenant = apprenantId;\n return api.suiviSearchSuiviHopeByApprenant({ SuiviSearchDto: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const getActionValue = React.useCallback((row: SuiviGridDto) => {\n if (!row.actionDateRealisation && !row.actionDateEcheance) return null;\n return format(!!row.actionDateRealisation ? row.actionDateRealisation : row.actionDateEcheance, \"dd-MM-yyyy\");\n }, []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: SuiviGridDto) => (\n \n {row.idrealisateurSuivi === user.iduser && (\n \n history.push(\n `${path}/${row.idsuivi}/edit/${row.origineSuivi === EOrigineSuivi.Services ? \"hope\" : \"walter\"}`\n )\n }\n />\n )}\n \n history.push(\n `${path}/${row.idsuivi}/view/${row.origineSuivi === EOrigineSuivi.Services ? \"hope\" : \"walter\"}`\n )\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Source),\n fieldName: \"source\",\n render: (row: SuiviGridDto) => (row.origineSuivi === EOrigineSuivi.Services ? row.service : row.centre)\n },\n {\n header: () => t(ETLCodes.DateSuivi),\n fieldName: \"dateSuivi\"\n },\n {\n header: () => t(ETLCodes.RealisateurSuivi),\n fieldName: \"realisateurSuivi\",\n render: (row: SuiviGridDto) => (\n window.open(`#${ERoutes.users}/${row.idrealisateurSuivi}/detail/view`)}\n />\n )\n },\n {\n header: () => t(ETLCodes.Encodeur),\n fieldName: \"encodeur\",\n render: (row: SuiviGridDto) => (\n window.open(`#${ERoutes.users}/${row.idencodeur}/detail/view`)}\n />\n )\n },\n {\n header: () => t(ETLCodes.TypeSuivi),\n fieldName: \"typeSuivi\"\n },\n {\n header: () => t(ETLCodes.SousTypeSuivi),\n fieldName: \"sousTypeSuivi\"\n },\n {\n header: () => t(ETLCodes.ContenuCache),\n fieldName: \"hiddenContent\"\n },\n {\n header: () => (\n \n {t(ETLCodes.ActionARealiser)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"actionARealiser\",\n render: (row: SuiviGridDto) =>\n (!!row.actionDateRealisation || row.actionDateEcheance) && (\n \n \n {getActionValue(row)}\n \n )\n }\n ],\n [getActionValue, history, path, t, theme.dangerColor, theme.sucessColor, theme.warningColor, user.iduser]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${path}/0/edit/${ifapmeSide}`);\n }, [history, ifapmeSide, path]);\n\n return (\n <>\n {apprenantId > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router\";\n\nimport { ApprenantSuiviDetailPage } from \"./ApprenantSuiviDetailPage\";\nimport { SuiviApprenantDetailPage } from \"./SuiviApprenantDetailPage\";\nimport { SuiviApprenantSearchPage } from \"./SuiviApprenantSearchPage\";\n\nexport interface SuiviApprenantProps {\n apprenantId: number;\n}\n\nexport const SuiviApprenant: React.FunctionComponent = props => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n \n );\n};\n","import { ITabProps, Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation, useParams } from \"react-router-dom\";\n\nimport {\n ApprenantAbsence,\n ApprenantAzure,\n ApprenantContratList,\n ApprenantDocuments,\n ApprenantFinance,\n ApprenantHistory,\n ApprenantHoraire,\n ApprenantInscription,\n ApprenantJustificatifs,\n ApprenantLieuFormationList,\n ApprenantPassportDrive,\n ApprenantRepresentants,\n ApprenantSignaletiqueSwitch,\n ApprenantSMS,\n ApprenantValidationCE\n} from \".\";\nimport { ApprenantApi, BulletinApprenantRecaputilatifApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTheme, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { AcquisSwitch } from \"./acquis/AcquisSwitch\";\nimport { ParcoursFormation } from \"./parcoursFormation/ParcoursFormation\";\nimport { ApprenantResultatTypeSwitch } from \"./resultatType/ApprenantResultatTypeSwitch\";\nimport { ApprenantStatut } from \"./statut/ApprenantStatut\";\nimport { SuiviApprenant } from \"./suiviApprenant/SuiviApprenant\";\n\ninterface IApprenantItemPageProps {}\n\nexport const ApprenantItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const idApprenant = React.useMemo(() => +id, [id]);\n const history = useHistory();\n const { search } = useLocation();\n const { ifapmeSide } = useTheme();\n const isHope = React.useMemo(() => ifapmeSide === \"hope\", [ifapmeSide]);\n\n const iddemandeInscription = React.useMemo(() => +(new URLSearchParams(search).get(\"iddemandeInscription\") ?? 0), [\n search\n ]);\n\n const apprenantApi = useApiService(ApprenantApi);\n\n const fetchSocieteExterneUnauthorized = React.useCallback(async () => {\n return await apprenantApi.apprenantSocieteExterneUnauthorized({ idApprenant });\n }, [apprenantApi, idApprenant]);\n const { data: societeExterneUnauthorized } = useQuery(\n [\"societe-externe-unauthorize-apprenant\", idApprenant],\n fetchSocieteExterneUnauthorized,\n { cacheTime: 0 }\n );\n React.useEffect(() => {\n if (societeExterneUnauthorized?.value) {\n history.push(ERoutes.unauthorized);\n }\n }, [history, societeExterneUnauthorized]);\n\n const bulletinApi = useApiService(BulletinApprenantRecaputilatifApi);\n const fetchIdPersonne = React.useCallback(() => {\n return apprenantApi.apprenantGetIdPersonne({ id: +id });\n }, [apprenantApi, id]);\n const { data: idpersonne } = useQuery([\"idpersonne-apprenant\", id], fetchIdPersonne);\n\n const [displayName] = useApiEffect(() => apprenantApi.apprenantGetDisplayName({ id: +id }), [id]);\n const [anneeTab] = useApiEffect(async () => await apprenantApi.apprenantGetDerniereAnnee({ IdApprenant: +id }));\n const [typeCours] = useApiEffect(async () => {\n if (anneeTab != null) {\n return await bulletinApi.bulletinApprenantRecaputilatifGetFirstTypeCoursInscription({\n id: +id,\n anneeScolaire: anneeTab\n });\n }\n }, [anneeTab]);\n const onTabChange = React.useCallback(\n newTabId => {\n if (newTabId === \"resultats\") {\n history.push(`${ERoutes.apprenant}/${id}/${newTabId}/${anneeTab}/${typeCours}`);\n } else {\n history.push(\n `${ERoutes.apprenant}/${id}/${newTabId}/${state !== \"edit\" && state !== \"view\" ? \"view\" : state}${search}`\n );\n }\n },\n [anneeTab, history, id, search, state, typeCours]\n );\n\n const hopeTabs = React.useMemo(\n () => [\n { id: \"signaletique\", title: t(ETLCodes.Signaletique), panel: },\n {\n id: \"representants\",\n title: t(ETLCodes.Representants),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"acquis\",\n title: t(ETLCodes.Acquis),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"parcoursFormation\",\n title: t(ETLCodes.ParcoursFormation),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"inscription\",\n title: t(ETLCodes.Inscriptions),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"contrats\",\n title: t(ETLCodes.Contrats),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"lieuFormation\",\n title: t(ETLCodes.LieuFormation),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"suiviApprenant\",\n title: t(ETLCodes.Suivi),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"Horaire\",\n title: t(ETLCodes.Horaires),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"Absence\",\n title: t(ETLCodes.Absences),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"justificatifs\",\n title: t(ETLCodes.Justificatifs),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"resultats\",\n title: t(ETLCodes.Resultats),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"passportDrive\",\n title: t(ETLCodes.PassportDrive),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"documents\",\n title: t(ETLCodes.Documents),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"statutMotifs\",\n title: t(ETLCodes.StatutsMotifs),\n panel: ,\n disabled: idApprenant <= 0\n },\n { id: \"history\", title: t(ETLCodes.History), panel: , disabled: idApprenant <= 0 },\n { id: \"Azure\", title: t(ETLCodes.Azure), panel: , disabled: idApprenant <= 0 }\n ],\n [idApprenant, idpersonne, t]\n );\n\n const walterTabs = React.useMemo(\n () => [\n {\n id: \"signaletique\",\n title: t(ETLCodes.Signaletique),\n panel: ,\n disabled: iddemandeInscription > 0\n },\n {\n id: \"representants\",\n title: t(ETLCodes.Representants),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"acquis\",\n title: t(ETLCodes.Acquis),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"inscription\",\n title: t(ETLCodes.Inscriptions),\n panel: ,\n disabled: idApprenant <= 0\n },\n {\n id: \"finance\",\n title: t(ETLCodes.Finance),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"contrats\",\n title: t(ETLCodes.Contrats),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"lieuFormation\",\n title: t(ETLCodes.LieuFormation),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"suiviApprenant\",\n title: t(ETLCodes.Suivi),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"Horaire\",\n title: t(ETLCodes.Horaires),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"resultats\",\n title: t(ETLCodes.Resultats),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"documents\",\n title: t(ETLCodes.Documents),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"statutMotifs\",\n title: t(ETLCodes.StatutsMotifs),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"history\",\n title: t(ETLCodes.History),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"validationce\",\n title: t(ETLCodes.ValidationCE),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"justificatifs\",\n title: t(ETLCodes.Justificatifs),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"Absence\",\n title: t(ETLCodes.Absences),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"SMS\",\n title: t(ETLCodes.SMS),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n },\n {\n id: \"Azure\",\n title: t(ETLCodes.Azure),\n panel: ,\n disabled: idApprenant <= 0 || iddemandeInscription > 0\n }\n ],\n [idApprenant, iddemandeInscription, idpersonne, t]\n );\n\n return (\n 0 ? displayName : t(ETLCodes.New) }\n ]}\n >\n \n \n {(isHope ? hopeTabs : walterTabs).map(t => (\n \n ))}\n \n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router\";\n\nimport { SuiviApprenantDetailPage } from \"./SuiviApprenantDetailPage\";\nimport { SuiviApprenantSearchPage } from \"./SuiviApprenantSearchPage\";\n\ninterface IApprenantSuiviProps {}\n\nexport const ApprenantSuivi: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n );\n};\n","import { Intent, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport { add, addMinutes, endOfDay, format, isAfter, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGCustomInput,\n FGCustomPanel,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n useFGFormik,\n useGridState,\n ValidationErrorsType\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { SuiviApprenantActionDialog, SuiviWalterDocumentEditDialog, SuiviWalterDocumentUploadDialog } from \"..\";\nimport {\n ClasseApi,\n EContentHidingMode,\n EIfapmeSide,\n FcbSuiviApprenantDetailsDto,\n MetierApi,\n SuiviApprenantFichierGridDto\n} from \"../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n LinkButton,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useAuth } from \"../../../../../contexts\";\nimport { useApiService, useTheme, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StatutContainer = styled.div<{ color: string }>`\n display: flex;\n justify-content: center;\n > span {\n font-weight: bold;\n color: ${props => props.color};\n font-size: 14pt;\n }\n`;\n\nconst RadioReadonlyContainer = styled.div`\n height: 30px;\n display: flex;\n align-items: center;\n`;\n\nexport interface IApprenantSuiviFormProps {\n data: FcbSuiviApprenantDetailsDto;\n suiviId: number;\n idApprenant: number;\n saveItem: (values: FcbSuiviApprenantDetailsDto) => void | Promise;\n loading: boolean;\n saving: boolean;\n deleteItem?: () => void | Promise;\n deleting?: boolean;\n editMode: boolean;\n onCancel?: () => void;\n validationErrors?: ValidationErrorsType;\n fieldsetTitle: string;\n deleteFichier: (idsuiviFichier) => void;\n downloadFichier: (idsuiviFichier) => void;\n rowLoading: number;\n refreshData: () => void;\n}\n\nexport const ApprenantSuiviForm: React.FunctionComponent = ({\n data,\n suiviId,\n idApprenant,\n deleteItem,\n editMode,\n loading,\n saveItem,\n saving,\n onCancel,\n deleting,\n validationErrors,\n fieldsetTitle,\n deleteFichier,\n downloadFichier,\n rowLoading,\n refreshData\n}) => {\n const { t } = useTl();\n const { user } = useAuth();\n const { theme, isHope } = useTheme();\n const metierApi = useApiService(MetierApi);\n const classeApi = useApiService(ClasseApi);\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n dateSuivi: Yup.date()\n .typeError(t(ETLCodes.DateInvalide))\n .required(t(ETLCodes.Required))\n .max(endOfDay(add(new Date(), { years: 1 })), t(ETLCodes.DateCannotBeGreaterThan1YearInFurture)),\n idcentre: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idrealisateurSuivi: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idapprenant: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idtypeSuivi: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idsousTypeSuivi: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const formik = useFGFormik({\n initialValues: data,\n onSubmit: saveItem,\n validationSchema: FormSchema\n });\n\n const [lieuSuivi, lieuLoading] = useReferential(a => a.referentialGetLieuSuivi(), true, []);\n\n const [sousTypeSuivis, stsLoading] = useReferential(\n a =>\n a.referentialGetSousTypeSuivis({\n idtypeSuivi: formik?.values?.idtypeSuivi,\n idsousTypeSuivi: data?.idsousTypeSuivi\n }),\n true,\n [formik?.values?.idtypeSuivi, data?.idsousTypeSuivi]\n );\n\n const [typeSuivis, tsLoading] = useReferential(\n a => a.referentialGetTypeSuivis({ side: EIfapmeSide.Walter, idtypeSuivi: data?.idtypeSuivi }),\n true,\n [data?.idtypeSuivi]\n );\n const [classes, classesLoading] = useReferential(\n a =>\n a.referentialGetClasseApprenantCurrentYear({\n idApprenant: idApprenant,\n idCentre: formik?.values?.idcentre ?? 0\n }),\n true,\n [idApprenant, formik?.values?.idcentre]\n );\n const [modes, mLoading] = useReferential(a => a.referentialGetModes(), true, []);\n const [formateurs, fLoading] = useReferential(\n a =>\n a.referentialGetFormateurByIdClasseOrIdCentre({\n idClasse: formik?.values?.idclasse ?? 0,\n idCentre: formik?.values?.idcentre ?? 0\n }),\n true,\n [formik?.values?.idclasse, formik?.values?.idcentre]\n );\n\n const fetchClasseInfos = React.useCallback(async () => {\n if (!formik?.values?.idclasse) return null;\n return await classeApi.classeGetClasseInfosForSuivi({ idclasse: formik?.values?.idclasse });\n }, [classeApi, formik?.values?.idclasse]);\n const { data: classeInfos } = useQuery([\"suivi-classe-info\", formik?.values?.idclasse], fetchClasseInfos);\n\n const fetchMetierDisplayName = React.useCallback(async () => {\n if (!classeInfos?.idmetier) return \"\";\n return await metierApi.metierGetDisplayName({ id: classeInfos?.idmetier });\n }, [classeInfos?.idmetier, metierApi]);\n const { data: metierName, isFetching: mnLoading } = useQuery(\n [\"metier-display-name\", classeInfos?.idmetier],\n fetchMetierDisplayName\n );\n\n const [centres, cLoading] = useReferential(\n a => a.referentialGetCentreByApprenant({ idApprenant: idApprenant }),\n true,\n []\n );\n const [centreUsers, cuLoading] = useReferential(\n a => a.referentialGetCentreUsers({ request_body: !!formik?.values?.idcentre ? [formik?.values?.idcentre] : [] }),\n true,\n [formik?.values?.idcentre]\n );\n const [dialogOpen, setDialogOpen] = React.useState(false);\n\n React.useEffect(() => {\n if (formik?.values?.action && !formik?.initialValues?.action) {\n setDialogOpen(true);\n }\n }, [formik?.initialValues?.action, formik?.values?.action]);\n\n React.useEffect(() => {\n if (!formik?.values?.action && !!formik?.values?.suiviAction) {\n formik.setFieldValue(\"suiviAction\", null);\n }\n }, [formik]);\n\n const statutColor = React.useMemo(\n () =>\n !!formik?.values?.suiviAction?.dateRealisation\n ? theme.sucessColor\n : isAfter(formik?.values?.suiviAction?.dateEcheance, new Date())\n ? theme.warningColor\n : theme.dangerColor,\n [\n formik?.values?.suiviAction?.dateEcheance,\n formik?.values?.suiviAction?.dateRealisation,\n theme.dangerColor,\n theme.sucessColor,\n theme.warningColor\n ]\n );\n\n const statutText = React.useMemo(\n () =>\n t(\n !!formik?.values?.suiviAction?.dateRealisation\n ? ETLCodes.ActionRealisee\n : isAfter(formik?.values?.suiviAction?.dateEcheance, new Date())\n ? ETLCodes.ActionNonRealisee\n : ETLCodes.DateEcheanceDepassee\n ),\n [formik?.values?.suiviAction?.dateEcheance, formik?.values?.suiviAction?.dateRealisation, t]\n );\n\n const actionIsRealisee = React.useMemo(() => !!formik?.values?.suiviAction?.dateRealisation, [\n formik?.values?.suiviAction?.dateRealisation\n ]);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentSuiviApprenantFichierId, setCurrentSuiviApprenantFichierId] = React.useState(null);\n const [uploadDialogOpen, setUploadDialogOpen] = React.useState(false);\n\n const isCreationUser = React.useMemo(\n () => data?.creationUser === user.iduser || data?.idrealisateurSuivi === user.iduser,\n [data?.creationUser, data?.idrealisateurSuivi, user.iduser]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: SuiviApprenantFichierGridDto) => (\n \n setCurrentSuiviApprenantFichierId(row.idsuiviApprenantFichier)}\n loading={rowLoading === row.idsuiviApprenantFichier}\n disabled={(!!rowLoading && rowLoading !== row.idsuiviApprenantFichier) || !(isCreationUser && !isHope)}\n />\n downloadFichier(row.idsuiviApprenantFichier)}\n loading={rowLoading === row.idsuiviApprenantFichier}\n disabled={(!!rowLoading && rowLoading !== row.idsuiviApprenantFichier) || isHope}\n />\n deleteFichier(row.idsuiviApprenantFichier)}\n loading={rowLoading === row.idsuiviApprenantFichier}\n disabled={(!!rowLoading && rowLoading !== row.idsuiviApprenantFichier) || !(isCreationUser && !isHope)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeSuiviFichier\"\n }\n ],\n [deleteFichier, downloadFichier, isCreationUser, isHope, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentSuiviApprenantFichierId(null);\n setUploadDialogOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialogOpen(true);\n }, []);\n\n const getROHidingMode = React.useCallback(\n (contentHidingMode: EContentHidingMode) => {\n switch (contentHidingMode) {\n case EContentHidingMode.NONE:\n return t(ETLCodes.Personne);\n case EContentHidingMode.SERVICES:\n return t(ETLCodes.Services);\n case EContentHidingMode.ALL:\n return t(ETLCodes.Tous);\n }\n },\n [t]\n );\n\n const contenuVisible = React.useCallback(\n ctx =>\n ctx?.formik?.values?.contentHidingMode === EContentHidingMode.NONE ||\n ctx?.formik?.values?.creationUser === user.iduser ||\n (user.ifapmeSide.includes(\"Walter\") && ctx?.formik?.values?.contentHidingMode === EContentHidingMode.SERVICES),\n [user.iduser, user.ifapmeSide]\n );\n\n return (\n 0 && !actionIsRealisee}\n onDelete={deleteItem}\n deleting={deleting}\n editable={data?.creationUser === user.iduser || data?.idrealisateurSuivi === user.iduser}\n validationErrors={validationErrors}\n >\n {!!formik?.values?.suiviAction && (\n \n {statutText}\n \n )}\n \n \n \n \n \n \n {!!formik?.values?.idapprenant && (\n <>\n \n metierName}\n loading={mnLoading}\n />\n \n \n )}\n \n \n {ctx => (\n \n )}\n \n \n \n\n \n {ctx => (\n <>\n \n {ctx =>\n ctx?.editMode ? (\n ctx.formik.setFieldValue(\"contentHidingMode\", e.currentTarget.value)}\n >\n \n \n \n \n ) : (\n \n {getROHidingMode(ctx?.formik?.values?.contentHidingMode)}\n \n )\n }\n \n {\n setDialogOpen(true);\n }}\n />\n )\n }\n />\n\n {\n setDialogOpen(false);\n if (toSave) {\n ctx?.formik.setFieldValue(\"suiviAction\", toSave);\n } else if (!ctx?.formik?.values?.suiviAction) {\n ctx.formik.setFieldValue(\"action\", false);\n }\n }}\n enveloppeId={0}\n editMode={ctx?.editMode && !actionIsRealisee}\n editable={!actionIsRealisee}\n />\n \n )}\n \n \n \n {ctx => (\n \n )}\n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n \n {uploadDialogOpen && (\n \n )}\n {!!currentSuiviApprenantFichierId && (\n \n )}\n \n \n );\n};\n","import { Classes, Colors, Dialog } from \"@blueprintjs/core\";\nimport { startOfToday } from \"date-fns\";\nimport { FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport * as Yup from \"yup\";\n\nimport { FichierApi, SuiviApprenantActionEditDto, SuiviApprenantActionEditDtoFromJSON } from \"../../../../../../api\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface SuiviApprenantActionDialogProps {\n dto: SuiviApprenantActionEditDto;\n isOpen: boolean;\n onClose: (toSave?: SuiviApprenantActionEditDto) => void;\n enveloppeId: number;\n editMode: boolean;\n editable: boolean;\n}\n\nexport const SuiviApprenantActionDialog: React.FunctionComponent = ({\n isOpen,\n onClose,\n editMode,\n editable,\n dto\n}) => {\n const { t } = useTl();\n const [typeAction, taLoading] = useReferential(a => a.referentialGetTypeSuiviActions(), true, []);\n const [collaborateurCentres, ccLoading] = useReferential(a => a.referentialGetSameCentreUsers());\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n dateEcheance: Yup.date()\n .nullable()\n .min(startOfToday(), t(ETLCodes.DateCannotBeInPast))\n .required(t(ETLCodes.Required)),\n idtypeSuiviAction: Yup.number().required(t(ETLCodes.Required)),\n idcollaborateurCentre: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const api = useApiService(FichierApi);\n const downloadFn = React.useCallback(async () => await api.fichierDownload({ id: dto?.idfichier }), [\n api,\n dto?.idfichier\n ]);\n\n return (\n onClose()}\n style={{ padding: \"0.5rem\", width: 800, backgroundColor: Colors.WHITE }}\n enforceFocus={false}\n >\n
\n \n \n \n \n \n \n \n \n \n
\n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n ButtonContainer,\n ButtonsBloc,\n DataTable,\n FGCustomPanel,\n FGMaskInput,\n FGTextInput,\n FieldGroup,\n FieldSet,\n InlineButtonContainer,\n showError,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n ApprenantDoublonApi,\n ApprenantDoublonSearch,\n ApprenantDoublonSearchFromJSON,\n FcbApprenantDoublonGridDto\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n CancelButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator,\n UnordoredListColumn,\n ViewButton\n} from \"../../../../../components\";\nimport { useBeIdCardContext, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantSignaletiqueDoublonsProps {\n setBaseData: React.Dispatch>;\n}\n\nexport const ApprenantSignaletiqueDoublons: React.FunctionComponent = ({\n setBaseData\n}) => {\n const { t } = useTl();\n const dialogContext = useDialog();\n const history = useHistory();\n const [nationalites, nLoading] = useReferential(a => a.referentialGetAllNationalite(), false, []);\n const api = useApiService(ApprenantDoublonApi);\n const { foundRowsData } = useBeIdCardContext();\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [10],\n pageSize: 10,\n sortKeys: { nom: \"ASC\" }\n });\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ApprenantDoublonSearch) => {\n return api.apprenantDoublonBaseSearch({ ApprenantDoublonSearch: sObj });\n },\n [api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n const add = React.useCallback(\n (fromPersonne: boolean) => {\n if (totalCount && totalCount > 0) {\n dialogContext.showDialog({\n message: t(fromPersonne ? ETLCodes.AddFormeConfirmMessage : ETLCodes.AddConfirmMessage, {\n forme: t(ETLCodes.Apprenant)\n }),\n onConfirmed: async () => {\n history.push(`${ERoutes.apprenant}/0/signaletique/edit`);\n }\n });\n } else {\n history.push(`${ERoutes.apprenant}/0/signaletique/edit`);\n }\n },\n [dialogContext, history, t, totalCount]\n );\n\n const initialData = React.useMemo(() => {\n const onlyRegNatNb =\n !foundRowsData ||\n (!foundRowsData.nom && !foundRowsData.prenom && !foundRowsData.dateNaissance && foundRowsData.nationalNb);\n return ApprenantDoublonSearchFromJSON({\n nom: foundRowsData?.nom,\n prenom: foundRowsData?.prenom,\n registreNational: onlyRegNatNb ? foundRowsData?.nationalNb : undefined,\n dateNaissance: foundRowsData?.dateNaissance\n });\n }, [foundRowsData]);\n\n React.useEffect(() => {\n if (foundRowsData) {\n search(initialData);\n }\n }, [foundRowsData, initialData, search]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbApprenantDoublonGridDto) => (\n \n {row.isApprenant ? (\n <>\n history.push(`${ERoutes.apprenant}/${row.idapprenant}/signaletique/view`)}\n />\n history.push(`${ERoutes.apprenant}/${row.idapprenant}/signaletique/edit`)}\n />\n \n ) : (\n {\n setBaseData({ ...row });\n add(!row.isApprenant);\n }}\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.NumeroNational),\n fieldName: \"registreNational\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\"\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Nationalite),\n fieldName: \"nationalite\"\n }\n // {\n // header: () => t(ETLCodes.Forme),\n // fieldName: \"forme\",\n // render: (row: FcbApprenantDoublonGridDto) => (\n // \n // )\n // }\n ],\n [add, history, setBaseData, t]\n );\n\n const [firstSearch, setFirstSearch] = React.useState(false);\n\n return (\n
\n {\n if ((c.nom && c.prenom) || c.registreNational) {\n search(c);\n setFirstSearch(true);\n } else {\n showError(t(ETLCodes.NoCriteriaFilled));\n }\n }}\n editMode\n hideButtons={true}\n onCancel={() => history.push(`${ERoutes.apprenant}`)}\n >\n \n \n \n \n \n \n \n \n \n {ctx => (\n \n \n \n history.push(`${ERoutes.apprenant}`)} />\n
\n );\n};\n","import * as React from \"react\";\nimport { matchPath, useHistory, useLocation } from \"react-router\";\n\nimport { ApprenantSearchSocieteExterne, ApprenantSignaletique } from \"..\";\nimport { ApprenantDoublonSearchFromJSON } from \"../../../../../api/models/ApprenantDoublonSearch\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useAuth } from \"../../../../../contexts\";\nimport { useTabMessage } from \"../../../../../hooks\";\nimport { ApprenantSignaletiqueDoublons } from \"./ApprenantSignaletiqueDoublons\";\n\nexport interface IApprenantSignaletiqueSwitchProps {}\n\nexport const ApprenantSignaletiqueSwitch: React.FunctionComponent = () => {\n const [sObj, setSObj] = React.useState(ApprenantDoublonSearchFromJSON({}));\n const { pathname, search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { messageValue, clearMessageValue } = useTabMessage(cfs);\n\n React.useEffect(() => {\n if (!!messageValue) {\n setSObj(messageValue);\n clearMessageValue();\n }\n }, [clearMessageValue, messageValue]);\n const history = useHistory();\n\n const { user } = useAuth();\n const isSocieteExterne = React.useMemo(() => user?.idsSocieteExterne?.length > 0, [user?.idsSocieteExterne?.length]);\n React.useEffect(() => {\n if (\n (isSocieteExterne && matchPath(pathname, { path: `${ERoutes.apprenant}/0/:tab/checkDoublons` })) ||\n (!isSocieteExterne && matchPath(pathname, { path: `${ERoutes.apprenant}/0/:tab/societeExterne` }))\n ) {\n history.push(ERoutes.unauthorized);\n }\n }, [history, isSocieteExterne, pathname]);\n\n if (\n matchPath(pathname, {\n path: `${ERoutes.apprenant}/0/:tab/checkDoublons`\n })\n ) {\n return ;\n } else if (\n matchPath(pathname, {\n path: `${ERoutes.apprenant}/0/:tab/societeExterne`\n })\n ) {\n return ;\n } else {\n return ;\n }\n};\n","import { Classes, Colors, InputGroup } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { FcbApprenantAzureGridDto, ApprenantAzureApi, ApprenantAzureSearch } from \"../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantActifCentreTableProps {\n codeCentres?: string;\n}\n\nconst ViewInput = styled(InputGroup)<{ colorcheck: string }>`\n & .${Classes.ICON} {\n color: ${p => p.colorcheck};\n margin-left: 0;\n }\n`;\n\nexport const ApprenantActifCentreTable: React.FunctionComponent = ({\n codeCentres\n}) => {\n const { t } = useTl();\n const api = useApiService(ApprenantAzureApi);\n const { id } = useParams<{ id: string }>();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { centre: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.Actif),\n fieldName: \"actif\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbApprenantAzureGridDto) => (\n \n )\n }\n ],\n [t]\n );\n\n const search = React.useCallback(\n (nextSearch?: ApprenantAzureSearch) => {\n nextSearch.idApprenant = +id;\n nextSearch.codeCentres = codeCentres;\n return api.apprenantAzureBaseSearch({ ApprenantAzureSearch: nextSearch });\n },\n [api, codeCentres, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction: search,\n tableState,\n initialSearch: true\n });\n\n return (\n <>\n
\n \n
\n \n );\n};\n","import { Card, Classes, FormGroup, InputGroup, Switch } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup, FieldSet, Loading, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { Col, Grid, Row } from \"react-flexbox-grid\";\nimport { useParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport { ApprenantActifCentreTable } from \"./ApprenantActifCentreTable\";\nimport { ApprenantApi, AzureApi, AzureUserDtoFromJSON, FcbApprenantDtoFromJSON } from \"../../../../../api\";\nimport { CreateAzureButton, FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useAuth, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantAzureProps {}\n\nconst StyledForm = styled.form`\n & .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n\n & .${Classes.FORM_CONTENT} {\n flex: ${1};\n }\n\n & .${Classes.LABEL} {\n min-width: ${\"180px\"};\n text-align: ${\"right\"};\n font-weight: ${\"600\"};\n }\n\n & .inlineField .${Classes.LABEL} {\n min-width: 0px;\n }\n`;\n\nexport const ApprenantAzure: React.FunctionComponent = () => {\n const { id: idApprenant } = useParams<{ id: string; state: string }>();\n const api = useApiService(ApprenantApi);\n const azureApi = useApiService(AzureApi);\n const { t } = useTl();\n const { showDialog } = useDialog();\n const { getCurrentPermission } = useAuth();\n\n const [aLoading, setALoading] = React.useState(false);\n const [cLoading, setCLoading] = React.useState(false);\n\n const getData = React.useCallback(() => {\n return +idApprenant <= 0\n ? FcbApprenantDtoFromJSON({\n idApprenant: 0\n })\n : api.apprenantGet({ id: +idApprenant, picture: false });\n }, [api, idApprenant]);\n const [data, loading, , refresh] = useApiEffect(getData, [getData, idApprenant]);\n\n const getAzureData = React.useCallback(() => {\n if (data?.azureUserId === null || data?.azureUserId === undefined) {\n return AzureUserDtoFromJSON({});\n } else {\n return azureApi.azureGetAsync({ o365UserId: data?.azureUserId });\n }\n }, [azureApi, data?.azureUserId]);\n const [azureData, azureLoading, , refreshAzure] = useApiEffect(getAzureData, [getAzureData, data?.azureUserId]);\n\n const onActiveChanged = React.useCallback(\n async value => {\n if (!value) {\n showDialog({\n message: value ? t(ETLCodes.ConfirmAzureActivate) : t(ETLCodes.ConfirmAzureDeactivate),\n title: t(ETLCodes.RouteConfirmDialogTitle),\n onDialogClosed: async res => {\n if (res === \"yes\" || res === \"ok\") {\n setALoading(true);\n await azureApi.azureEnableApprenant({\n id: +idApprenant,\n o365UserId: data?.azureUserId,\n accountEnabled: value\n });\n }\n setALoading(false);\n refresh();\n refreshAzure();\n }\n });\n } else {\n setALoading(true);\n await azureApi.azureEnableApprenant({\n id: +idApprenant,\n o365UserId: data?.azureUserId,\n accountEnabled: value\n });\n setALoading(false);\n refresh();\n refreshAzure();\n }\n },\n [azureApi, data?.azureUserId, idApprenant, refresh, refreshAzure, showDialog, t]\n );\n\n const onCreateApprenant = React.useCallback(async () => {\n setCLoading(true);\n var res = await azureApi.azureCreateApprenant({ FcbApprenantDto: data });\n setCLoading(false);\n refresh();\n refreshAzure();\n return res;\n }, [azureApi, data, refresh, refreshAzure]);\n\n const canActivate = React.useMemo(() => getCurrentPermission()?.permission === \"RWD\", [getCurrentPermission]);\n const isActivable = React.useMemo(() => azureData?.o365UserId !== null && azureData?.o365UserId !== undefined, [\n azureData?.o365UserId\n ]);\n\n const ActiveSwitch = React.useCallback(() => {\n return (\n \n \n {t(ETLCodes.AzureActive)}\n  :\n \n }\n inline\n >\n onActiveChanged(e.currentTarget.checked)}\n >\n \n \n );\n }, [aLoading, canActivate, data?.azureActive, isActivable, onActiveChanged, t]);\n\n const CentresActifs = React.useCallback(() => , [\n azureData?.department\n ]);\n\n return (\n <>\n \n \n \n \n \n \n {t(ETLCodes.EmailIfapme)}\n  :\n \n }\n inline\n >\n \n \n \n \n \n {t(ETLCodes.TemporaryPassword)}\n  :\n \n }\n inline\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n : null\n }\n >\n {}}\n editable={false}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { addMinutes, format, parseJSON } from \"date-fns\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport { ApprenantHistoryApi, ApprenantHistorySearch, FcbApprenantHistoryGridDto } from \"../../../../../api\";\nimport { ERoutes } from '../../../../../AppRouter';\nimport { LinkButton } from '../../../../../components';\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantHistoryProps { }\nexport const ApprenantHistory: React.FunctionComponent = () => {\n const { t, tUnsafe } = useTl();\n const { id } = useParams<{ id: string }>();\n const apprenantId = React.useMemo(() => +id, [id]);\n const api = useApiService(ApprenantHistoryApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { actionDate: \"DESC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ApprenantHistorySearch) => {\n sObj.idapprenant = apprenantId;\n return api.apprenantHistoryBaseSearch({ ApprenantHistorySearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Utilisateur),\n fieldName: \"userName\",\n render: (row: FcbApprenantHistoryGridDto) => window.open(`#${ERoutes.personne}/${row.idpersonne}/signaletique/view`, '_blank')} />\n },\n {\n header: () => t(ETLCodes.Action),\n fieldName: \"action\",\n render: (row: FcbApprenantHistoryGridDto) => tUnsafe(`Apprenant_${row.actionType}_${row.action}`)\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"actionDate\"\n },\n {\n header: () => t(ETLCodes.UserType),\n fieldName: \"ifapmeSide\",\n render: (row: FcbApprenantHistoryGridDto) =>\n `${row.ifapmeSide.includes(\"Walter\") ? tUnsafe(\"UserType_Centre\") : \"\"}${row.ifapmeSide.length === 2 ? \" / \" : \"\"\n }${row.ifapmeSide.includes(\"Hope\") ? tUnsafe(\"UserType_Service\") : \"\"}`\n }\n ],\n [t, tUnsafe]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n return (\n <>\n
\n \n
\n \n );\n};\n","import { Button, Colors, Icon, Intent, Menu, MenuItem, Popover, Tooltip } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { ContratRuptureDialog, ContratSuspensionDetailDialog } from \"../../..\";\nimport {\n ContratApi,\n ContratGridDto,\n ContratSearchDto,\n ContratSuspensionDto,\n ContratSuspensionDtoFromJSON,\n EStatutContrat,\n ETypeContrat,\n RapportHopeApi\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, CircleColumn, CustomBulletList, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTabMessage, useTheme, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { computeContratStatutColor } from \"../../../../../utils/contratStatutColor\";\nimport { Guid } from \"../../../../../utils/guid\";\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nexport interface IApprenantContratListProps {}\n\nexport const ApprenantContratList: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { theme, ifapmeSide } = useTheme();\n const isHope = React.useMemo(() => ifapmeSide === \"hope\", [ifapmeSide]);\n const { push } = useHistory();\n const { id } = useParams<{ id: string }>();\n const idapprenant = React.useMemo(() => +id, [id]);\n const [currentSuspension, setCurrentSuspension] = React.useState(null);\n const [currentContratId, setCurrentContratId] = React.useState(0);\n const api = useApiService(ContratApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ContratSearchDto) => {\n sObj.idapprenant = idapprenant;\n return api.contratBaseSearch({ ContratSearchDto: sObj });\n },\n [api, idapprenant]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onAddSuspensionClick = React.useCallback(idcontrat => {\n setCurrentSuspension(ContratSuspensionDtoFromJSON({ idcontrat, idcontratSuspension: 0 }));\n }, []);\n\n const onRuptureClick = React.useCallback(idcontrat => {\n setCurrentContratId(idcontrat);\n }, []);\n\n const identifier = React.useMemo(() => Guid.newGuid(), []);\n const { openTabThenSendMessage } = useTabMessage(identifier);\n\n const rapportApi = useApiService(RapportHopeApi);\n const fetchIdsrapportContrat = React.useCallback(() => {\n return rapportApi.rapportHopeGetIdsrapportContrat();\n }, [rapportApi]);\n const { data: idsrapportContrat } = useQuery(\"idsrapportContrat\", fetchIdsrapportContrat);\n const printContrat = React.useCallback(\n (idcontrat: number, typeContrat: ETypeContrat) => {\n const idrapportContrat = idsrapportContrat?.[typeContrat];\n openTabThenSendMessage(`/#${ERoutes.SSRSReports}/${idrapportContrat}`, [idcontrat]);\n },\n [idsrapportContrat, openTabThenSendMessage]\n );\n\n const buttons = React.useMemo(\n () => (\n \n {isHope ? (\n \n push(`${ERoutes.contrat}/-1/detail/CC/edit?idapprenant=${idapprenant}`)}\n />\n push(`${ERoutes.contrat}/-1/detail/CS/edit?idapprenant=${idapprenant}`)}\n />\n push(`${ERoutes.contrat}/-1/detail/PP/edit?idapprenant=${idapprenant}`)}\n />\n push(`${ERoutes.contrat}/-1/detail/CF/edit?idapprenant=${idapprenant}`)}\n />\n push(`${ERoutes.contrat}/-1/detail/DM/edit?idapprenant=${idapprenant}`)}\n />\n \n ) : (\n \n push(`${ERoutes.contrat}/-1/detail/SO/edit?idapprenant=${idapprenant}`)}\n />\n push(`${ERoutes.contrat}/-1/detail/CCE/edit?idapprenant=${idapprenant}`)}\n />\n push(`${ERoutes.contrat}/-1/detail/CSE/edit?idapprenant=${idapprenant}`)}\n />\n \n )}\n \n }\n >\n \n \n ),\n [idapprenant, isHope, push, t]\n );\n\n const onEditSuspension = React.useCallback(\n async (row: ContratGridDto) => {\n const suspension = await api.contratGetSuspension({\n idcontratSuspension: row.idEditableCurrentSuspension\n });\n setCurrentSuspension(suspension);\n },\n [api]\n );\n\n const hopeContratTypes = React.useMemo(\n () => [\n ETypeContrat.CC,\n ETypeContrat.CA,\n ETypeContrat.CS,\n ETypeContrat.CF,\n ETypeContrat.DM,\n ETypeContrat.JI,\n ETypeContrat.PP\n ],\n []\n );\n\n const walterContratTypes = React.useMemo(() => [ETypeContrat.SO, ETypeContrat.CCE, ETypeContrat.CSE], []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ContratGridDto) => (\n \n window.open(`#${ERoutes.contrat}/${row.idcontrat}/detail/${row.type}/view`)}\n />\n {(isHope && hopeContratTypes.includes(row.type)) || (!isHope && walterContratTypes.includes(row.type)) ? (\n <>\n window.open(`#${ERoutes.contrat}/${row.idcontrat}/detail/${row.type}/edit`)}\n />\n \n ) : null}\n {isHope && (\n \n \n {isHope && hopeContratTypes.includes(row.type) && (\n onRuptureClick(row.idcontrat)}\n disabled={[EStatutContrat.Rompu, EStatutContrat.SansSuite].includes(row.statut)}\n />\n )}\n {((isHope && hopeContratTypes.includes(row.type)) ||\n (!isHope && [ETypeContrat.SO].includes(row.type))) && (\n \n row.idEditableCurrentSuspension\n ? onEditSuspension(row)\n : onAddSuspensionClick(row.idcontrat)\n }\n disabled={[EStatutContrat.Rompu, EStatutContrat.SansSuite].includes(row.statut)}\n />\n )}\n {isHope && hopeContratTypes.includes(row.type) && (\n {}}\n disabled\n />\n )}\n {!!idsrapportContrat?.[row.type] && (\n printContrat(row.idcontrat, row.type)}\n />\n )}\n \n \n }\n >\n \n \n )}\n \n )\n },\n {\n header: () => t(ETLCodes.NomMetier),\n fieldName: \"nomMetier\"\n },\n {\n computed: true,\n alignment: \"center\",\n autoFitContent: true,\n header: () => (\n \n {t(ETLCodes.Statut)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"statut\",\n render: (row: ContratGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n },\n {\n header: () => t(ETLCodes.DateRupture),\n fieldName: \"rompuLe\"\n },\n {\n header: () => t(ETLCodes.LieuFormation),\n fieldName: \"lastLieuFormation\"\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n }\n ],\n [\n hopeContratTypes,\n idsrapportContrat,\n isHope,\n onAddSuspensionClick,\n onEditSuspension,\n onRuptureClick,\n printContrat,\n t,\n tUnsafe,\n theme,\n walterContratTypes\n ]\n );\n\n const onClose = React.useCallback(\n (toSave: ContratSuspensionDto) => {\n if (!!toSave) {\n search();\n }\n setCurrentSuspension(null);\n },\n [search]\n );\n\n return (\n <>\n
\n \n
\n {!!currentSuspension && (\n \n )}\n {!!currentContratId && (\n 0}\n currentContratId={currentContratId}\n onClose={(refresh: boolean) => {\n setCurrentContratId(0);\n if (refresh) search();\n }}\n />\n )}\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport * as React from \"react\";\n\nimport { ContratApi, ContratEditDto, ELevelName, FichierApi } from \"../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport * as Yup from \"yup\";\nimport styled from \"styled-components\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { FGCustomPanel, FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { DialogResult, useDialog } from \"../../../../../contexts\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IContratRuptureDialogProps {\n dialogOpen: boolean;\n currentContratId: number;\n onClose: (refresh: boolean) => void;\n}\n\nexport const ContratRuptureDialog: React.FunctionComponent = ({\n currentContratId,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ContratApi);\n const { showDialogPromise } = useDialog();\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.contratGetContrat({ id: currentContratId });\n },\n saveApiFn: async (d: ContratEditDto) => {\n if (!!d.rompuLe && d.idcontrat > 0) {\n var offreActive = await api.contratHasOffreActive({ idcontrat: d.idcontrat });\n if (offreActive) {\n let result: DialogResult = \"yes\";\n result = await showDialogPromise({\n message: t(ETLCodes.AgrementsOffreActiveConfirm),\n title: t(ETLCodes.AgrementsOffreActive)\n });\n\n if (result === \"no\") {\n d.rompreAgrementsActifs = true;\n }\n }\n }\n return api.contratRuptureContrat({ ContratEditDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, currentContratId, onClose, showDialogPromise, t]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n rompuLe: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required)),\n idcontratInitiateurRupture: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n datePriseActe: Yup.date().nullable()\n }),\n [t]\n );\n\n const [initiateurs, iLoading] = useReferential(a => a.referentialGetContratInitiateurs());\n\n const [motifsPatron, mpLoading] = useReferential(a => a.referentialGetMotifsRupturePatron());\n\n const [motifsJeune, mjLoading] = useReferential(a => a.referentialGetMotifsRuptureJeune());\n\n const [users, uLoading] = useReferential(a =>\n a.referentialGetUsersByRolesAndApprenant({ ELevelName: [ELevelName.RI, ELevelName.CALC] })\n );\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async idfichier => await fapi.fichierDownload({ id: idfichier }), [fapi]);\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n watchChanges={{\n fichierRupture: (value, formik) => {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichierRupture\", null);\n }\n }\n }}\n >\n \n \n \n \n \n \n \n \n \n {ctx => (\n downloadFn(ctx.formik.values?.idfichierRupture))\n }\n />\n )}\n \n \n \n
\n
\n );\n};\n","import { Colors, Icon, Tooltip } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport {\n ContratApi,\n ContratLieuxFormationGridDto,\n ContratLieuxFormationSearchDto,\n ETypeContrat\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { CircleColumn, CustomBulletList, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTheme, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { computeContratStatutColor } from \"../../../../../utils/contratStatutColor\";\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport interface IApprenantLieuFormationListProps {}\n\nexport const ApprenantLieuFormationList: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { theme, ifapmeSide } = useTheme();\n const isHope = React.useMemo(() => ifapmeSide === \"hope\", [ifapmeSide]);\n const { id } = useParams<{ id: string }>();\n const idapprenant = React.useMemo(() => +id, [id]);\n const api = useApiService(ContratApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ContratLieuxFormationSearchDto) => {\n sObj.idapprenant = idapprenant;\n return api.contratSearchLieuxFormation({ ContratLieuxFormationSearchDto: sObj });\n },\n [api, idapprenant]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onViewClick = React.useCallback((dto: ContratLieuxFormationGridDto) => {\n window.open(`#${ERoutes.lieuFormation}/${dto.idlieuFormation}/detail/view?idsiegeSocial=${dto.idsiegeSocial}`);\n }, []);\n\n const onEditClick = React.useCallback((dto: ContratLieuxFormationGridDto) => {\n window.open(`#${ERoutes.lieuFormation}/${dto.idlieuFormation}/detail/edit?idsiegeSocial=${dto.idsiegeSocial}`);\n }, []);\n\n const hopeContratTypes = React.useMemo(\n () => [\n ETypeContrat.CC,\n ETypeContrat.CA,\n ETypeContrat.CS,\n ETypeContrat.CF,\n ETypeContrat.DM,\n ETypeContrat.JI,\n ETypeContrat.PP\n ],\n []\n );\n\n const walterContratTypes = React.useMemo(() => [ETypeContrat.SO, ETypeContrat.CCE, ETypeContrat.CSE], []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ContratLieuxFormationGridDto) =>\n (isHope && hopeContratTypes.includes(row.type)) || (!isHope && walterContratTypes.includes(row.type)) ? (\n \n onViewClick(row)} />\n onEditClick(row)} />\n \n ) : null\n },\n {\n header: () => t(ETLCodes.NomLieuFormation),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.CodeContrat),\n fieldName: \"code\"\n },\n {\n computed: true,\n alignment: \"center\",\n autoFitContent: true,\n header: () => (\n \n {t(ETLCodes.Statut)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"statut\",\n render: (row: ContratLieuxFormationGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.Enseigne),\n fieldName: \"enseigne\"\n },\n {\n header: () => t(ETLCodes.Email),\n fieldName: \"email\"\n },\n {\n header: () => t(ETLCodes.Telephone),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.Gsm),\n fieldName: \"gsm\"\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.DenominationSiegeSocial),\n fieldName: \"denomination\"\n }\n ],\n [hopeContratTypes, isHope, onEditClick, onViewClick, t, tUnsafe, theme, walterContratTypes]\n );\n\n return (\n
\n \n
\n );\n};\n","import { Classes, Colors, Dialog } from \"@blueprintjs/core\";\nimport { FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ELevelName, SuiviActionEditDto, SuiviActionEditDtoFromJSON, FichierApi } from \"../../../../../../api\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport * as Yup from \"yup\";\nimport { startOfToday } from \"date-fns\";\n\nexport interface SuiviActionDialogProps {\n dto: SuiviActionEditDto;\n isOpen: boolean;\n onClose: (toSave?: SuiviActionEditDto) => void;\n enveloppeId: number;\n editMode: boolean;\n editable: boolean;\n}\n\nexport const SuiviActionDialog: React.FunctionComponent = ({\n isOpen,\n onClose,\n editMode,\n editable,\n dto\n}) => {\n const { t } = useTl();\n const [typeAction, taLoading] = useReferential(a => a.referentialGetTypeSuiviActions(), true, []);\n const [collaborateurServices, csLoading] = useReferential(a =>\n a.referentialGetUsersByRoles({\n ELevelName: [ELevelName.RI, ELevelName.ARI, ELevelName.COP, ELevelName.CALC],\n currentIduser: 0\n })\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n dateEcheance: Yup.date()\n .nullable()\n .min(startOfToday(), t(ETLCodes.DateCannotBeInPast))\n .required(t(ETLCodes.Required)),\n idtypeSuiviAction: Yup.number().required(t(ETLCodes.Required)),\n idcollaborateurService: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const api = useApiService(FichierApi);\n const downloadFn = React.useCallback(async () => await api.fichierDownload({ id: dto?.idfichier }), [\n api,\n dto?.idfichier\n ]);\n\n return (\n onClose()}\n style={{ padding: \"0.5rem\", width: 800, backgroundColor: Colors.WHITE }}\n enforceFocus={false}\n >\n
\n \n \n \n \n \n \n \n \n \n
\n \n );\n};\n","import { Intent, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport { add, addMinutes, endOfDay, format, isAfter, parseJSON } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FGCustomInput,\n FGCustomPanel,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n useFGFormik,\n useGridState,\n ValidationErrorsType\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useLocation } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { SuiviDocumentEditDialog, SuiviDocumentUploadDialog } from \"..\";\nimport {\n ContratApi,\n EContentHidingMode,\n EIfapmeSide,\n ELevelName,\n EStatutContrat,\n ETypeContrat,\n LieuFormationApi,\n MetierApi,\n SuiviFichierGridDto,\n SuiviHopeEditDto\n} from \"../../../../../api\";\nimport {\n AddButton,\n DeleteButton,\n DownloadButton,\n EditButton,\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n LinkButton,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useAuth } from \"../../../../../contexts\";\nimport { useApiService, useTabMessage, useTheme, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { SuiviActionDialog } from \"./suiviAction/SuiviActionDialog\";\n\nconst StatutContainer = styled.div<{ color: string }>`\n display: flex;\n justify-content: center;\n > span {\n font-weight: bold;\n color: ${props => props.color};\n font-size: 14pt;\n }\n`;\n\nconst RadioReadonlyContainer = styled.div`\n height: 30px;\n display: flex;\n align-items: center;\n`;\n\nexport interface ISuiviApprenantFormProps {\n data: SuiviHopeEditDto;\n suiviId: number;\n saveItem: (values: SuiviHopeEditDto) => void | Promise;\n loading: boolean;\n saving: boolean;\n deleteItem?: () => void | Promise;\n deleting?: boolean;\n editMode: boolean;\n onCancel?: () => void;\n validationErrors?: ValidationErrorsType;\n fieldsetTitle: string;\n deleteFichier?: (idsuiviFichier) => void;\n downloadFichier?: (idsuiviFichier) => void;\n rowLoading?: number;\n refreshData?: () => void;\n}\n\nexport const SuiviApprenantForm: React.FunctionComponent = ({\n data,\n suiviId,\n deleteItem,\n editMode,\n loading,\n saveItem,\n saving,\n onCancel,\n deleting,\n validationErrors,\n fieldsetTitle,\n deleteFichier,\n downloadFichier,\n rowLoading,\n refreshData\n}) => {\n const { t } = useTl();\n const { user } = useAuth();\n const { theme, isHope } = useTheme();\n const metierApi = useApiService(MetierApi);\n const lieuFormationApi = useApiService(LieuFormationApi);\n const contratApi = useApiService(ContratApi);\n\n const { search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { messageValue, clearMessageValue } = useTabMessage(cfs);\n\n const isCop = React.useMemo(() => user?.hopeMainLevelName === ELevelName.COP, [user?.hopeMainLevelName]);\n const isCalc = React.useMemo(() => user?.hopeMainLevelName === ELevelName.CALC, [user?.hopeMainLevelName]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n dateSuivi: Yup.date()\n .typeError(t(ETLCodes.DateInvalide))\n .required(t(ETLCodes.Required))\n .max(endOfDay(add(new Date(), { years: 1 })), t(ETLCodes.DateCannotBeGreaterThan1YearInFurture)),\n idservice: Yup.number().required(t(ETLCodes.Required)),\n iduserService: Yup.number().required(t(ETLCodes.Required)),\n idtypeSuivi: Yup.number().required(t(ETLCodes.Required)),\n idsousTypeSuivi: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const formik = useFGFormik({\n initialValues: data,\n onSubmit: saveItem,\n validationSchema: FormSchema\n });\n\n const [lieurencontres, lrLoading] = useReferential(a => a.referentialGetLieuRencontres(), true, []);\n const [modes, mLoading] = useReferential(a => a.referentialGetModes(), true, []);\n const [sousTypeSuivis, stsLoading, , rawSousTypeSuivis] = useReferential(\n a =>\n a.referentialGetSousTypeSuivis({\n idtypeSuivi: formik?.values?.idtypeSuivi,\n idsousTypeSuivi: data?.idsousTypeSuivi\n }),\n true,\n [formik?.values?.idtypeSuivi, data?.idsousTypeSuivi]\n );\n const [typeSuivis, tsLoading] = useReferential(\n a => a.referentialGetTypeSuivis({ side: EIfapmeSide.Hope, idtypeSuivi: data?.idtypeSuivi }),\n true,\n [data?.idtypeSuivi]\n );\n const [apprenantContrats, acLoading, , rawContrats] = useReferential(\n a =>\n a.referentialGetApprenantContrats({\n idApprenant: formik?.values?.idapprenant,\n ETypeContrat: [\n ETypeContrat.CC,\n ETypeContrat.CA,\n ETypeContrat.CS,\n ETypeContrat.CF,\n ETypeContrat.DM,\n ETypeContrat.JI,\n ETypeContrat.PP\n ]\n }),\n true,\n [formik?.values?.idapprenant]\n );\n\n const [canSetIdContrat, setCanSetIdContrat] = React.useState(true);\n\n React.useEffect(() => {\n if (rawContrats?.length > 0 && !!formik?.values && !formik?.values?.idcontrat && suiviId <= 0 && canSetIdContrat) {\n let c = rawContrats.find(c => c.keyValue === EStatutContrat.EnCours);\n if (!c) {\n const maxId = Math.max.apply(rawContrats.map(c => +c.idValue));\n c = rawContrats.find(c => +c.idValue === maxId);\n }\n if (c) formik.setFieldValue(\"idcontrat\", c.idValue);\n\n setCanSetIdContrat(false);\n }\n }, [canSetIdContrat, formik, rawContrats, suiviId]);\n\n const fetchContratInfos = React.useCallback(async () => {\n if (!formik?.values?.idcontrat) return null;\n return await contratApi.contratGetContratInfosForSuivi({ idcontrat: formik.values.idcontrat });\n }, [contratApi, formik?.values?.idcontrat]);\n const { data: contratInfos } = useQuery([\"suivi-contrat-info\", formik?.values?.idcontrat], fetchContratInfos);\n\n const fetchMetierDisplayName = React.useCallback(async () => {\n if (!contratInfos?.idmetier) return \"\";\n return await metierApi.metierGetDisplayName({ id: contratInfos?.idmetier });\n }, [contratInfos?.idmetier, metierApi]);\n const { data: metierName, isFetching: mnLoading } = useQuery(\n [\"metier-display-name\", contratInfos?.idmetier],\n fetchMetierDisplayName\n );\n\n const fetchLfDisplayName = React.useCallback(async () => {\n if (!contratInfos?.idlieuFormation) return \"\";\n return await lieuFormationApi.lieuFormationGetDisplayName({ id: contratInfos?.idlieuFormation });\n }, [contratInfos?.idlieuFormation, lieuFormationApi]);\n const { data: lfName, isFetching: lfLoading } = useQuery(\n [\"lieu-formation-display-name\", contratInfos?.idlieuFormation],\n fetchLfDisplayName\n );\n const [decisionCommissionTutelle, dctLoading] = useReferential(\n a => a.referentialGetDecisionCommissionTutelles({ id: data?.iddecisionCommissionTutelle }),\n true,\n [data?.iddecisionCommissionTutelle]\n );\n\n const [services, sLoading] = useReferential(\n a => a.referentialGetServiceTutelle({ userFilter: data?.creationUser === user.iduser || +suiviId <= 0 }),\n true,\n [data?.creationUser, user?.iduser, suiviId]\n );\n const [serviceUsers, suLoading] = useReferential(\n a =>\n a.referentialGetServiceUsers({\n request_body: !!formik?.values?.idservice ? [formik?.values?.idservice] : [],\n currentId: formik?.values?.iduserService\n }),\n true,\n [formik?.values?.idservice, formik?.values?.iduserService]\n );\n const [dialogOpen, setDialogOpen] = React.useState(false);\n React.useEffect(() => {\n if (!!messageValue && messageValue === \"FromDashboard\" && !!data && !loading) {\n setDialogOpen(true);\n clearMessageValue();\n }\n }, [clearMessageValue, data, loading, messageValue]);\n\n React.useEffect(() => {\n if (formik?.values?.action && !formik?.initialValues?.action) {\n setDialogOpen(true);\n }\n }, [formik?.initialValues?.action, formik?.values?.action]);\n\n React.useEffect(() => {\n if (!formik?.values?.action && !!formik?.values?.suiviAction) {\n formik.setFieldValue(\"suiviAction\", null);\n }\n }, [formik]);\n\n const statutColor = React.useMemo(\n () =>\n !!formik?.values?.suiviAction?.dateRealisation\n ? theme.sucessColor\n : isAfter(formik?.values?.suiviAction?.dateEcheance, new Date())\n ? theme.warningColor\n : theme.dangerColor,\n [\n formik?.values?.suiviAction?.dateEcheance,\n formik?.values?.suiviAction?.dateRealisation,\n theme.dangerColor,\n theme.sucessColor,\n theme.warningColor\n ]\n );\n\n const statutText = React.useMemo(\n () =>\n t(\n !!formik?.values?.suiviAction?.dateRealisation\n ? ETLCodes.ActionRealisee\n : isAfter(formik?.values?.suiviAction?.dateEcheance, new Date())\n ? ETLCodes.ActionNonRealisee\n : ETLCodes.DateEcheanceDepassee\n ),\n [formik?.values?.suiviAction?.dateEcheance, formik?.values?.suiviAction?.dateRealisation, t]\n );\n\n const actionIsRealisee = React.useMemo(() => !!formik?.values?.suiviAction?.dateRealisation, [\n formik?.values?.suiviAction?.dateRealisation\n ]);\n\n const getROHidingMode = React.useCallback(\n (contentHidingMode: EContentHidingMode) => {\n switch (contentHidingMode) {\n case EContentHidingMode.NONE:\n return t(ETLCodes.Personne);\n case EContentHidingMode.CENTRES:\n return t(ETLCodes.Centres);\n case EContentHidingMode.ALL:\n return t(ETLCodes.TousSaufCopCalc);\n }\n },\n [t]\n );\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (data?.fichiers) {\n setData(data.fichiers);\n }\n }, [data?.fichiers, setData]);\n\n const [currentSuiviFichierId, setCurrentSuiviFichierId] = React.useState(null);\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n\n const isCreationUser = React.useMemo(\n () => data?.creationUser === user.iduser || data?.iduserService === user.iduser,\n [data?.creationUser, data?.iduserService, user.iduser]\n );\n\n const contenuVisible = React.useCallback(\n values =>\n values?.contentHidingMode === EContentHidingMode.NONE ||\n values?.creationUser === user.iduser ||\n (user.ifapmeSide.includes(\"Hope\") && values?.contentHidingMode === EContentHidingMode.CENTRES) ||\n isCop ||\n isCalc,\n [isCalc, isCop, user.iduser, user.ifapmeSide]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: SuiviFichierGridDto) => (\n \n setCurrentSuiviFichierId(row.idsuiviFichier)}\n loading={rowLoading === row.idsuiviFichier}\n disabled={(!!rowLoading && rowLoading !== row.idsuiviFichier) || !(isHope && isCreationUser)}\n />\n downloadFichier(row.idsuiviFichier)}\n loading={rowLoading === row.idsuiviFichier}\n disabled={(!!rowLoading && rowLoading !== row.idsuiviFichier) || !contenuVisible(data)}\n />\n deleteFichier(row.idsuiviFichier)}\n loading={rowLoading === row.idsuiviFichier}\n disabled={(!!rowLoading && rowLoading !== row.idsuiviFichier) || !(isHope && isCreationUser)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeSuiviFichier\"\n }\n ],\n [contenuVisible, data, deleteFichier, downloadFichier, isCreationUser, isHope, rowLoading, t]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentSuiviFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n refreshData();\n }\n },\n [refreshData]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n return (\n 0 && !actionIsRealisee}\n onDelete={deleteItem}\n deleting={deleting}\n editable={data?.creationUser === user.iduser || data?.iduserService === user.iduser}\n validationErrors={validationErrors}\n >\n {!!formik?.values?.suiviAction && (\n \n {statutText}\n \n )}\n \n \n \n \n \n \n {!!formik?.values?.idapprenant && (\n <>\n \n metierName}\n loading={mnLoading}\n />\n lfName}\n loading={lfLoading}\n />\n \n )}\n \n \n {ctx => (\n \n )}\n \n \n !!ctx?.formik?.values?.idsousTypeSuivi &&\n !!rawSousTypeSuivis &&\n +ctx?.formik?.values?.idsousTypeSuivi ===\n +rawSousTypeSuivis.find(s => s.keyValue === \"TUTELLE_25\")?.idValue // Commission de tutelle\n }\n />\n \n \n\n \n {ctx => (\n <>\n \n {ctx =>\n ctx?.editMode ? (\n ctx.formik.setFieldValue(\"contentHidingMode\", e.currentTarget.value)}\n >\n \n \n \n \n ) : (\n \n {getROHidingMode(ctx?.formik?.values?.contentHidingMode)}\n \n )\n }\n \n {\n setDialogOpen(true);\n }}\n />\n )\n }\n />\n\n {\n setDialogOpen(false);\n if (toSave) {\n ctx?.formik.setFieldValue(\"suiviAction\", toSave);\n } else if (!ctx?.formik?.values?.suiviAction) {\n ctx.formik.setFieldValue(\"action\", false);\n }\n }}\n enveloppeId={0}\n editMode={ctx?.editMode && !actionIsRealisee}\n editable={!actionIsRealisee}\n />\n \n )}\n \n \n \n {ctx => (\n \n )}\n \n \n 0}\n fieldsetProps={{\n title: t(ETLCodes.Documents),\n rightElement: !actionIsRealisee && (\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }}\n >\n
\n {uploadDialoOpen && (\n \n )}\n {!!currentSuiviFichierId && (\n \n )}\n \n \n );\n};\n","import { Classes, Switch } from \"@blueprintjs/core\";\nimport { format, parse } from \"date-fns\";\nimport { getIn } from \"formik\";\nimport { FGCustomInput, useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { FGWalterDateMaskInput, FGWalterSelectInput } from \"../../../../../components\";\nimport { useTheme, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { toCleanTimeZone } from \"../../../../../utils\";\n\nconst Container = styled.div<{ color: string }>`\n display: flex;\n & .date-mask {\n margin-right: 10px !important;\n }\n\n & .${Classes.SWITCH} {\n &:hover {\n input:checked ~ .${Classes.CONTROL_INDICATOR} {\n background: ${props => props.color};\n }\n }\n }\n`;\n\nexport interface IInscriptionDateConvocationSelectorProps {}\n\nexport const InscriptionDateConvocationSelector: React.FunctionComponent = props => {\n const { t } = useTl();\n const { theme } = useTheme();\n const { formik } = useFGContext();\n\n const idclasse = React.useMemo(() => formik.values?.idclasse ?? 0, [formik.values?.idclasse]);\n const dateConvocation = React.useMemo(() => getIn(formik.values, \"dateConvocation\"), [formik.values]);\n const dateConvocationString = React.useMemo(() => getIn(formik.values, \"dateConvocationString\"), [formik.values]);\n const idinscription = React.useMemo(() => getIn(formik.values, \"idinscription\"), [formik.values]);\n\n const [inscriptionDatesConvocation, idcLoading] = useReferential(\n a =>\n a.referentialGetInscriptionDatesConvocation({\n GetInscriptionDatesConvocationRequestDto: {\n idClasse: idclasse,\n dateInscription: formik.values?.dateInscription\n }\n }),\n false,\n [idclasse, formik.values?.dateInscription]\n );\n\n React.useEffect(() => {\n if (inscriptionDatesConvocation?.length > 0 && idinscription <= 0) {\n let date = parse(inscriptionDatesConvocation[0].label, \"dd-MM-yyyy\", new Date());\n date = toCleanTimeZone(date);\n\n if (\n !!date &&\n !!dateConvocation &&\n !dateConvocationString &&\n (!formik.touched.dateConvocation || format(dateConvocation, \"dd-MM-yyyy\") !== format(date, \"dd-MM-yyyy\"))\n ) {\n formik.setFieldValue(\"dateConvocation\", date);\n formik.setFieldTouched(\"dateConvocation\", true);\n }\n }\n }, [dateConvocation, dateConvocationString, formik, idinscription, inscriptionDatesConvocation]);\n\n const isCustom = React.useMemo(() => !!dateConvocation, [dateConvocation]);\n\n return (\n \n {ctx => (\n \n \n {\n formik.setFieldValue(\n \"dateConvocation\",\n !e.currentTarget.checked ? ctx.formik?.values?.dateInscription : null\n );\n formik.setFieldValue(\"dateConvocationString\", null);\n }}\n disabled={idclasse <= 0}\n />\n \n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport { ApprenantApi, EPermis, ReferentialResultInfoDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { FieldGroup } from \"nsitools-react\";\nimport { useAuth } from \"../../../../../contexts\";\n\nexport interface IApprenantPassportDriveProps {}\n\nexport const ApprenantPassportDrive: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ApprenantApi);\n const { user } = useAuth();\n const { id, state } = useParams<{ id: string; state: \"edit\" | \"view\" }>();\n const idapprenant = React.useMemo(() => +id, [id]);\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const { data, loading, saveItem, saving, deleteItem, deleting } = useCrudApi({\n getApiFn: () => api.apprenantGetPassportDrive({ idapprenant }),\n saveApiFn: d => api.apprenantSavePassportDrive({ PassportDriveDto: d }),\n onSavedRoute: d => `${ERoutes.apprenant}/${idapprenant}/passportDrive/${state}`,\n deleteApiFn: d => api.apprenantDeletePassportDrive({ idapprenant }),\n refreshAfterDelete: true\n });\n\n const [permis, pLoading] = useReferential(a => a.referentialGetPermis(), false);\n const [permisCode, setPermisCode] = React.useState(EPermis.B);\n const [autoecoles, aeLoading] = useReferential(\n a =>\n !permisCode\n ? Promise.resolve(ReferentialResultInfoDtoFromJSON({ list: [] }))\n : a.referentialGetAutoecoles({ permisCode }),\n true,\n [permisCode]\n );\n const [resultatPermis, rpLoading] = useReferential(a => a.referentialGetResultatPermis(), true);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idautoecole: Yup.number()\n .nullable()\n .when([\"permis\", \"pasEmailPromotionnel\"], {\n is: (permis, pasEmailPromotionnel) => !!permis && !pasEmailPromotionnel,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n });\n }, [t]);\n\n const isAdmin = React.useMemo(\n () =>\n user?.hopeMainLevelName === \"Hope - Administrateur\" ||\n user?.hopeMainLevelName === \"Administrateur Passeport Drive\",\n [user?.hopeMainLevelName]\n );\n\n const deleteFn = React.useCallback(() => {\n deleteItem();\n }, [deleteItem]);\n\n return (\n history.push(`${ERoutes.apprenant}/${idapprenant}/passportDrive/${state}`)}\n saving={saving}\n formatDate=\"dd-MM-yyyy\"\n minLabelWidth={300}\n watchChanges={{\n permis: value => setPermisCode(value as EPermis)\n }}\n showDeleteButton\n onDelete={deleteFn}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Button, Colors, Intent, Spinner, SpinnerSize } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport format from \"date-fns/format\";\nimport {\n ButtonsBloc,\n FGCustomPanel,\n FGCustomReadOnly,\n FGTextInput,\n FieldGroup,\n FieldSet,\n InlineButtonContainer,\n showError,\n showSuccess,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport {\n ApprenantDoublonApi,\n ApprenantDoublonSearch,\n ApprenantDoublonSearchFromJSON,\n FcbApprenantDoublonGridDto,\n SocieteExterneApi\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n CancelButton,\n CustomStateDisplay,\n FGWalterDateMaskInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useAuth, useBeIdCardContext } from \"../../../../../contexts\";\nimport { useApiService, useManageError, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst RoContainer = styled.div`\n display: flex;\n align-items: center;\n height: 30px;\n`;\n\nconst SpinnerContainer = styled.div`\n margin: 2rem;\n`;\n\nexport interface IApprenantSearchSocieteExterneProps {\n setBaseData: React.Dispatch>;\n}\n\nexport const ApprenantSearchSocieteExterne: React.FunctionComponent = ({\n setBaseData\n}) => {\n const { t } = useTl();\n const history = useHistory();\n const { manageError } = useManageError();\n const api = useApiService(ApprenantDoublonApi);\n const seApi = useApiService(SocieteExterneApi);\n const { singleFoundUser, foundRowsData, loading: loadingCard, card, clearCardData } = useBeIdCardContext();\n const { user } = useAuth();\n const [firstSearch, setFirstSearch] = React.useState(false);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [10],\n pageSize: 10,\n sortKeys: { nom: \"ASC\" }\n });\n const { totalCount, data } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ApprenantDoublonSearch) => {\n return api.apprenantDoublonBaseSearch({ ApprenantDoublonSearch: sObj });\n },\n [api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n\n const add = React.useCallback(() => {\n history.push(`${ERoutes.apprenant}/0/signaletique/edit`);\n }, [history]);\n\n const initialData = React.useMemo(() => {\n return ApprenantDoublonSearchFromJSON({});\n }, []);\n\n const [foundUnlinked, setFoundUnlinked] = React.useState(null);\n React.useEffect(() => {\n if (totalCount === 1) {\n setSaving(true);\n const foundApprenant = data[0] as FcbApprenantDoublonGridDto;\n if (foundApprenant.idsSocieteExterne.some(idSe => user?.idsSocieteExterne.includes(idSe))) {\n showSuccess(t(ETLCodes.PersonneTrouvee));\n clearCardData();\n history.push(`${ERoutes.apprenant}/${foundApprenant.idapprenant}/signaletique/edit`);\n }\n setFoundUnlinked(foundApprenant);\n setSaving(false);\n }\n }, [clearCardData, data, history, t, totalCount, user?.idsSocieteExterne]);\n React.useEffect(() => {\n if (!!foundRowsData) {\n search(ApprenantDoublonSearchFromJSON({ registreNational: foundRowsData?.nationalNb, ...foundRowsData }));\n }\n }, [foundRowsData, search]);\n\n const [saving, setSaving] = React.useState(false);\n const confirm = React.useCallback(async () => {\n try {\n setSaving(true);\n await seApi.societeExterneAddApprenantForUser({ idapprenant: foundUnlinked?.idapprenant });\n setBaseData({ idpersonne: foundUnlinked?.idpersonne });\n history.push(`${ERoutes.apprenant}/${foundUnlinked?.idapprenant}/signaletique/edit`);\n } catch (e) {\n manageError(e);\n } finally {\n setSaving(false);\n }\n }, [foundUnlinked?.idapprenant, foundUnlinked?.idpersonne, history, manageError, seApi, setBaseData]);\n\n React.useEffect(() => {\n if (!!card) {\n setFirstSearch(true);\n }\n }, [card, loadingCard]);\n\n return (\n
\n {\n if (c.nom && c.prenom && c.dateNaissance) {\n search(c);\n setFirstSearch(true);\n } else {\n showError(t(ETLCodes.NoCriteriaFilled));\n }\n }}\n editMode\n hideButtons={true}\n onCancel={() => history.push(`${ERoutes.apprenant}`)}\n >\n \n {loadingCard || loading ? (\n \n \n \n ) : (\n \n )}\n \n \n \n \n \n \n \n \n {ctx =>\n !foundRowsData && (\n \n \n \n history.push(`${ERoutes.apprenant}`)} />\n
\n );\n};\n","import { Classes, Intent, Switch } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n ApprenantFichierApi,\n ApprenantFichierGridDto,\n ApprenantFichierSearchDto,\n ETypeApprenantFichier\n} from \"../../../../../api\";\nimport { AddButton, CircleColumn, DeleteButton, EditButton, LinkButton } from \"../../../../../components\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTheme, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst TitleContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 1rem;\n`;\n\nconst StyledSwitch = styled(Switch)`\n &.${Classes.SWITCH} {\n margin-bottom: 0 !important;\n\n &:hover {\n input:checked ~ .${Classes.CONTROL_INDICATOR} {\n background: ${props => props.color};\n }\n }\n }\n`;\n\nconst ButtonContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst CircleTooltipContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IApprenantAvisAttestPFDocumentsProps {\n idapprenant: number;\n rowLoading: number;\n setCurrentApprenantFichierId: (idapprenantFichier: number) => void;\n deleteFichier: (idapprenantFichier: number) => void;\n deleteAvisResultat: (idapprenantFichier: number) => void;\n downloadFichier: (idapprenantFichier: number) => void;\n onAdd: () => void;\n}\n\nexport const ApprenantAvisAttestPFDocuments: React.FunctionComponent = ({\n idapprenant,\n rowLoading,\n setCurrentApprenantFichierId,\n deleteFichier,\n deleteAvisResultat,\n downloadFichier,\n onAdd\n}) => {\n const { t } = useTl();\n const { theme, ifapmeSide } = useTheme();\n const api = useApiService(ApprenantFichierApi);\n const [hideDeleted, setHideDeleted] = React.useState(true);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const searchFunc = React.useCallback(\n (nextSearch?: ApprenantFichierSearchDto) =>\n api.apprenantFichierBaseSearch({\n ApprenantFichierSearchDto: {\n ...nextSearch,\n hideDeleted,\n idapprenant,\n excludedTypes: [\n ETypeApprenantFichier.JUSTIFICATIF,\n ETypeApprenantFichier.DOSSIER_SCOLAIRE_ACCUSE_FIC,\n ETypeApprenantFichier.CERTIFICAT_MEDICAL,\n ETypeApprenantFichier.CARTE_IDENTITE,\n ETypeApprenantFichier.CHARTE_ENGAGEMENT,\n ETypeApprenantFichier.DOSSIER_SCOLAIRE,\n ETypeApprenantFichier.FICHE_FSE,\n ETypeApprenantFichier.ROI_CARNET_PEDA,\n ETypeApprenantFichier.PPD_AUTORISATION_PARENTALE,\n ETypeApprenantFichier.PPD_CONSENTEMENT_COLLECTE,\n ETypeApprenantFichier.AUTRES\n ]\n }\n }),\n [api, hideDeleted, idapprenant]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n React.useEffect(() => {\n subscribeToEvent(\"SEARCH_TABLE_REFRESH\", search);\n return () => unsubscribeEvent(\"SEARCH_TABLE_REFRESH\", search);\n }, [search, subscribeToEvent, unsubscribeEvent]);\n\n const deleteRow = React.useCallback(\n (row: ApprenantFichierGridDto) => {\n if (\n row.typeApprenantFichierCode === ETypeApprenantFichier.AVIS_RESULTATS ||\n row.typeApprenantFichierCode === ETypeApprenantFichier.AVIS_RESULTATS_1ERE_SESSION ||\n row.typeApprenantFichierCode === ETypeApprenantFichier.AVIS_RESULTATS_2EME_SESSION\n ) {\n deleteAvisResultat(row.idapprenantFichier);\n } else {\n deleteFichier(row.idapprenantFichier);\n }\n },\n [deleteAvisResultat, deleteFichier]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ApprenantFichierGridDto) => (\n \n setCurrentApprenantFichierId(row.idapprenantFichier)}\n loading={rowLoading === row.idapprenantFichier}\n disabled={!!rowLoading && rowLoading !== row.idapprenantFichier}\n />\n {!row.deletionDate && !row.autoCreated && (\n deleteRow(row)}\n loading={rowLoading === row.idapprenantFichier}\n disabled={!!rowLoading && rowLoading !== row.idapprenantFichier}\n />\n )}\n \n \n {t(ETLCodes.DeletedByOn, {\n user: row.deletionUserName,\n date: format(row.deletionDate, \"dd/MM/yyyy\")\n })}\n \n {t(ETLCodes.RaisonVar, { reason: row.deletionReason })}\n \n )\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeApprenantFichier\"\n },\n {\n header: () => t(ETLCodes.Annee),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.TypeCours),\n fieldName: \"typeCours\"\n },\n {\n header: () => t(ETLCodes.Degre),\n fieldName: \"degre\"\n },\n {\n header: () => t(ETLCodes.Metier),\n fieldName: \"metier\"\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.Deliberation),\n fieldName: \"deliberation\",\n render: (row: ApprenantFichierGridDto) =>\n row.typeApprenantFichierCode === ETypeApprenantFichier.AVIS_RESULTATS_2EME_SESSION\n ? row.deliberation2Sess\n : row.deliberation\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Document),\n fieldName: \"fileName\",\n render: (row: ApprenantFichierGridDto) =>\n !row.deletionDate || ifapmeSide === \"walter\" ? (\n downloadFichier(row.idapprenantFichier)}\n rightIcon=\"download\"\n />\n ) : (\n row.fileName\n )\n }\n ],\n [\n deleteRow,\n downloadFichier,\n ifapmeSide,\n rowLoading,\n setCurrentApprenantFichierId,\n t,\n theme.dangerColor,\n theme.sucessColor\n ]\n );\n\n return (\n \n {`${t(ETLCodes.AvisAttestationPF)}`}\n {\n setHideDeleted(!e.currentTarget.checked);\n }}\n >\n \n }\n rightElement={\n <>\n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n );\n};\n","import { showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { ApprenantAutresDocuments, ApprenantDocumentEditDialog, ApprenantDocumentUploadDialog } from \".\";\nimport { ApprenantDocumentsReglementaires } from \"..\";\nimport { ApprenantFichierApi, ETypeApprenantFichier } from \"../../../../../api\";\nimport { useDialog, useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { exportFile } from \"../../../../../utils\";\nimport { ApprenantAvisAttestPFDocuments } from \"./ApprenantAvisAttestPFDocuments\";\n\nexport type ApprenantDocumentDialogMode = \"REGLEMENTAIRES\" | \"AVIS_ATTEST_PF\" | \"AUTRES\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n`;\n\nexport interface IApprenantDocumentsProps {}\n\nexport const ApprenantDocuments: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(ApprenantFichierApi);\n const { id } = useParams<{ id: string }>();\n const [currentApprenantFichierId, setCurrentApprenantFichierId] = React.useState(null);\n const [uploadDialogOpen, setUploadDialogOpen] = React.useState(false);\n const [uploadDialogMode, setUploadDialogMode] = React.useState(null);\n const [selectedTypeApprenantFichier, setSelectedTypeApprenantFichier] = React.useState(null);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { dispatchEvent } = useEventsContext();\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idapprenantFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idapprenantFichier);\n await api.apprenantFichierDeleteApprenantFichier({ id: idapprenantFichier });\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, dispatchEvent, showDialogPromise, t]\n );\n\n const deleteAvisResultat = React.useCallback(\n async (idapprenantFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idapprenantFichier);\n await api.apprenantFichierDeleteAvisResultat({ id: idapprenantFichier });\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, dispatchEvent, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idapprenantFichier: number) => {\n try {\n setRowLoading(idapprenantFichier);\n const file = await api.apprenantFichierDownloadApprenantFichier({ id: idapprenantFichier });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentApprenantFichierId(null);\n setUploadDialogOpen(false);\n setUploadDialogMode(null);\n setSelectedTypeApprenantFichier(null);\n if (refresh) {\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }\n },\n [dispatchEvent]\n );\n\n const onAdd = React.useCallback((mode: ApprenantDocumentDialogMode, type?: string) => {\n setUploadDialogOpen(true);\n setUploadDialogMode(mode);\n\n setSelectedTypeApprenantFichier(type);\n }, []);\n\n const excludedTypes = React.useMemo(() => {\n switch (uploadDialogMode) {\n case \"REGLEMENTAIRES\":\n return [\n ETypeApprenantFichier.JUSTIFICATIF,\n ETypeApprenantFichier.DOSSIER_SCOLAIRE_ACCUSE_FIC,\n ETypeApprenantFichier.CERTIFICAT_MEDICAL,\n ETypeApprenantFichier.AVIS_RESULTATS,\n ETypeApprenantFichier.PF_ENTREPRISE,\n ETypeApprenantFichier.ATTESTATION_REUSSITE,\n ETypeApprenantFichier.PPD_AUTORISATION_PARENTALE,\n ETypeApprenantFichier.PPD_CONSENTEMENT_COLLECTE,\n ETypeApprenantFichier.AUTRES\n ];\n case \"AVIS_ATTEST_PF\":\n return [\n ETypeApprenantFichier.JUSTIFICATIF,\n ETypeApprenantFichier.DOSSIER_SCOLAIRE_ACCUSE_FIC,\n ETypeApprenantFichier.CERTIFICAT_MEDICAL,\n ETypeApprenantFichier.CARTE_IDENTITE,\n ETypeApprenantFichier.CHARTE_ENGAGEMENT,\n ETypeApprenantFichier.DOSSIER_SCOLAIRE,\n ETypeApprenantFichier.FICHE_FSE,\n ETypeApprenantFichier.ROI_CARNET_PEDA,\n ETypeApprenantFichier.PPD_AUTORISATION_PARENTALE,\n ETypeApprenantFichier.PPD_CONSENTEMENT_COLLECTE,\n ETypeApprenantFichier.AUTRES\n ];\n case \"AUTRES\":\n return [\n ETypeApprenantFichier.AVIS_RESULTATS,\n ETypeApprenantFichier.AVIS_RESULTATS_1ERE_SESSION,\n ETypeApprenantFichier.AVIS_RESULTATS_2EME_SESSION,\n ETypeApprenantFichier.CARTE_IDENTITE,\n ETypeApprenantFichier.CHARTE_ENGAGEMENT,\n ETypeApprenantFichier.DOSSIER_SCOLAIRE,\n ETypeApprenantFichier.FICHE_FSE,\n ETypeApprenantFichier.PF_ENTREPRISE,\n ETypeApprenantFichier.ROI_CARNET_PEDA,\n ETypeApprenantFichier.ATTESTATION_REUSSITE\n ];\n default:\n return [];\n }\n }, [uploadDialogMode]);\n\n return (\n \n onAdd(\"REGLEMENTAIRES\", typeApprenantFichier)}\n rowLoading={rowLoading}\n setCurrentApprenantFichierId={id => {\n setCurrentApprenantFichierId(id);\n setUploadDialogMode(\"REGLEMENTAIRES\");\n }}\n />\n onAdd(\"AVIS_ATTEST_PF\")}\n rowLoading={rowLoading}\n setCurrentApprenantFichierId={id => {\n setCurrentApprenantFichierId(id);\n setUploadDialogMode(\"AVIS_ATTEST_PF\");\n }}\n />\n onAdd(\"AUTRES\")}\n rowLoading={rowLoading}\n setCurrentApprenantFichierId={id => {\n setCurrentApprenantFichierId(id);\n setUploadDialogMode(\"AUTRES\");\n }}\n />\n {uploadDialogOpen && (\n \n )}\n {!!currentApprenantFichierId && (\n \n )}\n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport {\n ApprenantFichierApi,\n ApprenantFichierGridDto,\n ApprenantFichierSearchDto,\n ETypeApprenantFichier\n} from \"../../../../../api\";\nimport { AddButton, DeleteButton, EditButton, LinkButton } from \"../../../../../components\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantAutresDocumentsProps {\n idapprenant: number;\n rowLoading: number;\n setCurrentApprenantFichierId: (idapprenantFichier: number) => void;\n deleteFichier: (idapprenantFichier: number) => void;\n downloadFichier: (idapprenantFichier: number) => void;\n onAdd: () => void;\n}\n\nexport const ApprenantAutresDocuments: React.FunctionComponent = ({\n idapprenant,\n rowLoading,\n setCurrentApprenantFichierId,\n deleteFichier,\n downloadFichier,\n onAdd\n}) => {\n const { t } = useTl();\n const api = useApiService(ApprenantFichierApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { uploadDate: \"DESC\", fileName: \"ASC\" }\n });\n\n const searchFunc = React.useCallback(\n (nextSearch?: ApprenantFichierSearchDto) =>\n api.apprenantFichierBaseSearch({\n ApprenantFichierSearchDto: {\n ...nextSearch,\n idapprenant,\n excludedTypes: [\n ETypeApprenantFichier.AVIS_RESULTATS,\n ETypeApprenantFichier.AVIS_RESULTATS_1ERE_SESSION,\n ETypeApprenantFichier.AVIS_RESULTATS_2EME_SESSION,\n ETypeApprenantFichier.ATTESTATION_REUSSITE,\n ETypeApprenantFichier.CARTE_IDENTITE,\n ETypeApprenantFichier.CHARTE_ENGAGEMENT,\n ETypeApprenantFichier.DOSSIER_SCOLAIRE,\n ETypeApprenantFichier.FICHE_FSE,\n ETypeApprenantFichier.PF_ENTREPRISE,\n ETypeApprenantFichier.ROI_CARNET_PEDA\n ]\n }\n }),\n [api, idapprenant]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n React.useEffect(() => {\n subscribeToEvent(\"SEARCH_TABLE_REFRESH\", search);\n return () => unsubscribeEvent(\"SEARCH_TABLE_REFRESH\", search);\n }, [search, subscribeToEvent, unsubscribeEvent]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ApprenantFichierGridDto) => (\n \n setCurrentApprenantFichierId(row.idapprenantFichier)}\n loading={rowLoading === row.idapprenantFichier}\n disabled={!!rowLoading && rowLoading !== row.idapprenantFichier}\n />\n deleteFichier(row.idapprenantFichier)}\n loading={rowLoading === row.idapprenantFichier}\n disabled={!!rowLoading && rowLoading !== row.idapprenantFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeApprenantFichier\"\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Document),\n fieldName: \"fileName\",\n render: (row: ApprenantFichierGridDto) => (\n downloadFichier(row.idapprenantFichier)}\n rightIcon=\"download\"\n />\n )\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, setCurrentApprenantFichierId, t]\n );\n\n return (\n \n {\n e.stopPropagation();\n onAdd();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n );\n};\n","import { Colors } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { css } from \"styled-components\";\n\nimport { ApprenantFichierApi, ApprenantFichierGridDto, ApprenantFichierSearchDto } from \"../../../../../api\";\nimport { AddButton, BooleanColumn, DeleteButton, EditButton, LinkButton } from \"../../../../../components\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IApprenantDocumentsReglementairesProps {\n idapprenant: number;\n rowLoading: number;\n setCurrentApprenantFichierId: (idapprenantFichier: number) => void;\n deleteFichier: (idapprenantFichier: number) => void;\n downloadFichier: (idapprenantFichier: number) => void;\n onAdd: (typeAppreantFichier: string) => void;\n}\n\nexport const ApprenantDocumentsReglementaires: React.FunctionComponent = ({\n idapprenant,\n rowLoading,\n setCurrentApprenantFichierId,\n deleteFichier,\n downloadFichier,\n onAdd\n}) => {\n const { t, tUnsafe } = useTl();\n const api = useApiService(ApprenantFichierApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false\n });\n\n const searchFunc = React.useCallback(\n (nextSearch?: ApprenantFichierSearchDto) =>\n api.apprenantFichierSearchDocumentsReglementaires({\n idapprenant\n }),\n [api, idapprenant]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction: searchFunc,\n tableState,\n initialSearch: true\n });\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n React.useEffect(() => {\n subscribeToEvent(\"SEARCH_TABLE_REFRESH\", search);\n return () => unsubscribeEvent(\"SEARCH_TABLE_REFRESH\", search);\n }, [search, subscribeToEvent, unsubscribeEvent]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ApprenantFichierGridDto) => (\n \n {row.remis ? (\n <>\n setCurrentApprenantFichierId(row.idapprenantFichier)}\n loading={rowLoading === row.idapprenantFichier}\n disabled={!!rowLoading && rowLoading !== row.idapprenantFichier}\n />\n deleteFichier(row.idapprenantFichier)}\n loading={rowLoading === row.idapprenantFichier}\n disabled={!!rowLoading && rowLoading !== row.idapprenantFichier}\n />\n \n ) : (\n onAdd(row.typeApprenantFichierCode)}\n loading={rowLoading === row.idapprenantFichier}\n disabled={!!rowLoading && rowLoading !== row.idapprenantFichier}\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeApprenantFichier\",\n render: (row: ApprenantFichierGridDto) =>\n row.typeApprenantFichier ?? tUnsafe(`TypeApprenantFichier_${row.typeApprenantFichierCode}`)\n },\n {\n header: () => t(ETLCodes.Remis),\n fieldName: \"remis\",\n autoFitContent: true,\n alignment: \"center\",\n computed: true,\n render: (row: ApprenantFichierGridDto) => \n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.Annee),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Document),\n fieldName: \"fileName\",\n render: (row: ApprenantFichierGridDto) =>\n row.remis &&\n (!!row.idfichier ? (\n downloadFichier(row.idapprenantFichier)}\n rightIcon=\"download\"\n />\n ) : (\n t(ETLCodes.DocumentPhysique)\n ))\n }\n ],\n [deleteFichier, downloadFichier, onAdd, rowLoading, setCurrentApprenantFichierId, t, tUnsafe]\n );\n\n return (\n
\n css`\n & * {\n color: ${!row.remis ? Colors.RED3 + \" !important\" : null};\n }\n `}\n />\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\nimport { ApprenantDocumentDialogMode } from \".\";\n\nimport {\n ApprenantFichierApi,\n ApprenantFichierUploadDto,\n ApprenantFichierUploadDtoFromJSON,\n ETypeApprenantFichier\n} from \"../../../../../api\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IApprenantDocumentUploadDialogProps {\n idapprenant: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n excludedTypes: ETypeApprenantFichier[];\n mode: ApprenantDocumentDialogMode;\n typeApprenantFichier: string;\n}\n\nexport const ApprenantDocumentUploadDialog: React.FunctionComponent = ({\n idapprenant,\n dialogOpen,\n onClose,\n excludedTypes,\n mode,\n typeApprenantFichier\n}) => {\n const { t } = useTl();\n const api = useApiService(ApprenantFichierApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return ApprenantFichierUploadDtoFromJSON({ idapprenant });\n },\n saveApiFn: async (d: ApprenantFichierUploadDto) => {\n return api.apprenantFichierUploadApprenantFichier({ ApprenantFichierUploadDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idapprenant, onClose]\n )\n );\n\n const [typesApprenantFichier, tLoading, , rawTypesApprenantFichier] = useReferential(a =>\n a.referentialGetTypesApprenantFichier({ ETypeApprenantFichier: finalExcludedTypes })\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape(\n {\n idtypeApprenantFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateDebut: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.max(Yup.ref(\"dateFin\"), t(ETLCodes.DateDebutGreaterThanDateFin)) : schema\n ),\n dateFin: Yup.date()\n .nullable()\n .when(\"dateDebut\", (value, schema) =>\n !!value ? schema.min(Yup.ref(\"dateDebut\"), t(ETLCodes.DateFinGreaterThanDateDebut)) : schema\n ),\n file: Yup.object()\n .nullable()\n .shape({\n fileName:\n mode === \"REGLEMENTAIRES\"\n ? Yup.string().nullable()\n : Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64:\n mode === \"REGLEMENTAIRES\"\n ? Yup.string().nullable()\n : Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n idinscription: Yup.number()\n .nullable()\n .when(\"idtypeApprenantFichier\", (value, schema) => {\n if (!value) return schema;\n const typeCode = rawTypesApprenantFichier.find(t => +t.idValue === +value)?.keyValue;\n return typeCode === ETypeApprenantFichier.AVIS_RESULTATS ||\n typeCode === ETypeApprenantFichier.AVIS_RESULTATS_1ERE_SESSION ||\n typeCode === ETypeApprenantFichier.AVIS_RESULTATS_2EME_SESSION\n ? schema.required(t(ETLCodes.Required))\n : schema;\n })\n },\n [\n [\"dateFin\", \"dateDebut\"],\n [\"idinscription\", \"idtypeApprenantFichier\"]\n ]\n ),\n [mode, rawTypesApprenantFichier, t]\n );\n\n const finalExcludedTypes = React.useMemo(\n () =>\n !!typeApprenantFichier\n ? Object.values(ETypeApprenantFichier).filter(t => t !== typeApprenantFichier)\n : excludedTypes,\n [excludedTypes, typeApprenantFichier]\n );\n const [annees, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [inscriptions, iLoading] = useReferential(\n a => a.referentialGetInscriptionsApprenant({ idApprenant: idapprenant }),\n true,\n []\n );\n\n const fields = React.useMemo(() => {\n let fields = <>;\n switch (mode) {\n case \"REGLEMENTAIRES\":\n fields = (\n \n );\n break;\n case \"AVIS_ATTEST_PF\":\n fields = (\n \n );\n break;\n case \"AUTRES\":\n fields = (\n <>\n \n \n \n \n \n );\n break;\n }\n return fields;\n }, [aLoading, annees, iLoading, inscriptions, mode, t]);\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n {fields}\n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\nimport { ApprenantDocumentDialogMode } from \".\";\n\nimport { ApprenantFichierApi, ApprenantFichierDto, ETypeApprenantFichier } from \"../../../../../api\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IApprenantDocumentEditDialogProps {\n idapprenantFichier: number;\n idapprenant: number;\n onClose: (refresh?: boolean) => void;\n excludedTypes: ETypeApprenantFichier[];\n mode: ApprenantDocumentDialogMode;\n}\n\nexport const ApprenantDocumentEditDialog: React.FunctionComponent = ({\n idapprenantFichier,\n onClose,\n excludedTypes,\n mode,\n idapprenant\n}) => {\n const { t } = useTl();\n const api = useApiService(ApprenantFichierApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n const af = await api.apprenantFichierGetApprenantFichier({ id: idapprenantFichier });\n af.fileName = af.fileName ?? t(ETLCodes.DocumentPhysique);\n return af;\n },\n saveApiFn: async (d: ApprenantFichierDto) => {\n return api.apprenantFichierSaveApprenantFichier({ ApprenantFichierDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idapprenantFichier, onClose, t]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape(\n {\n idtypeApprenantFichier: mode === \"AUTRES\"\n ? Yup.number().nullable()\n : Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateDebut: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.max(Yup.ref(\"dateFin\"), t(ETLCodes.DateDebutGreaterThanDateFin)) : schema\n ),\n dateFin: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.min(Yup.ref(\"dateDebut\"), t(ETLCodes.DateFinGreaterThanDateDebut)) : schema\n )\n },\n [[\"dateFin\", \"dateFin\"]]\n ),\n [mode, t]\n );\n\n const [typesApprenantFichier, tLoading] = useReferential(a =>\n a.referentialGetTypesApprenantFichier({ ETypeApprenantFichier: excludedTypes })\n );\n const [annees, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [inscriptions, iLoading] = useReferential(\n a => a.referentialGetInscriptionsApprenant({ idApprenant: idapprenant }),\n true,\n []\n );\n\n const fields = React.useMemo(() => {\n let fields = <>;\n switch (mode) {\n case \"REGLEMENTAIRES\":\n fields = (\n \n );\n break;\n case \"AVIS_ATTEST_PF\":\n fields = (\n \n );\n break;\n case \"AUTRES\":\n fields = (\n <>\n \n \n \n \n \n );\n break;\n }\n return fields;\n }, [aLoading, annees, iLoading, inscriptions, mode, t]);\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n {fields}\n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\nimport { SuiviApi, SuiviFichierDto } from \"../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ISuiviDocumentEditDialogProps {\n idsuiviFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const SuiviDocumentEditDialog: React.FunctionComponent = ({\n idsuiviFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(SuiviApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.suiviGetSuiviFichier({\n id: idsuiviFichier\n });\n },\n saveApiFn: async (d: SuiviFichierDto) => {\n return api.suiviSaveSuiviFichier({\n SuiviFichierDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idsuiviFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeSuiviFichier: Yup.number().nullable()\n }),\n []\n );\n\n const [typesSuiviFichier, tLoading] = useReferential(a => a.referentialGetTypesSuiviFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\nimport { SuiviApi, SuiviFichierUploadDto, SuiviFichierUploadDtoFromJSON } from \"../../../../../api\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ISuiviDocumentUploadDialogProps {\n idsuivi: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const SuiviDocumentUploadDialog: React.FunctionComponent = ({\n idsuivi,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(SuiviApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return SuiviFichierUploadDtoFromJSON({ idsuivi });\n },\n saveApiFn: async (d: SuiviFichierUploadDto) => {\n return api.suiviUploadSuiviFichier({\n SuiviFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idsuivi, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeSuiviFichier: Yup.number().nullable(),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesSuiviFichier, tLoading] = useReferential(a => a.referentialGetTypesSuiviFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { SuiviApprenantApi, SuiviApprenantFichierDto } from \"../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ISuiviWalterDocumentEditDialogProps {\n idsuiviApprenantFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const SuiviWalterDocumentEditDialog: React.FunctionComponent = ({\n idsuiviApprenantFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(SuiviApprenantApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.suiviApprenantGetSuiviApprenantFichier({\n id: idsuiviApprenantFichier\n });\n },\n saveApiFn: async (d: SuiviApprenantFichierDto) => {\n return api.suiviApprenantSaveSuiviApprenantFichier({\n SuiviApprenantFichierDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idsuiviApprenantFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeSuiviFichier: Yup.number().nullable()\n }),\n []\n );\n\n const [typesSuiviFichier, tLoading] = useReferential(a => a.referentialGetTypesSuiviFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n SuiviApprenantApi,\n SuiviApprenantFichierUploadDto,\n SuiviApprenantFichierUploadDtoFromJSON\n} from \"../../../../../api\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ISuiviWalterDocumentUploadDialogProps {\n idsuivi: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const SuiviWalterDocumentUploadDialog: React.FunctionComponent = ({\n idsuivi,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(SuiviApprenantApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return SuiviApprenantFichierUploadDtoFromJSON({ idsuiviApprenant: idsuivi });\n },\n saveApiFn: async (d: SuiviApprenantFichierUploadDto) => {\n return api.suiviApprenantUploadSuiviApprenantFichier({\n SuiviApprenantFichierUploadDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idsuivi, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeSuiviFichier: Yup.number().nullable(),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesSuiviFichier, tLoading] = useReferential(a => a.referentialGetTypesSuiviFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { isAfter, isBefore, isSameDay } from \"date-fns\";\nimport {\n ButtonContainer,\n DataTable,\n FieldSet,\n IDataTableColumn,\n showSuccess,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useParams } from \"react-router\";\nimport { InscriptionSuspensionDetailDialog } from \".\";\nimport {\n InscriptionApi,\n InscriptionSuspensionApi,\n InscriptionSuspensionDto,\n InscriptionSuspensionDtoFromJSON,\n InscriptionSuspensionSearchDto\n} from \"../../../../../../api\";\nimport { AddButton, DeleteButton, EditButton } from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useManageError, useTheme, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IInscriptionSuspensionListProps {}\n\nexport const InscriptionSuspensionList: React.FunctionComponent = props => {\n const { t } = useTl();\n const { ifapmeSide } = useTheme();\n const { inscriptionId } = useParams<{ inscriptionId: string; state: string }>();\n const isHope = React.useMemo(() => ifapmeSide === \"hope\", [ifapmeSide]);\n const idinscription = React.useMemo(() => +inscriptionId, [inscriptionId]);\n const [currentSuspension, setCurrentSuspension] = React.useState(null);\n const [deleteLoading, setDeleteLoading] = React.useState(null);\n const api = useApiService(InscriptionSuspensionApi);\n const inscriptionApi = useApiService(InscriptionApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { dateDebut: \"DESC\" }\n });\n\n const { totalCount, data } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: InscriptionSuspensionSearchDto) => {\n sObj.idinscription = idinscription;\n return api.inscriptionSuspensionBaseSearch({ InscriptionSuspensionSearchDto: sObj });\n },\n [api, idinscription]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onEditClick = React.useCallback((dto: InscriptionSuspensionDto) => {\n setCurrentSuspension(dto);\n }, []);\n\n const { showDialogPromise } = useDialog();\n const { manageError } = useManageError();\n const onDeleteClick = React.useCallback(\n async (dto: InscriptionSuspensionDto) => {\n const result = await showDialogPromise({\n title: t(ETLCodes.DeleteDialogTitle),\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result !== \"yes\") return;\n\n try {\n setDeleteLoading(dto.idinscriptionSuspension);\n await api.inscriptionSuspensionDeleteInscriptionSuspension({\n idinscriptionSuspension: dto.idinscriptionSuspension\n });\n showSuccess(t(ETLCodes.SuspensionInscriptionSupprimee));\n } catch (e) {\n manageError(e);\n } finally {\n search();\n setDeleteLoading(null);\n }\n },\n [api, manageError, search, showDialogPromise, t]\n );\n\n const fetchStatut = React.useCallback(async () => {\n if (!idinscription) return null;\n return await inscriptionApi.inscriptionGetStatut({ id: idinscription });\n }, [inscriptionApi, idinscription]);\n const { data: statut, isFetching: statutLoading } = useQuery([\"inscription-statut\", idinscription], fetchStatut);\n const disabled = React.useMemo(() => !statut || ![\"En cours\", \"Suspendue\"].includes(statut), [statut]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: InscriptionSuspensionDto) => (\n \n onEditClick(row)}\n disabled={!!deleteLoading || disabled || isHope}\n />\n onDeleteClick(row)}\n loading={row.idinscriptionSuspension === deleteLoading}\n disabled={(!!deleteLoading && row.idinscriptionSuspension !== deleteLoading) || disabled || isHope}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n },\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"remarque\"\n }\n ],\n [deleteLoading, disabled, isHope, onDeleteClick, onEditClick, t]\n );\n\n const onAddClick = React.useCallback(() => {\n setCurrentSuspension(InscriptionSuspensionDtoFromJSON({ idinscription, idinscriptionSuspension: 0 }));\n }, [idinscription]);\n\n const onClose = React.useCallback(\n (toSave: InscriptionSuspensionDto) => {\n if (!!toSave) {\n search();\n }\n setCurrentSuspension(null);\n },\n [search]\n );\n\n const alreadySuspendedText = React.useMemo(\n () =>\n data &&\n data.some(\n s =>\n (isBefore(s.dateDebut, new Date()) || isSameDay(s.dateDebut, new Date())) &&\n (isSameDay(s.dateFin, new Date()) || isAfter(s.dateFin, new Date()))\n )\n ? t(ETLCodes.InscriptionAlreadySuspended)\n : null,\n [data, t]\n );\n\n const soonSuspendedText = React.useMemo(\n () => (data && data.some(s => isAfter(s.dateDebut, new Date())) ? t(ETLCodes.InscriptionSoonSuspended) : null),\n [data, t]\n );\n\n return (\n <>\n \n )\n }\n >\n
\n \n {!!currentSuspension && (\n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { InscriptionSuspensionApi, InscriptionSuspensionDto } from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport styled from \"styled-components\";\nimport { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGWalterDateMaskInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { FGTextAreaInput, FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 500px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IInscriptionSuspensionDetailDialogProps {\n dialogOpen: boolean;\n onClose: (toSave?: InscriptionSuspensionDto) => void;\n currentSuspension: InscriptionSuspensionDto;\n}\n\nexport const InscriptionSuspensionDetailDialog: React.FunctionComponent = ({\n currentSuspension,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(InscriptionSuspensionApi);\n\n const { data, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => currentSuspension,\n saveApiFn: d => api.inscriptionSuspensionSaveInscriptionSuspension({ InscriptionSuspensionDto: d }),\n onSaved: d => onClose(d),\n serverValidationRootKey: \"Dto\"\n }),\n [api, currentSuspension, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape(\n {\n dateDebut: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.max(Yup.ref(\"dateFin\"), t(ETLCodes.DateDebutGreaterThanDateFin)) : schema\n )\n .required(t(ETLCodes.Required)),\n dateFin: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.min(Yup.ref(\"dateDebut\"), t(ETLCodes.DateFinGreaterThanDateDebut)) : schema\n )\n },\n [[\"dateFin\", \"dateFin\"]]\n ),\n [t]\n );\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n saving={saving}\n minLabelWidth={100}\n validationErrors={validationErrors}\n preventDefaultSaveOnEnter\n >\n \n \n \n \n \n \n
\n
\n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\nimport { InscriptionSuspensionList } from \".\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\n\nexport interface IInscriptionSuspensionSwitchProps {}\n\nexport const InscriptionSuspensionSwitch: React.FunctionComponent = props => {\n return (\n \n \n \n );\n};\n","import { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport {\n ApprenantRepresentantsSearch,\n FcbRepresentantApprenantsliesDto,\n RepresentantApprenantLiesApi\n} from \"../../../../api\";\nimport { ApprenantTooltip } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IRepresentantApprenantLiesListPageProps {}\n\nexport const RepresentantApprenantLiesListPage: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string; state: string }>();\n const idRepresentant = React.useMemo(() => +id, [id]);\n const { t } = useTl();\n const api = useApiService(RepresentantApprenantLiesApi);\n\n const tableState = useGridState({\n sortKeys: { nom: \"ASC\" },\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const searchFunction = React.useCallback(\n (sObj?: ApprenantRepresentantsSearch) => {\n sObj.idrepresentant = +idRepresentant;\n return api.representantApprenantLiesBaseSearch({ ApprenantRepresentantsSearch: sObj });\n },\n [api, idRepresentant]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const { totalCount } = tableState;\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Identifiant),\n computed: true,\n fieldName: \"info\",\n render: (value: FcbRepresentantApprenantsliesDto) => ,\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.LienParente),\n fieldName: \"lienParente\"\n }\n ],\n [t]\n );\n\n return (\n
\n \n
\n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { RepresentantApprenantLiesListPage } from \"./RepresentantApprenantLiesListPage\";\n\nexport interface IRepresentantAppernantLiesSwitchProps {}\n\nexport const RepresentantAppernantLiesSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n );\n};\n","import * as React from \"react\";\nimport { matchPath, useLocation } from \"react-router\";\n\nimport { RepresentantDetailDoublons, RepresentantDetailPage } from \".\";\nimport { RepresentantDoublonSearchFromJSON } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { useTabMessage } from \"../../../../hooks\";\n\nexport interface IRepresentantSwitchProps {}\n\nexport const RepresentantSwitch: React.FunctionComponent = () => {\n const [sObj, setSObj] = React.useState(RepresentantDoublonSearchFromJSON({}));\n const { pathname, search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { messageValue, clearMessageValue } = useTabMessage(cfs);\n\n React.useEffect(() => {\n if (!!messageValue) {\n setSObj(messageValue);\n clearMessageValue();\n }\n }, [clearMessageValue, messageValue]);\n\n if (\n matchPath(pathname, {\n path: `${ERoutes.representant}/:id/:tab/checkDoublons`\n })\n ) {\n return ;\n } else {\n return ;\n }\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\n\nimport { RepresentantApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { RepresentantAppernantLiesSwitch } from \"./RepresentantAppernantLiesSwitch\";\nimport { RepresentantSwitch } from \"./RepresentantSwitch\";\n\nexport interface IRepresentantItemPageProps {}\n\nexport const RepresentantItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab } = useParams<{ id: string; tab: string; state: string }>();\n const { search } = useLocation();\n const representantApi = useApiService(RepresentantApi);\n const [displayName] = useApiEffect(() => representantApi.representantGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.representant}/${id}/${newTabId}${search}`)}\n renderActiveTabPanelOnly\n selectedTabId={tab}\n >\n \n } />\n }\n />\n \n \n );\n};\n","import { FormikProps } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport {\r\n FGCustomPanel,\r\n FGEmpty,\r\n FGListen,\r\n FGMaskInput,\r\n FGTextAreaInput,\r\n FGTextInput,\r\n FieldGroup,\r\n IFGContext,\r\n useDebouncedCallback\r\n} from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory, useLocation, useParams } from \"react-router\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport {\r\n AdresseDtoFromJSON,\r\n FcbRepresentantDto,\r\n FcbRepresentantDtoFromJSON,\r\n RepresentantApi,\r\n RepresentantDoublonSearch\r\n} from \"../../../../api\";\r\nimport { ERoutes } from \"../../../../AppRouter\";\r\nimport {\r\n AdresseDoublonErrorLink,\r\n CommuneSelect,\r\n FGPersonneCodePostal,\r\n FGWalterDateMaskInput,\r\n FGWalterSelectInput,\r\n LocaliteSelect,\r\n NationaliteSelect,\r\n SmallFormGenerator,\r\n StyledError\r\n} from \"../../../../components\";\r\nimport FGCopyTextInput from \"../../../../components/formGenerator/FGCopyTextInput\";\r\nimport { useBeIdCardContext, useDialog } from \"../../../../contexts\";\r\nimport { useApiService, useCrudApi, useTabMessage, useTheme, useTl } from \"../../../../hooks\";\r\nimport { useReferential } from \"../../../../hooks/useReferential\";\r\nimport { ETLCodes } from \"../../../../locales\";\r\nimport { belgianIdValidate } from \"../../../../utils/belgianIdValidate\";\r\nimport { phoneRegex } from \"../../../../utils/phoneRegex\";\r\nimport pick from \"lodash/pick\";\r\n\r\nexport interface IRepresentantDetailPageProps {\r\n baseData: RepresentantDoublonSearch;\r\n}\r\n\r\nexport const RepresentantDetailPage: React.FunctionComponent = ({ baseData }) => {\r\n const { t } = useTl();\r\n const api = useApiService(RepresentantApi);\r\n const history = useHistory();\r\n const { id, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\r\n const { card } = useBeIdCardContext();\r\n const genderMapping = React.useMemo(() => ({ M: \"H\", F: \"F\", V: \"F\", W: \"F\" }), []);\r\n const [cardDataDifferent, setCardDataDifferent] = React.useState(false);\r\n const { showDialogPromise } = useDialog();\r\n const { search } = useLocation();\r\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\r\n const { sendMessage } = useTabMessage(cfs);\r\n const { theme } = useTheme();\r\n\r\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi(\r\n React.useMemo(\r\n () => ({\r\n getApiFn: () => {\r\n let newData = {};\r\n if (baseData) {\r\n newData = { ...baseData };\r\n }\r\n if (card) {\r\n newData = {\r\n ...newData,\r\n nom: card?.surname,\r\n prenom: card?.firstName,\r\n dateNaissance: card?.dateOfBirthParsed,\r\n nationalite: baseData?.nationalite,\r\n numeroNational: card?.nationalNumber,\r\n adresseNaissance: card?.locationOfBirth,\r\n codesexe: card?.gender ? genderMapping[card?.gender] : null,\r\n adresseRepresentant: !!card\r\n ? AdresseDtoFromJSON({\r\n adresse: card?.addressStreetAndNumber,\r\n codePostalText: card?.addressZip\r\n })\r\n : null\r\n };\r\n }\r\n return +id <= 0\r\n ? FcbRepresentantDtoFromJSON({\r\n ...newData,\r\n idRepresentant: 0\r\n })\r\n : api.representantGet({ id: +id });\r\n },\r\n saveApiFn: d => api.representantSave({ FcbRepresentantDto: d }),\r\n onSaved: d => sendMessage(d.idrepresentant, true),\r\n onSavedRoute: d => `${ERoutes.representant}`,\r\n deleteApiFn: d => api.representantDelete({ id: d.idrepresentant }),\r\n onDeletedRoute: () => ERoutes.representant\r\n }),\r\n [api, baseData, card, genderMapping, id, sendMessage]\r\n )\r\n );\r\n\r\n const [sexe, loadingSexe] = useReferential(a => a.referentialGetSexe(), false, []);\r\n const [pays, loadingPays] = useReferential(a => a.referentialGetPays(), false, []);\r\n const [hasDoublons, setHasDoublons] = React.useState(false);\r\n const checkDoublons = React.useCallback(\r\n async values => {\r\n const res = await api.representantCheckDoublons({ FcbRepresentantDto: values });\r\n setHasDoublons(!res.isValid);\r\n },\r\n [api]\r\n );\r\n const debouncedCheckDoublons = useDebouncedCallback(checkDoublons, 1000);\r\n\r\n const askDataDifferent = React.useCallback(async () => {\r\n const result = await showDialogPromise({\r\n message: t(ETLCodes.RepresentantIdCardIsDifferent)\r\n });\r\n if (result === \"yes\") {\r\n setCardDataDifferent(true);\r\n }\r\n }, [showDialogPromise, t]);\r\n\r\n const canUseCardData = React.useMemo(() => {\r\n if (+id > 0) {\r\n return !data?.numeroNational || data?.numeroNational === card?.nationalNumber;\r\n }\r\n\r\n return false;\r\n }, [card?.nationalNumber, data?.numeroNational, id]);\r\n\r\n React.useEffect(() => {\r\n if (data && card) {\r\n const cardObj = FcbRepresentantDtoFromJSON({\r\n nom: card?.surname.toUpperCase(),\r\n prenom: card?.firstName,\r\n dateNaissance: card?.dateOfBirthParsed,\r\n numeroNational: card?.nationalNumber,\r\n adresseNaissance: card?.locationOfBirth,\r\n photo: card?.photoB64,\r\n codesexe: card?.gender ? genderMapping[card?.gender] : null,\r\n adresse: card?.addressStreetAndNumber,\r\n codePostal: card?.addressZip\r\n });\r\n\r\n const propsToPick = [\"nom\", \"prenom\", \"dateNaissance\", \"registreNational\", \"adresseNaissannce\", \"codesexe\"];\r\n const cardBirthdate = new Date(card.dateOfBirthParsed);\r\n const cardBirthdateString = `${cardBirthdate.getDate()}/${cardBirthdate.getMonth() +\r\n 1}/${cardBirthdate.getFullYear()}`;\r\n const dataBirthdateString = `${data.dateNaissance.getDate()}/${data.dateNaissance.getMonth() +\r\n 1}/${data.dateNaissance.getFullYear()}`;\r\n if (\r\n !isEqual(pick(cardObj, propsToPick), pick(data, propsToPick)) ||\r\n cardBirthdateString !== dataBirthdateString\r\n ) {\r\n if (canUseCardData) {\r\n askDataDifferent();\r\n }\r\n }\r\n }\r\n }, [askDataDifferent, canUseCardData, card, data, genderMapping, t]);\r\n\r\n const formikRef = React.useRef>();\r\n\r\n React.useEffect(() => {\r\n if (cardDataDifferent) {\r\n setCardDataDifferent(false);\r\n formikRef?.current?.setValues(\r\n FcbRepresentantDtoFromJSON({\r\n ...data,\r\n nom: card?.surname ?? data.nom,\r\n prenom: card?.firstName ?? data.prenom,\r\n dateNaissance: card?.dateOfBirthParsed ?? data.dateNaissance,\r\n numeroNational: card?.nationalNumber ?? data.numeroNational,\r\n adresseNaissance: card?.locationOfBirth,\r\n codesexe: card?.gender ? genderMapping[card?.gender] : data.codesexe,\r\n adresseRepresentant: AdresseDtoFromJSON({\r\n adresse: card?.addressStreetAndNumber,\r\n codePostalText: card?.addressZip\r\n })\r\n }),\r\n true\r\n );\r\n }\r\n }, [\r\n card?.addressStreetAndNumber,\r\n card?.addressZip,\r\n card?.cardNumber,\r\n card?.dateOfBirthParsed,\r\n card?.firstName,\r\n card?.gender,\r\n card?.locationOfBirth,\r\n card?.nationalNumber,\r\n card?.photoB64,\r\n card?.surname,\r\n cardDataDifferent,\r\n data,\r\n genderMapping,\r\n saveItem,\r\n formikRef,\r\n card?.nationality\r\n ]);\r\n\r\n const idpersonne = React.useMemo(() => data?.idpersonne ?? 0, [data?.idpersonne]);\r\n const [personneTelephones, personneTelephonesLoading, , rawPersonneTelephones] = useReferential(\r\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\r\n false,\r\n [idpersonne]\r\n );\r\n const personneTelephonesPerso = React.useMemo(\r\n () =>\r\n personneTelephones?.filter(\r\n t => rawPersonneTelephones?.find(rt => +rt.idValue === +t.value)?.keyValue === \"PERSO\"\r\n ),\r\n [personneTelephones, rawPersonneTelephones]\r\n );\r\n const personneTelephonesPro = React.useMemo(\r\n () =>\r\n personneTelephones?.filter(t => rawPersonneTelephones?.find(rt => +rt.idValue === +t.value)?.keyValue === \"PRO\"),\r\n [personneTelephones, rawPersonneTelephones]\r\n );\r\n const [personneGsms, personneGsmsLoading] = useReferential(a => a.referentialGetGsmsPersonne({ idpersonne }), false, [\r\n idpersonne\r\n ]);\r\n const [personneEmails, personneEmailsLoading] = useReferential(\r\n a => a.referentialGetEmailsPersonne({ idpersonne }),\r\n false,\r\n [idpersonne]\r\n );\r\n\r\n const FormSchema = React.useMemo(() => {\r\n return Yup.object().shape({\r\n nom: Yup.string().required(t(ETLCodes.Required)),\r\n prenom: Yup.string().required(t(ETLCodes.Required)),\r\n adresseRepresentant: Yup.object().shape(\r\n {\r\n adresse: Yup.string().test(\"adresse-required\", t(ETLCodes.AtLeastOneRepresentantField), function(\r\n value,\r\n context: any\r\n ) {\r\n if (this.parent.idrepresentant > 0 || !!context.from[1].value.idpersonne) {\r\n return (\r\n !!value ||\r\n !!context.from[1].value.telephoneRepresentant?.idtelephone ||\r\n !!context.from[1].value.telephoneProRepresentant?.idtelephone ||\r\n !!context.from[1].value.gsmRepresentant?.idtelephone ||\r\n !!context.from[1].value.emailRepresentant?.idemail\r\n );\r\n }\r\n if ((!this.parent.idrepresentant || this.parent.idrepresentant <= 0) && !context.from[1].value.idpersonne) {\r\n return (\r\n !!value ||\r\n !!context.from[1].value.telephoneRepresentant?.numero ||\r\n !!context.from[1].value.telephoneProRepresentant?.numero ||\r\n !!context.from[1].value.gsmRepresentant?.numero ||\r\n !!context.from[1].value.emailRepresentant?.adresseEmail\r\n );\r\n }\r\n }),\r\n pays: Yup.string()\r\n .nullable()\r\n .when(\"adresse\", {\r\n is: adresse => !!adresse,\r\n then: schema => schema.required(t(ETLCodes.Required))\r\n })\r\n },\r\n [[\"adresse\", \"pays\"]]\r\n ),\r\n telephoneRepresentant: Yup.object().shape({\r\n idtelephone: Yup.number()\r\n .nullable()\r\n .test(\"telid-required\", t(ETLCodes.AtLeastOneRepresentantField), function(value, context: any) {\r\n if ((!this.parent.idrepresentant || this.parent.idrepresentant <= 0) && !context.from[1].value.idpersonne)\r\n return true;\r\n return (\r\n !!value ||\r\n !!context.from[1].value.adresseRepresentant?.adresse ||\r\n !!context.from[1].value.telephoneProRepresentant?.idtelephone ||\r\n !!context.from[1].value.gsmRepresentant?.idtelephone ||\r\n !!context.from[1].value.emailRepresentant?.idemail\r\n );\r\n }),\r\n numero: Yup.string()\r\n .nullable()\r\n .test(\"tel-required\", t(ETLCodes.AtLeastOneRepresentantField), function(value, context: any) {\r\n if (this.parent.idrepresentant > 0 || !!context.from[1].value.idpersonne) return true;\r\n return (\r\n !!value ||\r\n !!context.from[1].value.adresseRepresentant?.adresse ||\r\n !!context.from[1].value.telephoneProRepresentant?.numero ||\r\n !!context.from[1].value.gsmRepresentant?.numero ||\r\n !!context.from[1].value.emailRepresentant?.adresseEmail\r\n );\r\n })\r\n .test(\"tel-valid\", t(ETLCodes.ErrorPhoneRegex), function(value, context: any) {\r\n if (this.parent.idrepresentant > 0 || !value || !!context.from[1].value.idpersonne) return true;\r\n const numero = value as string;\r\n return !!numero.match(phoneRegex);\r\n })\r\n }),\r\n telephoneProRepresentant: Yup.object().shape({\r\n idtelephone: Yup.number()\r\n .nullable()\r\n .test(\"telid-required\", t(ETLCodes.AtLeastOneRepresentantField), function(value, context: any) {\r\n if ((!this.parent.idrepresentant || this.parent.idrepresentant <= 0) && !context.from[1].value.idpersonne)\r\n return true;\r\n return (\r\n !!value ||\r\n !!context.from[1].value.adresseRepresentant?.adresse ||\r\n !!context.from[1].value.telephoneRepresentant?.idtelephone ||\r\n !!context.from[1].value.gsmRepresentant?.idtelephone ||\r\n !!context.from[1].value.emailRepresentant?.idemail\r\n );\r\n }),\r\n numero: Yup.string()\r\n .nullable()\r\n .test(\"tel-required\", t(ETLCodes.AtLeastOneRepresentantField), function(value, context: any) {\r\n if (this.parent.idrepresentant > 0 || !!context.from[1].value.idpersonne) return true;\r\n return (\r\n !!value ||\r\n !!context.from[1].value.adresseRepresentant?.adresse ||\r\n !!context.from[1].value.telephoneRepresentant?.numero ||\r\n !!context.from[1].value.gsmRepresentant?.numero ||\r\n !!context.from[1].value.emailRepresentant?.adresseEmail\r\n );\r\n })\r\n .test(\"tel-valid\", t(ETLCodes.ErrorPhoneRegex), function(value, context: any) {\r\n if (this.parent.idrepresentant > 0 || !value || !!context.from[1].value.idpersonne) return true;\r\n const numero = value as string;\r\n return !!numero.match(phoneRegex);\r\n })\r\n }),\r\n gsmRepresentant: Yup.object().shape({\r\n idtelephone: Yup.number()\r\n .nullable()\r\n .test(\"gsmid-required\", t(ETLCodes.AtLeastOneRepresentantField), function(value, context: any) {\r\n if ((!this.parent.idrepresentant || this.parent.idrepresentant <= 0) && !context.from[1].value.idpersonne)\r\n return true;\r\n return (\r\n !!value ||\r\n !!context.from[1].value.adresseRepresentant?.adresse ||\r\n !!context.from[1].value.telephoneRepresentant?.idtelephone ||\r\n !!context.from[1].value.telephoneProRepresentant?.idtelephone ||\r\n !!context.from[1].value.emailRepresentant?.idemail\r\n );\r\n }),\r\n numero: Yup.string()\r\n .nullable()\r\n .test(\"gsm-required\", t(ETLCodes.AtLeastOneRepresentantField), function(value, context: any) {\r\n if (this.parent.idrepresentant > 0 || !!context.from[1].value.idpersonne) return true;\r\n return (\r\n !!value ||\r\n !!context.from[1].value.adresseRepresentant?.adresse ||\r\n !!context.from[1].value.telephoneRepresentant?.numero ||\r\n !!context.from[1].value.telephoneProRepresentant?.numero ||\r\n !!context.from[1].value.emailRepresentant?.adresseEmail\r\n );\r\n })\r\n .test(\"gsm-valid\", t(ETLCodes.ErrorPhoneRegex), function(value, context: any) {\r\n if (this.parent.idrepresentant > 0 || !value || !!context.from[1].value.idpersonne) return true;\r\n const numero = value as string;\r\n return !!numero.match(phoneRegex);\r\n })\r\n }),\r\n emailRepresentant: Yup.object().shape({\r\n idemail: Yup.number()\r\n .nullable()\r\n .test(\"emailid-required\", t(ETLCodes.AtLeastOneRepresentantField), function(value, context: any) {\r\n if ((!this.parent.idrepresentant || this.parent.idrepresentant <= 0) && !context.from[1].value.idpersonne)\r\n return true;\r\n return (\r\n !!value ||\r\n !!context.from[1].value.adresseRepresentant?.adresse ||\r\n !!context.from[1].value.telephoneRepresentant?.idtelephone ||\r\n !!context.from[1].value.telephoneProRepresentant?.idtelephone ||\r\n !!context.from[1].value.gsmRepresentant?.idtelephone\r\n );\r\n }),\r\n adresseEmail: Yup.string()\r\n .nullable()\r\n .email(t(ETLCodes.InvalidEmail))\r\n .test(\"gsm-required\", t(ETLCodes.AtLeastOneRepresentantField), function(value, context: any) {\r\n if (this.parent.idrepresentant > 0 || !!context.from[1].value.idpersonne) return true;\r\n return (\r\n !!value ||\r\n !!context.from[1].value.adresseRepresentant?.adresse ||\r\n !!context.from[1].value.telephoneRepresentant?.numero ||\r\n !!context.from[1].value.telephoneProRepresentant?.numero ||\r\n !!context.from[1].value.gsmRepresentant?.numero\r\n );\r\n })\r\n }),\r\n codesexe: Yup.string().required(t(ETLCodes.Required)),\r\n nationalite: Yup.string().required(t(ETLCodes.Required)),\r\n dateNaissance: Yup.date().nullable(),\r\n numeroNational: Yup.string()\r\n // .when(\"nationalite\", (value, schema) =>\r\n // value && value === \"BE\" ? schema.required(t(ETLCodes.Required)) : schema\r\n // )\r\n .test(\"registre-checksum\", t(ETLCodes.NotValid), function(value) {\r\n if (!value || value === \"\") return true;\r\n\r\n var millenial = false;\r\n if (this.parent.dateNaissance) {\r\n const parsedDateNaissance = new Date(this.parent.dateNaissance);\r\n if (parsedDateNaissance.getFullYear() > 1999) {\r\n millenial = true;\r\n }\r\n }\r\n\r\n return belgianIdValidate(value, millenial);\r\n })\r\n });\r\n }, [t]);\r\n\r\n const isRegNatDateNaiss = React.useCallback((ctx: IFGContext) => {\r\n const value = ctx.formik.values.numeroNational?.replace(\".\", \"\")?.replace(\"-\", \"\");\r\n if (ctx.formik.values.dateNaissance && ctx.formik.values.nationalite === \"BE\") {\r\n const parsedDateNaissance = new Date(ctx.formik.values.dateNaissance);\r\n if (parsedDateNaissance && value) {\r\n const year = value.slice(0, 2);\r\n const month = value.slice(2, 4);\r\n const day = value.slice(4, 6);\r\n if (\r\n +year !==\r\n +parsedDateNaissance\r\n .getFullYear()\r\n .toString()\r\n .substr(2, 2)\r\n ) {\r\n return false;\r\n }\r\n if (+month !== 0 && +month !== parsedDateNaissance.getMonth() + 1) {\r\n return false;\r\n }\r\n if (+day !== 0 && +day !== parsedDateNaissance.getDate()) {\r\n return false;\r\n }\r\n return true;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }, []);\r\n\r\n const isRegNatGenre = React.useCallback((ctx: IFGContext) => {\r\n const value = ctx.formik.values.numeroNational?.replace(\".\", \"\")?.replace(\"-\", \"\");\r\n if (value && ctx.formik.values.codesexe !== \"X\" && ctx.formik.values.nationalite === \"BE\") {\r\n const code = +value.slice(7, 9) % 2 === 0 ? \"F\" : \"H\";\r\n return ctx.formik.values.codesexe === code;\r\n }\r\n return true;\r\n }, []);\r\n\r\n const isFullCreation = React.useMemo(() => +id <= 0 && !data?.idpersonne, [data?.idpersonne, id]);\r\n\r\n return (\r\n data && (\r\n history.push(ERoutes.representant)}\r\n onDelete={deleteItem}\r\n showDeleteButton={+id > 0}\r\n saving={saving}\r\n deleting={deleting}\r\n formikInnerRef={i => (formikRef.current = i)}\r\n forceEnableSave={Object.values(baseData).some(el => !!el)}\r\n >\r\n debouncedCheckDoublons(formik?.values)} />\r\n debouncedCheckDoublons(formik?.values)} />\r\n debouncedCheckDoublons(formik?.values)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n <>\r\n {isRegNatDateNaiss(ctx) ? null : (\r\n {t(ETLCodes.DateDeNaissanceNeCorrespondPas)}\r\n )}\r\n {isRegNatGenre(ctx) ? null : (\r\n {t(ETLCodes.GenreNeCorrespondPas)}\r\n )}\r\n \r\n )}\r\n />\r\n \r\n !!ctx.formik?.values?.nationalite && ctx.formik?.values?.nationalite !== \"BE\"}\r\n />\r\n \r\n \r\n {data?.hasAddressDoublons && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ctx => (\r\n \r\n )}\r\n \r\n \r\n \r\n {ctx => (\r\n \r\n )}\r\n \r\n \r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {isFullCreation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n {ctx => }\r\n \r\n \r\n )\r\n );\r\n};\r\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n ButtonContainer,\n ButtonsBloc,\n DataTable,\n FGCustomPanel,\n FGMaskInput,\n FGTextInput,\n FieldGroup,\n FieldSet,\n InlineButtonContainer,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation } from \"react-router\";\n\nimport {\n FcbRepresentantDoublonGridDto,\n RepresentantDoublonApi,\n RepresentantDoublonSearch,\n RepresentantDoublonSearchFromJSON\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n AddButton,\n CancelButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator,\n UnordoredListColumn,\n ViewButton\n} from \"../../../../components\";\nimport { useBeIdCardContext, useDialog } from \"../../../../contexts\";\nimport { useApiService, useTabMessage, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IRepresentantDetailDoublonsProps {\n setBaseData: React.Dispatch>;\n}\n\nexport const RepresentantDetailDoublons: React.FunctionComponent = ({\n setBaseData\n}) => {\n const { t } = useTl();\n const dialogContext = useDialog();\n const history = useHistory();\n const { search: searchQ } = useLocation();\n const [nationalites, nLoading] = useReferential(a => a.referentialGetAllNationalite(), false, []);\n const api = useApiService(RepresentantDoublonApi);\n const { foundRowsData } = useBeIdCardContext();\n const cfs = React.useMemo(() => new URLSearchParams(searchQ).get(\"cfs\"), [searchQ]);\n const { messageValue: baseSObj } = useTabMessage(cfs);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [10],\n pageSize: 10,\n sortKeys: { nom: \"ASC\" }\n });\n\n const initialData = React.useMemo(() => {\n const onlyRegNatNb =\n !foundRowsData ||\n (!foundRowsData.nom && !foundRowsData.prenom && !foundRowsData.dateNaissance && foundRowsData.nationalNb);\n return RepresentantDoublonSearchFromJSON({\n nom: baseSObj?.nom?.value ?? foundRowsData?.nom,\n prenom: baseSObj?.prenom?.value ?? foundRowsData?.prenom,\n registreNational: baseSObj?.registreNational?.value ?? (!onlyRegNatNb ? foundRowsData?.nationalNb : undefined),\n dateNaissance: baseSObj?.dateNaissance?.value ?? foundRowsData?.dateNaissance,\n numeroNational: baseSObj?.numeroNational?.value,\n nationalite: baseSObj?.nationalite?.value,\n forceSkip: 0,\n forceTake: 10\n });\n }, [\n baseSObj?.dateNaissance?.value,\n baseSObj?.nationalite?.value,\n baseSObj?.nom?.value,\n baseSObj?.numeroNational?.value,\n baseSObj?.prenom?.value,\n baseSObj?.registreNational?.value,\n foundRowsData\n ]);\n\n const { totalCount } = tableState;\n const searchFunction = React.useCallback(\n (sObj?: RepresentantDoublonSearch) => {\n return api.representantDoublonBaseSearch({ RepresentantDoublonSearch: sObj });\n },\n [api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n\n React.useEffect(() => {\n if (foundRowsData || baseSObj) {\n search(initialData);\n }\n }, [baseSObj, foundRowsData, initialData, search]);\n const add = React.useCallback(() => {\n if (totalCount && totalCount > 0) {\n dialogContext.showDialog({\n message: t(ETLCodes.AddConfirmMessage),\n onConfirmed: async () => {\n history.push(`${ERoutes.representant}/0/detail/edit${searchQ}`);\n }\n });\n } else {\n history.push(`${ERoutes.representant}/0/detail/edit${searchQ}`);\n }\n }, [dialogContext, history, searchQ, t, totalCount]);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRepresentantDoublonGridDto) => (\n \n {row.isRepresentant ? (\n <>\n history.push(`${ERoutes.representant}/${row.idrepresentant}/detail/view`)}\n />\n history.push(`${ERoutes.representant}/${row.idrepresentant}/detail/edit`)}\n />\n \n ) : (\n {\n setBaseData({ ...row });\n add();\n }}\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.NumeroNational),\n fieldName: \"registreNational\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\"\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Nationalite),\n fieldName: \"nationalite\"\n }\n // {\n // header: () => t(ETLCodes.Forme),\n // fieldName: \"forme\",\n // render: (row: FcbRepresentantDoublonGridDto) => (\n // \n // )\n // }\n ],\n [add, history, setBaseData, t]\n );\n return (\n
\n search(c)}\n editMode\n hideButtons={true}\n onCancel={() => history.push(`${ERoutes.representant}`)}\n >\n \n \n \n \n \n \n \n \n \n {ctx => (\n \n \n \n history.push(`${ERoutes.representant}`)} />\n
\n );\n};\n","import * as React from \"react\";\nimport { ButtonContainer, IDataTableColumn, showError } from \"nsitools-react\";\nimport { useTl, useApiService, useTheme, useAbortableApiServiceFactory } from \"../../../../hooks\";\nimport { useHistory } from \"react-router\";\nimport { ViewButton, EditButton, SearchTablePage, SmsButton, EmailButton } from \"../../../../components\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { FcbRepresentantGridDto, RepresentantSearch, RepresentantApi, ETypeDestinataireSms } from \"../../../../api\";\nimport { Checkbox, Spinner } from \"@blueprintjs/core\";\nimport { useRouteParamsContext } from \"../../../../contexts\";\n\nexport interface IRepresentantListPageProps {}\n\nexport const RepresentantListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { ifapmeSide } = useTheme();\n const history = useHistory();\n const api = useApiService(RepresentantApi);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const lastSearchObject = React.useRef();\n const { pushSmsRecipientIds, pushSmsRecipientType } = useRouteParamsContext();\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n\n const apiFactory = useAbortableApiServiceFactory(RepresentantApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: RepresentantSearch) => {\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject?.current)) {\n lastSearchObject.current = nextSearch;\n }\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.representantBaseSearch({ RepresentantSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n api\n .representantSearchRepresentantIds({\n RepresentantSearch: { ...lastSearchObject?.current, forceSkip: 0, forceTake: 999999 }\n })\n .then(allIds => {\n if (allIds.length === selectedIDs.length) {\n setSelectedIDs([]);\n setNbReturnedIds(0);\n } else {\n setSelectedIDs(allIds);\n setNbReturnedIds(allIds.length);\n }\n setSelectAllLoading(false);\n });\n }, [api, selectedIDs.length]);\n\n const toggleSelection = React.useCallback(\n (item: FcbRepresentantGridDto) => {\n if (!selectedIDs.includes(item.idrepresentant)) {\n setSelectedIDs(ids => [...ids, item.idrepresentant]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idrepresentant));\n }\n },\n [selectedIDs]\n );\n\n const sendSms = React.useCallback(() => {\n if (selectedIDs.length > 0) {\n pushSmsRecipientIds(selectedIDs);\n pushSmsRecipientType(ETypeDestinataireSms.Etudiant);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [history, pushSmsRecipientIds, pushSmsRecipientType, selectedIDs, t]);\n\n const sendSmsSingle = React.useCallback(\n (id: number) => {\n pushSmsRecipientIds([id]);\n pushSmsRecipientType(ETypeDestinataireSms.Etudiant);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n },\n [history, pushSmsRecipientIds, pushSmsRecipientType]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\n ),\n render: (item: FcbRepresentantGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRepresentantGridDto) => (\n \n history.push(`${ERoutes.representant}/${row.idrepresentant}/detail/view`)}\n />\n history.push(`${ERoutes.representant}/${row.idrepresentant}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\"\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Gsm),\n fieldName: \"gsm\",\n render: (value: FcbRepresentantGridDto) => (\n sendSmsSingle(value.idrepresentant)}\n disabled={!!value.dateDeces}\n />\n )\n },\n {\n header: () => t(ETLCodes.Tel),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.TelPro),\n fieldName: \"telephonePro\"\n },\n {\n header: () => t(ETLCodes.Email),\n fieldName: \"email\",\n alignment: \"center\",\n render: (value: FcbRepresentantGridDto) => \n }\n ],\n [history, nbReturnedIds, selectAll, selectAllLoading, selectedIDs, sendSmsSingle, t, toggleSelection]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.representant}/0/detail/checkDoublons`);\n }, [history]);\n\n const getCriteria = React.useCallback(() => api.representantGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport { IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { CalendrierGlobalPage } from \"..\";\nimport { CalendrierApi, CalendrierSearch, FcbCalendrierGridDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, PageBase, SearchTablePage, ViewButton } from \"../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface ICalendrierListPageProps {}\nconst Container = styled.div`\n display: flex;\n`;\nexport const CalendrierListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(CalendrierApi);\n const { tab } = useParams<{ tab: string }>();\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbCalendrierGridDto) => (\n \n history.push(`${ERoutes.calendrier}/${row.idcalendrier}/detail/view`)}\n />\n history.push(`${ERoutes.calendrier}/${row.idcalendrier}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.calendrier}/0/detail/edit`);\n }, [history]);\n\n const getSearchCriterias = React.useCallback(() => api.calendrierGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(CalendrierApi);\n const lastAbortController = React.useRef();\n const searchFunction = React.useCallback(\n (nextSearch?: CalendrierSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.calendrierBaseSearch({ CalendrierSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n history.push(`${ERoutes.calendrier}/${newTabId}`)}\n selectedTabId={tab ?? \"global\"}\n renderActiveTabPanelOnly\n >\n } />\n \n }\n />\n \n \n );\n};\n","import { Classes, Colors, InputGroup } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { DatePicker } from \"@blueprintjs/datetime\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { Col, Grid, Row } from \"react-flexbox-grid\";\nimport styled from \"styled-components\";\n\nimport { useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { FormikProps } from \"formik\";\nimport moment from \"moment\";\n\nexport interface ICalendrierDatePickerProps {\n edit?: boolean;\n formik?: FormikProps;\n}\n\nconst MONTHS = [\n \"Janvier\",\n \"Février\",\n \"Mars\",\n \"Avril\",\n \"Mai\",\n \"Juin\",\n \"Juillet\",\n \"Août\",\n \"Septembre\",\n \"Octobre\",\n \"Novembre\",\n \"Décembre\"\n];\n\nconst WEEKDAYS_LONG = [\"Dimanche\", \"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\"];\n\nconst WEEKDAYS_SHORT = [\"Di\", \"Lu\", \"Ma\", \"Me\", \"Je\", \"Ve\", \"Sa\"];\n\nconst TickCheck = styled(InputGroup)`\n & .${Classes.ICON} {\n color: ${Colors.GREEN5};\n }\n`;\nconst CrossCheck = styled(InputGroup)`\n & .${Classes.ICON} {\n color: ${Colors.RED5};\n }\n`;\n\ninterface ICardAttributeProps {\n label: string;\n value: string | JSX.Element;\n}\n\nconst LabelAttrt = styled.div`\n font-weight: bold;\n font-style: italic;\n font-size: 1em;\n color: black;\n`;\nconst ValueAttr = styled.div`\n color: black;\n`;\n\nconst CardAttributeContainer = styled.div`\n min-width: 160px;\n margin-bottom: 0.2em;\n color: black;\n`;\n\nconst DateCardAttribute: React.FC = ({ label, value }) => {\n return (\n \n {label}\n {value}\n \n );\n};\n\nexport const CalendrierDatePicker: React.FunctionComponent = ({ formik, edit = false }) => {\n const [selected, setSelected] = React.useState(null);\n const { t } = useTl();\n\n const holiday = React.useCallback(\n (day: Date) => {\n return JSON.stringify(\n formik.values.conges.map(c => {\n const d = new Date(c);\n\n return {\n day: d.getDate(),\n month: d.getMonth(),\n year: d.getFullYear()\n };\n })\n ).includes(JSON.stringify({ day: day.getDate(), month: day.getMonth(), year: day.getFullYear() }));\n },\n [formik]\n );\n\n const addHoliday = React.useCallback(\n (day: Date) => {\n const newDay = moment(day)\n .utcOffset(0, true)\n .toDate();\n\n const newHolidays = [...formik.values.conges, newDay].sort();\n formik.setFieldValue(\"conges\", newHolidays);\n },\n [formik]\n );\n\n const removeHoliday = React.useCallback(\n (day: Date) => {\n const newHolidays = formik.values.conges.filter(c => {\n const d = new Date(c);\n\n return (\n JSON.stringify({ day: day.getDate(), month: day.getMonth(), year: day.getFullYear() }) !==\n JSON.stringify({ day: d.getDate(), month: d.getMonth(), year: d.getFullYear() })\n );\n });\n\n formik.setFieldValue(\"conges\", newHolidays);\n },\n [formik]\n );\n\n const onDaySelected = React.useCallback(\n (selectedDate: Date, isUserChange: boolean) => {\n if (isUserChange) {\n setSelected(selectedDate);\n if (edit) {\n if (holiday(selectedDate)) {\n removeHoliday(selectedDate);\n } else {\n addHoliday(selectedDate);\n }\n }\n }\n },\n [addHoliday, edit, holiday, removeHoliday]\n );\n\n const holidayStyle = `\n .DayPicker-Day--holiday {\n background-color: ${Colors.RED5};\n color: white;\n }\n .DayPicker-Month {\n min-width: 500px;\n min-height: 350px;\n }\n .DayPicker-Day {\n border-radius: 60px !important;\n }\n `;\n\n const dateCheckBox = React.useCallback(\n (selectedDate: Date) => {\n if (holiday(selectedDate)) {\n return ;\n } else {\n return ;\n }\n },\n [holiday]\n );\n\n const dateToTranslatedString = React.useCallback(\n (day: Date) => {\n const dayOfWeek = day.getDay();\n const month = day.getMonth();\n return `${WEEKDAYS_LONG[dayOfWeek]} ${day.getDate()} ${MONTHS[month]} ${day.getFullYear()} (${\n dayOfWeek === 0 ? t(ETLCodes.Weekend) : t(ETLCodes.Semaine)\n })`;\n },\n [t]\n );\n\n const CalendarDatePicker = React.useMemo(\n () => (\n
\n \n \n \n\n \n
\n \n \n
\n \n\n \n {selected && (\n <>\n \n \n \n \n \n \n \n )}\n \n \n
\n
\n
\n ),\n [\n dateCheckBox,\n dateToTranslatedString,\n formik.values.dateDebut,\n formik.values.dateFin,\n holiday,\n holidayStyle,\n onDaySelected,\n selected,\n t\n ]\n );\n\n return CalendarDatePicker;\n};\n","import { FGCustomPanel, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { CalendrierApi, FcbCalendrierDtoFromJSON } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { CalendrierDatePicker } from \"./CalendrierDatePicker\";\n\nexport interface ICalendrierDetailPageProps {}\n\nexport const CalendrierDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(CalendrierApi);\n const { id, state } = useParams<{ id: string; state: string }>();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +id <= 0\n ? FcbCalendrierDtoFromJSON({ calendrierId: 0, conges: [], dateDebut: new Date(), dateFin: new Date() })\n : api.calendrierGet({ id: +id }),\n saveApiFn: d => api.calendrierSave({ FcbCalendrierDto: d }),\n deleteApiFn: d => api.calendrierDelete({ id: d.calendrierId }),\n onDeletedRoute: () => `${ERoutes.calendrier}/search`\n });\n\n const [centre, cLoading] = useReferential(a => a.referentialGetCentre(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idCentre: Yup.number()\n .required(t(ETLCodes.Required))\n .notOneOf([-1, 0], t(ETLCodes.Required)),\n libelle: Yup.string().required(t(ETLCodes.Required)),\n dateDebut: Yup.date().required(t(ETLCodes.Required)),\n dateFin: Yup.date().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n <>\n history.push(`${ERoutes.calendrier}/search`)}\n deleting={deleting}\n saving={saving}\n validationSchema={FormSchema}\n editMode={state === \"edit\"}\n >\n \n \n \n \n \n \n \n \n \n \n {ctx => <>{!loading && data && }}\n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { CalendrierApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { CalendrierDetailPage } from \"./CalendrierDetailPage\";\n\nexport interface ICalendrierItemPageProps {}\n\nexport const CalendrierItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(CalendrierApi);\n\n const [displayName] = useApiEffect(() => api.calendrierGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.calendrier}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n \n \n );\n};\n","import { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { CalendrierApi, FcbRecherchecalendrierClasseDto } from \"../../../../api\";\nimport { CalendrierGlobalSearch } from \"../../../../api/models/CalendrierGlobalSearch\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, ViewButton } from \"../../../../components/applicationButtons\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface ICalendrierGlobalClassesSearchProps {\n currentSObj: CalendrierGlobalSearch;\n}\n\nexport const CalendrierGlobalClassesSearch: React.FunctionComponent = ({\n currentSObj\n}) => {\n const { t } = useTl();\n const api = useApiService(CalendrierApi);\n const history = useHistory();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { code: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: CalendrierGlobalSearch) => {\n return api.calendrierSearchClasses({ CalendrierGlobalSearch: sObj });\n },\n [api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n\n React.useEffect(() => {\n if (currentSObj?.idcentre && currentSObj?.jour) {\n search(currentSObj);\n }\n }, [currentSObj, search]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRecherchecalendrierClasseDto) => (\n \n history.push(`${ERoutes.classe}/${row.idclasse}/detail/view`)} />\n history.push(`${ERoutes.classe}/${row.idclasse}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.CodeClasse),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.NomClasse),\n fieldName: \"nom\"\n }\n ],\n [history, t]\n );\n\n return (\n <>\n
\n \n
\n \n );\n};\n","import { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { CalendrierApi, FcbRecherchecalendrierFormateurDto } from \"../../../../api\";\nimport { CalendrierGlobalSearch } from \"../../../../api/models/CalendrierGlobalSearch\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, ViewButton } from \"../../../../components/applicationButtons\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface ICalendrierGlobalFormateursSearchProps {\n currentSObj: CalendrierGlobalSearch;\n}\n\nexport const CalendrierGlobalFormateursSearch: React.FunctionComponent = ({\n currentSObj\n}) => {\n const { t } = useTl();\n const api = useApiService(CalendrierApi);\n const history = useHistory();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { formateur: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: CalendrierGlobalSearch) => {\n return api.calendrierSearchFormateurs({ CalendrierGlobalSearch: sObj });\n },\n [api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n\n React.useEffect(() => {\n if (currentSObj?.idcentre && currentSObj?.jour) {\n search(currentSObj);\n }\n }, [currentSObj, search]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRecherchecalendrierFormateurDto) => (\n \n history.push(`${ERoutes.formateur}/${row.idformateur}/detail/view`)}\n />\n history.push(`${ERoutes.formateur}/${row.idformateur}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.CodeClasse),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.NomClasse),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.HeureDebut),\n fieldName: \"heureDebut\"\n }\n ],\n [history, t]\n );\n\n return (\n <>\n
\n \n
\n \n );\n};\n","import { ButtonContainer, DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { CalendrierApi, FcbRecherchecalendrierVisiteDto } from \"../../../../api\";\nimport { CalendrierGlobalSearch } from \"../../../../api/models/CalendrierGlobalSearch\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, ViewButton } from \"../../../../components/applicationButtons\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface ICalendrierGlobalVisitesSearchProps {\n currentSObj: CalendrierGlobalSearch;\n}\n\nexport const CalendrierGlobalVisitesSearch: React.FunctionComponent = ({\n currentSObj\n}) => {\n const { t } = useTl();\n const api = useApiService(CalendrierApi);\n const history = useHistory();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { visite: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: CalendrierGlobalSearch) => {\n return api.calendrierSearchVisites({ CalendrierGlobalSearch: sObj });\n },\n [api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n\n React.useEffect(() => {\n if (currentSObj?.idcentre && currentSObj?.jour) {\n search(currentSObj);\n }\n }, [currentSObj, search]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRecherchecalendrierVisiteDto) => (\n \n history.push(`${ERoutes.visiteExterieure}/${row.idvisite}/detail/view`)}\n />\n history.push(`${ERoutes.visiteExterieure}/${row.idvisite}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Visite),\n fieldName: \"visite\"\n }\n ],\n [history, t]\n );\n\n return (\n <>\n
\n \n
\n \n );\n};\n","import { DatePicker } from \"@blueprintjs/datetime\";\nimport { FGListen } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { CalendrierGlobalSearch } from \"../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { CalendrierGlobalClassesSearch } from \"./CalendrierGlobalClassesSearch\";\nimport { CalendrierGlobalFormateursSearch } from \"./CalendrierGlobalFormateursSearch\";\nimport { CalendrierGlobalVisitesSearch } from \"./CalendrierGlobalVisitesSearch\";\n\nconst MONTHS = [\n \"Janvier\",\n \"Février\",\n \"Mars\",\n \"Avril\",\n \"Mai\",\n \"Juin\",\n \"Juillet\",\n \"Août\",\n \"Septembre\",\n \"Octobre\",\n \"Novembre\",\n \"Décembre\"\n];\n\nconst WEEKDAYS_LONG = [\"Dimanche\", \"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\"];\n\nconst WEEKDAYS_SHORT = [\"Di\", \"Lu\", \"Ma\", \"Me\", \"Je\", \"Ve\", \"Sa\"];\n\nconst MainContainer = styled.div`\n display: flex;\n`;\n\nconst LeftPanel = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n`;\n\nconst RightPanel = styled.div`\n flex: 5;\n display: flex;\n flex-direction: column;\n`;\n\nexport interface ICalendrierGlobalPageProps {}\n\nexport const CalendrierGlobalPage: React.FunctionComponent = () => {\n const { t } = useTl();\n\n const [centres, cLoading] = useReferential(a => a.referentialGetCentre(), true, []);\n\n const [currentSearchObj, setCurrentSearchObj] = React.useState({\n jour: new Date(),\n idcentre: null\n });\n\n const onDaySelected = React.useCallback(\n (selectedDate: Date, isUserChange: boolean) => {\n if (isUserChange) {\n const timeOffsetInMS = selectedDate.getTimezoneOffset() * 60000;\n selectedDate.setTime(selectedDate.getTime() - timeOffsetInMS);\n setCurrentSearchObj({ ...currentSearchObj, jour: selectedDate });\n }\n },\n [currentSearchObj]\n );\n\n const maxDate = React.useMemo(() => {\n var d = new Date();\n d.setFullYear(new Date().getFullYear() + 1);\n d.setMonth(11);\n d.setDate(31);\n\n return d;\n }, []);\n\n return (\n \n \n \n \n \n {}}\n editMode={true}\n hideButtons={true}\n enableDirtyCheck={false}\n canCheckRights={false}\n >\n {\n setCurrentSearchObj({ ...currentSearchObj, idcentre: value });\n }}\n />\n \n \n\n \n \n \n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\r\nimport { IDataTableColumn, showError } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory } from \"react-router\";\r\nimport styled from \"styled-components\";\r\n\r\nimport { ClasseApi, ClasseSearch, ETextSearchType, FcbClasseGridDto, ReportApi } from \"../../../../api\";\r\nimport { ERoutes } from \"../../../../AppRouter\";\r\nimport { CopyButton, EditButton, PrintButton, SearchTablePage, ViewButton } from \"../../../../components\";\r\nimport { useGlobalData } from \"../../../../contexts\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../locales\";\r\nimport { exportFile } from \"../../../../utils/b64download\";\r\n\r\nexport interface IClasseListPageProps {}\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const ClasseListPage: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const history = useHistory();\r\n const api = useApiService(ClasseApi);\r\n const reportApi = useApiService(ReportApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const [printLoadingId, setPrintLoadingId] = React.useState(null);\r\n\r\n const print = React.useCallback(\r\n (idClasse: number) => {\r\n setPrintLoadingId(idClasse);\r\n reportApi\r\n .reportGetViewableReport({\r\n reportName: \"horaire_classe.rpt\",\r\n ReportParametersDto: {\r\n parameters: [\r\n {\r\n dataType: \"NumberParameter\",\r\n name: \"idclasse\",\r\n value: idClasse.toString()\r\n }\r\n ]\r\n }\r\n })\r\n .then(file => {\r\n setPrintLoadingId(null);\r\n return exportFile(file);\r\n })\r\n .catch(error => {\r\n showError(t(ETLCodes.ErrorWhileExporting));\r\n setPrintLoadingId(null);\r\n });\r\n },\r\n [reportApi, t]\r\n );\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbClasseGridDto) => (\r\n \r\n print(row.idclasse)}\r\n loading={printLoadingId && printLoadingId === row.idclasse}\r\n />\r\n history.push(`${ERoutes.classe}/${row.idclasse}/copie/edit/`)} />\r\n history.push(`${ERoutes.classe}/${row.idclasse}/detail/view`)} />\r\n history.push(`${ERoutes.classe}/${row.idclasse}/detail/edit`)} />\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.Code),\r\n fieldName: \"code\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Nom),\r\n fieldName: \"nom\"\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"annee\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Lieu),\r\n fieldName: \"lieu\"\r\n },\r\n {\r\n header: () => t(ETLCodes.CoherenceHoraire),\r\n fieldName: \"horaireCoherent\",\r\n alignment: \"center\",\r\n render: (row: FcbClasseGridDto) => {}} disabled />\r\n },\r\n {\r\n header: () => t(ETLCodes.Referentiel),\r\n fieldName: \"referentiel\"\r\n },\r\n {\r\n header: () => t(ETLCodes.HeureS1),\r\n fieldName: \"heureS1\"\r\n },\r\n {\r\n header: () => t(ETLCodes.HeureS2),\r\n fieldName: \"heureS2\"\r\n }\r\n ],\r\n [history, print, printLoadingId, t]\r\n );\r\n\r\n const addItemFunction = React.useCallback(() => {\r\n history.push(`${ERoutes.classe}/0/detail/edit`);\r\n }, [history]);\r\n\r\n const getCriterias = React.useCallback(() => api.classeGetSearchCriterias({ includeListsValues: true }), [api]);\r\n const apiFactory = useAbortableApiServiceFactory(ClasseApi);\r\n const lastAbortController = React.useRef();\r\n const search = React.useCallback(\r\n (nextSearch?: ClasseSearch) => {\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.classeBaseSearch({ ClasseSearch: nextSearch });\r\n },\r\n [apiFactory]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { Checkbox, Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n EAggregateType,\n FcbFinancementClasseGridDto,\n FinancementClasseApi,\n FinancementClasseSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClasseAgrementLocalisationListProps {\n idClasse: number;\n state: string;\n}\n\nexport const ClasseAgrementLocalisationList: React.FunctionComponent = ({\n idClasse\n}) => {\n const { t } = useTl();\n const history = useHistory();\n const financementApi = useApiService(FinancementClasseApi);\n const path = React.useMemo(() => `${ERoutes.classe}/${idClasse}/agrement`, [idClasse]);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { financement: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: FinancementClasseSearch) => {\n sObj.idClasse = idClasse;\n sObj.aggregateKeys = [\n { key: \"HeureS1\", aggregateType: EAggregateType.Sum },\n { key: \"HeureS2\", aggregateType: EAggregateType.Sum }\n ];\n return financementApi.financementClasseBaseSearch({ FinancementClasseSearch: sObj });\n },\n [financementApi, idClasse]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbFinancementClasseGridDto) => (\n \n history.push(`${path}/${row.idfinancementClasse}/view`)} />\n history.push(`${path}/${row.idfinancementClasse}/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Financement),\n fieldName: \"financement\"\n },\n {\n header: () => t(ETLCodes.PPB),\n fieldName: \"ppb\"\n },\n {\n header: () => t(ETLCodes.S1Loc),\n fieldName: \"heureS1\"\n },\n {\n header: () => t(ETLCodes.S2Loc),\n fieldName: \"heureS2\"\n },\n {\n header: () => t(ETLCodes.TotalLoc),\n fieldName: \"totalLoc\"\n },\n {\n header: () => t(ETLCodes.Localise),\n fieldName: \"localise\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbFinancementClasseGridDto) => \n },\n {\n header: () => t(ETLCodes.S1Agr),\n fieldName: \"heureS1Agrement\"\n },\n {\n header: () => t(ETLCodes.S2Agr),\n fieldName: \"heureS2Agrement\"\n },\n {\n header: () => t(ETLCodes.TotalAgr),\n fieldName: \"totalAgrement\"\n },\n {\n header: () => t(ETLCodes.Agree),\n fieldName: \"agree\",\n autoFitContent: true,\n render: (row: FcbFinancementClasseGridDto) => \n },\n {\n header: () => t(ETLCodes.HReelleS1),\n fieldName: \"reelHoursS1\"\n },\n {\n header: () => t(ETLCodes.HReelleS2),\n fieldName: \"reelHoursS2\"\n },\n {\n header: () => t(ETLCodes.TotalHReel),\n fieldName: \"reelTotalAgrement\"\n }\n ],\n [history, path, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${path}/0/edit`);\n }, [history, path]);\n\n return (\n <>\n {idClasse > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n }\n >\n \n \n )}\n \n );\n};\n","import { FGEmpty, FGNumberInput, FGTextAreaInput, FGTextInput, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport { ClasseApi, FcbClasseDetailDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClasseAgrementLocalisationFinanceFormProps {}\n\nexport const ClasseAgrementLocalisationFinanceForm: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, state } = useParams<{ id: string; state: string }>();\n const api = useApiService(ClasseApi);\n const path = React.useMemo(() => `${ERoutes.classe}/${+id}`, [id]);\n const [conseillerPeda, cpLoading] = useReferential(a => a.referentialGetConseillersPedagogiques(), false, []);\n const [statutLocalisation, slLoading] = useReferential(\n a => a.referentialGetStatutLocalisationAgrement({ isLocalisation: true }),\n false,\n []\n );\n const [statutAgrement, slaLoading] = useReferential(\n a => a.referentialGetStatutLocalisationAgrement({ isLocalisation: false }),\n false,\n []\n );\n\n const { data, loading, saveItem, saving } = useCrudApi({\n getApiFn: () => (+id <= 0 ? FcbClasseDetailDtoFromJSON({ idclasse: +id }) : api.classeGet({ id: +id })),\n saveApiFn: d => api.classeSave({ FcbClasseDetailDto: d }),\n onSavedRoute: d => `${path}/agrement/${state}`,\n deleteApiFn: () => {},\n onDeletedRoute: () => path\n });\n\n return (\n data && (\n
\n \n \n \n \n 2}\n />\n \n 2}\n />\n \n \n (s ? s : 0)}\n readonly\n />\n \n 2}\n />\n \n 2}\n />\n \n 2}\n />\n \n \n \n \n \n \n \n \n \n
\n )\n );\n};\n","import * as React from \"react\";\nimport { ClasseAgrementLocalisationList } from \"./ClasseAgrementLocalisationList\";\nimport { useParams } from \"react-router\";\nimport { ClasseAgrementLocalisationFinanceForm } from \"./ClasseAgrementLocalisationFinanceForm\";\n\nexport interface IClasseAgrementLocalisationItemPageProps {}\n\nexport const ClasseAgrementLocalisationItemPage: React.FunctionComponent = () => {\n const { id, state } = useParams<{ id: string; state: string }>();\n return (\n <>\n \n \n \n );\n};\n","import { FGListen, FGNumberInput, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbFinancementClasseDtoFromJSON, FinancementClasseApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClasseAgrementLocalisationFinanceDetailPageProps {}\n\nexport const ClasseAgrementLocalisationFinanceDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, idFinancement, state } = useParams<{ id: string; idFinancement: string; state: string }>();\n const api = useApiService(FinancementClasseApi);\n const history = useHistory();\n const path = React.useMemo(() => `${ERoutes.classe}/${+id}/agrement`, [id]);\n const [typeProjetRequest, setTypeProjetRequest] = React.useState({ id: 0 });\n const [ProjetFinancement, pfLoading] = useReferential(a => a.referentialGetProjetFinancement(), true, []);\n const [ProjetFinancementById, pfidLoading] = useReferential(\n a => a.referentialGetProjetFinancementById(typeProjetRequest),\n true,\n [typeProjetRequest]\n );\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idprojetFinancement: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idFinancement <= 0\n ? FcbFinancementClasseDtoFromJSON({ idclasse: +id })\n : api.financementClasseGet({ id: +idFinancement }),\n saveApiFn: d => api.financementClasseSave({ FcbFinancementClasseDto: d }),\n onSavedRoute: d => `${path}/${d.idfinancementClasse}/${state}`,\n deleteApiFn: d => api.financementClasseDelete({ id: d.idfinancementClasse }),\n onDeletedRoute: () => path\n });\n\n const localisationBloquee = React.useMemo(() => data?.localisationBloquee, [data]);\n const agrementBloque = React.useMemo(() => data?.agrementBloquee, [data]);\n const existingItem = React.useMemo(() => +id > 0, [id]);\n\n return (\n
\n history.push(`${ERoutes.classe}/${+id}/agrement/edit`)}\n onDelete={deleteItem}\n showDeleteButton={+idFinancement > 0}\n saving={saving}\n deleting={deleting}\n >\n {\n setTypeProjetRequest({\n id: value\n });\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ClasseAgrementLocalisationItemPage } from \"./ClasseAgrementLocalisationItemPage\";\nimport { ClasseAgrementLocalisationFinanceDetailPage } from \"./ClasseAgrementLocalisationFinanceDetailPage\";\n\nexport interface IClasseAgrementLocalisationSwitchProps {}\n\nexport const ClasseAgrementLocalisationSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams, useHistory } from \"react-router\";\nimport styled, { css } from \"styled-components\";\n\nimport { ClasseApprenantApi, ClasseApprenantSearch, FcbClasseApprenantGridDto } from \"../../../../../api\";\nimport { SearchTablePage, SmsButton, ApprenantTooltip, ViewButton, EditButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ERoutes } from \"../../../../../AppRouter\";\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport interface IClasseApprenantListProps {}\n\nexport const ClasseApprenantList: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ClasseApprenantApi);\n const { id } = useParams<{ id: string }>();\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbClasseApprenantGridDto) => (\n \n history.push(`${ERoutes.apprenant}/${row.idapprenant}/signaletique/view`)}\n />\n history.push(`${ERoutes.apprenant}/${row.idapprenant}/signaletique/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Identifiant),\n computed: true,\n fieldName: \"info\",\n customizeCellStyle: () =>\n css`\n min-width: 110px;\n `,\n render: (value: FcbClasseApprenantGridDto) => ,\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.Inscription),\n fieldName: \"codeInscription\"\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"statut\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\",\n customizeCellStyle: () =>\n css`\n white-space: pre;\n `\n },\n {\n header: () => t(ETLCodes.Gsm),\n fieldName: \"gsm\",\n render: (value: FcbClasseApprenantGridDto) => \n },\n {\n header: () => t(ETLCodes.Tel),\n fieldName: \"telephone\"\n }\n ],\n [history, t]\n );\n\n const getSearchCriterias = React.useCallback(\n () => api.classeApprenantGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(ClasseApprenantApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: ClasseApprenantSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.classeApprenantBaseSearch({ ClasseApprenantSearch: { ...nextSearch, idClasse: +id } });\n },\n [apiFactory, id]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Colors } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { css } from \"styled-components\";\n\nimport {\n ClasseHoraireCoherenceApi,\n ClasseHoraireCoherenceSearch,\n FcbClasseHoraireCoherenceGridDto\n} from \"../../../../../api\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClasseCoherenceHoraireSearchProps {\n classeId: number;\n}\n\nexport const ClasseCoherenceHoraireSearch: React.FunctionComponent = ({\n classeId\n}) => {\n const { t } = useTl();\n const [lastSobj, setLastSobj] = React.useState(null);\n\n const api = useApiService(ClasseHoraireCoherenceApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5, 10],\n pageSize: 5,\n sortKeys: { description: \"ASC\" }\n });\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n const searchFunction = React.useCallback(\n (sObj?: ClasseHoraireCoherenceSearch) => {\n sObj.idClasse = classeId;\n setLastSobj(sObj);\n return api.classeHoraireCoherenceBaseSearch({ ClasseHoraireCoherenceSearch: sObj });\n },\n [api, classeId]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Heures),\n fieldName: \"nbheures\"\n },\n {\n header: () => t(ETLCodes.Planifie),\n fieldName: \"nbheuresPlanifie\"\n },\n {\n header: () => t(ETLCodes.Difference),\n fieldName: \"difference\"\n }\n ],\n [t]\n );\n\n const rowStyle = React.useCallback((item: FcbClasseHoraireCoherenceGridDto) => {\n const fontColor = item.difference !== 0 && item.difference !== undefined ? Colors.RED3 : Colors.BLACK;\n\n return css`\n & * {\n color: ${fontColor} !important;\n }\n `;\n }, []);\n\n React.useEffect(() => {\n const cb = () => search(lastSobj);\n subscribeToEvent(\"CLASSE_COHERENCE_REFRESH\", cb);\n return () => {\n unsubscribeEvent(\"CLASSE_COHERENCE_REFRESH\", cb);\n };\n }, [lastSobj, search, subscribeToEvent, unsubscribeEvent]);\n\n return (\n <>\n {classeId > 0 && (\n
\n \n
\n )}\n \n );\n};\n","import { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport {\n ClasseHoraireCoherenceSearch,\n ClasseHoraireSemestreApi,\n FcbClasseHoraireCoherenceSemestreGridDto\n} from \"../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { Colors } from \"@blueprintjs/core\";\nimport { css } from \"styled-components\";\nimport { useEventsContext } from \"../../../../../contexts\";\n\nexport interface IClasseCoherenceHoraireSemestreSearchProps {\n classeId: number;\n}\n\nexport const ClasseCoherenceHoraireSemestreSearch: React.FunctionComponent = ({\n classeId\n}) => {\n const { t } = useTl();\n const api = useApiService(ClasseHoraireSemestreApi);\n const [lastSobj, setLastSobj] = React.useState(null);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5, 10],\n pageSize: 5,\n sortKeys: { semestre: \"ASC\" }\n });\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n\n const searchFunction = React.useCallback(\n async (sObj?: ClasseHoraireCoherenceSearch) => {\n sObj.idClasse = classeId;\n setLastSobj(sObj);\n return api.classeHoraireSemestreBaseSearch({ ClasseHoraireCoherenceSearch: sObj });\n },\n [api, classeId]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Semestre),\n fieldName: \"semestre\"\n },\n {\n header: () => t(ETLCodes.TypeProjet),\n fieldName: \"typeProjet\"\n },\n {\n header: () => t(ETLCodes.Heures),\n fieldName: \"nbheures\"\n },\n {\n header: () => t(ETLCodes.Planifie),\n fieldName: \"nbheuresPlanifie\"\n },\n {\n header: () => t(ETLCodes.Difference),\n fieldName: \"difference\"\n }\n ],\n [t]\n );\n\n const rowStyle = React.useCallback((item: FcbClasseHoraireCoherenceSemestreGridDto) => {\n const fontColor = item.difference !== 0 && item.difference !== undefined ? Colors.RED3 : Colors.BLACK;\n\n return css`\n & * {\n color: ${fontColor} !important;\n }\n `;\n }, []);\n\n React.useEffect(() => {\n const cb = () => search(lastSobj);\n subscribeToEvent(\"CLASSE_COHERENCE_REFRESH\", cb);\n return () => {\n unsubscribeEvent(\"CLASSE_COHERENCE_REFRESH\", cb);\n };\n }, [lastSobj, search, subscribeToEvent, unsubscribeEvent]);\n\n return (\n <>\n {classeId > 0 && (\n
\n \n
\n )}\n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { DataTable, FieldSet, showError, showSuccess, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ClasseHoraireIncoherenceApi, ClasseHoraireIncoherenceSearch } from \"../../../../../api\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClasseIncoherencesSearchProps {\n classeId: number;\n}\n\nexport const ClasseIncoherencesSearch: React.FunctionComponent = ({ classeId }) => {\n const { t } = useTl();\n const api = useApiService(ClasseHoraireIncoherenceApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5, 10],\n pageSize: 5,\n sortKeys: { Jour: \"ASC\" }\n });\n\n const { dispatchEvent } = useEventsContext();\n const searchFunction = React.useCallback(\n (sObj?: ClasseHoraireIncoherenceSearch) => {\n sObj.idClasse = classeId;\n return api.classeHoraireIncoherenceBaseSearch({ ClasseHoraireIncoherenceSearch: sObj });\n },\n [api, classeId]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Jour),\n fieldName: \"jour\"\n },\n {\n header: () => t(ETLCodes.Debut),\n fieldName: \"heureDebut\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Fin),\n fieldName: \"heureFin\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Local),\n fieldName: \"local\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.Incoherence),\n fieldName: \"incoherence\"\n },\n {\n header: () => t(ETLCodes.TypeIncoherence),\n fieldName: \"typeIncoherence\"\n }\n ],\n [t]\n );\n\n const [coherenceLoading, setCoherenceLoading] = React.useState(false);\n\n const onCalculCoherence = React.useCallback(async () => {\n try {\n setCoherenceLoading(true);\n await api.classeHoraireIncoherenceCalculCoherenceClasse({ idClasse: classeId });\n showSuccess(t(ETLCodes.CalculCoherenceSuccess));\n search({ idClasse: classeId });\n dispatchEvent(\"CLASSE_COHERENCE_REFRESH\");\n } catch (error) {\n showError(t(ETLCodes.ErreurCalculIncoherence));\n }\n setCoherenceLoading(false);\n }, [api, classeId, dispatchEvent, search, t]);\n\n const coherenceButton = React.useMemo(\n () => (\n \n ),\n [coherenceLoading, onCalculCoherence, t]\n );\n\n if (!classeId) return null;\n\n return (\n
\n \n
\n );\n};\n","import * as React from \"react\";\n\nimport { ClasseCoherenceHoraireSearch } from \"./ClasseCoherenceHoraireSearch\";\nimport { ClasseCoherenceHoraireSemestreSearch } from \"./ClasseCoherenceHoraireSemestreSearch\";\nimport { ClasseIncoherencesSearch } from \"./ClasseIncoherencesSearch\";\nimport { Divider } from \"@blueprintjs/core\";\n\nexport interface IClasseCoherenceHorairePageProps {\n classeId: number;\n}\n\nexport const ClasseCoherenceHorairePage: React.FunctionComponent = ({ classeId }) => {\n return (\n <>\n \n \n \n \n \n \n );\n};\n","import { FGCheckboxInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { ClasseApi, FcbCopyClasseDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterDateMaskInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ICopieClassePageProps {\n idClasse: number;\n state: string;\n}\n\nexport const CopieClassePage: React.FunctionComponent = ({ idClasse, state }) => {\n const { t } = useTl();\n const api = useApiService(ClasseApi);\n const history = useHistory();\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({});\n }, []);\n\n const { data, saving, saveItem } = useCrudApi({\n getApiFn: () => {\n return FcbCopyClasseDtoFromJSON({ idClasse: idClasse });\n },\n saveApiFn: async d => api.classeCopyClasseAsync({ FcbCopyClasseDto: d }),\n onSavedRoute: c => `${ERoutes.classe}/${c.idClasse}/detail/${state}`,\n deleteApiFn: () => {},\n onDeletedRoute: () => ERoutes.classe\n });\n\n return (\n history.push(ERoutes.classe)}\n showDeleteButton={false}\n saving={saving}\n >\n \n \n \n \n \n \n );\n};\n","import { Button, Divider, Icon, Tag } from \"@blueprintjs/core\";\r\nimport { IconNames } from \"@blueprintjs/icons\";\r\nimport { FormikProps } from \"formik\";\r\nimport moment from \"moment\";\r\nimport {\r\n FGCustomPanel,\r\n FGEmpty,\r\n FGListen,\r\n FGMultiSuggestInput,\r\n FGNumberInput,\r\n FGTextAreaInput,\r\n FGTextInput,\r\n FieldGroup,\r\n showError,\r\n useApiEffect\r\n} from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport styled from \"styled-components\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport { ClasseApi, EIfapmeSide, FcbClasseDetailDtoFromJSON, ReferentielApi } from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport { FGWalterCheckboxInput, FGWalterDateMaskInput, FGWalterSelectInput } from \"../../../../../components\";\r\nimport { FGEuroMaskInput } from \"../../../../../components/formGenerator/FGEuroMaskInput\";\r\nimport { SmallFormGenerator } from \"../../../../../components/SmallFormGenerator\";\r\nimport { useBreadcrumbs } from \"../../../../../contexts\";\r\nimport { useApiService, useCrudApi, useManageError, useTheme, useTl } from \"../../../../../hooks\";\r\nimport { useReferential } from \"../../../../../hooks/useReferential\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\n\r\nconst ButtonContainer = styled.div`\r\n display: flex;\r\n & * + * {\r\n margin-left: 1rem;\r\n }\r\n`;\r\n\r\nexport interface IClasseDetailProps {}\r\n\r\nexport const ClasseDetail: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const { id, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\r\n const history = useHistory();\r\n const api = useApiService(ClasseApi);\r\n const referentielApi = useApiService(ReferentielApi);\r\n const { changeLastBreadcrumbDisplayedText } = useBreadcrumbs();\r\n\r\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\r\n getApiFn: () =>\r\n +id <= 0\r\n ? FcbClasseDetailDtoFromJSON({ idclasse: 0, uniteActivite: true, principale: true, deliberee: true })\r\n : api.classeGet({ id: +id }),\r\n saveApiFn: d => api.classeSave({ FcbClasseDetailDto: d }),\r\n deleteApiFn: d => api.classeDelete({ id: d.idclasse }),\r\n onDeletedRoute: () => ERoutes.classe,\r\n onSavedRoute: d => `${ERoutes.classe}/${d.idclasse}/detail/${state}`\r\n });\r\n\r\n const { manageError } = useManageError();\r\n\r\n const [centreId, setCentreId] = React.useState(0);\r\n const [genreValue, setGenreValue] = React.useState(\"\");\r\n const [idDegre, setIdDegre] = React.useState(\"\");\r\n const [idMetier, setIdMetier] = React.useState(0);\r\n const [particulariteCours, setParticulariteCours] = React.useState(\"\");\r\n const [firstMetierChange, setFirstMetierChange] = React.useState(true);\r\n const [firstDegreChange, setFirstDegreChange] = React.useState(true);\r\n const [emailsLoading, setEmailsLoading] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n if (data) {\r\n setIdMetier(data.idmetier);\r\n setIdDegre(data.iddegre);\r\n setGenreValue(data.genre);\r\n setCentreId(data.idcentre);\r\n setParticulariteCours(data.particulariteCours);\r\n }\r\n }, [data]);\r\n\r\n const [referentielLoading, setReferentielLoading] = React.useState(false);\r\n\r\n const [centre, cLoading] = useReferential(a => a.referentialGetCentre(), true, [], true);\r\n const [lieu, lLoading] = useReferential(a => a.referentialGetLieu({ idCentre: centreId }), true, [centreId]);\r\n const [annee, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, [], true);\r\n const [genre, gLoading] = useReferential(a => a.referentialGetGenreClasse(), false, [], true);\r\n const [degre, dLoading] = useReferential(a => a.referentialGetDegre(), false, [], true);\r\n const [referentiel, rLoading] = useReferential(\r\n a => a.referentialGetReferentielByDegreAndMetier({ idDegre, idMetier: idMetier ?? 0 }),\r\n true,\r\n [idDegre, idMetier],\r\n true\r\n );\r\n const [particularite, pLoading] = useReferential(\r\n a => a.referentialGetSpecificiteCours({ code: particulariteCours }),\r\n false,\r\n [particulariteCours],\r\n true\r\n );\r\n const { ifapmeSide } = useTheme();\r\n const [typeCours, tcLoading] = useReferential(\r\n a => a.referentialGetTypeCours({ ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Hope : EIfapmeSide.Walter }),\r\n false,\r\n [ifapmeSide]\r\n );\r\n const [metier, mLoading] = useReferential(a => a.referentialGetMetierByDegre({ idDegre }), true, [idDegre], true);\r\n const [secteur, sLoading] = useReferential(\r\n a => a.referentialGetSecteurHomogeneByDegre({ idDegre }),\r\n true,\r\n [idDegre],\r\n true\r\n );\r\n const [typeReussite, trLoading] = useReferential(a => a.referentialGetTypeReussite(), true, [], true);\r\n const [typeBulletin, loadingTypeBulletin] = useReferential(a => a.referentialGetTypesBulletin(), true, []);\r\n // const [certifications, loadingCertifications] = useReferential(a => a.referentialGetCertifications(), true, []);\r\n const [local, loLoading] = useReferential(\r\n a => a.referentialGetLocalByCentre({ idCentre: centreId }),\r\n true,\r\n [centreId],\r\n true\r\n );\r\n\r\n const [isReferentialEditable] = useApiEffect(() => api.classeIsReferentielEditable({ id: +id }), [id]);\r\n const [societesExternes, seLoading] = useReferential(\r\n apiC => apiC.referentialGetSocietesExternesByMetier({ idmetier: idMetier }),\r\n true,\r\n [idMetier]\r\n );\r\n\r\n const FormSchema = React.useMemo(() => {\r\n return Yup.object().shape({\r\n idcentre: Yup.number()\r\n .nullable()\r\n .required(t(ETLCodes.Required)),\r\n dateCours: Yup.date().required(t(ETLCodes.Required)),\r\n nom: Yup.string().required(t(ETLCodes.Required)),\r\n genre: Yup.string().required(t(ETLCodes.Required)),\r\n iddegre: Yup.string().required(t(ETLCodes.Required)),\r\n typeCours: Yup.string().required(t(ETLCodes.Required)),\r\n anneeAcademique: Yup.string().required(t(ETLCodes.Required)),\r\n idmetier: Yup.number()\r\n .nullable()\r\n .required(t(ETLCodes.Required)),\r\n idreferentiel: Yup.number()\r\n .nullable()\r\n .when(\"genre\", (value, schema) => (value !== \"S\" ? schema.required(t(ETLCodes.Required)) : schema)),\r\n particulariteCours: Yup.string()\r\n .nullable()\r\n .required(t(ETLCodes.Required))\r\n });\r\n }, [t]);\r\n\r\n React.useEffect(() => {\r\n if (data) {\r\n changeLastBreadcrumbDisplayedText(data.nom + \" - \" + data.codeclasse);\r\n }\r\n }, [data, changeLastBreadcrumbDisplayedText]);\r\n\r\n const bloquee = React.useMemo(() => data?.bloqueLocalisation || data?.bloqueAgrement, [data]);\r\n\r\n const setReferentiel = React.useCallback((formik?: FormikProps) => {\r\n formik.setFieldValue(\"idreferentiel\", null);\r\n formik.setFieldTouched(\"idreferentiel\");\r\n }, []);\r\n\r\n const setMetier = React.useCallback((formik?: FormikProps) => {\r\n formik.setFieldValue(\"idmetier\", null);\r\n formik.setFieldTouched(\"idmetier\");\r\n }, []);\r\n\r\n const getApprenantEmailsAndMailTo = React.useCallback(async () => {\r\n setEmailsLoading(true);\r\n try {\r\n const res = await api.classeGetApprenantEmails({ idClasse: +id });\r\n if (!!res) {\r\n const el = document.createElement(\"a\");\r\n el.setAttribute(\"href\", `mailto:${res.azureEmails}?bcc=${res.emails}`);\r\n el.click();\r\n } else {\r\n showError(t(ETLCodes.AucunEmailTrouvé));\r\n }\r\n setEmailsLoading(false);\r\n } catch (e) {\r\n setEmailsLoading(false);\r\n manageError(e);\r\n }\r\n }, [api, id, manageError, t]);\r\n\r\n const getAllEmailsAndMailTo = React.useCallback(async () => {\r\n setEmailsLoading(true);\r\n try {\r\n const res = await api.classeGetAllEmails({ idClasse: +id });\r\n if (!!res) {\r\n const el = document.createElement(\"a\");\r\n el.setAttribute(\"href\", `mailto:${res.azureEmails}?bcc=${res.emails}`);\r\n el.click();\r\n } else {\r\n showError(t(ETLCodes.AucunEmailTrouvé));\r\n }\r\n setEmailsLoading(false);\r\n } catch (e) {\r\n setEmailsLoading(false);\r\n manageError(e);\r\n }\r\n }, [api, id, manageError, t]);\r\n\r\n const mailButtons = React.useMemo(\r\n () => (\r\n \r\n \r\n \r\n \r\n ),\r\n [emailsLoading, getAllEmailsAndMailTo, getApprenantEmailsAndMailTo, t]\r\n );\r\n\r\n const isDegreMultiple = React.useCallback((iddegre: string) => {\r\n if (!iddegre) return false;\r\n\r\n return [\"00\", \"08\", \"10\", \"11\", \"12\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"28\"].includes(iddegre);\r\n }, []);\r\n\r\n return (\r\n history.push(`${ERoutes.classe}`)}\r\n validationSchema={FormSchema}\r\n showDeleteButton={!bloquee}\r\n >\r\n setCentreId(value)} />\r\n {\r\n setIdMetier(value);\r\n\r\n if (value !== data?.idmetier) {\r\n setFirstMetierChange(false);\r\n setReferentiel(formik);\r\n } else if (!firstMetierChange) {\r\n setReferentiel(formik);\r\n }\r\n }}\r\n />\r\n {\r\n setIdDegre(value === \"null\" ? null : value);\r\n\r\n if (value !== data?.iddegre) {\r\n setFirstDegreChange(false);\r\n setMetier(formik);\r\n } else if (!firstDegreChange) {\r\n setMetier(formik);\r\n }\r\n }}\r\n />\r\n {\r\n setGenreValue(value);\r\n if (value !== data?.genre) {\r\n formik.setFieldTouched(\"genre\");\r\n }\r\n if (value === \"S\" && +id <= 0) {\r\n formik.setFieldValue(\"idreferentiel\", null);\r\n }\r\n }}\r\n />\r\n {\r\n setReferentielLoading(true);\r\n try {\r\n if (value !== null) {\r\n const values = await referentielApi.referentielGet({ id: value });\r\n if (value !== data?.idreferentiel) {\r\n formik.setFieldValue(\"pcReussite\", values.pcreussite);\r\n formik.setFieldValue(\"idtypeReussite\", values.idtypeReussite);\r\n formik.setFieldValue(\"coutTotal\", values.coutmatiere);\r\n }\r\n }\r\n setReferentielLoading(false);\r\n } catch (e) {\r\n setReferentielLoading(false);\r\n }\r\n }}\r\n />\r\n {\r\n if (value && annee) {\r\n const year = moment(value).year();\r\n const partOfYearToFind = moment(value).month() >= 7 ? 0 : 5;\r\n const anneeAcademique = annee.find(a => a.value.toString().substr(partOfYearToFind, 4) === year.toString());\r\n if (value !== data?.dateCours) {\r\n formik.setFieldValue(\"anneeAcademique\", anneeAcademique.value.toString(), true);\r\n }\r\n }\r\n }}\r\n />\r\n \r\n \r\n 0}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {({ formik }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n societesExternes?.length > 0}\r\n />\r\n \r\n \r\n \r\n }\r\n max={100}\r\n disabled={referentielLoading}\r\n />\r\n \r\n \r\n {ctx => (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n {/* !ctx?.formik?.values?.idreferentiel && genreValue === \"S\"}\r\n /> */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ctx => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { FGTextInput, FieldGroup, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ClasseApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IExamenPratiqueItemPageProps {}\n\nexport const ExamenPratiqueItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id } = useParams<{ id: string }>();\n const api = useApiService(ClasseApi);\n const [data, loading] = useApiEffect(async () => await api.classeGetCoutClasse({ id: +id }), []);\n const history = useHistory();\n\n return (\n {}}\n hideButtons={true}\n editMode={false}\n minLabelWidth={180}\n labelAlignment=\"right\"\n formatDate=\"dd/MM/yyyy\"\n inline\n boldLabel\n loading={loading}\n onCancel={() => history.push(ERoutes.classe)}\n >\n \n \n \n \n \n \n );\n};\n","import { Card } from \"@blueprintjs/core\";\r\nimport moment from \"moment\";\r\nimport { FGTextInput, FieldGroup, FieldSet } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport { ClasseApi, FcbClasseDetailDtoFromJSON } from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport {\r\n FGWalterCheckboxInput,\r\n FGWalterDateMaskInput,\r\n FGWalterSelectInput,\r\n SmallFormGenerator\r\n} from \"../../../../../components\";\r\nimport { useEventsContext } from \"../../../../../contexts\";\r\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\r\nimport { useReferential } from \"../../../../../hooks/useReferential\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\n\r\nexport const CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED_EVENT = \"CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED\";\r\n\r\nexport interface IClasseHoraireCalendrierItemProps {\r\n readOnly?: boolean;\r\n state?: boolean;\r\n}\r\n\r\nexport const ClasseHoraireCalendrierItem: React.FunctionComponent = ({\r\n readOnly,\r\n state\r\n}) => {\r\n const { t } = useTl();\r\n const { id } = useParams<{ id: string; tab: string; state: string }>();\r\n const api = useApiService(ClasseApi);\r\n\r\n const { subscribeToEvent, unsubscribeEvent, dispatchEvent } = useEventsContext();\r\n\r\n const { data, loading, saveItem, saving, refresh } = useCrudApi({\r\n getApiFn: React.useCallback(async () => {\r\n const ret = +id <= 0 ? FcbClasseDetailDtoFromJSON({ classeId: 0 }) : await api.classeGet({ id: +id });\r\n if (!ret.dateFin) {\r\n const end = +ret.anneeAcademique.split(\"-\")[1];\r\n ret.dateFin = moment(`3107${end}`, \"DDMMYYYY\").toDate();\r\n }\r\n return ret;\r\n }, [api, id]),\r\n saveApiFn: React.useCallback(\r\n async d => {\r\n const dataSaved = await api.classeSave({ FcbClasseDetailDto: d });\r\n dispatchEvent(\"CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED\", dataSaved);\r\n return dataSaved;\r\n },\r\n [api, dispatchEvent]\r\n ),\r\n deleteApiFn: d => {},\r\n onDeletedRoute: () => `${ERoutes.classe}/${+id}/detail/${state}`\r\n });\r\n\r\n const [plages, pLoading] = useReferential(a => a.referentialGetPlages({ idClasse: +id }), true, [id]);\r\n const [calendriers, cLoading] = useReferential(a => a.referentialGetCalendriers({ idClasse: +id }), true, [id]);\r\n\r\n const refreshData = React.useCallback(() => {\r\n refresh();\r\n }, [refresh]);\r\n\r\n React.useEffect(() => {\r\n subscribeToEvent(\"CLASSE_HORAIRE_SAVED\", refreshData);\r\n subscribeToEvent(\"CLASSE_HORAIRE_ACTIONS\", refreshData);\r\n return () => {\r\n unsubscribeEvent(\"CLASSE_HORAIRE_SAVED\", refreshData);\r\n unsubscribeEvent(\"CLASSE_HORAIRE_ACTIONS\", refreshData);\r\n };\r\n }, [refreshData, subscribeToEvent, unsubscribeEvent]);\r\n\r\n const onEdit = React.useCallback(() => dispatchEvent(\"CLASSE_HORAIRE_EDIT\", !state), [dispatchEvent, state]);\r\n\r\n const FormSchema = React.useMemo(() => {\r\n return Yup.object().shape({\r\n dateFin: Yup.date().min(Yup.ref(\"dateCours\"), t(ETLCodes.DateFinTooLowError))\r\n });\r\n }, [t]);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n","export function getColor() {\n return (\n \"hsla(\" +\n 360 * Math.random() +\n \",\" +\n (50 + 50 * Math.random()) +\n \"%,\" +\n (85 + 10 * Math.random()) +\n \"%,\" +\n (70 + 30 * Math.random()) +\n \"%)\"\n );\n}\n","import moment from \"moment\";\nimport { IJExcelColumn, IJExcelNestedHeader, JExcel } from \"../../../../../../components\";\nimport * as React from \"react\";\n\nimport { useEventsContext } from \"../../../../../../contexts\";\n\nexport interface IJExcelViewProps {\n data: any;\n columns: IJExcelColumn[];\n nestedHeaders: IJExcelNestedHeader[];\n}\n\nexport const JExcelView: React.FunctionComponent = ({ data, columns, nestedHeaders }) => {\n const [jexcelInstance, setJexcelInstance] = React.useState(null);\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n\n React.useEffect(() => {\n const cb = () => jexcelInstance?.refresh();\n subscribeToEvent(\"CLASSE_HORAIRE_SAVED\", cb);\n subscribeToEvent(\"CLASSE_HORAIRE_ACTIONS\", cb);\n subscribeToEvent(\"CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED\", cb);\n return () => {\n unsubscribeEvent(\"CLASSE_HORAIRE_SAVED\", cb);\n unsubscribeEvent(\"CLASSE_HORAIRE_ACTIONS\", cb);\n unsubscribeEvent(\"CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED\", cb);\n };\n }, [jexcelInstance, subscribeToEvent, unsubscribeEvent]);\n\n return (\n
\n {data && (\n {\n return { ...ch, date: moment(ch.date).format(\"YYYY-MM-DD\") };\n })}\n columns={columns}\n nestedHeaders={nestedHeaders}\n setJexcelInstance={setJexcelInstance}\n tableOverflow={true}\n freezeColumns={2}\n tableHeight=\"800px\"\n tableWidth=\"1500px\"\n filters={true}\n pagination={25}\n />\n )}\n
\n );\n};\n","import { Card, IOptionProps } from \"@blueprintjs/core\";\nimport moment from \"moment\";\nimport { ButtonsBloc, InlineButtonContainer, Loading, showError } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ClasseHoraireApi, FcbClasseHorairesDto, FcbClasseHorairesDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { Changes, colName, IJExcelColumn, IJExcelNestedHeader, JExcel, SaveButton } from \"../../../../../components\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { getColor } from \"../../../../../utils/randomColor\";\nimport { JExcelView } from \"./jexcel/JExcelView\";\n\nexport const CLASSE_HORAIRE_ACTIONS = \"CLASSE_HORAIRE_ACTIONS\";\nexport interface IClasseHoraireItemPageProps {\n id: number;\n classeMatiere: IOptionProps[];\n local: IOptionProps[];\n state?: boolean;\n canSave: boolean;\n}\n\nexport const HEADER_COLSPAN = 3;\n\nexport const ClasseHoraireItemPage: React.FunctionComponent = ({\n id,\n classeMatiere,\n local,\n state,\n canSave\n}) => {\n const { t } = useTl();\n const api = useApiService(ClasseHoraireApi);\n\n const [jexcelInstance, setJexcelInstance] = React.useState(null);\n const { subscribeToEvent, unsubscribeEvent, dispatchEvent } = useEventsContext();\n\n const { data, loading, saveItem, saving, refresh } = useCrudApi({\n getApiFn: React.useCallback(\n () =>\n +id <= 0\n ? FcbClasseHorairesDtoFromJSON({ classeHoraires: [] })\n : api.classeHoraireGetHoraires({ idClasse: +id }),\n [api, id]\n ),\n saveApiFn: React.useCallback(\n async d => {\n const canSave = await api.classeHoraireSaveCheck({\n FcbClasseHorairesDto: d\n });\n\n if (!canSave.isValid) {\n showError(t(ETLCodes.CannotEditHoraireBecauseReplacement));\n return null;\n }\n\n const value = await api.classeHoraireSave({\n FcbClasseHorairesDto: d\n });\n dispatchEvent(\"CLASSE_HORAIRE_SAVED\", value);\n return value;\n },\n [api, dispatchEvent, t]\n )\n });\n\n const finalData = React.useMemo(\n () =>\n state\n ? data\n : {\n classeId: data?.classeId,\n classeHoraires:\n data?.classeHoraires?.filter(\n ch =>\n (ch.plage01MatiereId && ch.plage01MatiereId !== \"-\") ||\n (ch.plage02MatiereId && ch.plage02MatiereId !== \"-\") ||\n (ch.plage03MatiereId && ch.plage03MatiereId !== \"-\") ||\n (ch.plage04MatiereId && ch.plage04MatiereId !== \"-\") ||\n (ch.plage05MatiereId && ch.plage05MatiereId !== \"-\") ||\n (ch.plage06MatiereId && ch.plage06MatiereId !== \"-\") ||\n (ch.plage07MatiereId && ch.plage07MatiereId !== \"-\") ||\n (ch.plage08MatiereId && ch.plage08MatiereId !== \"-\") ||\n (ch.plage09MatiereId && ch.plage09MatiereId !== \"-\") ||\n (ch.plage10MatiereId && ch.plage10MatiereId !== \"-\") ||\n (ch.plage11MatiereId && ch.plage11MatiereId !== \"-\") ||\n (ch.plage12MatiereId && ch.plage12MatiereId !== \"-\") ||\n (ch.plage13MatiereId && ch.plage13MatiereId !== \"-\") ||\n (ch.plage14MatiereId && ch.plage14MatiereId !== \"-\")\n ) ?? []\n },\n [data, state]\n );\n\n const dynamicColumns = React.useMemo(\n () => [\n finalData?.classeHoraires?.find(ch => ch.plage01ClasseHoraireId) ? \"plage01\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage02ClasseHoraireId) ? \"plage02\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage03ClasseHoraireId) ? \"plage03\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage04ClasseHoraireId) ? \"plage04\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage05ClasseHoraireId) ? \"plage05\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage06ClasseHoraireId) ? \"plage06\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage07ClasseHoraireId) ? \"plage07\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage08ClasseHoraireId) ? \"plage08\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage09ClasseHoraireId) ? \"plage09\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage10ClasseHoraireId) ? \"plage10\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage11ClasseHoraireId) ? \"plage11\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage12ClasseHoraireId) ? \"plage12\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage13ClasseHoraireId) ? \"plage13\" : null,\n finalData?.classeHoraires?.find(ch => ch.plage14ClasseHoraireId) ? \"plage14\" : null\n ],\n [finalData]\n );\n\n const nestedHeaders = React.useMemo(() => {\n var col = [{ title: t(ETLCodes.Journee), colspan: 2 }] as IJExcelNestedHeader[];\n\n if (dynamicColumns.includes(\"plage01\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage01HeureDebut)[0]?.plage01HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage02\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage02HeureDebut)[0]?.plage02HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage03\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage03HeureDebut)[0]?.plage03HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage04\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage04HeureDebut)[0]?.plage04HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage05\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage05HeureDebut)[0]?.plage05HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage06\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage06HeureDebut)[0]?.plage06HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage07\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage07HeureDebut)[0]?.plage07HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage08\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage08HeureDebut)[0]?.plage08HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage09\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage09HeureDebut)[0]?.plage09HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage10\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage10HeureDebut)[0]?.plage10HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage11\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage11HeureDebut)[0]?.plage11HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage12\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage12HeureDebut)[0]?.plage12HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage13\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage13HeureDebut)[0]?.plage13HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n if (dynamicColumns.includes(\"plage14\")) {\n col.push({\n title: finalData?.classeHoraires?.filter(ch => !!ch.plage14HeureDebut)[0]?.plage14HeureDebut,\n colspan: HEADER_COLSPAN\n });\n }\n\n return col;\n }, [finalData, dynamicColumns, t]);\n\n const matiereColor = React.useMemo<{ [value: string]: string }>(() => {\n var mappedColor = { \"-\": \"white\" };\n\n classeMatiere?.forEach(element => {\n if (!mappedColor[element.value]) {\n mappedColor[element.value] = getColor();\n }\n });\n\n return mappedColor;\n }, [classeMatiere]);\n\n const columns = React.useMemo[]>(() => {\n var col = [\n {\n type: \"text\",\n name: \"nomJour\",\n title: \"Jour\",\n width: \"100\",\n readOnly: true,\n dynamicStyle: () => \"color: black\"\n },\n {\n type: \"calendar\",\n name: \"date\",\n title: \"Date\",\n width: \"100\",\n readOnly: true,\n options: { format: \"dd/MM/yyyy\" },\n dynamicStyle: () => \"color: black\"\n }\n ] as IJExcelColumn[];\n\n if (dynamicColumns.includes(\"plage01\")) {\n col.push({\n type: \"dropdown\",\n name: `plage01MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage01MatiereId]) {\n return `background-color: ${matiereColor[item.plage01MatiereId]}; color: black;`;\n } else {\n if (item.plage01MatiereId) {\n return `background-color: white; color: black`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage01LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage01Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage02\")) {\n col.push({\n type: \"dropdown\",\n name: `plage02MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage02MatiereId]) {\n return `background-color: ${matiereColor[item.plage02MatiereId]}; color: black;`;\n } else {\n if (item.plage02MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage02LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage02Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage03\")) {\n col.push({\n type: \"dropdown\",\n name: `plage03MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage03MatiereId]) {\n return `background-color: ${matiereColor[item.plage03MatiereId]}; color: black;`;\n } else {\n if (item.plage03MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage03LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage03Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage04\")) {\n col.push({\n type: \"dropdown\",\n name: `plage04MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage04MatiereId]) {\n return `background-color: ${matiereColor[item.plage04MatiereId]}; color: black;`;\n } else {\n if (item.plage04MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage04LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage04Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage05\")) {\n col.push({\n type: \"dropdown\",\n name: `plage05MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage05MatiereId]) {\n return `background-color: ${matiereColor[item.plage05MatiereId]}; color: black;`;\n } else {\n if (item.plage05MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage05LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage05Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage06\")) {\n col.push({\n type: \"dropdown\",\n name: `plage06MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage06MatiereId]) {\n return `background-color: ${matiereColor[item.plage06MatiereId]}; color: black;`;\n } else {\n if (item.plage06MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage06LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage06Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage07\")) {\n col.push({\n type: \"dropdown\",\n name: `plage07MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage07MatiereId]) {\n return `background-color: ${matiereColor[item.plage07MatiereId]}; color: black;`;\n } else {\n if (item.plage07MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage07LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage07Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage08\")) {\n col.push({\n type: \"dropdown\",\n name: `plage08MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage08MatiereId]) {\n return `background-color: ${matiereColor[item.plage08MatiereId]}; color: black;`;\n } else {\n if (item.plage08MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage08LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage08Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage09\")) {\n col.push({\n type: \"dropdown\",\n name: `plage09MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage09MatiereId]) {\n return `background-color: ${matiereColor[item.plage09MatiereId]}; color: black;`;\n } else {\n if (item.plage09MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage09LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage09Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage10\")) {\n col.push({\n type: \"dropdown\",\n name: `plage10MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage10MatiereId]) {\n return `background-color: ${matiereColor[item.plage10MatiereId]}; color: black;`;\n } else {\n if (item.plage10MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage10LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage10Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage11\")) {\n col.push({\n type: \"dropdown\",\n name: `plage11MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage11MatiereId]) {\n return `background-color: ${matiereColor[item.plage11MatiereId]}; color: black;`;\n } else {\n if (item.plage11MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage11LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage11Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage12\")) {\n col.push({\n type: \"dropdown\",\n name: `plage12MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage12MatiereId]) {\n return `background-color: ${matiereColor[item.plage12MatiereId]}; color: black;`;\n } else {\n if (item.plage12MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage12LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage12Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage13\")) {\n col.push({\n type: \"dropdown\",\n name: `plage13MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage13MatiereId]) {\n return `background-color: ${matiereColor[item.plage13MatiereId]}; color: black;`;\n } else {\n if (item.plage13MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage13LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage13Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage14\")) {\n col.push({\n type: \"dropdown\",\n name: `plage14MatiereId`,\n title: \"Matiere\",\n source: classeMatiere,\n width: \"150\",\n dynamicStyle: item => {\n if (matiereColor[item.plage14MatiereId]) {\n return `background-color: ${matiereColor[item.plage14MatiereId]}; color: black;`;\n } else {\n if (item.plage14MatiereId) {\n return `background-color: white; color: black;`;\n }\n }\n },\n readOnly: !state\n });\n col.push({\n type: \"dropdown\",\n name: `plage14LocalId`,\n title: \"Local\",\n source: local,\n width: \"100\",\n readOnly: !state\n });\n col.push({\n type: \"checkbox\",\n name: \"plage14Rattrapage\",\n title: \"Rattrapage\",\n width: \"50\",\n readOnly: !state\n });\n }\n\n if (dynamicColumns.includes(\"plage01\")) {\n col.push({ type: \"hidden\", name: \"plage01ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage01HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage02\")) {\n col.push({ type: \"hidden\", name: \"plage02ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage02HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage03\")) {\n col.push({ type: \"hidden\", name: \"plage03ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage03HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage04\")) {\n col.push({ type: \"hidden\", name: \"plage04ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage04HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage05\")) {\n col.push({ type: \"hidden\", name: \"plage05ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage05HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage06\")) {\n col.push({ type: \"hidden\", name: \"plage06ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage06HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage07\")) {\n col.push({ type: \"hidden\", name: \"plage07ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage07HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage08\")) {\n col.push({ type: \"hidden\", name: \"plage08ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage08HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage09\")) {\n col.push({ type: \"hidden\", name: \"plage09ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage09HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage10\")) {\n col.push({ type: \"hidden\", name: \"plage10ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage10HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage11\")) {\n col.push({ type: \"hidden\", name: \"plage11ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage11HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage12\")) {\n col.push({ type: \"hidden\", name: \"plage12ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage12HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage13\")) {\n col.push({ type: \"hidden\", name: \"plage13ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage13HeureDebut` });\n }\n if (dynamicColumns.includes(\"plage14\")) {\n col.push({ type: \"hidden\", name: \"plage14ClasseHoraireId\" });\n col.push({ type: \"hidden\", name: `plage14HeureDebut` });\n }\n\n return col;\n }, [classeMatiere, dynamicColumns, local, matiereColor, state]);\n\n const onChange = React.useCallback(\n (change: Changes) => {\n const { row: x, col: y, value } = change;\n if (value) {\n if (columns[+x].dynamicStyle) {\n const mappedStyle = {};\n const fieldName = columns[+x].name;\n const item = {};\n item[fieldName] = value;\n mappedStyle[`${colName(+x)}${+y + 1}`] = columns[+x].dynamicStyle(item);\n jexcelInstance.setStyle(mappedStyle);\n }\n } else {\n jexcelInstance.setValueFromCoords(+x, +y, \"-\", true);\n }\n },\n [columns, jexcelInstance]\n );\n\n const updateTable = React.useCallback((instance, cell, col, row, val, label, cellName) => {\n if (+col !== 0 && +col !== 1) {\n if (val === \"\" || (cell.innerHTML.includes(\"checkbox\") && cell.previousElementSibling.className === \"readonly\")) {\n cell.className = \"readonly\";\n cell.style.backgroundColor = \"#DCDCDC\";\n } else if (val === \"-\" || cell.innerHTML.includes(\"checkbox\")) {\n cell.className = \"\";\n cell.style.backgroundColor = \"white\";\n } else {\n cell.className = \"\";\n }\n }\n }, []);\n\n const onSave = React.useCallback(() => {\n const dataFromJExcel = jexcelInstance?.getJson();\n\n const classeHoraireToSave = dataFromJExcel.filter(d => {\n const c01 = finalData?.classeHoraires.find(ch => ch.plage01ClasseHoraireId === d.plage01ClasseHoraireId);\n const c01Modified = c01\n ? c01.plage01MatiereId !== d.plage01MatiereId ||\n c01.plage01MatiereId !== d.plage01LocalId ||\n c01.plage01Rattrapage !== d.plage01Rattrapage\n : false;\n\n const c02 = finalData?.classeHoraires.find(ch => ch.plage02ClasseHoraireId === d.plage02ClasseHoraireId);\n const c02Modified = c02\n ? c02.plage02MatiereId !== d.plage02MatiereId ||\n c02.plage02MatiereId !== d.plage02LocalId ||\n c02.plage02Rattrapage !== d.plage02Rattrapage\n : false;\n\n const c03 = finalData?.classeHoraires.find(ch => ch.plage03ClasseHoraireId === d.plage03ClasseHoraireId);\n const c03Modified = c03\n ? c03.plage03MatiereId !== d.plage03MatiereId ||\n c03.plage03MatiereId !== d.plage03LocalId ||\n c03.plage03Rattrapage !== d.plage03Rattrapage\n : false;\n\n const c04 = finalData?.classeHoraires.find(ch => ch.plage04ClasseHoraireId === d.plage04ClasseHoraireId);\n const c04Modified = c04\n ? c04.plage04MatiereId !== d.plage04MatiereId ||\n c04.plage04MatiereId !== d.plage04LocalId ||\n c04.plage04Rattrapage !== d.plage04Rattrapage\n : false;\n\n const c05 = finalData?.classeHoraires.find(ch => ch.plage05ClasseHoraireId === d.plage05ClasseHoraireId);\n const c05Modified = c05\n ? c05.plage05MatiereId !== d.plage05MatiereId ||\n c05.plage05MatiereId !== d.plage05LocalId ||\n c05.plage05Rattrapage !== d.plage05Rattrapage\n : false;\n\n const c06 = finalData?.classeHoraires.find(ch => ch.plage06ClasseHoraireId === d.plage06ClasseHoraireId);\n const c06Modified = c06\n ? c06.plage06MatiereId !== d.plage06MatiereId ||\n c06.plage06MatiereId !== d.plage06LocalId ||\n c06.plage06Rattrapage !== d.plage06Rattrapage\n : false;\n\n const c07 = finalData?.classeHoraires.find(ch => ch.plage07ClasseHoraireId === d.plage07ClasseHoraireId);\n const c07Modified = c07\n ? c07.plage07MatiereId !== d.plage07MatiereId ||\n c07.plage07MatiereId !== d.plage07LocalId ||\n c07.plage07Rattrapage !== d.plage07Rattrapage\n : false;\n\n const c08 = finalData?.classeHoraires.find(ch => ch.plage08ClasseHoraireId === d.plage08ClasseHoraireId);\n const c08Modified = c08\n ? c08.plage08MatiereId !== d.plage08MatiereId ||\n c08.plage08MatiereId !== d.plage08LocalId ||\n c08.plage08Rattrapage !== d.plage08Rattrapage\n : false;\n\n const c09 = finalData?.classeHoraires.find(ch => ch.plage09ClasseHoraireId === d.plage09ClasseHoraireId);\n const c09Modified = c09\n ? c09.plage09MatiereId !== d.plage09MatiereId ||\n c09.plage09MatiereId !== d.plage09LocalId ||\n c09.plage09Rattrapage !== d.plage09Rattrapage\n : false;\n\n const c10 = finalData?.classeHoraires.find(ch => ch.plage10ClasseHoraireId === d.plage10ClasseHoraireId);\n const c10Modified = c10\n ? c10.plage10MatiereId !== d.plage10MatiereId ||\n c10.plage10MatiereId !== d.plage10LocalId ||\n c10.plage10Rattrapage !== d.plage10Rattrapage\n : false;\n\n const c11 = finalData?.classeHoraires.find(ch => ch.plage11ClasseHoraireId === d.plage11ClasseHoraireId);\n const c11Modified = c11\n ? c11.plage11MatiereId !== d.plage11MatiereId ||\n c11.plage11MatiereId !== d.plage11LocalId ||\n c11.plage11Rattrapage !== d.plage11Rattrapage\n : false;\n\n const c12 = finalData?.classeHoraires.find(ch => ch.plage12ClasseHoraireId === d.plage12ClasseHoraireId);\n const c12Modified = c12\n ? c12.plage12MatiereId !== d.plage12MatiereId ||\n c12.plage12MatiereId !== d.plage12LocalId ||\n c12.plage12Rattrapage !== d.plage12Rattrapage\n : false;\n\n const c13 = finalData?.classeHoraires.find(ch => ch.plage13ClasseHoraireId === d.plage13ClasseHoraireId);\n const c13Modified = c13\n ? c13.plage13MatiereId !== d.plage13MatiereId ||\n c13.plage13MatiereId !== d.plage13LocalId ||\n c13.plage13Rattrapage !== d.plage13Rattrapage\n : false;\n\n const c14 = finalData?.classeHoraires.find(ch => ch.plage14ClasseHoraireId === d.plage14ClasseHoraireId);\n const c14Modified = c14\n ? c14.plage14MatiereId !== d.plage14MatiereId ||\n c14.plage14MatiereId !== d.plage14LocalId ||\n c14.plage14Rattrapage !== d.plage14Rattrapage\n : false;\n\n return (\n c01Modified ||\n c02Modified ||\n c03Modified ||\n c04Modified ||\n c05Modified ||\n c06Modified ||\n c07Modified ||\n c08Modified ||\n c09Modified ||\n c10Modified ||\n c11Modified ||\n c12Modified ||\n c13Modified ||\n c14Modified\n );\n });\n return saveItem(\n FcbClasseHorairesDtoFromJSON({\n classeId: +id,\n classeHoraires: [...classeHoraireToSave]\n })\n );\n }, [finalData, id, jexcelInstance, saveItem]);\n\n const refreshCB = React.useCallback(() => {\n refresh();\n jexcelInstance?.refresh();\n }, [jexcelInstance, refresh]);\n\n React.useEffect(() => {\n subscribeToEvent(\"CLASSE_HORAIRE_SAVED\", refreshCB);\n subscribeToEvent(\"CLASSE_HORAIRE_ACTIONS\", refreshCB);\n subscribeToEvent(\"CLASSE_HORAIRE_EDIT\", refresh);\n subscribeToEvent(\"CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED\", refreshCB);\n return () => {\n unsubscribeEvent(\"CLASSE_HORAIRE_SAVED\", refreshCB);\n unsubscribeEvent(\"CLASSE_HORAIRE_ACTIONS\", refreshCB);\n unsubscribeEvent(\"CLASSE_HORAIRE_EDIT\", refresh);\n unsubscribeEvent(\"CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED\", refreshCB);\n };\n }, [refresh, refreshCB, subscribeToEvent, unsubscribeEvent]);\n\n return (\n \n \n {finalData && classeMatiere && local && (\n <>\n {state ? (\n <>\n
\n {\n return { ...ch, date: moment(ch.date).format(\"YYYY-MM-DD\") };\n })}\n columns={columns}\n nestedHeaders={nestedHeaders}\n setJexcelInstance={setJexcelInstance}\n onChange={onChange}\n updateTable={updateTable}\n tableOverflow={true}\n tableHeight=\"800px\"\n tableWidth=\"100%\"\n freezeColumns={2}\n filters={true}\n pagination={25}\n />\n
\n
\n \n \n \n \n \n \n \n \n
\n \n ) : (\n \n )}\n \n )}\n
\n
\n );\n};\n","import { Loading, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport {\n ClasseHoraireActions,\n ClasseHoraireCalendrierItem,\n ClasseHoraireItemPage,\n ClasseHoraireMatiereList,\n ClasseHoraireRemarque\n} from \".\";\nimport { ClasseHoraireApi } from \"../../../../../api\";\nimport { useApiService } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useQuery } from \"react-query\";\n\nexport interface IClasseHorairePageProps {}\n\nexport const ClasseHorairePage: React.FunctionComponent = () => {\n const { id, state } = useParams<{ id: string; tab: string; state: string }>();\n const [classeMatiere, cmLoading] = useReferential(\n a => a.referentialGetClasseMatiereByClasse({ idClasse: +id }),\n true,\n [id]\n );\n const api = useApiService(ClasseHoraireApi);\n const [local, lLoading] = useReferential(a => a.referentialGetLocalByClasse({ idClasse: +id }), true, [id]);\n const [data, loading] = useApiEffect(() => api.classeHoraireIsHoraireLinkedToGap({ idClasse: +id }));\n const [editMode, setEditMode] = React.useState(state === \"edit\");\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n\n React.useEffect(() => {\n const cb = d => setEditMode(d);\n subscribeToEvent(\"CLASSE_HORAIRE_EDIT\", cb);\n return () => unsubscribeEvent(\"CLASSE_HORAIRE_EDIT\", cb);\n }, [subscribeToEvent, unsubscribeEvent]);\n\n const fetchCanSave = React.useCallback(() => api.classeHoraireCanSave({ idClasse: +id }), [api, id]);\n const { data: canSave } = useQuery([\"can-save-horaire\", id], fetchCanSave);\n\n return (\n \n {\n <>\n
\n \n
\n
\n \n
\n
\n \n
\n {!cmLoading && !lLoading && (\n <>\n
\n \n
\n \n \n )}\n \n }\n
\n );\n};\n","import { Card, Colors } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport { ClasseHoraireApi, ClasseHoraireMatiereSearch, FcbClasseHoraireMatiereGridDto } from \"../../../../../api\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClasseHoraireMatiereListProps {}\n\nexport const ClasseHoraireMatiereList: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n\n const { t } = useTl();\n const api = useApiService(ClasseHoraireApi);\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [9999],\n pageSize: 9999,\n sortKeys: { code: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: ClasseHoraireMatiereSearch) => {\n sObj.idClasse = +id;\n return api.classeHoraireGetHoraireMatieres({ ClasseHoraireMatiereSearch: sObj });\n },\n [api, id]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.NbHeure),\n fieldName: \"nbHeures\"\n },\n {\n header: () => t(ETLCodes.NbHeureReelle),\n fieldName: \"nbHeuresReelles\"\n }\n ],\n [t]\n );\n\n React.useEffect(() => {\n subscribeToEvent(\"CLASSE_HORAIRE_SAVED\", search);\n subscribeToEvent(\"CLASSE_HORAIRE_ACTIONS\", search);\n subscribeToEvent(\"CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED\", search);\n return () => {\n unsubscribeEvent(\"CLASSE_HORAIRE_SAVED\", search);\n unsubscribeEvent(\"CLASSE_HORAIRE_ACTIONS\", search);\n subscribeToEvent(\"CLASSE_HORAIRE_CALENDRIER_ITEM_SAVED\", search);\n };\n }, [search, subscribeToEvent, unsubscribeEvent]);\n\n const getRowStyles = React.useCallback((item: FcbClasseHoraireMatiereGridDto) => {\n const differentHours = item.nbHeures !== item.nbHeuresReelles;\n return css`\n & * {\n color: ${differentHours ? Colors.RED3 + \" !important\" : null};\n }\n `;\n }, []);\n\n return (\n <>\n {+id > 0 && (\n \n
\n \n
\n
\n )}\n \n );\n};\n","import { Card, Divider } from \"@blueprintjs/core\";\nimport {\n DataTable,\n FGTextAreaInput,\n FieldGroup,\n FieldSet,\n IDataTableColumn,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport {\n ClasseRemarqueApi,\n ClasseRemarqueSearch,\n FcbClasseRemarqueDto,\n FcbClasseRemarqueDtoFromJSON\n} from \"../../../../../api\";\nimport { SmallFormGenerator } from \"../../../../../components\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClasseHoraireRemarqueProps {\n state?: boolean;\n}\nexport const CLASSE_HORAIRE_REMARQUE_SAVED = \"CLASSE_HORAIRE_REMARQUE_SAVED\";\nexport const ClasseHoraireRemarque: React.FunctionComponent = ({ state }) => {\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(ClasseRemarqueApi);\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [20],\n pageSize: 20,\n sortKeys: { idRemarque: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: ClasseRemarqueSearch) => {\n sObj.idClasse = +id;\n return api.classeRemarqueBaseSearch({ ClasseRemarqueSearch: sObj });\n },\n [api, id]\n );\n\n const { loading: gridLoading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"remarque\"\n },\n {\n header: () => t(ETLCodes.Utilisateur),\n fieldName: \"user\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"dateRemarque\"\n }\n ],\n [t]\n );\n\n const { dispatchEvent } = useEventsContext();\n\n const { data, loading, saveItem, saving } = useCrudApi({\n getApiFn: () => FcbClasseRemarqueDtoFromJSON({ idClasse: +id }),\n saveApiFn: async (d: FcbClasseRemarqueDto) => {\n const value = await api.classeRemarqueSave({\n FcbClasseRemarqueDto: { ...d, dateRemarque: new Date(), idRemarque: 0 }\n });\n dispatchEvent(CLASSE_HORAIRE_REMARQUE_SAVED, value);\n return value;\n },\n deleteApiFn: d => {}\n });\n\n React.useEffect(() => {\n subscribeToEvent(\"CLASSE_HORAIRE_REMARQUE_SAVED\", search);\n return () => unsubscribeEvent(\"CLASSE_HORAIRE_REMARQUE_SAVED\", search);\n }, [search, subscribeToEvent, unsubscribeEvent]);\n\n return (\n <>\n {+id > 0 && (\n <>\n \n
\n
\n \n \n \n \n \n
\n \n \n
\n
\n \n )}\n \n );\n};\n","import { FGEmpty, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ClasseHoraireApi } from \"../../../../../../api\";\nimport { SmallFormGenerator, FGWalterDateMaskInput } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { useEventsContext } from \"../../../../../../contexts\";\nimport { CLASSE_HORAIRE_ACTIONS } from \"..\";\n\nexport interface IAjoutDatePageProps {\n idClasse: number;\n}\n\nexport const AjoutDatePage: React.FunctionComponent = ({ idClasse }) => {\n const { t } = useTl();\n const api = useApiService(ClasseHoraireApi);\n const { dispatchEvent } = useEventsContext();\n\n const [loading, setLoading] = React.useState(false);\n\n return (\n <>\n {\n setLoading(true);\n await api.classeHoraireAjoutDateHoraire({ idClasse: d.idClasse, dayToAdd: d.day });\n setLoading(false);\n dispatchEvent(CLASSE_HORAIRE_ACTIONS, true);\n }}\n editMode={true}\n saving={loading}\n >\n \n \n \n \n \n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport * as React from \"react\";\n\nimport { ClasseHoraireApi } from \"../../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { useEventsContext } from \"../../../../../../contexts\";\nimport { CLASSE_HORAIRE_ACTIONS } from \"../ClasseHoraireItemPage\";\n\nexport interface ICalculHoraireManquantProps {\n idClasse: number;\n}\n\nexport const CalculHoraireManquant: React.FunctionComponent = ({ idClasse }) => {\n const { t } = useTl();\n const api = useApiService(ClasseHoraireApi);\n const { dispatchEvent } = useEventsContext();\n const [loading, setLoading] = React.useState(false);\n\n return (\n <>\n {\n setLoading(true);\n await api.classeHoraireCreateMissingHoraire({ idClasse });\n setLoading(false);\n dispatchEvent(CLASSE_HORAIRE_ACTIONS, true);\n }}\n loading={loading}\n />\n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport * as React from \"react\";\n\nimport { ClasseHoraireApi } from \"../../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { useDialog, useEventsContext } from \"../../../../../../contexts\";\nimport { CLASSE_HORAIRE_ACTIONS } from \"../ClasseHoraireItemPage\";\n\nexport interface IDeleteHoraireProps {\n idClasse: number;\n}\n\nexport const DeleteHorairePage: React.FunctionComponent = ({ idClasse }) => {\n const { t } = useTl();\n const api = useApiService(ClasseHoraireApi);\n const { dispatchEvent } = useEventsContext();\n const { showDialog } = useDialog();\n const [loading, setLoading] = React.useState(false);\n\n return (\n <>\n {\n showDialog({\n message: t(ETLCodes.DeleteHoraireConfirmationMessage),\n title: t(ETLCodes.DeleteHoraireDialogTitle),\n onConfirmed: async () => {\n setLoading(true);\n await api.classeHoraireDeleteHoraire({ idClasse });\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n setLoading(false);\n dispatchEvent(CLASSE_HORAIRE_ACTIONS, true);\n }\n });\n }}\n loading={loading}\n />\n \n );\n};\n","import * as React from \"react\";\nimport { SmallFormGenerator, FGWalterDateMaskInput } from \"../../../../../../components\";\nimport { useTl, useApiService } from \"../../../../../../hooks\";\nimport { ClasseHoraireApi } from \"../../../../../../api\";\nimport { FieldGroup, FGEmpty } from \"nsitools-react\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { useEventsContext } from \"../../../../../../contexts\";\nimport { CLASSE_HORAIRE_ACTIONS } from \"../ClasseHoraireItemPage\";\n\nexport interface IFermetureClasseProps {\n idClasse: number;\n}\n\nexport const FermetureClassePage: React.FunctionComponent = ({ idClasse }) => {\n const { t } = useTl();\n const api = useApiService(ClasseHoraireApi);\n const { dispatchEvent } = useEventsContext();\n const [loading, setLoading] = React.useState(false);\n\n return (\n <>\n {\n setLoading(true);\n await api.classeHoraireFermetureClasse({ idClasse: d.idClasse, dateFermeture: d.dateFermeture });\n setLoading(false);\n dispatchEvent(CLASSE_HORAIRE_ACTIONS, true);\n }}\n editMode={true}\n saving={loading}\n >\n \n \n \n \n \n \n );\n};\n","import { Card, HTMLSelect, IOptionProps } from \"@blueprintjs/core\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { Col, Grid, Row } from \"react-flexbox-grid\";\n\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { AjoutDatePage, CalculHoraireManquant, DeleteHorairePage, FermetureClassePage } from \"./actions/\";\n\nexport interface IClasseHoraireActionsProps {\n idClasse: number;\n canSave: boolean;\n}\n\nexport enum EHoraireActions {\n Null,\n DeleteHoraire,\n FermetureClasse,\n AjoutDateHoraire,\n CalculHoraireManquant\n}\n\nexport const ClasseHoraireActions: React.FunctionComponent = ({ idClasse, canSave }) => {\n const { t } = useTl();\n const [data, setData] = React.useState<{ value: EHoraireActions }>({ value: EHoraireActions.Null });\n\n const EHoraireActionsOptions: IOptionProps[] = [\n {\n value: EHoraireActions.Null,\n label: \" \"\n },\n { value: EHoraireActions.DeleteHoraire, label: t(ETLCodes.DeleteHoraire) },\n { value: EHoraireActions.FermetureClasse, label: t(ETLCodes.FermetureClasse) },\n { value: EHoraireActions.AjoutDateHoraire, label: t(ETLCodes.AjoutDateHoraire) },\n { value: EHoraireActions.CalculHoraireManquant, label: t(ETLCodes.CalculHoraireManquant) }\n ];\n\n return (\n \n
\n \n \n \n setData({ value: +c.target.value })}\n disabled={!canSave}\n />\n \n \n \n \n {data.value === EHoraireActions.DeleteHoraire && }\n {data.value === EHoraireActions.FermetureClasse && }\n {data.value === EHoraireActions.AjoutDateHoraire && }\n {data.value === EHoraireActions.CalculHoraireManquant && }\n {data.value === EHoraireActions.Null &&
}\n \n \n \n
\n
\n );\n};\n","import { HTMLSelect } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport { ClasseJureApi, JureSearch } from \"../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClasseJureItemPageProps {}\n\nexport const ClasseJureItemPage: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string }>();\n const { t } = useTl();\n\n const api = useApiService(ClasseJureApi);\n const [ClasseMatiere, cmLoading] = useReferential(\n a => a.referentialGetClasseMatiereByClasse({ idClasse: +id }),\n true,\n [],\n false\n );\n const [currentCM, setCurrentCm] = React.useState();\n\n React.useEffect(() => {\n if (ClasseMatiere && !currentCM) {\n setCurrentCm(+ClasseMatiere[0].value);\n }\n }, [ClasseMatiere, currentCM]);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [12],\n pageSize: 12,\n sortKeys: { nom: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: JureSearch) => {\n sObj.idClasseMatiere = currentCM;\n return api.classeJureBaseSearch({ JureSearch: sObj });\n },\n [api, currentCM]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n React.useEffect(() => {\n search({\n idClasseMatiere: currentCM\n });\n }, [currentCM, search]);\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n }\n ],\n [t]\n );\n\n return (\n <>\n {!cmLoading && (\n
\n setCurrentCm(+e.target.value)} />\n \n
\n )}\n \n );\n};\n","import { Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { FormikProps } from \"formik\";\nimport { FGListen, FGNumberInput, FGTextInput, FieldGroup, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { ClasseApi, ClasseMatiereApi } from \"../../../../../api\";\nimport { FcbClasseMatiereDtoFromJSON } from \"../../../../../api/models/FcbClasseMatiereDto\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst IconContainer = styled.div`\n display: flex;\n align-items: center;\n height: 30px;\n margin-right: 0.5rem;\n`;\n\nexport interface IClasseMatiereItemPageProps {}\nexport const ClasseMatiereItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, idMatiere, state } = useParams<{ id: string; tab: string; idMatiere: string; state: string }>();\n const api = useApiService(ClasseMatiereApi);\n const classeApi = useApiService(ClasseApi);\n\n const { data, loading, deleteItem, deleting, saveItem, saving, saveError } = useCrudApi({\n getApiFn: () =>\n +idMatiere <= 0\n ? FcbClasseMatiereDtoFromJSON({\n idclasseMatiere: 0,\n idclasse: +id,\n code: \"\",\n description: \"\",\n idformateur: null,\n idformateurLocalisationContrat: null,\n niveau: 0\n })\n : api.classeMatiereGet({ id: +idMatiere }),\n saveApiFn: d => {\n setFirstContratChange(true);\n return api.classeMatiereSave({ FcbClasseMatiereDto: d });\n },\n deleteApiFn: d => api.classeMatiereDelete({ id: d.idclasseMatiere }),\n onDeletedRoute: () => `${ERoutes.classe}/${id}/${tab}/${state}`,\n onSavedRoute: d => `${ERoutes.classe}/${d.idclasse}/${tab}/${d.idclasseMatiere}/${state}`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n code: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"is-unique\", t(ETLCodes.ErrorCodeAlreadyExistsForClasse), async function(value) {\n const validationError = await api.classeMatiereCheckCodeUnique({\n code: value,\n idClasse: this.parent.idclasse,\n idClasseMatiere: this.parent.idclasseMatiere\n });\n return validationError.isValid;\n }),\n description: Yup.string().required(t(ETLCodes.Required)),\n idformateurLocalisationContrat: Yup.number()\n .nullable()\n .when(\"idformateur\", (value, schema) =>\n value !== null && value !== undefined ? schema.required(t(ETLCodes.Required)) : schema\n ),\n categorie: Yup.number()\n .nullable()\n .typeError(t(ETLCodes.NumberErrorType)),\n section: Yup.number()\n .nullable()\n .typeError(t(ETLCodes.NumberErrorType)),\n niveau: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idmatiereParent: Yup.number()\n .nullable()\n .when(\"niveau\", {\n is: val => val > 0,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n });\n }, [api, t]);\n\n const [classe] = useApiEffect(() => classeApi.classeGet({ id: +id }), [+id]);\n const [idFormateur, setIdFormateur] = React.useState(data?.idformateur ?? 0);\n const [idformateurLocalisationContrat, setIdformateurLocalisationContrat] = React.useState(\n data?.idformateurLocalisationContrat ?? 0\n );\n const [idCentreLocal, setIdCentreLocal] = React.useState(0);\n const [niveau, setNiveau] = React.useState(0);\n const [special, setSpecial] = React.useState(false);\n const [normal, setNormal] = React.useState(false);\n const [finalErrors, setFinalErrors] = React.useState({});\n\n React.useEffect(() => {\n if (classe) {\n setIdCentreLocal(classe.idcentre);\n setSpecial(classe.genre === \"S\");\n setNormal(classe.genre === \"N\");\n }\n }, [classe]);\n\n React.useEffect(() => {\n if (saveError?.validationErrors) {\n setFinalErrors(saveError?.validationErrors);\n }\n }, [saveError?.validationErrors]);\n\n // useWhatChanged([validationErrors], \"validationErrorsPage\");\n\n React.useEffect(() => {\n async function validateFormateurAgrement(value: number) {\n if (!value) return true;\n const validationError = await api.classeMatiereCheckFormateurAgrementMetier({\n idFormateur: value,\n idClasse: +id\n });\n return validationError.isValid;\n }\n\n validateFormateurAgrement(idFormateur).then(c => {\n if (\n !c &&\n (!finalErrors[\"idformateur\"] ||\n !finalErrors[\"idformateur\"].includes(t(ETLCodes.ClasseMatiereSaveFormateurNotAgrement)))\n ) {\n setFinalErrors({ ...finalErrors, idformateur: [t(ETLCodes.ClasseMatiereSaveFormateurNotAgrement)] });\n } else if (\n c &&\n finalErrors[\"idformateur\"] &&\n finalErrors[\"idformateur\"].includes(t(ETLCodes.ClasseMatiereSaveFormateurNotAgrement))\n ) {\n const error = finalErrors[\"idformateur\"].filter(fe => fe !== t(ETLCodes.ClasseMatiereSaveFormateurNotAgrement));\n setFinalErrors({\n ...finalErrors,\n idformateur: error?.length > 0 ? error : undefined\n });\n }\n });\n }, [api, finalErrors, id, idFormateur, t]);\n\n React.useEffect(() => {\n async function validateFormateurContrat(value) {\n if (!value) return true;\n const validationError = await api.classeMatiereCheckDepassementContrat({\n idFormateurLocalisationContrat: value,\n idClasseMatiere: +idMatiere\n });\n return validationError.isValid;\n }\n\n validateFormateurContrat(idformateurLocalisationContrat).then(c => {\n if (\n !c &&\n (!finalErrors[\"idformateurLocalisationContrat\"] ||\n !finalErrors[\"idformateurLocalisationContrat\"].includes(t(ETLCodes.ErrorFormateurDepassementContrat)))\n ) {\n setFinalErrors({\n ...finalErrors,\n idformateurLocalisationContrat: [t(ETLCodes.ErrorFormateurDepassementContrat)]\n });\n } else if (\n c &&\n finalErrors[\"idformateurLocalisationContrat\"] &&\n finalErrors[\"idformateurLocalisationContrat\"].includes(t(ETLCodes.ErrorFormateurDepassementContrat))\n ) {\n const error = finalErrors[\"idformateurLocalisationContrat\"].filter(\n fe => fe !== t(ETLCodes.ErrorFormateurDepassementContrat)\n );\n setFinalErrors({\n ...finalErrors,\n idformateurLocalisationContrat: error?.length > 0 ? error : undefined\n });\n }\n });\n }, [api, finalErrors, id, idFormateur, idMatiere, idformateurLocalisationContrat, t]);\n\n const [formateurs, fLoading] = useReferential(a => a.referentialGetFormateurByIdClasse({ idClasse: +id }), true, [\n id\n ]);\n\n const [contrats, cLoading] = useReferential(\n a => a.referentialGetFormateurLocalisationContrat({ idformateur: idFormateur, idcentre: idCentreLocal }),\n true,\n [idFormateur, idCentreLocal]\n );\n const [locaux, lLoading] = useReferential(a => a.referentialGetLocalByCentre({ idCentre: idCentreLocal }), true, [\n idCentreLocal\n ]);\n const [typesProjet, tpLoading] = useReferential(\n a => a.referentialGetProjetFinancementByClasse({ idClasse: +id }),\n true,\n [id]\n );\n const [matieresParent, mpLoading] = useReferential(\n a => niveau > 0 && a.referentialGetClasseMatieresByNiveau({ idclasse: +id, niveau }),\n true,\n [id, niveau]\n );\n\n const isCut = React.useMemo(() => data?.isCut, [data]);\n\n const [firstContratChange, setFirstContratChange] = React.useState(true);\n const setContrat = React.useCallback((formik?: FormikProps) => {\n formik.setFieldValue(\"idformateurLocalisationContrat\", null);\n formik.setFieldTouched(\"idformateurLocalisationContrat\");\n }, []);\n\n return (\n history.push(`${ERoutes.classe}/${id}/${tab}/${state}`)}\n editMode={state === \"edit\"}\n validationSchema={FormSchema}\n validationErrors={finalErrors}\n >\n {\n if (isNaN(+value)) {\n setIdFormateur(0);\n } else {\n setIdFormateur(+value ?? 0);\n\n if (value !== data?.idformateur) {\n setFirstContratChange(false);\n setContrat(formik);\n } else if (!firstContratChange) {\n setContrat(formik);\n }\n }\n }}\n />\n setIdformateurLocalisationContrat(+value)} />\n setNiveau(value)} />\n \n \n \n \n \n \n \n \n \n \n \n }\n />\n \n \n \n \n \n \n ctx?.formik?.values?.niveau > 0}\n />\n \n \n \n \n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n ButtonContainer,\n DataTable,\n FieldSet,\n IDataTableColumn,\n useApiEffect,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ClasseApi, ClasseMatiereApi, ClasseMatiereSearch, FcbClasseMatiereGridDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n BooleanColumn,\n CutButton,\n DeleteButton,\n EditButton,\n StyledError,\n ViewButton\n} from \"../../../../../components\";\nimport { useAuth, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useManageError, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClasseMatiereListPageProps {}\n\nexport const ClasseMatiereListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ClasseMatiereApi);\n const classeApi = useApiService(ClasseApi);\n const { id } = useParams<{ id: string }>();\n const { showDialog } = useDialog();\n const { manageError } = useManageError();\n const tableState = useGridState({\n serverMode: true,\n enablePagination: false,\n enableFilter: false,\n pageSize: 9999\n });\n\n const { totalCount } = tableState;\n const [genre] = useApiEffect(() => classeApi.classeGetClasseGenre({ id: +id }), [id]);\n const [showReinitBtn, setShowReinitBtn] = React.useState(false);\n const [reinitLoading, setReinitLoading] = React.useState(false);\n const [deleteLoading, setDeleteLoading] = React.useState(false);\n const [lastObj, setLastObj] = React.useState(null);\n const { getCurrentPermission } = useAuth();\n const dialogContext = useDialog();\n\n const searchFunction = React.useCallback(\n (sObj?: ClasseMatiereSearch) => {\n sObj.idClasse = +id;\n setLastObj(sObj);\n return api.classeMatiereBaseSearch({ ClasseMatiereSearch: sObj });\n },\n [api, id]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const canDelete = React.useMemo(() => getCurrentPermission()?.permission === \"RWD\" && genre === \"S\", [\n genre,\n getCurrentPermission\n ]);\n\n const deleteClasseMatiere = React.useCallback(\n (idclasseMatiere: number) => {\n dialogContext.showDialog({\n message: t(ETLCodes.DeleteConfirmationMessage),\n onConfirmed: () => {\n setDeleteLoading(true);\n api\n .classeMatiereDelete({ id: idclasseMatiere })\n .then(() => {\n setDeleteLoading(false);\n search(lastObj);\n })\n .catch(e => {\n manageError(e);\n setDeleteLoading(false);\n });\n }\n });\n },\n [api, dialogContext, lastObj, manageError, search, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbClasseMatiereGridDto) => (\n \n {// TODO: Check user rights\n \"NA\".includes(genre) && (\n history.push(`${ERoutes.classe}/${id}/matiere/${row.idclasseMatiere}/cut`)}\n />\n )}\n history.push(`${ERoutes.classe}/${id}/matiere/${row.idclasseMatiere}/view`)}\n />\n history.push(`${ERoutes.classe}/${id}/matiere/${row.idclasseMatiere}/edit`)}\n />\n {canDelete ? (\n {\n deleteClasseMatiere(row.idclasseMatiere);\n }\n }\n />\n ) : (\n <>\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Niveau),\n fieldName: \"niveau\",\n render: (row: FcbClasseMatiereGridDto) =>\n row.niveau && row.niveau + (row.niveau > 0 && !!row.matiereParent ? ` (${row.matiereParent})` : \"\")\n },\n {\n header: () => t(ETLCodes.Heures),\n fieldName: \"nbheures\"\n },\n {\n header: () => t(ETLCodes.TJ),\n fieldName: \"travail\"\n },\n {\n header: () => t(ETLCodes.Examen),\n fieldName: \"examen\"\n },\n {\n header: () => t(ETLCodes.Reussite),\n fieldName: \"pcReussite\",\n render: (row: FcbClasseMatiereGridDto) => (!!row.pcReussite ? row.pcReussite + \" %\" : \"\")\n },\n {\n header: () => t(ETLCodes.Local),\n fieldName: \"local\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.Contrat),\n fieldName: \"contrat\"\n },\n {\n header: () => t(ETLCodes.TypeProjet),\n fieldName: \"projetFinancement\"\n },\n {\n header: () => t(ETLCodes.UAA),\n fieldName: \"uaa\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbClasseMatiereGridDto) => \n },\n {\n header: () => t(ETLCodes.VisibleBulletin),\n fieldName: \"isVisibleBulletin\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbClasseMatiereGridDto) => \n },\n {\n header: () => t(ETLCodes.Sommative),\n fieldName: \"sommative\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbClasseMatiereGridDto) => \n }\n ],\n [canDelete, deleteClasseMatiere, deleteLoading, genre, history, id, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.classe}/${id}/matiere/0/edit`);\n }, [history, id]);\n\n const [classe] = useApiEffect(() => classeApi.classeGet({ id: +id }), [+id]);\n\n const [differentHours] = useApiEffect(\n () => api.classeMatiereCheckHeuresReferentiel({ idClasse: +id, idReferentiel: classe?.idreferentiel ?? 0 }),\n [id, classe]\n );\n\n const [original] = useApiEffect(\n () => api.classeMatiereCheckOriginality({ idClasse: +id, idReferentiel: classe?.idreferentiel ?? 0 }),\n [id, classe]\n );\n\n const [special, setSpecial] = React.useState(false);\n\n const reinitMatieres = React.useCallback(() => {\n showDialog({\n message: t(ETLCodes.ReinitConfirmMessage),\n onConfirmed: async () => {\n try {\n setReinitLoading(true);\n await api.classeMatiereReinit({ idClasse: +id, idReferentiel: classe?.idreferentiel });\n setReinitLoading(false);\n search(lastObj);\n setShowReinitBtn(false);\n } catch (e) {\n setReinitLoading(false);\n }\n }\n });\n }, [api, classe, id, lastObj, search, showDialog, t]);\n\n React.useEffect(() => {\n if (classe) {\n setSpecial(classe.genre === \"S\");\n if (classe.genre !== \"S\" && original) {\n setShowReinitBtn(!original.isValid);\n }\n }\n }, [original, classe]);\n\n const getReinitBtn = React.useCallback(() => {\n return showReinitBtn\n ? [\n {\n icon: \"reset\" as \"reset\",\n text: t(ETLCodes.ReinitMatieres),\n onClick: reinitMatieres,\n loading: loading || reinitLoading,\n disabled: !classe\n }\n ]\n : [];\n }, [classe, loading, reinitLoading, reinitMatieres, showReinitBtn, t]);\n\n const openAssignMultiple = React.useCallback(() => {\n history.push(`${ERoutes.classe}/${id}/matiere/edit/multiple`);\n }, [history, id]);\n\n const buttons = React.useMemo(\n () =>\n [\n ...getReinitBtn(),\n {\n icon: IconNames.ADD_TO_ARTIFACT,\n text: t(ETLCodes.AssignerPlusieursMatieres),\n onClick: openAssignMultiple,\n loading: loading,\n disabled: !classe\n }\n ] as any,\n [classe, getReinitBtn, loading, openAssignMultiple, t]\n );\n\n return (\n <>\n {+id > 0 && (\n \n {\n e.stopPropagation();\n onAddItem();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n \n )\n }\n buttons={buttons}\n >\n \n 0 && !differentHours?.isValid}\n message={t(ETLCodes.NbHoursNotCorresponding)}\n >\n \n )}\n \n );\n};\n","import { IOptionProps } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport SelectVirtualized from \"react-select-virtualized\";\n\nimport { useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IClasseMatiereListEditorProps {\n initialValue: number | string;\n onValueChanged: (value: number | string) => void;\n items: IOptionProps[];\n loading: boolean;\n}\n\nexport const ClasseMatiereListEditor: React.FunctionComponent = ({\n initialValue,\n onValueChanged,\n items,\n loading\n}) => {\n const { t } = useTl();\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState(null);\n const [focused, setFocused] = React.useState(false);\n\n React.useEffect(() => {\n setCurrentValue(initialValue);\n const found = items?.find(v => +v.value === +initialValue);\n setEditedValue(found);\n }, [initialValue, items]);\n\n const onBlur = React.useCallback(\n async (e: any) => {\n if (editedValue && +editedValue.value !== +currentValue) {\n setCurrentValue(+editedValue.value);\n onValueChanged(+editedValue.value);\n }\n setFocused(false);\n },\n [currentValue, editedValue, onValueChanged]\n );\n\n const finalItems = React.useMemo(() => items?.map(i => ({ value: i.value || \"\", label: i.label || \" \" })), [items]);\n\n const computeFocus = React.useCallback(() => {\n if (!focused) {\n setFocused(true);\n }\n }, [focused]);\n\n const displayedValue = React.useMemo(() => (+editedValue?.value > 0 ? editedValue?.label : t(ETLCodes.NoValue)), [\n editedValue,\n t\n ]);\n\n return (\n <>\n {focused ? (\n {\n let final = {\n ...base,\n minHeight: \"28px\",\n minWidth: \"200px\"\n };\n return final;\n },\n input: base => ({ ...base, margin: \"1px 2px\" }),\n clearIndicator: base => ({ ...base, padding: \"4px\", cursor: \"pointer\" }),\n dropdownIndicator: base => ({ ...base, padding: \"4px\", cursor: \"pointer\" }),\n menu: base => ({ ...base, zIndex: 9999 }),\n menuPortal: base => ({ ...base, zIndex: 9999 })\n }}\n isLoading={loading}\n options={finalItems}\n onChange={value => setEditedValue(value)}\n menuPortalTarget={document.body}\n menuPlacement=\"auto\"\n value={editedValue}\n loadingMessage={() => t(ETLCodes.FGSelectInput_Loading)}\n noOptionsMessage={() => t(ETLCodes.FGSelectInput_NoOptions)}\n placeholder={t(ETLCodes.FGSelectInput_SelectAnItem)}\n tabSelectsValue={true}\n onBlur={onBlur}\n autoFocus\n menuIsOpen={true}\n >\n ) : (\n computeFocus()}\n >\n {displayedValue}\n
\n )}\n \n );\n};\n","import * as React from \"react\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ClasseMatiereListEditor } from \"./ClasseMatiereListEditor\";\n\nexport interface IClasseMatiereContratListEditorProps {\n initialValue: number | string;\n onValueChanged: (value: number | string) => void;\n idMatiere: number;\n idFormateur?: number;\n}\n\nexport const ClasseMatiereContratListEditor: React.FunctionComponent = ({\n initialValue,\n onValueChanged,\n idMatiere,\n idFormateur\n}) => {\n const [contrats, cloading] = useReferential(\n a => a.referentialContratsByMatiere({ idClasseMatiere: +idMatiere, idFormateur: idFormateur }),\n true,\n [idFormateur]\n );\n\n return (\n onValueChanged(value)}\n items={contrats}\n loading={cloading}\n >\n );\n};\n","import * as React from \"react\";\nimport { InputGroup } from \"@blueprintjs/core\";\n\nexport interface IClasseMatiereTextEditorProps {\n initialTextValue: string;\n onValueChanged: (value: string) => void;\n textEditorHeight?: string | number;\n maxLength?: number;\n}\n\nexport const ClasseMatiereTextEditor: React.FunctionComponent = ({\n initialTextValue,\n onValueChanged,\n textEditorHeight = \"auto\",\n maxLength\n}) => {\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState();\n const [focused, setFocused] = React.useState(false);\n\n React.useEffect(() => {\n setCurrentValue(initialTextValue);\n setEditedValue(initialTextValue);\n }, [initialTextValue]);\n\n const onBlur = React.useCallback(\n async (e: any) => {\n if (editedValue !== currentValue) {\n setCurrentValue(editedValue);\n onValueChanged(editedValue);\n }\n setFocused(false);\n },\n [currentValue, editedValue, onValueChanged]\n );\n\n const computeFocus = React.useCallback(() => {\n if (!focused) {\n setFocused(true);\n }\n }, [focused]);\n\n return (\n <>\n {focused ? (\n setEditedValue(e.target.value)}\n onBlur={onBlur}\n onClick={() => computeFocus()}\n maxLength={maxLength}\n >\n ) : (\n computeFocus()}\n >\n {editedValue}\n
\n )}\n \n );\n};\n","import { Divider, Intent } from \"@blueprintjs/core\";\nimport {\n ButtonContainer,\n ButtonsBloc,\n DataTable,\n FGCustomPanel,\n FGNumberInput,\n FieldGroup,\n IDataTableColumn,\n useApiEffect,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled, { css } from \"styled-components\";\n\nimport { ClasseMatiereApi, FcbClasseMatiereCutGridDto } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n AddButton,\n BooleanColumn,\n CancelButton,\n DeleteButton,\n SaveButton,\n SmallFormGenerator,\n StyledError\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { ClasseMatiereContratListEditor } from \"./ClasseMatiereContratListEditor\";\nimport { ClasseMatiereListEditor } from \"./ClasseMatiereListEditor\";\nimport { ClasseMatiereTextEditor } from \"./ClasseMatiereTextEditor\";\n\nconst FlexBox = styled.div`\n flex: 1;\n`;\n\nexport interface IClasseMatiereCutPageProps {}\n\nexport const ClasseMatiereCutPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ClasseMatiereApi);\n const dialogContext = useDialog();\n const { id, idMatiere, tab, state } = useParams<{ id: string; idMatiere: string; tab: string; state: string }>();\n const [arrayLength, setArrayLength] = React.useState(0);\n const [initialRow, setInitialRow] = React.useState(null);\n const [nbHeureError, setNbHeureError] = React.useState(false);\n const [tjError, setTjError] = React.useState(false);\n const [examenError, setExamenError] = React.useState(false);\n const [saving, setSaving] = React.useState(false);\n const [currentData, setCurrentData] = React.useState(null);\n\n const [data, loading] = useApiEffect(() => api.classeMatiereGetCut({ idClasseMatiere: +idMatiere }), [idMatiere]);\n const [formateurs, floading] = useReferential(a => a.referentialGetFormateurByIdClasse({ idClasse: +id }), true);\n const [locals, lloading] = useReferential(a => a.referentialLocalsByMatiere({ idClasseMatiere: +idMatiere }), true);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false,\n pageSize: 25\n });\n const { setData } = tableState;\n\n const computeSummary = React.useCallback((key: string, cutData: FcbClasseMatiereCutGridDto[]) => {\n return {\n key,\n value: cutData.map(c => c[key]).reduce((a, b) => (a ?? 0) + (b ?? 0), 0),\n text: null\n };\n }, []);\n\n const setErrors = React.useCallback(() => {\n if (!data) {\n setNbHeureError(false);\n setTjError(false);\n setExamenError(false);\n } else {\n const nbHeures = computeSummary(\"nbHeures\", currentData);\n setNbHeureError((+data?.totalNbHeures ?? 0) !== (+nbHeures.value ?? 0));\n const tj = computeSummary(\"travail\", currentData);\n setTjError((+data?.totalPoints ?? 0) !== (+tj.value ?? 0));\n const examen = computeSummary(\"examen\", currentData);\n setExamenError((+data?.totalExamen ?? 0) !== (+examen.value ?? 0));\n }\n }, [computeSummary, currentData, data]);\n\n React.useEffect(() => {\n if (data?.cutData) {\n setCurrentData(data.cutData);\n }\n }, [data]);\n\n React.useEffect(() => {\n if (currentData) {\n const dataToSet = [...currentData];\n setData(dataToSet, null, [\n {\n key: \"section\",\n value: t(ETLCodes.Total) + \" :\",\n text: null\n },\n computeSummary(\"nbHeures\", dataToSet),\n computeSummary(\"travail\", dataToSet),\n computeSummary(\"examen\", dataToSet)\n ]);\n setArrayLength(dataToSet.length);\n setInitialRow(dataToSet[0]);\n setErrors();\n }\n }, [computeSummary, currentData, setData, setErrors, t]);\n\n const onSave = React.useCallback(() => {\n dialogContext.showDialog({\n message: t(ETLCodes.SectionConfirmMessage),\n onConfirmed: async () => {\n try {\n setSaving(true);\n await api.classeMatiereSaveCut({ FcbClasseMatiereCutDto: { ...data, cutData: currentData } });\n setSaving(false);\n history.push(`${ERoutes.classe}/${id}/${tab}/${state}`);\n } catch (e) {\n setSaving(false);\n }\n }\n });\n }, [api, currentData, data, dialogContext, history, id, state, t, tab]);\n\n const deleteSection = React.useCallback(\n (idx: number) => {\n const dataToSet = [...currentData];\n dataToSet?.splice(idx, 1);\n setCurrentData(dataToSet);\n },\n [currentData]\n );\n\n const showDeleteBtn = React.useMemo(() => arrayLength > 1, [arrayLength]);\n\n const onValueChanged = React.useCallback(\n (value: any, key: string, row: FcbClasseMatiereCutGridDto, index: number, isNumber: boolean = false) => {\n const dataToSet = [...currentData];\n dataToSet[index][key] = value ? (isNumber ? +value : \"\" + value) : null;\n setCurrentData(dataToSet);\n },\n [currentData]\n );\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"description\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n render: (row: FcbClasseMatiereCutGridDto, idx: number) => (\n onValueChanged(value, \"description\", row, idx)}\n >\n )\n },\n {\n header: () => t(ETLCodes.Niveau),\n fieldName: \"niveau\",\n render: (row: FcbClasseMatiereCutGridDto) =>\n row.niveau && row.niveau + (row.niveau > 0 && !!row.matiereParent ? ` (${row.matiereParent})` : \"\")\n },\n {\n header: () => t(ETLCodes.Section),\n fieldName: \"section\"\n },\n {\n header: () => t(ETLCodes.Heures),\n fieldName: \"nbHeures\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"150px\"\n }),\n render: (row: FcbClasseMatiereCutGridDto, idx: number) => (\n onValueChanged(value, \"nbHeures\", row, idx, true)}\n textEditorHeight={20}\n >\n )\n },\n {\n header: () => t(ETLCodes.TJ),\n fieldName: \"travail\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"150px\"\n }),\n render: (row: FcbClasseMatiereCutGridDto, idx: number) => (\n onValueChanged(value, \"travail\", row, idx, true)}\n textEditorHeight={20}\n >\n )\n },\n {\n header: () => t(ETLCodes.Examen),\n fieldName: \"examen\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"150px\"\n }),\n render: (row: FcbClasseMatiereCutGridDto, idx: number) => (\n onValueChanged(value, \"examen\", row, idx, true)}\n textEditorHeight={20}\n >\n )\n },\n {\n header: () => t(ETLCodes.Reussite),\n fieldName: \"reussite\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"150px\"\n }),\n render: (row: FcbClasseMatiereCutGridDto, idx: number) => (\n onValueChanged(value, \"reussite\", row, idx)}\n textEditorHeight={20}\n >\n )\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"idformateur\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"205px\"\n }),\n render: (row: FcbClasseMatiereCutGridDto, idx: number) => (\n onValueChanged(value, \"idformateur\", row, idx)}\n items={formateurs}\n loading={floading}\n >\n )\n },\n {\n header: () => t(ETLCodes.Contrat),\n fieldName: \"idcontrat\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"205px\"\n }),\n render: (row: FcbClasseMatiereCutGridDto, idx: number) => (\n onValueChanged(value, \"idcontrat\", row, idx)}\n idMatiere={+idMatiere}\n idFormateur={row.idformateur}\n >\n )\n },\n {\n header: () => t(ETLCodes.Local),\n fieldName: \"idlocal\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"205px\"\n }),\n render: (row: FcbClasseMatiereCutGridDto, idx: number) => (\n onValueChanged(value, \"idlocal\", row, idx)}\n items={locals}\n loading={lloading}\n >\n )\n },\n {\n header: () => t(ETLCodes.UAA),\n fieldName: \"uaa\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbClasseMatiereCutGridDto) => \n },\n {\n header: () => t(ETLCodes.VisibleBulletin),\n fieldName: \"isVisibleBulletin\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbClasseMatiereCutGridDto) => \n },\n {\n header: () => t(ETLCodes.Sommative),\n fieldName: \"sommative\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbClasseMatiereCutGridDto) => \n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbClasseMatiereCutGridDto, idx: number) => (\n \n deleteSection(idx)} />\n \n )\n }\n ],\n [deleteSection, floading, formateurs, idMatiere, lloading, locals, onValueChanged, showDeleteBtn, t]\n );\n\n const onAddSection = React.useCallback(() => {\n const dataToSet = [...currentData];\n const sumSection = computeSummary(\"section\", dataToSet).value;\n const maxSection = Math.max(...dataToSet.map(c => c.section));\n const full = maxSection === 1 || (maxSection * (maxSection + 1)) / 2 === sumSection;\n let i = maxSection + 1;\n\n if (!full) {\n for (i = 1; i <= 9; i++) {\n if (dataToSet[i - 1].section > i) {\n break;\n }\n }\n }\n\n const row: FcbClasseMatiereCutGridDto = {\n idclasseMatiere: 0,\n idclasse: initialRow.idclasse,\n idmatiere: initialRow.idmatiere,\n idreferentiel: initialRow.idreferentiel,\n description: initialRow.description,\n section: i,\n code: initialRow.code?.length < 10 ? initialRow.code + i : initialRow.code,\n examen: null,\n idcontrat: 0,\n idformateur: 0,\n idlocal: 0,\n nbHeures: null,\n reussite: initialRow.reussite,\n travail: null\n };\n dataToSet.splice(i - 1, 0, row);\n setCurrentData(dataToSet);\n }, [computeSummary, currentData, initialRow]);\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n {ctx => (\n <>\n \n \n \n \n )}\n \n \n history.push(`${ERoutes.classe}/${id}/${tab}/${state}`)}\n >\n \n = 9}\n text={t(ETLCodes.AddSection)}\n minimal={false}\n intent={Intent.NONE}\n onClick={onAddSection}\n >\n \n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\nimport {\n DataTable,\n FGCustomPanel,\n FGListen,\n FieldGroup,\n FieldSet,\n IDataTableColumn,\n showError,\n useApiEffect,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport {\n ClasseApi,\n ClasseMatiereApi,\n FcbClasseMatiereGridDto,\n FcbClasseMatiereMultipleDto\n} from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IClasseMatiereAssignMultiplePageProps {}\n\nexport const ClasseMatiereAssignMultiplePage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const api = useApiService(ClasseMatiereApi);\n const classeApi = useApiService(ClasseApi);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n\n const [matieres, mLoading] = useApiEffect(\n () => api.classeMatiereBaseSearch({ ClasseMatiereSearch: { idClasse: +id } }),\n [id]\n );\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false,\n pageSize: 25\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n if (matieres) {\n setData(matieres.results);\n }\n }, [matieres, setData]);\n\n const [classe] = useApiEffect(() => classeApi.classeGet({ id: +id }), [+id]);\n\n const { data, loading, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n ({\n idclasse: +id,\n idformateur: null\n } as FcbClasseMatiereMultipleDto),\n saveApiFn: d => {\n if (selectedIDs?.length === 0) {\n showError(t(ETLCodes.NoMatiereSelected));\n return null;\n }\n return api.classeMatiereSaveMultiple({ FcbClasseMatiereMultipleDto: { ...d, idclasseMatiereList: selectedIDs } });\n },\n deleteApiFn: d => {},\n onSavedRoute: d => `${ERoutes.classe}/${d.idclasse}/${tab}/${state}`\n });\n\n const [idFormateur, setIdFormateur] = React.useState(data?.idformateur ?? 0);\n const [idCentreLocal, setIdCentreLocal] = React.useState(0);\n\n React.useEffect(() => {\n if (classe) {\n setIdCentreLocal(classe.idcentre);\n }\n }, [classe]);\n\n const [formateurs, fLoading] = useReferential(a => a.referentialGetFormateurByIdClasse({ idClasse: +id }), true, [\n id\n ]);\n\n const [contrats, cLoading] = useReferential(\n a => a.referentialGetFormateurLocalisationContrat({ idformateur: idFormateur, idcentre: idCentreLocal }),\n true,\n [idFormateur, idCentreLocal]\n );\n const [typesProjet, tpLoading] = useReferential(\n a => a.referentialGetProjetFinancementByClasse({ idClasse: +id }),\n true,\n [id]\n );\n\n const toggleSelection = React.useCallback(\n (item: FcbClasseMatiereGridDto) => {\n if (!selectedIDs.includes(item.idclasseMatiere)) {\n setSelectedIDs(ids => [...ids, item.idclasseMatiere]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idclasseMatiere));\n }\n },\n [selectedIDs]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n render: (item: FcbClasseMatiereGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Heures),\n fieldName: \"nbheures\"\n },\n {\n header: () => t(ETLCodes.TJ),\n fieldName: \"travail\"\n },\n {\n header: () => t(ETLCodes.Examen),\n fieldName: \"examen\"\n },\n {\n header: () => t(ETLCodes.Reussite),\n fieldName: \"pcReussite\"\n },\n {\n header: () => t(ETLCodes.Local),\n fieldName: \"local\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.Contrat),\n fieldName: \"contrat\"\n },\n {\n header: () => t(ETLCodes.TypeProjet),\n fieldName: \"projetFinancement\"\n }\n ],\n [selectedIDs, t, toggleSelection]\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idformateurLocalisationContrat: Yup.number()\n .nullable()\n .when(\"idformateur\", (value, schema) =>\n value !== null && value !== undefined ? schema.required(t(ETLCodes.Required)) : schema\n )\n });\n }, [t]);\n\n return (\n history.push(`${ERoutes.classe}/${id}/${tab}/${state}`)}\n editMode={state === \"edit\"}\n validationSchema={FormSchema}\n >\n {\n if (isNaN(+value)) {\n setIdFormateur(0);\n } else {\n setIdFormateur(+value ?? 0);\n }\n }}\n />\n \n \n \n \n \n \n {ctx => (\n
\n \n
\n )}\n
\n \n );\n};\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ClasseMatiereItemPage } from \"./ClasseMatiereItemPage\";\nimport { ClasseMatiereListPage } from \"./ClasseMatiereListPage\";\nimport { ClasseMatiereCutPage } from \"./section/ClasseMatiereCutPage\";\nimport { ClasseMatiereAssignMultiplePage } from \"./assignMultiple/ClasseMatiereAssignMultiplePage\";\n\nexport interface IClasseMatiereSwitchProps {}\n\nexport const ClasseMatiereSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { ClasseApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { ClasseAgrementLocalisationSwitch } from \"./agrementLocalisation/ClasseAgrementLocalisationSwitch\";\nimport { ClasseApprenantList } from \"./apprenant/ClasseApprenantList\";\nimport { ClasseCoherenceHorairePage } from \"./coherenceHoraire/ClasseCoherenceHorairePage\";\nimport { CopieClassePage } from \"./copieClasse/CopieClassePage\";\nimport { ClasseDetail } from \"./detail/ClasseDetail\";\nimport { ExamenPratiqueItemPage } from \"./examen/ExamenPratiqueItemPage\";\nimport { ClasseHorairePage } from \"./horaire\";\nimport { ClasseJureItemPage } from \"./jure/ClasseJureItemPage\";\nimport { ClasseMatiereSwitch } from \"./matiere/ClasseMatiereSwitch\";\n\nexport interface IClasseItemPageProps {}\n\nexport const ClasseItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(ClasseApi);\n\n const fetchSocieteExterneUnauthorized = React.useCallback(async () => {\n return await api.classeSocieteExterneUnauthorized({ idClasse: +id });\n }, [api, id]);\n const { data: societeExterneUnauthorized } = useQuery(\n [\"societe-externe-unauthorize-classe\", id],\n fetchSocieteExterneUnauthorized,\n { cacheTime: 0 }\n );\n React.useEffect(() => {\n if (societeExterneUnauthorized?.value) {\n history.push(ERoutes.unauthorized);\n }\n }, [history, societeExterneUnauthorized]);\n\n const [displayName] = useApiEffect(() => api.classeGetDisplayName({ id: +id }), [id]);\n const [jure] = useApiEffect(() => api.classeIsJure({ id: +id }), [id]);\n\n return (\n [{ text: t(ETLCodes.Classes), route: ERoutes.classe }, { text: displayName }], [\n displayName,\n t\n ])}\n >\n history.push(`${ERoutes.classe}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } disabled={tab === \"copie\"} />\n }\n />\n }\n />\n }\n />\n }\n disabled={+id <= 0 || tab === \"copie\"}\n />\n }\n />\n }\n />\n\n }\n />\n {tab === \"copie\" && (\n }\n />\n )}\n \n \n );\n};\n","import { Button, ButtonGroup, Classes, Dialog, Icon, Tooltip } from \"@blueprintjs/core\";\nimport { IDataTableColumn, IDefaultCriteriaValue } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { FcbInscriptionMasseGridDto, InscriptionMasseApi, InscriptionMasseSearch } from \"../../../../api\";\nimport { SearchTablePage, UnordoredListColumn } from \"../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst DialogStyled = styled(Dialog)`\n width: 1500px;\n background: white;\n`;\n\nexport interface IInscriptionMasseAddModalProps {\n isOpen: boolean;\n onClose: (idsapprenant?: number[]) => void;\n codeMetier: string;\n anneeScolaire: string;\n idclasse: number;\n idcentre: number;\n /**\n * Ids of the already registered apprenants to not fetch them\n */\n registeredIds: number[];\n /**\n * Elements that has been already selected\n */\n alreadySelected: number[];\n}\n\nexport const InscriptionMasseAddModal: React.FunctionComponent = ({\n isOpen,\n onClose,\n codeMetier,\n idclasse,\n idcentre,\n anneeScolaire,\n registeredIds,\n alreadySelected\n}) => {\n const { t } = useTl();\n const inscriptionApi = useApiService(InscriptionMasseApi);\n const apiFactory = useAbortableApiServiceFactory(InscriptionMasseApi);\n const lastAbortController = React.useRef();\n\n const [totalCount, setTotalCount] = React.useState(0);\n const [data, setData] = React.useState();\n // TODO: Selection not working\n const searchFn = React.useCallback(\n async (nextSearch?: InscriptionMasseSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n var res = await abortableApi.inscriptionMasseSearchInscriptionIds({\n InscriptionMasseSearch: {\n ...nextSearch,\n idcentre,\n idclasseSelected: idclasse,\n availableIds: registeredIds,\n forceSkip: 0,\n forceTake: 99999\n }\n });\n\n setData(res);\n setTotalCount(res.length);\n\n return await abortableApi.inscriptionMasseSearchApprenantNotInClasse({\n InscriptionMasseSearch: {\n ...nextSearch,\n idcentre,\n idclasseSelected: idclasse,\n availableIds: registeredIds\n }\n });\n },\n [apiFactory, idcentre, idclasse, registeredIds]\n );\n\n const [selected, setSelected] = React.useState(alreadySelected ?? []);\n\n const toggleSelection = React.useCallback(\n (idapprenant: number) => {\n if (!selected.includes(idapprenant)) {\n setSelected(apprenants => [...apprenants, idapprenant]);\n } else {\n setSelected(apprenants => apprenants.filter(i => i !== idapprenant));\n }\n },\n [selected]\n );\n\n const allChecked = React.useMemo(() => totalCount > 0 && selected.length === totalCount, [\n selected.length,\n totalCount\n ]);\n const toggleSelectAll = React.useCallback(() => {\n if (data.length === selected.length) {\n setSelected([]);\n } else {\n setSelected(data);\n }\n }, [data, selected.length]);\n\n const onRowClick = React.useCallback(\n (item: FcbInscriptionMasseGridDto) => {\n toggleSelection(item.idapprenant);\n },\n [toggleSelection]\n );\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"_action\",\n autoFitContent: true,\n computed: true,\n header: () => (\n \n \n \n ),\n alignment: \"center\",\n render: (item: FcbInscriptionMasseGridDto) => (\n
\n )\n },\n {\n fieldName: \"idapprenant\",\n header: () => t(ETLCodes.Identifiant)\n },\n {\n fieldName: \"nom\",\n header: () => t(ETLCodes.Nom),\n render: row => row.nom + \" \" + row.prenom\n },\n {\n fieldName: \"dateNaissance\",\n header: () => t(ETLCodes.DateNaissance)\n },\n {\n fieldName: \"degre\",\n header: () => t(ETLCodes.Degre),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d, value: true }))} noBullets />\n )\n },\n {\n fieldName: \"masculin\",\n header: () => t(ETLCodes.Formation),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d, value: true }))} noBullets />\n )\n },\n {\n fieldName: \"codeMetier\",\n header: () => t(ETLCodes.CodeMetier),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d, value: true }))} noBullets />\n )\n },\n {\n fieldName: \"idclasse\",\n header: () => t(ETLCodes.Idclasse_Table),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d + \"\", value: true }))} noBullets />\n )\n },\n {\n fieldName: \"classe\",\n header: () => t(ETLCodes.Classe),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d, value: true }))} noBullets />\n )\n },\n {\n fieldName: \"anneeScolaire\",\n header: () => t(ETLCodes.AnneeScolaire),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d, value: true }))} noBullets />\n )\n },\n {\n fieldName: \"deliberation\",\n header: () => t(ETLCodes.Deliberation),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d, value: true }))} noBullets />\n )\n },\n {\n fieldName: \"deliberation2sess\",\n header: () => t(ETLCodes.Deliberation2sess),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d, value: true }))} noBullets />\n )\n }\n ];\n }, [allChecked, selected, t, toggleSelectAll]);\n\n const onSave = React.useCallback(async () => {\n onClose(selected);\n setSelected([]);\n }, [onClose, selected]);\n\n const close = React.useCallback(() => {\n onClose(undefined);\n setSelected(alreadySelected ?? []);\n }, [alreadySelected, onClose]);\n\n const getCriteria = React.useCallback(\n () => inscriptionApi.inscriptionMasseGetSearchCriterias({ includeListsValues: true }),\n [inscriptionApi]\n );\n\n const defaultCriterias = React.useMemo(\n () => [\n {\n criteria: \"AnneesScolaires\",\n searchMode: \"Contains\",\n value: anneeScolaire\n },\n {\n criteria: \"CodesMetier\",\n searchMode: \"Contains\",\n value: codeMetier\n }\n ],\n [anneeScolaire, codeMetier]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n \n );\n};\n","import { Button, ButtonGroup, Icon } from \"@blueprintjs/core\";\nimport { usePrevious } from \"ahooks\";\nimport { CollapsePanel, DataTable, IDataTableColumn, useGridState } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport {\n FcbInscriptionMasseGridDto,\n FcbInscriptionMasseGridDtoPaginatedResults,\n InscriptionMasseApi\n} from \"../../../../api\";\nimport { UnordoredListColumn } from \"../../../../components\";\nimport { useAbortableApiServiceFactory, useSearchApi, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { InscriptionMasseAddModal } from \"./InscriptionMasseAddModal\";\n\nconst Container = styled.div``;\n\nexport interface InscriptionMasseTableProps {\n selected: number[];\n setSelected: (values: number[]) => void;\n idclasse?: number;\n idcentre?: number;\n codeMetier?: string;\n anneeScolaire?: string;\n saving?: boolean;\n}\n\nexport const InscriptionMasseTable: React.FunctionComponent = ({\n selected,\n setSelected,\n idcentre,\n idclasse,\n codeMetier,\n anneeScolaire,\n saving\n}) => {\n const { t } = useTl();\n const tableState = useGridState({ serverMode: true, sortKeys: { nom: \"ASC\" } });\n\n const apiFactory = useAbortableApiServiceFactory(InscriptionMasseApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(async () => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n\n return idcentre && idclasse && anneeScolaire\n ? await abortableApi.inscriptionMasseBaseSearch({\n InscriptionMasseSearch: {\n idcentre,\n idclasseSelected: idclasse,\n selectedIds: selected\n }\n })\n : ({ totalCount: 0, aggregateResults: [], results: [] } as FcbInscriptionMasseGridDtoPaginatedResults);\n }, [anneeScolaire, apiFactory, idcentre, idclasse, selected]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n const { search, loading } = useSearchApi({\n searchFunction: searchFn,\n tableState,\n initialSearch: false,\n onAbort\n });\n\n const { data } = tableState;\n\n const registeredIds = React.useMemo(() => {\n return data?.filter(v => !selected.includes(v.idapprenant)).map(v => v.idapprenant) ?? [];\n }, [data, selected]);\n\n const previousIdcentre = usePrevious(idcentre);\n const previousIdclasse = usePrevious(idclasse);\n const previousAnneeScolaire = usePrevious(anneeScolaire);\n React.useEffect(() => {\n if (idcentre !== previousIdcentre && idclasse !== previousIdclasse && anneeScolaire !== previousAnneeScolaire) {\n search();\n }\n }, [idcentre, idclasse, anneeScolaire, search, previousIdcentre, previousIdclasse, previousAnneeScolaire]);\n\n const columns = React.useMemo(\n () => [\n {\n fieldName: \"_action\",\n autoFitContent: true,\n computed: true,\n\n alignment: \"center\",\n render: (item: FcbInscriptionMasseGridDto) => (\n \n )\n },\n { fieldName: \"idapprenant\", header: () => t(ETLCodes.Identifiant) },\n {\n fieldName: \"nom\",\n header: () => t(ETLCodes.Nom)\n },\n {\n fieldName: \"prenom\",\n header: () => t(ETLCodes.Prenom)\n },\n {\n fieldName: \"dateNaissance\",\n header: () => t(ETLCodes.DateNaissance)\n },\n {\n fieldName: \"codeMetier\",\n header: () => t(ETLCodes.CodeMetier),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d, value: true }))} />\n )\n },\n {\n fieldName: \"statut\",\n header: () => t(ETLCodes.Status),\n render: (row: FcbInscriptionMasseGridDto) => (\n ({ label: d, value: true }))} />\n )\n }\n ],\n [selected, t]\n );\n\n const [showModal, setShowModal] = React.useState(false);\n const onAddApprenant = React.useCallback(() => {\n setShowModal(true);\n }, []);\n\n const onClose = React.useCallback(\n (saved: number[]) => {\n if (saved) {\n setSelected(saved);\n // Wait for the update to get dispatched\n setTimeout(() => {\n search();\n }, 0);\n }\n setShowModal(false);\n },\n [search, setSelected]\n );\n\n const addButton = React.useMemo(() => {\n return idcentre && idclasse && codeMetier && anneeScolaire ? (\n \n \n \n ) : null;\n }, [idcentre, idclasse, codeMetier, anneeScolaire, t, onAddApprenant, saving, loading]);\n\n return (\n \n \n \n \n {showModal && (\n \n )}\n \n );\n};\n","import { Divider } from \"@blueprintjs/core\";\nimport { FGCheckboxInput, FGListen, FieldGroup, FieldSet, showError, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport * as Yup from \"yup\";\n\nimport { InscriptionDateConvocationSelector } from \"../..\";\nimport { EIfapmeSide, FcbInscriptionMasseDto, InscriptionMasseApi, MetierApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n PageBase,\n ProgressBarDialog,\n SmallFormGenerator,\n StyledError\n} from \"../../../../components\";\nimport { FGEuroMaskInput } from \"../../../../components/formGenerator/FGEuroMaskInput\";\nimport { useApiService, useCrudApi, useTheme, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { InscriptionMasseTable } from \"./InscriptionMasseTable\";\n\nexport interface IInscriptionMasseItemPageProps {}\n\nexport const InscriptionMasseItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(InscriptionMasseApi);\n const metierApi = useApiService(MetierApi);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape(\n {\n idstade: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idcentre: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n anneeScolaire: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n typecours: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n idmetier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idclasse: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n degre: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateConvocation: Yup.date()\n .nullable()\n .when(\"dateConvocationString\", (value, schema) => (!value ? schema.required(t(ETLCodes.Required)) : schema)),\n dateConvocationString: Yup.string()\n .nullable()\n .when(\"dateConvocation\", (value, schema) => (!value ? schema.required(t(ETLCodes.Required)) : schema)),\n dateInscription: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required))\n },\n [[\"dateConvocation\", \"dateConvocationString\"]]\n );\n }, [t]);\n\n const [idClasse, setIdClasse] = React.useState(0);\n const [idCentre, setIdCentre] = React.useState(0);\n const [anneeScolaire, setAnneeScolaire] = React.useState(\"\");\n const [typeCours, setTypeCours] = React.useState(\"\");\n const [idMetier, setIdMetier] = React.useState(0);\n\n const [apprenants, setApprenants] = React.useState(null);\n\n const getClasseParams = React.useMemo(() => {\n return {\n anneeScolaire,\n idCentre,\n idMetier,\n typeCours\n };\n }, [anneeScolaire, idCentre, idMetier, typeCours]);\n\n const [centre, cLoading] = useReferential(a => a.referentialGetCentre(), true, []);\n const [statutInsccription, statInscLoading] = useReferential(a => a.referentialGetStatutInscription(), true, []);\n const [stade, stadeLoading] = useReferential(a => a.referentialGetStade(), true, []);\n const [metier, metierLoading] = useReferential(a => a.referentialGetMetier(), true, []);\n const { ifapmeSide } = useTheme();\n const [typeCoursList, tcLoading] = useReferential(\n a => a.referentialGetTypeCours({ ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Hope : EIfapmeSide.Walter }),\n false,\n [ifapmeSide]\n );\n const [degre, degreLoading] = useReferential(a => a.referentialGetDegre(), false, []);\n const [anneeScolaireList, anneeScolaireLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n\n const [classes, claLoading] = useReferential(a => a.referentialGetClasse(getClasseParams), false, [getClasseParams]);\n\n const [codeMetier] = useApiEffect(() => metierApi.metierGetCodeMetier({ id: +idMetier }), [idMetier]);\n\n const [inscriptionsEngaged, setInscriptionsEngaged] = React.useState(false);\n const [currentInscriptionIndex, setCurrentInscriptionIndex] = React.useState(0);\n const [lastInscriptionIndex, setLastInscriptionIndex] = React.useState(0);\n\n const engageSaveOnByOne = React.useCallback(\n async (d: FcbInscriptionMasseDto) => {\n setInscriptionsEngaged(true);\n setLastInscriptionIndex(d.idspprenant.length);\n for (let i = 0; i < d.idspprenant.length; i++) {\n setCurrentInscriptionIndex(i);\n\n try {\n await api.inscriptionMasseSaveOneByOne({ FcbInscriptionMasseDto: { ...d, idspprenant: [d.idspprenant[i]] } });\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileInscriptionMasse, { id: d.idspprenant[i] }));\n }\n }\n setCurrentInscriptionIndex(d.idspprenant.length);\n return d;\n },\n [api, t]\n );\n\n const { data, saving, saveItem, setData } = useCrudApi({\n getApiFn: () => api.inscriptionMasseGetBaseData(),\n saveApiFn: d => engageSaveOnByOne(d),\n deleteApiFn: () => {}\n });\n\n const submitCallback = React.useCallback(\n async (values: FcbInscriptionMasseDto) => {\n await saveItem({ ...values, idspprenant: apprenants });\n // await apprenantApi.apprenantRefreshAnneeScolaireView();\n const a = { ...values, apprenants: [] };\n setData(a);\n },\n [apprenants, saveItem, setData]\n );\n\n const progressTitle = React.useMemo(\n () =>\n currentInscriptionIndex === lastInscriptionIndex\n ? t(ETLCodes.InscriptionDone)\n : t(ETLCodes.InscriptionInProgress),\n [currentInscriptionIndex, lastInscriptionIndex, t]\n );\n\n const displaySearchTable = React.useMemo(() => !!idClasse && !!anneeScolaire && !!idCentre && !!idMetier, [\n anneeScolaire,\n idCentre,\n idClasse,\n idMetier\n ]);\n\n return (\n \n
\n {data && (\n \n {\n setAnneeScolaire(value);\n if (formik.values.idclasse !== null) {\n formik.setFieldValue(\"idclasse\", null);\n }\n }}\n />\n {\n value && formik.touched?.dateConvocationString && formik.setFieldValue(\"dateConvocation\", undefined);\n }}\n />\n {\n value && formik.touched?.dateConvocation && formik.setFieldValue(\"dateConvocationString\", undefined);\n }}\n />\n {\n setIdCentre(value);\n if (formik.values.idclasse !== null) {\n formik.setFieldValue(\"idclasse\", null);\n }\n }}\n />\n {\n setTypeCours(value);\n if (formik.values.idclasse !== null) {\n formik.setFieldValue(\"idclasse\", null);\n }\n }}\n />\n {\n setIdMetier(value);\n if (formik.values.idclasse !== null) {\n formik.setFieldValue(\"idclasse\", null);\n }\n }}\n />\n {\n if (value) {\n setIdClasse(value);\n }\n formik.setFieldValue(\"apprenants\", []);\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {displaySearchTable && (\n
\n setApprenants(val)}\n saving={saving}\n />\n
\n )}\n \n \n
\n setInscriptionsEngaged(false)}\n />\n
\n );\n};\n","import { Checkbox, NonIdealState, Spinner } from \"@blueprintjs/core\";\nimport { FieldGroup, FieldSet, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport {\n ClasseMiseAJourMasseApi,\n ClasseMiseAJourMasseSearch,\n FcbClasseMiseAJourDtoFromJSON,\n FcbRechercheClasseMiseAJourMasseGridDto\n} from \"../../../api\";\nimport { ERoutes } from \"../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n PageBase,\n SearchTablePage,\n SmallFormGenerator\n} from \"../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../hooks\";\nimport { useReferential } from \"../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../locales\";\n\nexport interface IClasseMiseAJourPageProps {}\n\nexport const ClasseMiseAJourPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(ClasseMiseAJourMasseApi);\n\n const [allIds, setAllIds] = React.useState([]);\n const [selectedIds, setSelectedIds] = React.useState([]);\n const [searched, setSearched] = React.useState(false);\n const [idsLoading, setIdsLoading] = React.useState(false);\n\n const lastSearchObject = React.useRef();\n\n const hasKey = React.useCallback(\n (key: number) => {\n return selectedIds.includes(key);\n },\n [selectedIds]\n );\n\n const toggleSelection = React.useCallback(\n (id: number) => {\n if (!selectedIds.includes(id)) {\n setSelectedIds(ids => [...ids, id]);\n } else {\n setSelectedIds(ids => ids.filter(i => i !== id));\n }\n },\n [selectedIds]\n );\n\n const allSelected = React.useMemo(() => allIds.every(id => selectedIds.indexOf(id) >= 0) && allIds.length > 0, [\n allIds,\n selectedIds\n ]);\n\n const toggleSelectAll = React.useCallback(() => {\n setIdsLoading(true);\n api\n .classeMiseAJourMasseSearchClasseIds({\n ClasseMiseAJourMasseSearch: { ...lastSearchObject.current, forceSkip: 0, forceTake: 9999999 }\n })\n .then(ids => {\n setAllIds(ids);\n if (allSelected) {\n setSelectedIds([]);\n } else {\n setSelectedIds(ids);\n }\n setIdsLoading(false);\n });\n }, [allSelected, api]);\n\n const [statutAgrement, saLoading] = useReferential(\n a => a.referentialGetStatutLocalisationAgrement({ isLocalisation: false }),\n true,\n []\n );\n\n const { data, saving, saveItem } = useCrudApi({\n getApiFn: () => {\n return FcbClasseMiseAJourDtoFromJSON({ idClasses: [] });\n },\n saveApiFn: d => {\n d.idClasses = selectedIds;\n return api.classeMiseAJourMasseSave({ FcbClasseMiseAJourDto: d });\n },\n onSavedRoute: () => `${ERoutes.classeMiseAJourMasse}`\n });\n\n const searchFunc = React.useCallback(\n (nextSearch?: ClasseMiseAJourMasseSearch) => {\n setSearched(true);\n\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject.current)) {\n lastSearchObject.current = nextSearch;\n }\n return api.classeMiseAJourMasseBaseSearch({ ClasseMiseAJourMasseSearch: nextSearch });\n },\n [api]\n );\n\n const CheckboxHeader = React.useCallback(\n () => (idsLoading ? : ),\n [allSelected, idsLoading, toggleSelectAll]\n );\n\n const columns = React.useMemo(() => {\n return [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () => ,\n render: (item: FcbRechercheClasseMiseAJourMasseGridDto) => (\n {\n toggleSelection(item.idclasse);\n }}\n />\n )\n },\n {\n fieldName: \"code\",\n header: () => t(ETLCodes.Code)\n },\n {\n fieldName: \"nomClasse\",\n header: () => t(ETLCodes.NomClasse)\n },\n {\n fieldName: \"anneeAcademique\",\n header: () => t(ETLCodes.AnneeScolaire)\n },\n {\n fieldName: \"lieucours\",\n header: () => t(ETLCodes.LieuxDeCours)\n },\n {\n fieldName: \"statutLocalisationAgrement\",\n header: () => t(ETLCodes.StatutAgrement),\n autoFitContent: true\n },\n {\n fieldName: \"dateValidation\",\n header: () => t(ETLCodes.DateAgrement)\n }\n // {\n // fieldName: \"dateCours\",\n // header: () => t(ETLCodes.PremierCours)\n // },\n // {\n // fieldName: \"idconseillerAgrement\",\n // header: () => t(ETLCodes.Conseiller)\n // }\n ];\n }, [CheckboxHeader, hasKey, t, toggleSelection]);\n\n const getCriteria = React.useCallback(async () => {\n const criterias = api.classeMiseAJourMasseGetSearchCriterias({ includeListsValues: true });\n return criterias;\n }, [api]);\n\n return (\n \n
\n {data && (\n \n \n \n \n \n \n \n )}\n \n }\n />\n
\n
\n );\n};\n","import * as React from \"react\";\r\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../hooks\";\r\nimport { useHistory } from \"react-router\";\r\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\r\nimport { ViewButton, EditButton, SearchTablePage } from \"../../../../components\";\r\nimport { ERoutes } from \"../../../../AppRouter\";\r\nimport { ETLCodes } from \"../../../../locales\";\r\nimport { VisiteApi, FcbVisiteGridDto, VisiteSearch, ETextSearchType } from \"../../../../api\";\r\nimport { Checkbox } from \"@blueprintjs/core\";\r\nimport { useGlobalData } from \"../../../../contexts\";\r\n\r\nexport interface IVisiteExterieureListPageProps {}\r\n\r\nexport const VisiteExterieureListPage: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const history = useHistory();\r\n const api = useApiService(VisiteApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbVisiteGridDto) => (\r\n \r\n history.push(`${ERoutes.visiteExterieure}/${row.idvisite}/information/view`)}\r\n />\r\n history.push(`${ERoutes.visiteExterieure}/${row.idvisite}/information/edit`)}\r\n />\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.Date),\r\n fieldName: \"datevisiteDebut\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Duree),\r\n fieldName: \"duree\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Contact),\r\n fieldName: \"contact\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Accord),\r\n fieldName: \"accord\",\r\n alignment: \"center\",\r\n render: (value: FcbVisiteGridDto) => \r\n },\r\n {\r\n header: () => t(ETLCodes.Centre),\r\n fieldName: \"nom\"\r\n }\r\n ],\r\n [history, t]\r\n );\r\n\r\n const onAddItem = React.useCallback(() => {\r\n history.push(`${ERoutes.visiteExterieure}/0/information/edit`);\r\n }, [history]);\r\n\r\n const getCriteriasFn = React.useCallback(() => api.visiteGetSearchCriterias({ includeListsValues: true }), [api]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(VisiteApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (sObj?: VisiteSearch) => {\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.visiteBaseSearch({ VisiteSearch: sObj });\r\n },\r\n [apiFactory]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { VisiteClasseApi, VisiteClasseSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useSearchApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IVisiteClasseLieeListPageProps {}\n\nexport const VisiteClasseLieeListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n\n const apiFactory = useAbortableApiServiceFactory(VisiteClasseApi);\n const lastAbortController = React.useRef();\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n const idVisite = React.useMemo(() => +id, [id]);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n async (sObj?: VisiteClasseSearch) => {\n sObj.idVisite = idVisite;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return await abortableApi.visiteClasseBaseSearch({ VisiteClasseSearch: sObj });\n },\n [apiFactory, idVisite]\n );\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true,\n onAbort\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"nom\"\n }\n ],\n [t]\n );\n\n return (\n <>\n history.push(`${ERoutes.visiteExterieure}/${idVisite}/classeLiee/selector`)}\n intent={Intent.PRIMARY}\n text={t(ETLCodes.Modify)}\n />\n }\n >\n \n \n \n );\n};\n","import { Spinner } from \"@blueprintjs/core\";\nimport { IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ClasseApi, VisiteClasseApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IVisiteClasseLieeSelectorProps {}\n\nexport const VisiteClasseLieeSelector: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const classeApi = useApiService(ClasseApi);\n const visiteClasseApi = useApiService(VisiteClasseApi);\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n const idVisite = React.useMemo(() => +id, [id]);\n const dialogContext = useDialog();\n\n const { data, isFetching } = useQuery([\"visite-classes\", id], () =>\n visiteClasseApi.visiteClasseGetVisiteClasse({ idVisite: idVisite })\n );\n\n const columns = React.useMemo(() => {\n return [\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"annee\"\n },\n {\n header: () => t(ETLCodes.Lieu),\n fieldName: \"lieu\"\n }\n ];\n }, [t]);\n\n const searchIdsFunc = React.useCallback(sObj => classeApi.classeSearchClasseIds({ ClasseSearch: sObj }), [classeApi]);\n const getCriteriasFunction = React.useCallback(\n () => classeApi.classeGetSearchCriterias({ includeListsValues: true }),\n [classeApi]\n );\n const searchFunction = React.useCallback(sObj => classeApi.classeBaseSearch({ ClasseSearch: sObj }), [classeApi]);\n const onSave = React.useCallback(\n async newIds => {\n await visiteClasseApi.visiteClasseSaveClassesLies({\n FcbVisiteClasseDto: { idVisite: +idVisite, idsClasse: newIds }\n });\n history.push(`${ERoutes.visiteExterieure}/${idVisite}/classeLiee`);\n },\n [history, idVisite, visiteClasseApi]\n );\n\n return isFetching ? (\n \n ) : (\n history.push(`${ERoutes.visiteExterieure}/${idVisite}/classeLiee`)}\n overrideListValues={{ Idstade: i => i.displayValue }}\n dialogContext={dialogContext}\n sortKeys={{ code: \"ASC\" }}\n />\n );\n};\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { VisiteClasseLieeListPage } from \"./VisiteClasseLieeListPage\";\nimport { VisiteClasseLieeSelector } from \"./VisiteClasseLieeSelector\";\n\nexport interface IVisiteClasseLieeSwitchProps {}\n\nexport const VisiteClasseLieeSwitch: React.FunctionComponent = props => {\n return (\n \n } exact />\n } />\n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { VisiteFormateurSearch } from \"../../../../../api\";\nimport { VisiteFormateurApi } from \"../../../../../api/apis/VisiteFormateurApi\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IVisiteFormateurLieListPageProps {\n idVisite: number;\n}\n\nexport const VisiteFormateurLieListPage: React.FunctionComponent = ({ idVisite }) => {\n const { t } = useTl();\n const api = useApiService(VisiteFormateurApi);\n const history = useHistory();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { formateur: \"ASC\" }\n });\n const { totalCount } = tableState;\n const searchFunction = React.useCallback(\n (sObj?: VisiteFormateurSearch) => {\n sObj.idVisite = idVisite;\n return api.visiteFormateurBaseSearch({ VisiteFormateurSearch: sObj });\n },\n [api, idVisite]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n }\n ],\n [t]\n );\n\n return (\n <>\n {\n e.stopPropagation();\n history.push(`${ERoutes.visiteExterieure}/${idVisite}/formateurLie/selector`);\n }}\n text={t(ETLCodes.Modify)}\n intent={Intent.PRIMARY}\n />\n }\n >\n \n \n \n );\n};\n","import { FormateurApi, VisiteFormateurApi, FcbFormateurGridDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { Checkbox } from \"@blueprintjs/core\";\nimport { useHistory } from \"react-router\";\nimport { useApiEffect, IDataTableColumn, showError, showSuccess } from \"nsitools-react\";\nimport React from \"react\";\n\nexport interface IVisiteFormateurLieSelectorProps {\n idVisite: number;\n}\n\nexport const VisiteFormateurLieSelector: React.FunctionComponent = ({ idVisite }) => {\n const { t } = useTl();\n const history = useHistory();\n const formateurApi = useApiService(FormateurApi);\n const visiteFormateurApi = useApiService(VisiteFormateurApi);\n const dialogContext = useDialog();\n\n const [data, loading] = useApiEffect(\n () => visiteFormateurApi.visiteFormateurGetVisiteFormateur({ idVisite: idVisite }),\n []\n );\n\n const columns = React.useMemo(() => {\n return [\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.Actif),\n fieldName: \"actif\",\n autoFitContent: true,\n alignment: \"center\",\n render: (value: FcbFormateurGridDto) => \n },\n {\n header: () => t(ETLCodes.LocaliteCentre),\n fieldName: \"localiteCentre\"\n },\n {\n header: () => t(ETLCodes.Contrat),\n fieldName: \"contrat\"\n }\n ];\n }, [t]);\n\n return (\n !loading && (\n formateurApi.formateurSearchFormateurIds({ FormateurSearch: sObj })}\n getCriteriasFunction={() => formateurApi.formateurGetSearchCriterias({ includeListsValues: true })}\n searchFunction={sObj => formateurApi.formateurBaseSearch({ FormateurSearch: sObj })}\n onSave={async newIds => {\n try {\n await visiteFormateurApi.visiteFormateurSaveFormateursLies({\n FcbVisiteFormateurDto: { idvisite: +idVisite, idformateurs: newIds }\n });\n showSuccess(t(ETLCodes.General_SavedSuccessMessage));\n history.push(`${ERoutes.visiteExterieure}/${idVisite}/formateurLie`);\n } catch (e) {\n showError(t(ETLCodes.General_SaveErrorMessage));\n throw e;\n }\n }}\n onCancel={() => history.push(`${ERoutes.visiteExterieure}/${idVisite}/formateurLie`)}\n overrideListValues={{ Idstade: i => i.displayValue }}\n dialogContext={dialogContext}\n sortKeys={{ nom: \"ASC\" }}\n />\n )\n );\n};\n","import { ERoutes } from \"../../../../../AppRouter\";\nimport { VisiteFormateurLieListPage } from \"./VisiteFormateurLieListPage\";\nimport { VisiteFormateurLieSelector } from \"./VisiteFormateurLieSelector\";\nimport React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nexport interface IVisiteFormateurLieSwitchProps {\n idVisite: number;\n}\n\nexport const VisiteFormateurLieSwitch: React.FunctionComponent = ({ idVisite }) => {\n return (\n \n }\n exact\n />\n }\n />\n \n );\n};\n","import { chunk } from \"lodash\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { FcbVisiteDtoFromJSON, VisiteApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\n\nexport interface IVisiteHoraireProps {\n idVisite: number;\n}\n\nexport const VisiteHoraire: React.FunctionComponent = ({ idVisite }) => {\n const [horaires, loadingHoraires] = useReferential(a => a.referentialGetPlageHoraireVisite(), false, []);\n const { tUnsafe } = useTl();\n const api = useApiService(VisiteApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (idVisite <= 0 ? FcbVisiteDtoFromJSON({}) : api.visiteGet({ id: idVisite })),\n saveApiFn: d => api.visiteSave({ FcbVisiteDto: d }),\n onSavedRoute: d => `${ERoutes.visiteExterieure}/${d.idvisite}/horaire/edit`,\n deleteApiFn: d => {},\n onDeletedRoute: () => `${ERoutes.visiteExterieure}/${idVisite}/information/edit`\n });\n\n return (\n history.push(ERoutes.diplome)}\n onDelete={deleteItem}\n showDeleteButton={false}\n saving={saving}\n deleting={deleting}\n >\n \n {data &&\n !loadingHoraires &&\n chunk(horaires, 4).map(options => (\n \n {options.map(option => (\n \n ))}\n \n ))}\n \n \n );\n};\n","import { FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbVisiteDtoFromJSON, VisiteApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IVisiteInformationPageProps {\n idVisite: number;\n editMode: boolean;\n}\n\nexport const VisiteInformationPage: React.FunctionComponent = ({ idVisite, editMode }) => {\n const { t } = useTl();\n const api = useApiService(VisiteApi);\n const history = useHistory();\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idcentre: Yup.number().required(t(ETLCodes.Required)),\n datevisiteDebut: Yup.date().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => (idVisite <= 0 ? FcbVisiteDtoFromJSON({}) : api.visiteGet({ id: idVisite })),\n saveApiFn: d => api.visiteSave({ FcbVisiteDto: d }),\n onSavedRoute: d => `${ERoutes.visiteExterieure}/${d.idvisite}/information/edit`,\n deleteApiFn: d => api.visiteDelete({ id: d.idvisite }),\n onDeletedRoute: () => ERoutes.visiteExterieure\n }),\n [api, idVisite]\n )\n );\n const [centres, cLoading] = useReferential(a => a.referentialGetCentre(), true, []);\n\n return (\n history.push(ERoutes.visiteExterieure)}\n onDelete={deleteItem}\n showDeleteButton={idVisite > 0}\n saving={saving}\n deleting={deleting}\n autoRequiredMark\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Spinner, SpinnerSize, Tab } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { VisiteApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { VisiteClasseLieeSwitch } from \"./classeLiee/VisiteClasseLieeSwitch\";\nimport { VisiteFormateurLieSwitch } from \"./formateurLie_/VisiteFormateurLieSwitch\";\nimport { VisiteHoraire } from \"./VisiteHoraire\";\nimport { VisiteInformationPage } from \"./VisiteInformationPage\";\n\nexport interface IVisiteExterieureItemPageProps {}\n\nexport const VisiteExterieureItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const visiteApi = useApiService(VisiteApi);\n const { data: displayName, isLoading: displayNameLoading } = useQuery([\"visite-display-name\", id], () =>\n visiteApi.visiteGetDisplayName({ id: +id })\n );\n const finalDisplayName = React.useMemo(\n () => (displayNameLoading ? : displayName),\n [displayName, displayNameLoading]\n );\n\n return (\n \n history.push(`${ERoutes.visiteExterieure}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n } disabled={+id <= 0} />\n }\n disabled={+id <= 0}\n />\n } disabled={+id <= 0} />\n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\r\nimport { IDataTableColumn } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nimport { EvaluationApi, EvaluationSearch, FcbEvaluationGridDto, ETextSearchType } from \"../../../../api\";\r\nimport { ERoutes } from \"../../../../AppRouter\";\r\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../components\";\r\nimport { useGlobalData } from \"../../../../contexts\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../locales\";\r\nimport styled from \"styled-components\";\r\n\r\nexport interface IEvaluationListPageProps {}\r\nconst Container = styled.div`\r\n display: flex;\r\n`;\r\nexport const EvaluationListPage: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const history = useHistory();\r\n const api = useApiService(EvaluationApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbEvaluationGridDto) => (\r\n \r\n history.push(`${ERoutes.evaluation}/${row.idevaluation}/detail/view`)}\r\n />\r\n history.push(`${ERoutes.evaluation}/${row.idevaluation}/detail/edit`)}\r\n />\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"annee\"\r\n },\r\n {\r\n header: () => t(ETLCodes.CodeClasse),\r\n fieldName: \"codeClasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.LibelleClasse),\r\n fieldName: \"libelleClasse\"\r\n },\r\n {\r\n header: () => t(ETLCodes.CodeMatiere),\r\n fieldName: \"codeMatiere\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Formateur),\r\n fieldName: \"formateur\"\r\n },\r\n {\r\n header: () => t(ETLCodes.TypeEvaluation),\r\n fieldName: \"type\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Date),\r\n fieldName: \"date\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Libelle),\r\n fieldName: \"libelle\"\r\n },\r\n {\r\n header: () => t(ETLCodes.CoteMax),\r\n fieldName: \"coteMax\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Valide),\r\n fieldName: \"valide\",\r\n alignment: \"center\",\r\n render: (row: FcbEvaluationGridDto) => {}} />\r\n }\r\n ],\r\n [history, t]\r\n );\r\n\r\n const addItemFunction = React.useCallback(() => {\r\n history.push(`${ERoutes.evaluation}/0/detail/edit`);\r\n }, [history]);\r\n\r\n const getCriteriasFn = React.useCallback(() => api.evaluationGetSearchCriterias({ includeListsValues: true }), [api]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(EvaluationApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (nextSearch?: EvaluationSearch) => {\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.evaluationBaseSearch({ EvaluationSearch: nextSearch });\r\n },\r\n [apiFactory]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { FGCustomInput, FGCustomPanel, FGTextInput, FieldGroup, Loading } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport {\n EvaluationApi,\n FcbEvaluationApprenantListGetDto,\n FcbEvaluationApprenantListGetDtoFromJSON\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../components\";\nimport { useDialog } from \"../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IEvaluationApprenantListProps {\n coteMax?: number;\n showNeutraliseCheckbox: boolean;\n editable?: boolean;\n}\n\nexport const EvaluationApprenantList: React.FunctionComponent = ({\n coteMax,\n showNeutraliseCheckbox,\n editable = true\n}) => {\n const { id, state } = useParams<{ id: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(EvaluationApi);\n const history = useHistory();\n const { showDialogPromise } = useDialog();\n\n const { data, loading, saveItem, saving } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n +id <= 0\n ? FcbEvaluationApprenantListGetDtoFromJSON({ evaluationApprenantDtos: [] })\n : api.evaluationGetApprenantList({ id: +id }),\n saveApiFn: async (d: FcbEvaluationApprenantListGetDto) => {\n if (d.isFromWalter) {\n const result = await showDialogPromise({\n title: t(ETLCodes.ConfirmSaveEvaluationListTitle),\n message: t(ETLCodes.ConfirmSaveEvaluationListMessage)\n });\n if (result === \"yes\") {\n return api.evaluationSaveEvaluationDetails({ FcbEvaluationApprenantListGetDto: d });\n }\n } else {\n return api.evaluationSaveEvaluationDetails({ FcbEvaluationApprenantListGetDto: d });\n }\n },\n onSavedRoute: d => `${ERoutes.evaluation}/${+id}/detail/${state}`,\n deleteApiFn: d => {},\n getDeps: [id]\n }),\n [api, id, showDialogPromise, state, t]\n )\n );\n\n const coteReadonly = React.useMemo(\n () => [\"A\", \"D\", \"J\", \"-\", \"T\", \"O\", \"DN\", \"DP\", \"DM\", \"N\", \"S\", \"U\", \"V\", \"C\", \"E\", \"Z\", \"\"],\n []\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n evaluationApprenantDtos: Yup.array().of(\n Yup.object().shape({\n coteValue: Yup.string()\n .test(\"cote-positive-number\", t(ETLCodes.CoteNombrePositifOuLettreAcceptee), (value: any) => {\n if (!value) {\n return true;\n } else if (value.includes(\",\")) {\n return +value.replace(\",\", \".\") > -1;\n } else if (isNaN(+value)) {\n return coteReadonly.includes(value);\n } else {\n return +value > -1;\n }\n })\n .test(\"cote-max\", t(ETLCodes.GreaterThanCoteMax), (value: any) => {\n if (!value) {\n return true;\n } else if (value.includes(\",\")) {\n return +value.replace(\",\", \".\") <= coteMax;\n } else if (isNaN(+value)) {\n return coteReadonly.includes(value);\n } else if (coteMax) {\n return +value <= coteMax;\n }\n }),\n coteRemediation: Yup.string()\n .nullable()\n .test(\"cote-remediation-positive-number\", t(ETLCodes.CoteNombrePositifOuLettreAcceptee), (value: any) => {\n if (!value) {\n return true;\n } else if (value.includes(\",\")) {\n return +value.replace(\",\", \".\") > -1;\n } else if (isNaN(+value)) {\n return false;\n } else {\n return +value > -1;\n }\n })\n .test(\"cote-remediation-max\", t(ETLCodes.GreaterThanCoteMax), (value: any) => {\n if (!value) {\n return true;\n } else if (value.includes(\",\")) {\n return +value.replace(\",\", \".\") <= coteMax;\n } else if (isNaN(+value)) {\n return false;\n } else if (coteMax) {\n return +value <= coteMax;\n }\n })\n })\n )\n });\n }, [coteMax, coteReadonly, t]);\n\n return (\n \n history.push(`${ERoutes.evaluation}`)}\n saving={saving}\n disabled={!editable}\n >\n \n {() => <>}\n {() => <>}\n {showNeutraliseCheckbox && (\n \n {ctx => {() => <>}}\n \n )}\n {() => <>}\n {() => <>}\n {() => <>}\n {() => <>}\n \n {data?.evaluationApprenantDtos.map((element, index) => {\n return (\n
\n \n \n \n {showNeutraliseCheckbox && (\n \n {ctx => (\n \n )}\n \n )}\n \n {ctx => (\n \n )}\n \n \n \n {ctx => (\n \n )}\n \n \n {ctx => (\n \n )}\n \n \n
\n );\n })}\n \n
\n );\n};\n","import { FormikProps } from \"formik\";\nimport { FGCustomPanel, FGListen, FGNumberInput, FGTextInput, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { ClasseApi, EvaluationApi, FcbEvaluationDto, FcbEvaluationDtoFromJSON } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { EvaluationApprenantList } from \"./EvaluationApprenantList\";\n\nexport interface IEvaluationDetailPageProps {\n editMode: boolean;\n}\n\nexport const EvaluationDetailPage: React.FunctionComponent = ({ editMode }) => {\n const { id, duplicateId } = useParams<{ id: string; state: string; duplicateId: string }>();\n const { t } = useTl();\n const api = useApiService(EvaluationApi);\n const classeApi = useApiService(ClasseApi);\n const history = useHistory();\n\n const [idClasse, setIdClasse] = React.useState(0);\n const [coteMax, setCoteMax] = React.useState(null);\n const [typeEvaluation, setTypeEvaluation] = React.useState(0);\n const [idMatiere, setIdMatiere] = React.useState(0);\n const [isEditable, setIsEditable] = React.useState(editMode);\n const formikInnerRef = React.useRef>();\n const showNeutraliseCheckbox = React.useMemo(() => typeEvaluation === 5 || typeEvaluation === 6, [typeEvaluation]);\n\n const fetchEditable = React.useCallback(async () => {\n if (!idClasse || idClasse === 0) return { isDeletable: false, isEditable: true };\n\n return await classeApi.classeIsEvaluationEditable({ idClasse, typeEvaluation });\n }, [classeApi, idClasse, typeEvaluation]);\n\n const { data: editable } = useQuery([\"evaluation-is-editable\", { id, idClasse, typeEvaluation }], fetchEditable);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n +id <= 0\n ? FcbEvaluationDtoFromJSON({ idEvaluation: +id, idClasse: duplicateId })\n : api.evaluationGet({ id: +id }),\n saveApiFn: d => api.evaluationSave({ FcbEvaluationDto: d }),\n onSavedRoute: d => `${ERoutes.evaluation}/${d.idEvaluation}/detail/edit`,\n deleteApiFn: d => api.evaluationDelete({ id: d.idEvaluation }),\n onDeletedRoute: () => `${ERoutes.evaluation}`,\n getDeps: [id]\n }),\n [api, duplicateId, id]\n )\n );\n\n const [classe, cLoading] = useReferential(a => a.referentialGetClasseForEvaluation({ idEvaluation: +id }), true, [\n id\n ]);\n const [matiere, mLoading] = useReferential(\n a => {\n if (+id > 0) {\n return a.referentialGetClasseMatiereByClasse({ idClasse });\n } else {\n return a.referentialGetClasseMatiereByClasseAndTypeEval({ idClasse, idTypeEval: typeEvaluation });\n }\n },\n true,\n [idClasse, typeEvaluation]\n );\n const [type, tLoading] = useReferential(\n a => {\n if (+id > 0) {\n return a.referentialGetTypeEvaluation();\n } else {\n return a.referentialGetTypeEvaluationByClasse({ idClasse, idClasseMatiere: idMatiere });\n }\n },\n true,\n [idClasse, idMatiere]\n );\n const [date, dLoading] = useReferential(a => a.referentialGetDateForEvaluation({ idClasse }), false, [idClasse]);\n\n const idSecondeSession = React.useMemo(() => {\n return type?.find(te => te.value === 2)?.value;\n }, [type]);\n\n const formSchema = React.useMemo(() => {\n return Yup.object().shape({\n typeEvaluation: Yup.number()\n .typeError(t(ETLCodes.Required))\n .required(t(ETLCodes.Required))\n .test(\"isTypeInList\", t(ETLCodes.TypeEvaluationNotInList), async value => {\n return type?.map(ty => +ty.value).includes(+value);\n }),\n idClasse: Yup.number()\n .typeError(t(ETLCodes.Required))\n .required(t(ETLCodes.Required))\n .test(\"isResultatLock\", t(ETLCodes.ErrorCodeClasseResultatLock), async function(value) {\n const validationError = await classeApi.classeIsResultatLock({\n idClasse: +value\n });\n return validationError.isValid;\n })\n .test(\"isClasseInList\", t(ETLCodes.ClasseNotInList), async value => {\n return classe?.map(ty => +ty.value).includes(+value);\n }),\n idClasseMatiere: Yup.number()\n .typeError(t(ETLCodes.Required))\n .required(t(ETLCodes.Required))\n .test(\"isClasseMatiereInList\", t(ETLCodes.ClasseMatiereNotInList), async value => {\n return matiere?.map(ty => +ty.value).includes(+value);\n }),\n date: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n coteMax: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n });\n }, [classe, classeApi, matiere, t, type]);\n\n const onDuplicateClick = React.useCallback(() => {\n window.open(`/#${ERoutes.evaluation}/0/detail/edit/${idClasse}`, \"_blank\");\n }, [idClasse]);\n\n const showButtons = React.useMemo(() => +id > 0 && isEditable && editable?.isEditable, [editable, id, isEditable]);\n\n return (\n <>\n
\n setIsEditable(true)}\n onCancel={() => history.push(`${ERoutes.evaluation}`)}\n onDelete={deleteItem}\n showDeleteButton={+id > 0 && editable?.isDeletable}\n saving={saving}\n deleting={deleting}\n showDuplicateButton={showButtons}\n onDuplicate={onDuplicateClick}\n formikInnerRef={formikInnerRef}\n disabled={+id > 0 && !editable?.isEditable}\n >\n setIdClasse(value ?? 0)}>\n setCoteMax(value)}>\n setIdMatiere(value ?? 0)}>\n setTypeEvaluation(value ?? 0)}>\n \n \n 0}\n label={t(ETLCodes.Classe)}\n items={classe}\n loading={cLoading}\n />\n 0}\n name=\"idClasseMatiere\"\n label={t(ETLCodes.Matiere)}\n items={matiere}\n loading={mLoading}\n disabled={+id > 0 && !editable?.isEditable}\n />\n 0}\n label={t(ETLCodes.Type)}\n items={type}\n loading={tLoading}\n disabled={+id > 0 && !editable?.isEditable}\n />\n \n \n \n {() =>\n !editMode || +id > 0 ? (\n 0 && !editable?.isEditable}\n />\n ) : typeEvaluation === idSecondeSession ? (\n 0}\n label={t(ETLCodes.DateEvaluation)}\n disabled={+id > 0 && !editable?.isEditable}\n />\n ) : (\n 0}\n disabled={+id > 0 && !editable?.isEditable}\n />\n )\n }\n \n 0 && !editable?.isDeletable}\n disabled={+id > 0 && !editable?.isEditable}\n />\n 0 && !editable?.isDeletable}\n disabled={+id > 0 && !editable?.isEditable}\n />\n \n \n \n
\n {+id > 0 && (\n
\n \n
\n )}\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { EvaluationApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { EvaluationDetailPage } from \"./EvaluationDetailPage\";\n\nexport interface IEvaluationItemPageProps {}\n\nexport const EvaluationItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(EvaluationApi);\n\n const [displayName] = useApiEffect(() => api.evaluationGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.evaluation}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n \n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { AgrementLocalisationApi, FcbRechercheAgrementLocalisationDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IAgrementClasseListPageProps {}\n\nexport const AgrementClasseListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(AgrementLocalisationApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheAgrementLocalisationDto) => (\n \n history.push(`${ERoutes.agrementClasse}/${row.idplanAgrement}/detail/view`)}\n />\n history.push(`${ERoutes.agrementClasse}/${row.idplanAgrement}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Annee),\n fieldName: \"anneeAcademique\"\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.DateValidation),\n fieldName: \"dateValidation\"\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"statutLocalisationAgrement\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.agrementClasse}/0/detail/edit`);\n }, [history]);\n\n const apiFactory = useAbortableApiServiceFactory(AgrementLocalisationApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(() => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.agrementLocalisationGetSearchCriterias({ includeListsValues: true });\n }, [apiFactory]);\n\n const getCriteriasFn = React.useCallback(\n sObj => api.agrementLocalisationBaseSearch({ RechercheAgrementLocalisationSearch: sObj }),\n [api]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Button, Card } from \"@blueprintjs/core\";\nimport {\n ButtonContainer,\n ButtonsBloc,\n FGCustomPanel,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n InlineButtonContainer,\n showError\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport { css } from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n AgrementLocalisationApi,\n AgrementLocalisationClasseApi,\n FcbPlanAgrementDtoFromJSON,\n FcbRecherchePlanAgrementClasseDto,\n PlanAgrementClasseSearch\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n CancelButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SaveButton,\n SearchTablePage,\n SmallFormGenerator,\n TableCheckboxEditor,\n TableGlobalSelectEditor,\n TableGlobalTextEditor\n} from \"../../../../components\";\nimport { useAuth } from \"../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IAgrementClasseDetailPageProps {}\n\nexport const AgrementClasseDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, state } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n const api = useApiService(AgrementLocalisationApi);\n const paClasseApi = useApiService(AgrementLocalisationClasseApi);\n const { user } = useAuth();\n const canLock = React.useMemo(() => user?.idlevel === 4 || user?.idlevel === 21 || user?.idlevel === 2, [user]);\n\n const { data, loading, saveItem, saving, refresh } = useCrudApi({\n getApiFn: () => (+id <= 0 ? FcbPlanAgrementDtoFromJSON({ idPlan: 0 }) : api.agrementLocalisationGet({ id: +id })),\n saveApiFn: d => api.agrementLocalisationSave({ FcbPlanAgrementDto: d }),\n deleteApiFn: () => {},\n onSavedRoute: d => `${ERoutes.agrementClasse}/${d.idPlanAgrement}/detail/edit`\n });\n\n const readonly = React.useMemo(() => state === \"view\" || data?.idStatut === 3, [data?.idStatut, state]);\n\n const [annee, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, [], true);\n const [centre, cLoading] = useReferential(a => a.referentialGetCentre(), true, [], true);\n const [statut, sLoading] = useReferential(\n a => a.referentialGetStatutLocalisationAgrement({ isLocalisation: false }),\n true,\n [],\n true\n );\n const [conseillerPeda, cpLoading] = useReferential(a => a.referentialGetConseillersPedagogiquesCodes(), false, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idcentre: Yup.number().required(t(ETLCodes.Required)),\n anneeAcademique: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const saveRow = React.useCallback(\n async (row: FcbRecherchePlanAgrementClasseDto) => {\n await paClasseApi.agrementLocalisationClasseSave({ FcbRecherchePlanAgrementClasseDto: row });\n },\n [paClasseApi]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRecherchePlanAgrementClasseDto) => (\n \n history.push(`${ERoutes.classe}/${row.idClasse}/agrement/edit`)}\n />\n \n )\n },\n {\n header: () => \"\",\n fieldName: \"idStatutAgrement\",\n alignment: \"center\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"30px\",\n verticalAlign: \"middle !important\"\n }),\n render: (row: FcbRecherchePlanAgrementClasseDto) => (\n saveRow({ ...row, idStatutAgrement: value })}\n readonly={readonly}\n />\n )\n },\n {\n header: () => t(ETLCodes.Conseiller),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"100px\"\n }),\n fieldName: \"codeConseillerAgrement\",\n render: (row: FcbRecherchePlanAgrementClasseDto) => (\n saveRow({ ...row, codeConseillerAgrement: value?.toString() })}\n items={conseillerPeda}\n loading={cpLoading}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.Classe),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"350px\"\n }),\n fieldName: \"nom\",\n render: (row: FcbRecherchePlanAgrementClasseDto) => (\n saveRow({ ...row, nom: value })}\n textEditorHeight={20}\n maxLength={50}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.Metier),\n fieldName: \"codeMetier\"\n },\n {\n header: () => t(ETLCodes.Degre),\n fieldName: \"idDegre\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeCours\"\n },\n {\n header: () => t(ETLCodes.Spec),\n fieldName: \"specificite\"\n },\n {\n header: () => t(ETLCodes.Genre),\n fieldName: \"genre\"\n },\n {\n header: () => t(ETLCodes.Referentiel),\n fieldName: \"codeReferentiel\"\n },\n {\n header: () => t(ETLCodes.Financement),\n fieldName: \"financement\",\n customizeCellStyle: () =>\n css`\n white-space: pre;\n `\n },\n {\n header: () => t(ETLCodes.PPB),\n fieldName: \"ppb\"\n },\n {\n header: () => t(ETLCodes.Nb),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n fieldName: \"nbApprenantAgrement\",\n render: (row: FcbRecherchePlanAgrementClasseDto) => (\n saveRow({ ...row, nbApprenantAgrement: +value })}\n textEditorHeight={20}\n numeric={true}\n readonly={readonly}\n maxWidth=\"30px\"\n >\n )\n },\n {\n header: () => t(ETLCodes.PremierCours),\n fieldName: \"dateCours\"\n },\n {\n header: () => t(ETLCodes.RemarqueCentre),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n fieldName: \"remarqueCentreAgrement\",\n render: (row: FcbRecherchePlanAgrementClasseDto) => (\n saveRow({ ...row, remarqueCentreAgrement: value })}\n textEditorHeight={20}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.GestionInterne),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n fieldName: \"gestionInterneAgrement\",\n render: (row: FcbRecherchePlanAgrementClasseDto) => (\n saveRow({ ...row, gestionInterneAgrement: value })}\n textEditorHeight={20}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.RemarqueConseiller),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n fieldName: \"remarqueConseillerAgrement\",\n render: (row: FcbRecherchePlanAgrementClasseDto) => (\n saveRow({ ...row, remarqueConseillerAgrement: value })}\n textEditorHeight={20}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.RemarqueConseiller),\n fieldName: \"dateLocalisation\"\n },\n {\n header: () => t(ETLCodes.Coherent),\n fieldName: \"coherent\"\n }\n ],\n [conseillerPeda, cpLoading, history, readonly, saveRow, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.classe}/0/detail/${state}`);\n }, [history, state]);\n\n const [editMode, setEditMode] = React.useState(state === \"edit\");\n\n const getCriterias = React.useCallback(\n () => paClasseApi.agrementLocalisationClasseGetSearchCriterias({ includeListsValues: true }),\n [paClasseApi]\n );\n\n const apiFactory = useAbortableApiServiceFactory(AgrementLocalisationClasseApi);\n const lastAbortController = React.useRef();\n\n const search = React.useCallback(\n (sObj?: PlanAgrementClasseSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.agrementLocalisationClasseBaseSearch({\n PlanAgrementClasseSearch: { idPlanAgrement: +id, ...sObj }\n });\n },\n [apiFactory, id]\n );\n\n const [TVLoading, setTVLoading] = React.useState(false);\n const [VLoading, setVLoading] = React.useState(false);\n const [ULoading, setULoading] = React.useState(false);\n const [LLoading, setLLoading] = React.useState(false);\n\n const ButtonsMemo = React.useMemo(() => {\n if (data?.idStatut === 1) {\n return (\n {\n try {\n setTVLoading(true);\n await api.agrementLocalisationToValidatePlan({ idPlan: +id });\n } catch (Error) {\n showError(t(ETLCodes.Error));\n }\n setTVLoading(false);\n refresh();\n }}\n />\n );\n } else if (data?.idStatut === 2 && canLock) {\n return (\n {\n try {\n setVLoading(true);\n await api.agrementLocalisationValidatePlan({ idPlan: +id });\n } catch (Error) {\n showError(t(ETLCodes.Error));\n }\n setVLoading(false);\n refresh();\n }}\n disabled={!data?.dateValidation}\n />\n );\n } else if (data?.idStatut === 3 && canLock && data?.bloque) {\n return (\n {\n try {\n setULoading(true);\n await api.agrementLocalisationUnlockClasse({ idPlan: +id });\n } catch (Error) {\n showError(t(ETLCodes.Error));\n }\n setULoading(false);\n refresh();\n }}\n />\n );\n } else if (data?.idStatut === 3 && canLock && !data?.bloque) {\n return (\n {\n try {\n setLLoading(true);\n await api.agrementLocalisationLockClasse({ idPlan: +id });\n } catch (Error) {\n showError(t(ETLCodes.Error));\n }\n setLLoading(false);\n refresh();\n }}\n />\n );\n } else {\n return <>;\n }\n }, [LLoading, TVLoading, ULoading, VLoading, api, canLock, data, id, loading, refresh, t]);\n\n const isValidated = React.useMemo(() => +data?.idStatut === +statut?.find(s => s.label === \"Validé\")?.value, [\n data,\n statut\n ]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n \n history.push(`${ERoutes.agrementClasse}`)}\n validationSchema={FormSchema}\n hideButtons={true}\n >\n \n 0}\n />\n 0}\n />\n \n \n \n \n \n \n \n \n \n \n \n {ctx => (\n \n \n history.push(`${ERoutes.agrementClasse}`)} />\n {ButtonsMemo}\n {editMode ? (\n saveItem(ctx.formik.values)}\n />\n ) : (\n setEditMode(true)}>\n )}\n \n \n )}\n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService } from \"../../../../hooks\";\nimport { useParams, useHistory } from \"react-router\";\nimport { AgrementLocalisationApi } from \"../../../../api\";\nimport { useApiEffect } from \"nsitools-react\";\nimport { PageBase, BackButton, ProtectedTabs } from \"../../../../components\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { Tab } from \"@blueprintjs/core\";\nimport { AgrementClasseDetailPage } from \"./AgrementClasseDetailPage\";\n\nexport interface IAgrementClasseItemPageProps {}\n\nexport const AgrementClasseItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(AgrementLocalisationApi);\n\n const [displayName] = useApiEffect(() => api.agrementLocalisationGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.agrementClasse}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../hooks\";\nimport { useHistory } from \"react-router\";\nimport { ButtonContainer } from \"nsitools-react\";\nimport { ViewButton, EditButton, SearchTablePage } from \"../../../../components\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { PlanLocalisationApi, FcbRecherchePlanLocalisationDto, PlanLocalisationSearch } from \"../../../../api\";\n\nexport interface ILocalisationClasseListPageProps {}\n\nexport const LocalisationClasseListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(PlanLocalisationApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRecherchePlanLocalisationDto) => (\n \n history.push(`${ERoutes.localisationClasse}/${row.idplan}/detail/view`)}\n />\n history.push(`${ERoutes.localisationClasse}/${row.idplan}/detail/edit`)}\n disabled={row.statutLocalisationAgrement === \"Validé\"}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Annee),\n fieldName: \"anneeAcademique\"\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.DateValidation),\n fieldName: \"dateValidation\"\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"statutLocalisationAgrement\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.localisationClasse}/0/detail/edit`);\n }, [history]);\n\n const getSearchCriterias = React.useCallback(\n () => api.planLocalisationGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(PlanLocalisationApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (sObj?: PlanLocalisationSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.planLocalisationBaseSearch({ PlanLocalisationSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Button, Card } from \"@blueprintjs/core\";\nimport {\n ButtonContainer,\n ButtonsBloc,\n FGCustomPanel,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n InlineButtonContainer\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport { css } from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n ClasseApi,\n EIfapmeSide,\n FcbPlanLocalisationDtoFromJSON,\n FcbRecherchePlanLocalisationClasseDto,\n PlanLocalisationApi,\n PlanLocalisationClasseApi,\n PlanLocalisationClasseSearch\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n CancelButton,\n DeleteButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SaveButton,\n SearchTablePage,\n SmallFormGenerator,\n TableCheckboxEditor,\n TableGlobalDateEditor,\n TableGlobalSelectEditor,\n TableGlobalTextEditor\n} from \"../../../../components\";\nimport { useAuth, useDialog, useEventsContext } from \"../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useCrudApi, useTheme, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface ILocalisationClasseDetailPageProps {}\n\nexport const LocalisationClasseDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, state = \"view\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n const api = useApiService(PlanLocalisationApi);\n const plClasseApi = useApiService(PlanLocalisationClasseApi);\n const classeApi = useApiService(ClasseApi);\n const { getCurrentPermission, user } = useAuth();\n const canDelete = React.useMemo(() => getCurrentPermission()?.permission === \"RWD\", [getCurrentPermission]);\n const canLock = React.useMemo(() => user?.idlevel === 4 || user?.idlevel === 21 || user?.idlevel === 2, [user]);\n const { showDialog } = useDialog();\n\n const { dispatchEvent } = useEventsContext();\n\n const { data, loading, deleteItem, deleting, saveItem, saving, refresh } = useCrudApi({\n getApiFn: () => (+id <= 0 ? FcbPlanLocalisationDtoFromJSON({ idPlan: 0 }) : api.planLocalisationGet({ id: +id })),\n saveApiFn: d => api.planLocalisationSave({ FcbPlanLocalisationDto: d }),\n deleteApiFn: d => api.planLocalisationDelete({ id: d.idPlan }),\n onDeletedRoute: () => ERoutes.localisationClasse,\n onSavedRoute: d => `${ERoutes.localisationClasse}/${d.idPlan}/detail/view`\n });\n\n const readonly = React.useMemo(() => state === \"view\" || data?.idStatut === 3, [data?.idStatut, state]);\n\n const [annee, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, [], true);\n const [centre, cLoading] = useReferential(a => a.referentialGetCentre(), true, [], true);\n const [statut, sLoading] = useReferential(\n a => a.referentialGetStatutLocalisationAgrement({ isLocalisation: true }),\n true,\n [],\n true\n );\n const [conseillerPeda, cpLoading] = useReferential(a => a.referentialGetConseillersPedagogiquesCodes(), false, []);\n const [genre, gLoading] = useReferential(a => a.referentialGetGenreClasseCodes(), false, [], true);\n const [degre, dLoading] = useReferential(a => a.referentialGetDegreCodes(), false, [], true);\n const [metier, mLoading] = useReferential(a => a.referentialGetMetierCodes(), true, [], true);\n const { ifapmeSide } = useTheme();\n const [typeCours, tcLoading] = useReferential(\n a => a.referentialGetTypeCoursCodes({ ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Hope : EIfapmeSide.Walter }),\n false,\n [ifapmeSide]\n );\n const [particularite, pLoading] = useReferential(a => a.referentialGetSpecificiteCoursCodes(), false, [], true);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idcentre: Yup.number().required(t(ETLCodes.Required)),\n anneeAcademique: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const isValidated = React.useMemo(() => +data?.idStatut === +statut?.find(s => s.label === \"Validé\")?.value, [\n data,\n statut\n ]);\n\n const saveRow = React.useCallback(\n async (row: FcbRecherchePlanLocalisationClasseDto) => {\n await plClasseApi.planLocalisationClasseSave({ FcbRecherchePlanLocalisationClasseDto: row });\n },\n [plClasseApi]\n );\n\n const deleteClasse = React.useCallback(\n async (row: FcbRecherchePlanLocalisationClasseDto) => {\n showDialog({\n message: t(ETLCodes.DeleteConfirmationMessage),\n title: t(ETLCodes.DeleteDialogTitle),\n onConfirmed: async () => {\n await classeApi.classeDelete({ id: row.idClasse });\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }\n });\n },\n [classeApi, dispatchEvent, showDialog, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n \n {!readonly && deleteClasse(row)} />}\n history.push(`${ERoutes.classe}/${row.idClasse}/agrement/edit`)}\n />\n \n )\n },\n {\n header: () => \"\",\n fieldName: \"idStatutLocalisation\",\n alignment: \"center\",\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"30px\",\n verticalAlign: \"middle !important\"\n }),\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, idStatutLocalisation: value })}\n readonly={readonly}\n />\n )\n },\n {\n header: () => t(ETLCodes.Conseiller),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"100px\"\n }),\n fieldName: \"codeConseiller\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, codeConseiller: value?.toString() })}\n items={conseillerPeda}\n loading={cpLoading}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.Classe),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"350px\"\n }),\n fieldName: \"nom\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, nom: value })}\n textEditorHeight={20}\n maxLength={50}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.Metier),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"150px\"\n }),\n fieldName: \"codeMetier\",\n autoFitContent: true,\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, idMetier: value ? +value : null, idReferentiel: null })}\n items={metier}\n loading={mLoading}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.Degre),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"50px\"\n }),\n fieldName: \"idDegre\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n \n saveRow({ ...row, idDegre: value?.toString(), idMetier: null, idReferentiel: null })\n }\n items={degre}\n loading={dLoading}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.Type),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"50px\"\n }),\n fieldName: \"typeCours\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, typeCours: value?.toString() })}\n items={typeCours}\n loading={tcLoading}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.Spec),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"50px\"\n }),\n fieldName: \"specificite\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, specificite: value?.toString() })}\n items={particularite}\n loading={pLoading}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.Genre),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"50px\"\n }),\n fieldName: \"genre\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, genre: value?.toString() })}\n items={genre}\n loading={gLoading}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.Referentiel),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n fieldName: \"codeReferentiel\"\n },\n {\n header: () => t(ETLCodes.Financement),\n fieldName: \"financement\",\n customizeCellStyle: () =>\n css`\n white-space: pre;\n `\n },\n {\n header: () => t(ETLCodes.PPB),\n fieldName: \"ppb\"\n },\n {\n header: () => t(ETLCodes.Nb),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n fieldName: \"nbApprenantLocalisation\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, nbApprenantLocalisation: +value })}\n textEditorHeight={20}\n numeric={true}\n readonly={readonly}\n maxWidth=\"30px\"\n >\n )\n },\n {\n header: () => t(ETLCodes.PremierCours),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\",\n width: \"100px\"\n }),\n fieldName: \"dateCours\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, dateCours: value })}\n textEditorHeight={20}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.RemarqueCentre),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n fieldName: \"remarqueCentre\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, remarqueCentre: value })}\n textEditorHeight={20}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.GestionInterne),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n fieldName: \"gestionInterne\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, gestionInterne: value })}\n textEditorHeight={20}\n readonly={readonly}\n >\n )\n },\n {\n header: () => t(ETLCodes.RemarqueConseiller),\n customizeCellStyle: () =>\n css({\n padding: \"2px !important\"\n }),\n fieldName: \"remarqueConseiller\",\n render: (row: FcbRecherchePlanLocalisationClasseDto) => (\n saveRow({ ...row, remarqueConseiller: value })}\n textEditorHeight={20}\n readonly={readonly}\n >\n )\n }\n ],\n [\n conseillerPeda,\n cpLoading,\n dLoading,\n degre,\n deleteClasse,\n gLoading,\n genre,\n history,\n mLoading,\n metier,\n pLoading,\n particularite,\n readonly,\n saveRow,\n t,\n tcLoading,\n typeCours\n ]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.classe}/0/detail/edit`);\n }, [history]);\n\n const [editMode, setEditMode] = React.useState(state === \"edit\");\n\n const ButtonsMemo = React.useMemo(() => {\n if (data?.idStatut === 1) {\n return (\n {\n await api.planLocalisationToValidatePlan({ idPlan: +id });\n refresh();\n }}\n />\n );\n } else if (data?.idStatut === 2 && canLock) {\n return (\n {\n await api.planLocalisationValidatePlan({ idPlan: +id });\n refresh();\n }}\n disabled={!data?.dateValidation}\n />\n );\n } else if (data?.idStatut === 3 && canLock && data?.bloque) {\n return (\n {\n await api.planLocalisationUnlockClasse({ idPlan: +id });\n refresh();\n }}\n />\n );\n } else if (data?.idStatut === 3 && canLock && !data?.bloque) {\n return (\n {\n await api.planLocalisationLockClasse({ idPlan: +id });\n refresh();\n }}\n />\n );\n } else {\n return <>;\n }\n }, [api, canLock, data, id, refresh, t]);\n\n const getCriterias = React.useCallback(\n () => plClasseApi.planLocalisationClasseGetSearchCriterias({ includeListsValues: true }),\n [plClasseApi]\n );\n\n const apiFactory = useAbortableApiServiceFactory(PlanLocalisationClasseApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (sObj?: PlanLocalisationClasseSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.planLocalisationClasseBaseSearch({\n PlanLocalisationClasseSearch: { idPlanLocalisation: +id, ...sObj }\n });\n },\n [apiFactory, id]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n
\n \n history.push(`${ERoutes.localisationClasse}`)}\n validationSchema={FormSchema}\n hideButtons={true}\n >\n \n 0}\n />\n 0}\n />\n \n \n \n \n \n \n \n \n \n \n {ctx => (\n \n {canDelete ? (\n \n \n \n ) : (\n <>\n )}\n \n history.push(`${ERoutes.localisationClasse}`)} />\n {ButtonsMemo}\n {editMode ? (\n saveItem(ctx.formik.values)}\n />\n ) : (\n setEditMode(true)} disabled={isValidated}>\n )}\n \n \n )}\n \n \n \n
\n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { PlanLocalisationApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { LocalisationClasseDetailPage } from \"./LocalisationClasseDetailPage\";\n\nexport interface ILocalisationClasseItemPageProps {}\n\nexport const LocalisationClasseItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(PlanLocalisationApi);\n\n const [displayName] = useApiEffect(() => api.planLocalisationGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.localisationClasse}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n \n \n );\n};\n","import { Button, Classes, Colors, Dialog, Intent } from \"@blueprintjs/core\";\nimport { ButtonsBloc, FGCustomPanel, FGDateInput, FGListen, InlineButtonContainer, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { EIfapmeSide, FeuillePresenceApi } from \"../../../../api\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useManageError, useTheme, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { exportFile } from \"../../../../utils/b64download\";\n\nconst StyledInlineButtonContainer = styled(InlineButtonContainer)`\n justify-content: flex-end;\n`;\n\nexport interface IFeuillePresencePrintDialogProps {\n shown: boolean;\n onClose: () => void;\n idClasse?: number;\n}\n\nexport const FeuillePresencePrintDialog: React.FunctionComponent = ({\n shown,\n onClose,\n idClasse\n}) => {\n const { t } = useTl();\n const api = useApiService(FeuillePresenceApi);\n const [datesEditable, setDatesEditable] = React.useState(true);\n const [saveLoading, setSaveLoading] = React.useState(false);\n const { manageError } = useManageError();\n\n const periodes = React.useMemo(\n () => [\n {\n value: 0,\n label: t(ETLCodes.Personnalisee)\n },\n {\n value: 1,\n label: t(ETLCodes.Semestre1)\n },\n {\n value: 2,\n label: t(ETLCodes.Semestre2)\n }\n ],\n [t]\n );\n const { ifapmeSide } = useTheme();\n const [typeCours, tcLoading] = useReferential(\n a => a.referentialGetTypeCours({ ifapmeSide: ifapmeSide === \"hope\" ? EIfapmeSide.Hope : EIfapmeSide.Walter }),\n false,\n [ifapmeSide]\n );\n\n const [data, loading] = useApiEffect(\n React.useCallback(() => {\n return api.feuillePresenceGetPrint({ idClasse });\n }, [api, idClasse])\n );\n\n const exportFeuille = React.useCallback(\n async values => {\n setSaveLoading(true);\n try {\n const res = await api.feuillePresenceExportAsync({ FeuillePresencePrintRequestDto: values });\n exportFile(res);\n setSaveLoading(false);\n } catch (e) {\n manageError(e);\n setSaveLoading(false);\n }\n },\n [api, manageError]\n );\n\n const [datesClasse, datesClasseLoading] = useApiEffect(\n React.useCallback(() => {\n return api.feuillePresenceGetMaxDates({ idClasse });\n }, [api, idClasse])\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n periodeImpression: Yup.number().required(t(ETLCodes.Required)),\n dateDebut: Yup.date().required(t(ETLCodes.Required)),\n dateFin: Yup.date().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n onClose()}\n style={{ paddingBottom: 0, width: 800, backgroundColor: Colors.WHITE }}\n enforceFocus={false}\n >\n
\n \n {\n if (value === 0) {\n setDatesEditable(true);\n } else {\n setDatesEditable(false);\n }\n const dates = await api.feuillePresenceGetDates({ idClasse, periodeImpression: value });\n formik.setFieldValue(\"dateDebut\", dates.dateDebut);\n formik.setFieldValue(\"dateFin\", dates.dateFin);\n }}\n />\n \n \n \n \n \n \n \n {ctx => (\n <>\n \n \n \n \n \n \n )}\n \n \n
\n \n );\n};\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nimport {\r\n FcbFeuillePresenceGridDto,\r\n FeuillePresenceApi,\r\n FeuillePresenceSearch,\r\n ETextSearchType,\r\n EBooleanSearchTypes\r\n} from \"../../../../api\";\r\nimport { EditButton, PrintButton, SearchTablePage, ViewButton } from \"../../../../components\";\r\nimport { useGlobalData } from \"../../../../contexts\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../locales\";\r\nimport { ERoutes } from \"../../../../AppRouter\";\r\nimport { FeuillePresencePrintDialog } from \"./FeuillePresencePrintDialog\";\r\n\r\nexport interface IFeuillePresenceListPageProps {}\r\n\r\nexport const FeuillePresenceListPage: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const history = useHistory();\r\n const api = useApiService(FeuillePresenceApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n const [printDialogOpen, setPrintDialogOpen] = React.useState(false);\r\n const [currentIdClasse, setCurrentIdClasse] = React.useState(null);\r\n\r\n const openPrintPopup = React.useCallback((idClasse: number) => {\r\n setPrintDialogOpen(true);\r\n setCurrentIdClasse(idClasse);\r\n }, []);\r\n\r\n const onDialogClose = React.useCallback(() => {\r\n setPrintDialogOpen(false);\r\n setCurrentIdClasse(null);\r\n }, []);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbFeuillePresenceGridDto) => (\r\n \r\n openPrintPopup(row.idclasse)} />\r\n history.push(`${ERoutes.feuillePresence}/${row.idclasse}/detail/view`)}\r\n />\r\n history.push(`${ERoutes.feuillePresence}/${row.idclasse}/detail/edit`)}\r\n />\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"anneeAcademique\",\r\n autoFitContent: true\r\n },\r\n {\r\n header: () => t(ETLCodes.Libelle),\r\n fieldName: \"nom\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Metier),\r\n fieldName: \"masculin\"\r\n },\r\n {\r\n header: () => t(ETLCodes.CodeClasse),\r\n fieldName: \"codeClasse\"\r\n }\r\n ],\r\n [history, openPrintPopup, t]\r\n );\r\n\r\n const getCriterias = React.useCallback(() => api.feuillePresenceGetSearchCriterias({ includeListsValues: true }), [\r\n api\r\n ]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(FeuillePresenceApi);\r\n const lastAbortController = React.useRef();\r\n const search = React.useCallback(\r\n (nextSearch?: FeuillePresenceSearch) => {\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.feuillePresenceBaseSearch({ FeuillePresenceSearch: nextSearch });\r\n },\r\n [apiFactory]\r\n );\r\n\r\n const defaultCriteria = React.useMemo(\r\n () => [\r\n {\r\n criteria: \"AnneeAcademique\",\r\n searchMode: ETextSearchType.Contains,\r\n value: currentAnneeScolaire?.idanneeScolaire\r\n },\r\n {\r\n criteria: \"WithHoraire\",\r\n searchMode: EBooleanSearchTypes.Equals,\r\n value: true\r\n }\r\n ],\r\n [currentAnneeScolaire]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n <>\r\n \r\n {currentIdClasse && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { Button, Colors, HTMLSelect, Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { useRequest } from \"ahooks\";\nimport {\n ButtonContainer,\n ButtonsBloc,\n DataTable,\n FieldSet,\n InlineButtonContainer,\n Loading,\n showError,\n showSuccess,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { Col, Grid, Row } from \"react-flexbox-grid\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport {\n FcbApprenantPresenceDetailDto,\n FcbApprenantPresenceDetailSaveDto,\n FcbPresenceFormateurDto,\n FeuillePresenceApi,\n FeuillePresenceSaveDto,\n FeuillePresenceSaveDtoFromJSON\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { CancelButton, SaveButton, TableTextEditor, ViewButton } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { Tooltip2 } from \"@blueprintjs/popover2\";\n\nexport interface IFeuillePresenceDetailTableProps {\n idClasse?: number;\n dateClasse?: Date;\n refetchDates?: () => void;\n}\n\nconst ValidCodePresence = [\"X\", \"O\", \"R\", \"N\"];\nconst ValidCodePresenceFormateur = [\"@\", \"X\", \"O\", \"R\", \"N\"];\n\ntype ColumnStatusType = { [key: number]: string };\n\nexport const FeuillePresenceDetailTable: React.FunctionComponent = ({\n idClasse,\n dateClasse,\n refetchDates\n}) => {\n const { state } = useParams<{ id: string; tab: string; state: string; date: string }>();\n const api = useApiService(FeuillePresenceApi);\n const { t } = useTl();\n const history = useHistory();\n const [saveLoading, setSaveLoading] = React.useState(false);\n const [columnStatusLoading, setColumnStatusLoading] = React.useState(false);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false\n });\n\n const { data: feuillePresenceData, loading, run, refresh } = useRequest(\n () => api.feuillePresenceGetFeuillePresenceInfo({ idClasse, dateClasse }),\n {\n refreshDeps: [idClasse, dateClasse],\n manual: true\n }\n );\n\n // const { data: columns = [], loading: tableColumnsLoading, run: runColumns } = useRequest(\n // () => api.feuillePresenceGetHoraireClasseJourColumns({ idClasse, dateClasse }),\n // {\n // refreshDeps: [idClasse, dateClasse],\n // manual: true\n // }\n // );\n\n // const { data: tableData = [], loading: dataLoading, run, refresh } = useRequest(\n // () => api.feuillePresenceGetApprenantList({ idClasse, dateClasse }),\n // {\n // refreshDeps: [idClasse, dateClasse],\n // manual: true\n // }\n // );\n\n const tableData = React.useMemo(() => feuillePresenceData?.apprenantPresences, [\n feuillePresenceData?.apprenantPresences\n ]);\n\n const columns = React.useMemo(() => feuillePresenceData?.columnsInfo, [feuillePresenceData?.columnsInfo]);\n\n const { data, setData } = tableState;\n const [formateurData, setFormateurData] = React.useState([]);\n\n React.useEffect(() => {\n if (feuillePresenceData?.formateurPresences) {\n setFormateurData(feuillePresenceData?.formateurPresences);\n }\n }, [feuillePresenceData?.formateurPresences]);\n\n React.useEffect(() => {\n if (dateClasse) {\n run();\n }\n }, [dateClasse, run]);\n\n React.useEffect(() => {\n if (tableData && columns.length > 0) {\n setData(tableData);\n }\n }, [tableData, setData, columns]);\n\n const [status, setStatus] = React.useState({});\n const editable = React.useMemo(() => {\n return state === \"edit\" && dateClasse <= new Date();\n }, [dateClasse, state]);\n\n React.useEffect(() => {\n if (columns) {\n setStatus(() => columns.map(d => d.idclasseHoraire).reduce((prv, curr) => ({ ...prv, [curr]: \"X\" }), {}));\n }\n }, [columns]);\n\n const save = React.useCallback(async () => {\n setSaveLoading(true);\n\n const listApprenants: FcbApprenantPresenceDetailSaveDto[] = [];\n data.forEach((row: FcbApprenantPresenceDetailDto) => {\n const subRows: FcbApprenantPresenceDetailSaveDto[] = columns.map(c => ({\n idInscription: row.idInscription,\n idClasseHoraire: c.idclasseHoraire,\n statut: row.statutClasseHoraire[c.idclasseHoraire]\n }));\n listApprenants.push(...subRows);\n });\n\n const saveDto: FeuillePresenceSaveDto = FeuillePresenceSaveDtoFromJSON({\n apprenantPresences: listApprenants,\n formateurPresences: formateurData\n });\n\n try {\n await api.feuillePresenceSave({ FeuillePresenceSaveDto: saveDto });\n setSaveLoading(false);\n showSuccess(t(ETLCodes.General_SavedSuccessMessage));\n refresh();\n refetchDates();\n } catch (e) {\n setSaveLoading(false);\n showError(t(ETLCodes.General_SaveErrorMessage));\n }\n }, [api, columns, data, formateurData, refetchDates, refresh, t]);\n\n const handleColumnStatusChange = React.useCallback(\n (value, idClasseHoraire) => {\n const newStatuses = { ...status };\n newStatuses[idClasseHoraire] = value;\n setStatus(newStatuses);\n },\n [status]\n );\n\n const setFormateurStatut = React.useCallback(\n (value: string, idClasseHoraire: number, idFormateur: number) => {\n const newData = [...formateurData];\n newData.find(f => f.idclasseHoraire === idClasseHoraire && f.idformateur === idFormateur).statut = value;\n setFormateurData(newData);\n },\n [formateurData]\n );\n\n const setCellStatut = React.useCallback(\n (value, row: FcbApprenantPresenceDetailDto, idClasseHoraire: number) => {\n row.statutClasseHoraire[idClasseHoraire] = value;\n const rowIndex = data.findIndex(d => d.idInscription === row.idInscription);\n data[rowIndex] = { ...row, statutClasseHoraire: row.statutClasseHoraire };\n\n setData([...data]);\n },\n [data, setData]\n );\n\n const applyStatusToColumn = React.useCallback(\n async (idClasseHoraire: number) => {\n setColumnStatusLoading(true);\n data\n .filter(row => row.statutClasseHoraire[idClasseHoraire] === \"@\")\n .forEach(row => {\n setCellStatut(status[idClasseHoraire], row, idClasseHoraire);\n });\n setData([...data]);\n setColumnStatusLoading(false);\n },\n [data, setCellStatut, setData, status]\n );\n\n const applyToNextColumn = React.useCallback(\n (idClasseHoraire: number) => {\n const indexOfCurrentIdClassHoraire = columns.map(d => d.idclasseHoraire).indexOf(idClasseHoraire);\n const nextIdClassHoraire = columns[indexOfCurrentIdClassHoraire + 1]?.idclasseHoraire;\n\n setColumnStatusLoading(true);\n data\n .filter(\n row =>\n row.statutClasseHoraire[nextIdClassHoraire] === \"@\" &&\n ValidCodePresence.includes(row.statutClasseHoraire[idClasseHoraire])\n )\n .forEach(row => {\n setCellStatut(row.statutClasseHoraire[idClasseHoraire], row, nextIdClassHoraire);\n });\n setData([...data]);\n setColumnStatusLoading(false);\n },\n [columns, data, setCellStatut, setData]\n );\n\n const getFormateurDisplay = React.useCallback(\n (idclasseHoraire: number, principal: boolean) => {\n return formateurData?.find(f => f.idclasseHoraire === idclasseHoraire && f.principal === principal)?.formateur;\n },\n\n [formateurData]\n );\n\n const getFormateurPresenceValue = React.useCallback(\n (idclasseHoraire: number, principal: boolean) => {\n return formateurData?.find(f => f.idclasseHoraire === idclasseHoraire && f.principal === principal)?.statut;\n },\n [formateurData]\n );\n\n const columnsToTableColumns = React.useMemo(() => {\n if (columns) {\n return columns?.map((currentColumn, index) => {\n return {\n disableSorting: true,\n header: () => (\n \n \n \n \n \n \n \n \n \n f.idclasseHoraire === currentColumn.idclasseHoraire && !f.principal)\n ? Colors.WHITE\n : Colors.LIGHT_GRAY5\n }\n />\n \n \n \n \n \n {\n setFormateurStatut(\n e.target.value,\n currentColumn.idclasseHoraire,\n formateurData?.find(f => f.idclasseHoraire === currentColumn.idclasseHoraire && f.principal)\n ?.idformateur\n );\n }}\n onClick={e => e.stopPropagation()}\n disabled={\n !editable ||\n (feuillePresenceData?.idUserFormateur !== null &&\n feuillePresenceData?.idUserFormateur !==\n formateurData?.find(f => f.idclasseHoraire === currentColumn.idclasseHoraire && !f.principal)\n ?.idformateur)\n }\n />\n \n \n {\n setFormateurStatut(\n e.target.value,\n currentColumn.idclasseHoraire,\n formateurData?.find(f => f.idclasseHoraire === currentColumn.idclasseHoraire && !f.principal)\n ?.idformateur\n );\n }}\n onClick={e => e.stopPropagation()}\n disabled={\n !editable ||\n !formateurData?.find(f => f.idclasseHoraire === currentColumn.idclasseHoraire && !f.principal) ||\n (feuillePresenceData?.idUserFormateur !== null &&\n feuillePresenceData?.idUserFormateur !==\n formateurData?.find(f => f.idclasseHoraire === currentColumn.idclasseHoraire && !f.principal)\n ?.idformateur)\n }\n />\n \n \n \n {`${currentColumn.heureDebut} - ${currentColumn.codeClassMatiere || \"\"}`}\n \n \n \n {\n handleColumnStatusChange(e.target.value, currentColumn.idclasseHoraire);\n }}\n onClick={e => e.stopPropagation()}\n disabled={!editable}\n />\n \n \n {\n e.stopPropagation();\n applyStatusToColumn(currentColumn.idclasseHoraire);\n }}\n disabled={!editable}\n />\n \n \n {\n {\n e.stopPropagation();\n applyToNextColumn(currentColumn.idclasseHoraire);\n }}\n disabled={!editable || index + 1 === columns?.length}\n />\n }\n \n \n \n ),\n fieldName: `statut_${index}`,\n render: (row: FcbApprenantPresenceDetailDto) => (\n setCellStatut(value, row, currentColumn.idclasseHoraire)}\n authorizedValues={ValidCodePresence}\n tabIndex={data.findIndex(d => d.idInscription === row.idInscription) + 1 + (index + 1) * data?.length}\n editable={editable}\n >\n )\n };\n });\n } else return [];\n }, [\n applyStatusToColumn,\n applyToNextColumn,\n columnStatusLoading,\n columns,\n data,\n editable,\n feuillePresenceData?.idUserFormateur,\n formateurData,\n getFormateurDisplay,\n getFormateurPresenceValue,\n handleColumnStatusChange,\n setCellStatut,\n setFormateurStatut,\n status\n ]);\n\n const columnsMemo = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbApprenantPresenceDetailDto) => (\n \n history.push(`${ERoutes.apprenant}/${row.idApprenant}/justificatifs`)}\n tabIndex={\n data.findIndex(d => d.idInscription === row.idInscription) +\n 1 +\n ((columns?.length ?? 0) + 1) * data?.length\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Contrat),\n fieldName: \"contrat\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.Apprenant),\n fieldName: \"apprenant\",\n disableSorting: true\n },\n ...columnsToTableColumns\n ],\n [columns?.length, columnsToTableColumns, data, history, t]\n );\n\n const NbApprenantTitle = React.useCallback(() => {\n return <>{data.length + \" \" + t(ETLCodes.Apprenants)};\n }, [data.length, t]);\n\n return (\n \n
\n {idClasse > 0 && (\n
\n \n \n \n \n history.push(ERoutes.feuillePresence)} />\n {editable ? (\n save()} loading={saveLoading} />\n ) : (\n editable &&
\n )}\n \n \n
\n )}\n
\n
\n );\n};\n","import { parse } from \"date-fns\";\nimport { FieldGroup, HighLightedText, Loading, useFGFormik } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useParams } from \"react-router\";\n\nimport { FeuillePresenceApi } from \"../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { toCleanTimeZone } from \"../../../../utils\";\nimport { FeuillePresenceDetailTable } from \"./FeuillePresenceDetailTable\";\n\nexport interface IFeuillePresenceDetailPageProps {}\n\ntype FeuillePresenceJour = { jour: string };\n\nexport const FeuillePresenceDetailPage: React.FunctionComponent = () => {\n const { id, date: dateParam } = useParams<{ id: string; tab: string; state: string; date: string }>();\n const api = useApiService(FeuillePresenceApi);\n const { t } = useTl();\n\n const fetchDatesByIdClasse = React.useCallback(async () => {\n if (!id || +id === 0) return null;\n\n return await api.feuillePresenceGetDatesForClasse({ idClasse: +id });\n }, [api, id]);\n\n const { data: datesByIdClasse, isLoading: datesByIdClasseLoading, refetch } = useQuery(\n [\"feuille-presence-idClasse\", +id],\n fetchDatesByIdClasse,\n { enabled: true }\n );\n\n const firstDateIncomplete = React.useMemo(() => {\n if (!!dateParam) {\n return dateParam;\n }\n\n if (!datesByIdClasse || datesByIdClasse?.length === 0) {\n return null;\n }\n\n const incompleteDates = datesByIdClasse?.filter(d => d.presenceComplete === false);\n if (incompleteDates.length > 0) {\n return incompleteDates[0].jour;\n }\n\n return datesByIdClasse[datesByIdClasse.length - 1].jour;\n }, [dateParam, datesByIdClasse]);\n\n const rowColor = React.useCallback(item => {\n const color = item.inTheFuture ? \"#CD4246\" : item.presenceComplete ? \"#32A467\" : \"#EC9A3C\";\n return color;\n }, []);\n\n const initialValues = React.useMemo(() => {\n return {\n jour: firstDateIncomplete\n } as FeuillePresenceJour;\n }, [firstDateIncomplete]);\n\n const formik = useFGFormik({\n initialValues,\n onSubmit: () => {}\n });\n\n const idClasse = React.useMemo(() => +id, [id]);\n const dateClasse = React.useMemo(() => toCleanTimeZone(parse(formik?.values?.jour, \"dd-MM-yyyy\", new Date())), [\n formik?.values?.jour\n ]);\n\n return (\n <>\n \n \n \n (\n
\n \n
\n )}\n />\n
\n \n
\n {formik?.values?.jour && (\n \n )}\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ClasseApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { FeuillePresenceDetailPage } from \"./FeuillePresenceDetailPage\";\n\nexport interface IFeuillePresenceItemPageProps {}\n\nexport const FeuillePresenceItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string; date: string }>();\n const history = useHistory();\n\n const api = useApiService(ClasseApi);\n\n const [displayName] = useApiEffect(() => api.classeGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.feuillePresence}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n \n \n );\n};\n","import * as React from \"react\";\r\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../hooks\";\r\nimport { useHistory } from \"react-router\";\r\nimport { ButtonContainer } from \"nsitools-react\";\r\nimport { ViewButton, EditButton, SearchTablePage } from \"../../../../components\";\r\nimport { ERoutes } from \"../../../../AppRouter\";\r\nimport { ETLCodes } from \"../../../../locales\";\r\nimport {\r\n RemplacementApi,\r\n FcbRechercheRemplacementDto,\r\n RechercheRemplacementSearch,\r\n ETextSearchType,\r\n EListSearchType\r\n} from \"../../../../api\";\r\nimport { useGlobalData } from \"../../../../contexts\";\r\n\r\nexport interface IRemplacementListPageProps {}\r\n\r\nexport const RemplacementListPage: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const history = useHistory();\r\n const { currentAnneeScolaire } = useGlobalData();\r\n const api = useApiService(RemplacementApi);\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbRechercheRemplacementDto) => (\r\n \r\n history.push(`${ERoutes.remplacement}/${row.idremplacement}/general/view`)}\r\n />\r\n history.push(`${ERoutes.remplacement}/${row.idremplacement}/general/edit`)}\r\n />\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.Remplace),\r\n fieldName: \"remplace\"\r\n },\r\n {\r\n header: () => t(ETLCodes.DateDebut),\r\n fieldName: \"dateDebut\"\r\n },\r\n {\r\n header: () => t(ETLCodes.DateFin),\r\n fieldName: \"dateFin\"\r\n },\r\n {\r\n header: () => t(ETLCodes.IdTypeRemplacement),\r\n fieldName: \"typeRemplacement\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Legitimite),\r\n fieldName: \"legitimite\"\r\n },\r\n {\r\n header: () => t(ETLCodes.AnneeScolaire),\r\n fieldName: \"anneeAcademique\"\r\n }\r\n ],\r\n [history, t]\r\n );\r\n\r\n const onAddItem = React.useCallback(() => {\r\n history.push(`${ERoutes.remplacement}/0/general/edit`);\r\n }, [history]);\r\n\r\n const getCriterias = React.useCallback(() => api.remplacementGetSearchCriterias({ includeListsValues: true }), [api]);\r\n\r\n const apiFactory = useAbortableApiServiceFactory(RemplacementApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (sObj?: RechercheRemplacementSearch) => {\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.remplacementBaseSearch({ RechercheRemplacementSearch: sObj });\r\n },\r\n [apiFactory]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGListen, FieldGroup, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n FcbRemplacementDefinitifDto,\n FcbRemplacementDefinitifDtoFromJSON,\n ReferentialApi,\n RemplacementDefinitiveApi\n} from \"../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { IRemplacement } from \"./RemplacementInterfaces\";\n\nconst DialogStyled = styled(Dialog)`\n width: 900px;\n background: white;\n`;\n\nexport interface IRemplacementDefinitiveDetailPageProps {\n isOpen: boolean;\n onSave: () => void;\n onCancel: () => void;\n data: IRemplacement;\n}\n\nexport const RemplacementDefinitiveDetailPage: React.FunctionComponent = ({\n isOpen,\n onSave,\n onCancel,\n data\n}) => {\n const { t } = useTl();\n const [saving, setSaving] = React.useState(false);\n const value = React.useMemo(\n () =>\n FcbRemplacementDefinitifDtoFromJSON({\n idremplacement: data.idremplacement,\n idremplacant: data.idremplacant,\n idformateurLocalisationContrat: data.idformateurLocalisationContrat,\n idclasseMatiere: data.idclasseMatiere\n }),\n [data]\n );\n\n const [remplacant, setRemplacant] = React.useState(data.idremplacant);\n const idcentre = React.useMemo(() => data?.idcentre, [data?.idcentre]);\n\n const [formateur, formateurLoading] = useReferential(\n a => a.referentialGetFormateurByCentre({ idCentre: idcentre }),\n true,\n [idcentre]\n );\n const getContratFormateurFunc = React.useCallback(\n (a: ReferentialApi) =>\n remplacant > 0\n ? a.referentialGetFormateurLocalisationContrat({ idformateur: remplacant, idcentre: idcentre })\n : null,\n [idcentre, remplacant]\n );\n\n const [contratFormateur, cf] = useReferential(getContratFormateurFunc, true, [remplacant, idcentre]);\n\n const cfItems = React.useMemo(() => {\n if (remplacant > 0 && !!contratFormateur) {\n return contratFormateur;\n } else {\n return [];\n }\n }, [contratFormateur, remplacant]);\n\n const api = useApiService(RemplacementDefinitiveApi);\n const saveItem = React.useCallback(\n async (v: FcbRemplacementDefinitifDto) => {\n try {\n setSaving(true);\n await api.remplacementDefinitiveSave({ FcbRemplacementDefinitifDto: v });\n onSave();\n } catch (error) {\n showError(t(ETLCodes.Error));\n }\n setSaving(false);\n },\n [api, onSave, t]\n );\n\n // const remplacants = React.useMemo(() => formateur?.filter(f => f.value !== data.idremplacant), [\n // formateur,\n // data.idremplacant\n // ]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idformateurLocalisationContrat: Yup.number()\n .nullable()\n .when(\"idremplacant\", (value, schema) => (value ? schema.required(t(ETLCodes.Required)) : schema))\n });\n }, [t]);\n\n return (\n \n
\n \n {\n setRemplacant(val);\n if (!val || val !== remplacant) {\n formik.setFieldValue(\"idformateurLocalisationContrat\", null);\n }\n }}\n />\n \n \n \n \n \n \n \n
\n
\n );\n};\n","import { IDataTableColumn, ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport {\n RechercheClasseHoraireRemplacementDefinitiveSearch,\n FcbRechercheClasseHoraireRemplacementDefinitiveDto\n} from \"../../../../../api\";\nimport { RemplacementDefinitiveApi } from \"../../../../../api/apis\";\nimport { SearchTablePage, EditButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { RemplacementDefinitiveDetailPage } from \"./RemplacementDefinitiveDetailPage\";\nimport { IRemplacement } from \"./RemplacementInterfaces\";\nimport { useEventsContext } from \"../../../../../contexts/EventsContext\";\n\nexport interface IRemplacementDefinitiveTablePageProps {}\n\nexport const RemplacementDefinitiveTablePage: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(RemplacementDefinitiveApi);\n\n const [modalVisible, setModalVisible] = React.useState(false);\n const [modalData, setModalData] = React.useState({});\n\n const editClick = React.useCallback((row: FcbRechercheClasseHoraireRemplacementDefinitiveDto) => {\n setModalData({\n idremplacant: row.idRemplacant,\n idformateurLocalisationContrat: row.idFormateurLocalisationContrat,\n idremplacement: row.idRemplacement,\n idclasseMatiere: row.idClasseMatiere\n });\n setModalVisible(true);\n }, []);\n\n const columns = React.useMemo>(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheClasseHoraireRemplacementDefinitiveDto) => (\n <>\n \n editClick(row)} />\n \n \n )\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"classe\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Remplacant),\n fieldName: \"remplacant\"\n },\n {\n header: () => t(ETLCodes.Contrat),\n fieldName: \"contrat\"\n }\n ],\n [editClick, t]\n );\n\n const apiFactory = useAbortableApiServiceFactory(RemplacementDefinitiveApi);\n const lastAbortController = React.useRef();\n const searchFnCB = React.useCallback(\n (sObj?: RechercheClasseHoraireRemplacementDefinitiveSearch) => {\n sObj.idRemplacement = +id;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.remplacementDefinitiveBaseSearch({\n RechercheClasseHoraireRemplacementDefinitiveSearch: sObj\n });\n },\n [apiFactory, id]\n );\n\n const criteriaFnCB = React.useCallback(\n () => api.remplacementDefinitiveGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const { dispatchEvent } = useEventsContext();\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n \n {modalVisible ? (\n {\n setModalData({});\n setModalVisible(false);\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }}\n onCancel={() => {\n setModalData({});\n setModalVisible(false);\n }}\n data={modalData}\n />\n ) : null}\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGListen, FieldGroup, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n FcbClasseHoraireRemplacementDto,\n FcbClasseHoraireRemplacementDtoFromJSON,\n ReferentialApi,\n RemplacementOccasionnelApi\n} from \"../../../../../api\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { IRemplacement } from \"./RemplacementInterfaces\";\n\nconst DialogStyled = styled(Dialog)`\n width: 900px;\n background: white;\n`;\nexport interface IRemplacementOccasionnelDetailPageProps {\n isOpen: boolean;\n onSave: () => void;\n onCancel: () => void;\n data: IRemplacement;\n}\n\nexport const RemplacementOccasionnelDetailPage: React.FunctionComponent = ({\n isOpen,\n onSave,\n onCancel,\n data\n}) => {\n const { t } = useTl();\n const [saving, setSaving] = React.useState(false);\n const value = React.useMemo(\n () =>\n FcbClasseHoraireRemplacementDtoFromJSON({\n idremplacement: data.idremplacement,\n idremplacant: data.idremplacant,\n idformateurLocalisationContrat: data.idformateurLocalisationContrat,\n idclasseHoraire: data.idclasseHoraire,\n reporte: data.reporte\n }),\n [data]\n );\n\n const [remplacant, setRemplacant] = React.useState(data.idremplacant);\n const idcentre = React.useMemo(() => data?.idcentre, [data?.idcentre]);\n\n const [formateur, formateurLoading] = useReferential(\n a => a.referentialGetFormateurByCentre({ idCentre: idcentre }),\n true,\n [idcentre]\n );\n\n const getContratFormateurFunc = React.useCallback(\n (a: ReferentialApi) =>\n remplacant > 0\n ? a.referentialGetFormateurLocalisationContrat({ idformateur: remplacant, idcentre: idcentre })\n : null,\n [idcentre, remplacant]\n );\n\n const [contratFormateur, cf] = useReferential(getContratFormateurFunc, true, [remplacant, idcentre]);\n\n const cfItems = React.useMemo(() => {\n if (remplacant > 0 && !!contratFormateur) {\n return contratFormateur;\n } else {\n return [];\n }\n }, [contratFormateur, remplacant]);\n\n const api = useApiService(RemplacementOccasionnelApi);\n const saveItem = React.useCallback(\n async (v: FcbClasseHoraireRemplacementDto) => {\n try {\n setSaving(true);\n await api.remplacementOccasionnelSave({ FcbClasseHoraireRemplacementDto: v });\n onSave();\n } catch (error) {\n showError(t(ETLCodes.Error));\n }\n setSaving(false);\n },\n [api, onSave, t]\n );\n\n // const remplacants = React.useMemo(() => formateur?.filter(f => f.value !== data.idremplacant), [\n // formateur,\n // data.idremplacant\n // ]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idformateurLocalisationContrat: Yup.number()\n .nullable()\n .when(\"idremplacant\", (value, schema) => (value ? schema.required(t(ETLCodes.Required)) : schema))\n });\n }, [t]);\n\n return (\n \n
\n \n {\n setRemplacant(val);\n if (!val || val !== remplacant) {\n formik.setFieldValue(\"idformateurLocalisationContrat\", null);\n }\n }}\n />\n \n \n \n \n \n \n
\n
\n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport {\n FcbRechercheClasseHoraireRemplacementOccasionnelDto,\n RechercheClasseHoraireRemplacementOccasionnelSearch\n} from \"../../../../../api\";\nimport { RemplacementOccasionnelApi } from \"../../../../../api/apis/RemplacementOccasionnelApi\";\nimport { EditButton, SearchTablePage } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { IRemplacement } from \"./RemplacementInterfaces\";\nimport { RemplacementOccasionnelDetailPage } from \"./RemplacementOccasionnelDetailPage\";\nimport { useEventsContext } from \"../../../../../contexts\";\n\nexport interface IRemplacementOccasionnelTablePageProps {}\n\nexport const RemplacementOccasionnelTablePage: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(RemplacementOccasionnelApi);\n\n const [modalVisible, setModalVisible] = React.useState(false);\n const [modalData, setModalData] = React.useState({});\n\n const editClick = React.useCallback((row: FcbRechercheClasseHoraireRemplacementOccasionnelDto) => {\n setModalData({\n idremplacant: row.idremplacant,\n idformateurLocalisationContrat: row.idformateurLocalisationContrat,\n idremplacement: row.idremplacement,\n idclasseHoraire: row.idclasseHoraire,\n reporte: row.reporte,\n idcentre: row.idcentre\n });\n setModalVisible(true);\n }, []);\n\n const columns = React.useMemo>(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheClasseHoraireRemplacementOccasionnelDto) => (\n \n editClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"classe\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"classeMatiere\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Heures),\n fieldName: \"heure\"\n },\n {\n header: () => t(ETLCodes.Remplacant),\n fieldName: \"remplacant\"\n },\n {\n header: () => t(ETLCodes.Reporte),\n fieldName: \"reporte\",\n alignment: \"center\",\n render: (row: FcbRechercheClasseHoraireRemplacementOccasionnelDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.Contrat),\n fieldName: \"contrat\"\n }\n ],\n [editClick, t]\n );\n\n const apiFactory = useAbortableApiServiceFactory(RemplacementOccasionnelApi);\n const lastAbortController = React.useRef();\n const searchFnCB = React.useCallback(\n (sObj?: RechercheClasseHoraireRemplacementOccasionnelSearch) => {\n sObj.idRemplacement = +id;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.remplacementOccasionnelBaseSearch({\n RechercheClasseHoraireRemplacementOccasionnelSearch: sObj\n });\n },\n [apiFactory, id]\n );\n\n const criteriaFnCB = React.useCallback(\n () => api.remplacementOccasionnelGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const { dispatchEvent } = useEventsContext();\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n \n {modalVisible ? (\n {\n setModalData({});\n setModalVisible(false);\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }}\n onCancel={() => {\n setModalData({});\n setModalVisible(false);\n }}\n data={modalData}\n />\n ) : null}\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGListen, FieldGroup, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n FcbRemplacementSimultaneDto,\n FcbRemplacementSimultaneDtoFromJSON,\n ReferentialApi,\n RemplacementSimultaneApi\n} from \"../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { IRemplacement } from \"./RemplacementInterfaces\";\n\nconst DialogStyled = styled(Dialog)`\n width: 900px;\n background: white;\n`;\nexport interface IRemplacementSimultaneDetailPageProps {\n isOpen: boolean;\n onSave: () => void;\n onCancel: () => void;\n data: IRemplacement;\n}\n\nexport const RemplacementSimultaneDetailPage: React.FunctionComponent = ({\n isOpen,\n onSave,\n onCancel,\n data\n}) => {\n const { t } = useTl();\n const [saving, setSaving] = React.useState(false);\n const value = React.useMemo(\n () =>\n FcbRemplacementSimultaneDtoFromJSON({\n idremplacement: data.idremplacement,\n idremplacant: data.idremplacant,\n idformateurLocalisationContrat: data.idformateurLocalisationContrat,\n idclasseMatiere: data.idclasseMatiere\n }),\n [data]\n );\n\n const [remplacant, setRemplacant] = React.useState(data.idremplacant);\n const idCentre = React.useMemo(() => data?.idcentre, [data?.idcentre]);\n const idRemplacement = React.useMemo(() => data?.idremplacement, [data?.idremplacement]);\n\n const getFormateurFunc = React.useCallback(\n (a: ReferentialApi) =>\n idRemplacement > 0 ? a.referentialGetFormateurByRemplacement({ idRemplacement: idRemplacement }) : null,\n [idRemplacement]\n );\n\n const [formateur, formateurLoading] = useReferential(getFormateurFunc, true, [getFormateurFunc]);\n\n const getContratFormateurFunc = React.useCallback(\n (a: ReferentialApi) =>\n remplacant > 0\n ? a.referentialGetFormateurLocalisationContrat({ idformateur: remplacant, idcentre: idCentre })\n : null,\n [idCentre, remplacant]\n );\n\n const [contratFormateur, cfLoading] = useReferential(getContratFormateurFunc, true, [getContratFormateurFunc]);\n\n const api = useApiService(RemplacementSimultaneApi);\n const saveItem = React.useCallback(\n async (v: FcbRemplacementSimultaneDto) => {\n try {\n setSaving(true);\n await api.remplacementSimultaneSave({ FcbRemplacementSimultaneDto: v });\n onSave();\n } catch (error) {\n showError(t(ETLCodes.Error));\n }\n setSaving(false);\n },\n [api, onSave, t]\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idformateurLocalisationContrat: Yup.number()\n .nullable()\n .when(\"idremplacant\", (value, schema) => (value ? schema.required(t(ETLCodes.Required)) : schema))\n });\n }, [t]);\n\n return (\n \n
\n \n {\n setRemplacant(val);\n if (!val || val !== remplacant) {\n formik.setFieldValue(\"idformateurLocalisationContrat\", null);\n }\n }}\n />\n \n \n \n \n \n \n \n
\n
\n );\n};\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport {\n FcbRechercheClasseHoraireRemplacementSimultaneDto,\n RechercheClasseHoraireRemplacementSimultaneSearch\n} from \"../../../../../api\";\nimport { RemplacementSimultaneApi } from \"../../../../../api/apis/RemplacementSimultaneApi\";\nimport { EditButton, SearchTablePage } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { IRemplacement } from \"./RemplacementInterfaces\";\nimport { RemplacementSimultaneDetailPage } from \"./RemplacementSimultaneDetailPage\";\nimport { useEventsContext } from \"../../../../../contexts\";\n\nexport interface IRemplacementSimultaneTablePageProps {}\n\nexport const RemplacementSimultaneTablePage: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(RemplacementSimultaneApi);\n\n const [modalVisible, setModalVisible] = React.useState(false);\n const [modalData, setModalData] = React.useState({});\n\n const editClick = React.useCallback((row: FcbRechercheClasseHoraireRemplacementSimultaneDto) => {\n setModalData({\n idremplacant: row.idRemplacant,\n idformateurLocalisationContrat: row.idFormateurLocalisationContrat,\n idremplacement: row.idRemplacement,\n idclasseMatiere: row.idClasseMatiere,\n idcentre: row.idcentre\n });\n setModalVisible(true);\n }, []);\n\n const columns = React.useMemo>(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheClasseHoraireRemplacementSimultaneDto) => (\n \n editClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"classe\"\n },\n {\n header: () => t(ETLCodes.Matiere),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Remplacant),\n fieldName: \"remplacant\"\n },\n {\n header: () => t(ETLCodes.Contrat),\n fieldName: \"contrat\"\n }\n ],\n [editClick, t]\n );\n\n const apiFactory = useAbortableApiServiceFactory(RemplacementSimultaneApi);\n const lastAbortController = React.useRef();\n const searchFnCB = React.useCallback(\n (sObj?: RechercheClasseHoraireRemplacementSimultaneSearch) => {\n sObj.idRemplacement = +id;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.remplacementSimultaneBaseSearch({ RechercheClasseHoraireRemplacementSimultaneSearch: sObj });\n },\n [apiFactory, id]\n );\n\n const criteriaFnCB = React.useCallback(\n () => api.remplacementSimultaneGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const { dispatchEvent } = useEventsContext();\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n \n {modalVisible ? (\n {\n setModalData({});\n setModalVisible(false);\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }}\n onCancel={() => {\n setModalData({});\n setModalVisible(false);\n }}\n data={modalData}\n />\n ) : null}\n \n );\n};\n","import { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport { RemplacementApi } from \"../../../../../api\";\nimport { useApiService } from \"../../../../../hooks\";\n\nimport { RemplacementDefinitiveTablePage } from \"./RemplacementDefinitiveTablePage\";\nimport { RemplacementOccasionnelTablePage } from \"./RemplacementOccasionnelTablePage\";\nimport { RemplacementSimultaneTablePage } from \"./RemplacementSimultaneTablePage\";\n\nexport interface IRemplacementSwitchProps {}\n\nexport const RemplacementSwitch: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n const api = useApiService(RemplacementApi);\n\n const [data] = useApiEffect(() => api.remplacementGet({ id: +id }), [id]);\n\n const Remplacement = React.useCallback(() => {\n if (data) {\n if (data.idtypeRemplacement === 1) {\n return ;\n } else if (data.idtypeRemplacement === 2) {\n return ;\n } else if (data.idtypeRemplacement === 3) {\n return ;\n }\n }\n return <>;\n }, [data]);\n\n return ;\n};\n","import { Divider } from \"@blueprintjs/core\";\r\nimport { DialogResult, FGListen, FGTextAreaInput, FieldGroup } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport { FcbRemplacementDto, FcbRemplacementDtoFromJSON, FormateurApi, RemplacementApi } from \"../../../../api\";\r\nimport { ERoutes } from \"../../../../AppRouter\";\r\nimport { ErrorText, FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\r\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\r\nimport { useReferential } from \"../../../../hooks/useReferential\";\r\nimport { ETLCodes } from \"../../../../locales\";\r\nimport { useDialog, useGlobalData, useRouteParamsContext } from \"../../../../contexts\";\r\nimport { useQuery } from \"react-query\";\r\n\r\nexport interface IRemplacementGeneralPageProps {}\r\n\r\nexport const RemplacementGeneralPage: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const { id, state } = useParams<{ id: string; tab: string; state: string }>();\r\n const api = useApiService(RemplacementApi);\r\n const formateurApi = useApiService(FormateurApi);\r\n const history = useHistory();\r\n const { currentAnneeScolaire } = useGlobalData();\r\n const { showDialogPromise } = useDialog();\r\n const [idCentre, setIdCentre] = React.useState(0);\r\n const [idRemplace, setIdRemplace] = React.useState(0);\r\n const [idRemplacant, setIdRemplacant] = React.useState(0);\r\n const [centre, centreLoading] = useReferential(a => a.referentialGetCentreByUser({ idCentre: idCentre }), true, [\r\n idCentre\r\n ]);\r\n const [formateur, formateurLoading] = useReferential(\r\n a => (idCentre !== 0 ? a.referentialGetFormateurByCentre({ idCentre }) : null),\r\n true,\r\n [idCentre]\r\n );\r\n const [typeRemplacement, trLoading] = useReferential(a => a.referentialGetTypeRemplacement(), true, []);\r\n const [legitimite, legitimiteLoading] = useReferential(a => a.referentialGetRemplacementLegitimite(), true, []);\r\n\r\n const { popCancelRoute } = useRouteParamsContext();\r\n // Check if not undefined to not fetch on first page load\r\n const [contratFormateur, cf] = useReferential(\r\n a => (idRemplacant !== 0 ? a.referentialGetFormateurLocalisationContrat({ idformateur: idRemplacant }) : null),\r\n true,\r\n [idRemplacant]\r\n );\r\n\r\n const FormSchema = React.useMemo(() => {\r\n return Yup.object().shape({\r\n idformateurLocalisationContrat: Yup.number().required(t(ETLCodes.Required)),\r\n idtypeRemplacement: Yup.number().required(t(ETLCodes.Required)),\r\n idremplace: Yup.number().required(t(ETLCodes.Required)),\r\n idcentre: Yup.number().required(t(ETLCodes.Required)),\r\n idremplacant: Yup.number().required(t(ETLCodes.Required)),\r\n idremplacementLegitimite: Yup.number().required(t(ETLCodes.Required)),\r\n dateDebut: Yup.date()\r\n .required(t(ETLCodes.Required))\r\n .min(new Date(2000, 1, 1), t(ETLCodes.DateCannotBePastOf, { minDate: \"01/01/2000\" })),\r\n dateFin: Yup.date()\r\n .required(t(ETLCodes.Required))\r\n .min(new Date(2000, 1, 1), t(ETLCodes.DateCannotBePastOf, { minDate: \"01/01/2000\" }))\r\n });\r\n }, [t]);\r\n\r\n const remplacants = React.useMemo(() => formateur?.filter(f => f.value !== idRemplace), [formateur, idRemplace]);\r\n const remplaces = React.useMemo(() => formateur?.filter(f => f.value !== idRemplacant), [formateur, idRemplacant]);\r\n\r\n const saveRemplacement = React.useCallback(\r\n async (dto: FcbRemplacementDto) => {\r\n let res: DialogResult = \"no\";\r\n\r\n if (dto.dateFin > currentAnneeScolaire.dateFin) {\r\n res = await showDialogPromise({\r\n message: t(ETLCodes.RemplacementOverSchoolYear)\r\n });\r\n } else {\r\n res = \"yes\";\r\n }\r\n\r\n if (res === \"yes\") {\r\n return api.remplacementSave({ FcbRemplacementDto: dto });\r\n }\r\n },\r\n [api, currentAnneeScolaire.dateFin, showDialogPromise, t]\r\n );\r\n\r\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\r\n getApiFn: () => (+id <= 0 ? FcbRemplacementDtoFromJSON({ idRemplacement: 0 }) : api.remplacementGet({ id: +id })),\r\n saveApiFn: saveRemplacement,\r\n onSavedRoute: d => `${ERoutes.remplacement}/${d.idremplacement}/general/${state}`,\r\n deleteApiFn: d => api.remplacementDelete({ id: d.idremplacement }),\r\n onDeletedRoute: () => ERoutes.remplacement\r\n });\r\n\r\n const cancel = React.useCallback(() => history.push(popCancelRoute() ?? ERoutes.remplacement), [\r\n history,\r\n popCancelRoute\r\n ]);\r\n\r\n const { data: isDeceased, isFetching: isDeceasedLoading } = useQuery(\r\n [\"formateur-deceased\", idRemplacant],\r\n async () => {\r\n if (!idRemplacant) return false;\r\n const val = await formateurApi.formateurIsDeceased({ idFormateur: idRemplacant });\r\n return val?.value;\r\n }\r\n );\r\n\r\n return (\r\n 0}\r\n disableSaveButton={isDeceased}\r\n saving={saving || isDeceasedLoading}\r\n deleting={deleting}\r\n >\r\n setIdRemplacant(value)} />\r\n setIdRemplace(value)} />\r\n setIdCentre(value)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {isDeceased && }\r\n
\r\n \r\n );\r\n};\r\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { RemplacementApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { RemplacementSwitch } from \"./RemplacementDetail/RemplacementSwitch\";\nimport { RemplacementGeneralPage } from \"./RemplacementGeneralPage\";\n\nexport interface IRemplacementItemPageProps {}\n\nexport const RemplacementItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(RemplacementApi);\n\n const [displayName] = useApiEffect(() => api.remplacementGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.remplacement}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n } disabled={+id <= 0} />\n \n \n );\n};\n","import { Button, Checkbox, Intent, Menu, Spinner } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { MenuItem2, Popover2 } from \"@blueprintjs/popover2\";\nimport { useSessionStorageState } from \"ahooks\";\nimport moment from \"moment\";\nimport { ButtonContainer, showError, showInfo, showSuccess } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory } from \"react-router\";\nimport styled, { css } from \"styled-components\";\n\nimport {\n DeliberationTypeApi,\n DeliberationTypeSearch,\n DeliberationValidateIdsDto,\n ETextSearchType,\n FcbRechercheApprenantDeliberationTypeDto,\n FichierApi,\n SelectItem,\n UtilisateurApi\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../components\";\nimport {\n useAuth,\n useDialog,\n useEventsContext,\n useGlobalData,\n usePrintingQueueContext,\n useRouteParamsContext\n} from \"../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useManageError, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { b64toBlob } from \"../../../../utils\";\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nexport interface IDeliberationTypeListPageProps {}\n\nexport function useLastDeliberationSearchObject() {\n const [lastDeliberationTypeSearch, setlastDeliberationTypeSearch] = useSessionStorageState(\n \"lastDeliberationTypeSearchObject\",\n null\n );\n\n return {\n lastDeliberationTypeSearch,\n setlastDeliberationTypeSearch\n };\n}\n\nenum EDeliberationValidateAction {\n Validate = \"Validate\",\n Invalidate1Sess = \"Invalidate1Sess\",\n Invalidate2Sess = \"Invalidate2Sess\"\n}\n\nexport const DeliberationTypeListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { user } = useAuth();\n const history = useHistory();\n const api = useApiService(DeliberationTypeApi);\n const userApi = useApiService(UtilisateurApi);\n const { currentAnneeScolaire } = useGlobalData();\n const { pushIdbulletinApprenantType } = useRouteParamsContext();\n const { dispatchEvent } = useEventsContext();\n const { showDialogPromise } = useDialog();\n const {\n refreshQueue,\n setIsQueueForcedOpen,\n queuePrintings,\n removePreviousPrintings,\n hasError,\n setHasError\n } = usePrintingQueueContext();\n const { manageError } = useManageError();\n\n React.useEffect(() => {\n if (hasError) {\n showError(t(ETLCodes.AnErrorOccuredWhilePrintingAr));\n setHasError(false);\n }\n }, [hasError, setHasError, t]);\n\n const fetchUserCanValidate = React.useCallback(async () => {\n const res = await userApi.utilisateurGetUserValidationDirectionRight();\n return res.value;\n }, [userApi]);\n\n const { data: hasRightToDevalidate } = useQuery(\"user-can-validate\", fetchUserCanValidate, {\n enabled: true,\n cacheTime: 0\n });\n\n const [selectedIds, setSelectedIds] = React.useState({\n allIds: [],\n idsToValidate: [],\n ids1SessToInvalidate: [],\n ids2SessToInvalidate: []\n });\n\n const { lastDeliberationTypeSearch, setlastDeliberationTypeSearch } = useLastDeliberationSearchObject();\n\n const fetchDeliberationIds = React.useCallback(async () => {\n if (!lastDeliberationTypeSearch?.anneeScolaire) return null;\n\n return await api.deliberationTypeSearchDeliberationIds({\n DeliberationTypeSearch: { ...lastDeliberationTypeSearch, forceSkip: 0, forceTake: 999999 }\n });\n }, [api, lastDeliberationTypeSearch]);\n\n const { data: deliberationIds, isLoading: deliberationIdsLoading, refetch } = useQuery(\n [\"lastDeliberationTypeSearch\", lastDeliberationTypeSearch],\n fetchDeliberationIds\n );\n\n const toggleSelection = React.useCallback(\n (item: FcbRechercheApprenantDeliberationTypeDto, action: EDeliberationValidateAction) => {\n let newSelectedIds: DeliberationValidateIdsDto = {\n allIds: [],\n idsToValidate: [],\n ids1SessToInvalidate: [],\n ids2SessToInvalidate: []\n };\n\n switch (action) {\n case EDeliberationValidateAction.Validate:\n if (!selectedIds.idsToValidate.includes(item.idbulletinApprenantType)) {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: selectedIds.ids1SessToInvalidate,\n ids2SessToInvalidate: selectedIds.ids2SessToInvalidate,\n idsToValidate: [...selectedIds.idsToValidate, item.idbulletinApprenantType]\n };\n } else {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: selectedIds.ids1SessToInvalidate,\n ids2SessToInvalidate: selectedIds.ids2SessToInvalidate,\n idsToValidate: selectedIds.idsToValidate.filter(id => id !== item.idbulletinApprenantType)\n };\n }\n\n break;\n case EDeliberationValidateAction.Invalidate1Sess:\n if (!selectedIds.ids1SessToInvalidate.includes(item.idbulletinApprenantType)) {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: [...selectedIds.ids1SessToInvalidate, item.idbulletinApprenantType],\n ids2SessToInvalidate: selectedIds.ids2SessToInvalidate,\n idsToValidate: selectedIds.idsToValidate\n };\n } else {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: selectedIds.ids1SessToInvalidate.filter(id => id !== item.idbulletinApprenantType),\n ids2SessToInvalidate: selectedIds.ids2SessToInvalidate,\n idsToValidate: selectedIds.idsToValidate\n };\n }\n\n break;\n case EDeliberationValidateAction.Invalidate2Sess:\n if (!selectedIds.ids2SessToInvalidate.includes(item.idbulletinApprenantType)) {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: selectedIds.ids1SessToInvalidate,\n ids2SessToInvalidate: [...selectedIds.ids2SessToInvalidate, item.idbulletinApprenantType],\n idsToValidate: selectedIds.idsToValidate\n };\n } else {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: selectedIds.ids1SessToInvalidate,\n ids2SessToInvalidate: selectedIds.ids2SessToInvalidate.filter(id => id !== item.idbulletinApprenantType),\n idsToValidate: selectedIds.idsToValidate\n };\n }\n break;\n default:\n break;\n }\n\n setSelectedIds(newSelectedIds);\n },\n [selectedIds]\n );\n\n const selectAll = React.useCallback(\n (action: EDeliberationValidateAction) => {\n let newSelectedIds: DeliberationValidateIdsDto = {\n allIds: [],\n idsToValidate: [],\n ids1SessToInvalidate: [],\n ids2SessToInvalidate: []\n };\n\n switch (action) {\n case EDeliberationValidateAction.Validate:\n if (deliberationIds?.allIds.length === selectedIds.idsToValidate.length) {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: selectedIds.ids1SessToInvalidate,\n ids2SessToInvalidate: selectedIds.ids2SessToInvalidate,\n idsToValidate: []\n };\n } else {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: selectedIds.ids1SessToInvalidate,\n ids2SessToInvalidate: selectedIds.ids2SessToInvalidate,\n idsToValidate: deliberationIds?.allIds\n };\n }\n break;\n case EDeliberationValidateAction.Invalidate1Sess:\n if (deliberationIds?.ids1SessToInvalidate.length === selectedIds.ids1SessToInvalidate.length) {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: [],\n ids2SessToInvalidate: selectedIds.ids2SessToInvalidate,\n idsToValidate: selectedIds.idsToValidate\n };\n } else {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: deliberationIds?.ids1SessToInvalidate,\n ids2SessToInvalidate: selectedIds.ids2SessToInvalidate,\n idsToValidate: selectedIds.idsToValidate\n };\n }\n break;\n case EDeliberationValidateAction.Invalidate2Sess:\n if (deliberationIds?.ids2SessToInvalidate.length === selectedIds.ids2SessToInvalidate.length) {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: selectedIds.ids1SessToInvalidate,\n ids2SessToInvalidate: [],\n idsToValidate: selectedIds.idsToValidate\n };\n } else {\n newSelectedIds = {\n allIds: selectedIds.allIds,\n ids1SessToInvalidate: selectedIds.ids1SessToInvalidate,\n ids2SessToInvalidate: deliberationIds?.ids2SessToInvalidate,\n idsToValidate: selectedIds.idsToValidate\n };\n }\n break;\n default:\n break;\n }\n\n setSelectedIds(newSelectedIds);\n },\n [deliberationIds, selectedIds]\n );\n\n const isSelectboxShown = React.useCallback(\n (item: FcbRechercheApprenantDeliberationTypeDto, action: EDeliberationValidateAction) => {\n switch (action) {\n case EDeliberationValidateAction.Validate:\n if (\n !deliberationIds?.ids1SessToInvalidate.includes(item.idbulletinApprenantType) &&\n !deliberationIds?.ids2SessToInvalidate.includes(item.idbulletinApprenantType)\n ) {\n return (\n {\n toggleSelection(item, EDeliberationValidateAction.Validate);\n }}\n />\n );\n } else {\n return <>;\n }\n case EDeliberationValidateAction.Invalidate1Sess:\n if (!!item.validationDirection1sess) {\n return (\n {\n toggleSelection(item, EDeliberationValidateAction.Invalidate1Sess);\n }}\n disabled={!!item.validationDirection2sess}\n />\n );\n } else {\n return <>;\n }\n case EDeliberationValidateAction.Invalidate2Sess:\n if (deliberationIds?.ids2SessToInvalidate.includes(item.idbulletinApprenantType)) {\n return (\n {\n toggleSelection(item, EDeliberationValidateAction.Invalidate2Sess);\n }}\n />\n );\n } else {\n return <>;\n }\n }\n },\n [\n deliberationIds?.ids1SessToInvalidate,\n deliberationIds?.ids2SessToInvalidate,\n selectedIds.ids1SessToInvalidate,\n selectedIds.ids2SessToInvalidate,\n selectedIds.idsToValidate,\n toggleSelection\n ]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n deliberationIdsLoading ? (\n \n ) : (\n 0 &&\n deliberationIds?.allIds.length === selectedIds.idsToValidate.length\n }\n onChange={() => selectAll(EDeliberationValidateAction.Validate)}\n />\n ),\n render: (item: FcbRechercheApprenantDeliberationTypeDto) =>\n isSelectboxShown(item, EDeliberationValidateAction.Validate)\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheApprenantDeliberationTypeDto) => (\n \n {\n pushIdbulletinApprenantType(row.idbulletinApprenantType);\n history.push(\n `${ERoutes.deliberationType}/${row.idbulletinApprenantType}/detail/${row.idapprenant}/${row.anneeScolaire}/${row.idtypeCours}/view`\n );\n }}\n />\n {\n pushIdbulletinApprenantType(row.idbulletinApprenantType);\n history.push(\n `${ERoutes.deliberationType}/${row.idbulletinApprenantType}/detail/${row.idapprenant}/${row.anneeScolaire}/${row.idtypeCours}/edit`\n );\n }}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.TypeCours),\n fieldName: \"idtypeCours\"\n },\n {\n header: () => t(ETLCodes.Deliberation),\n fieldName: \"deliberation\",\n customizeCellStyle: () =>\n css`\n white-space: pre;\n `\n },\n {\n header: () =>\n deliberationIdsLoading ? (\n \n ) : (\n {\n selectAll(EDeliberationValidateAction.Invalidate1Sess);\n }}\n />\n ),\n disableSorting: true,\n fieldName: \"validationDirection1sess\",\n render: (item: FcbRechercheApprenantDeliberationTypeDto) =>\n isSelectboxShown(item, EDeliberationValidateAction.Invalidate1Sess),\n customizeCellStyle: () =>\n css`\n color: limegreen !important;\n `\n },\n {\n header: () => t(ETLCodes.DeliberationSecondeSessions),\n fieldName: \"deliberation2sess\",\n customizeCellStyle: () =>\n css`\n white-space: pre;\n `\n },\n {\n header: () =>\n deliberationIds?.ids2SessToInvalidate.length <= 0 ? (\n t(ETLCodes.ValidationDirection2Sess)\n ) : deliberationIdsLoading ? (\n \n ) : (\n {\n selectAll(EDeliberationValidateAction.Invalidate2Sess);\n }}\n />\n ),\n disableSorting: true,\n fieldName: \"validationDirection2sess\",\n render: (item: FcbRechercheApprenantDeliberationTypeDto) =>\n isSelectboxShown(item, EDeliberationValidateAction.Invalidate2Sess),\n customizeCellStyle: () =>\n css`\n color: limegreen !important;\n `\n },\n {\n header: () => t(ETLCodes.Metier),\n fieldName: \"metier\"\n },\n {\n header: () => t(ETLCodes.Degre),\n fieldName: \"degre\"\n },\n {\n header: () => t(ETLCodes.ClasseIdentifiant),\n fieldName: \"idclasse\"\n }\n ],\n [\n deliberationIdsLoading,\n deliberationIds?.allIds.length,\n deliberationIds?.ids1SessToInvalidate.length,\n deliberationIds?.ids2SessToInvalidate.length,\n selectedIds.idsToValidate.length,\n selectedIds.ids1SessToInvalidate.length,\n selectedIds.ids2SessToInvalidate.length,\n selectAll,\n isSelectboxShown,\n pushIdbulletinApprenantType,\n history,\n t\n ]\n );\n\n const apiFactory = useAbortableApiServiceFactory(DeliberationTypeApi);\n const lastAbortController = React.useRef();\n const searchFunction = React.useCallback(\n (sObj?: DeliberationTypeSearch) => {\n setlastDeliberationTypeSearch(sObj);\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.deliberationTypeBaseSearch({ DeliberationTypeSearch: sObj });\n },\n [apiFactory, setlastDeliberationTypeSearch]\n );\n\n const [centres, setCentres] = React.useState([]);\n const getCriteriaFunction = React.useCallback(async () => {\n var res = await api.deliberationTypeGetSearchCriterias({ includeListsValues: true });\n setCentres(res.find(c => c.criteria === \"Idcentre\")?.listValues);\n return res;\n }, [api]);\n\n const [isSaving, setIsSaving] = React.useState(false);\n\n const invalidateBulletins = React.useCallback(async () => {\n try {\n setIsSaving(true);\n var returnValue = await api.deliberationTypeInvalidateBulletins({ DeliberationValidateIdsDto: selectedIds });\n if (returnValue) {\n dispatchEvent(\"SEARCH_TABLE_REFRESH\", lastDeliberationTypeSearch);\n refetch();\n } else {\n showError(t(ETLCodes.MustWaitAfterGenerationBeforeInvalidating));\n }\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileInvalidation));\n } finally {\n setIsSaving(false);\n }\n }, [api, dispatchEvent, lastDeliberationTypeSearch, refetch, selectedIds, t]);\n\n const [totalCountLoading, setTotalCountLoading] = React.useState(false);\n const triggerBulletinGeneration = React.useCallback(\n async (sess2: boolean, validate: boolean) => {\n if (\n !lastDeliberationTypeSearch?.anneeScolaire ||\n (!lastDeliberationTypeSearch?.idcentre &&\n !lastDeliberationTypeSearch?.idclasse &&\n !lastDeliberationTypeSearch?.degre &&\n !lastDeliberationTypeSearch?.metier &&\n !lastDeliberationTypeSearch?.idtypeCours)\n ) {\n showError(t(ETLCodes.SearchAtLeastAnneeAndCentre));\n return;\n }\n\n const startYear = lastDeliberationTypeSearch.anneeScolaire?.criterias?.[0]?.value?.split(\"-\")[0];\n if (!startYear || +startYear < 2023) {\n showError(t(ETLCodes.GenerationIndisponibleAvant20232024));\n return;\n }\n\n let totalCount = 0;\n\n const addIds = !validate ? [...selectedIds.ids1SessToInvalidate, ...selectedIds.ids2SessToInvalidate] : [];\n const finalSelectedIds = [\n ...selectedIds.idsToValidate.filter(id => !validate || deliberationIds?.idsToValidate.includes(id)),\n ...addIds\n ];\n try {\n setTotalCountLoading(true);\n const sObj: DeliberationTypeSearch = {\n ...lastDeliberationTypeSearch,\n forceTake: 0,\n forceSkip: 0,\n canPrintBulletin: validate ? true : null,\n has2Sess: sess2,\n selectedIds: finalSelectedIds\n };\n const sRes = await api.deliberationTypeBaseSearch({ DeliberationTypeSearch: sObj });\n totalCount = sRes.totalCount;\n } catch (e) {\n console.error(e);\n showError(t(ETLCodes.ErrorWhileAddingBulletinToQueue));\n return;\n } finally {\n setTotalCountLoading(false);\n }\n\n if (totalCount === 0) {\n showError(t(ETLCodes.NoAvisToGenerate));\n return;\n }\n\n let messagePart1 = \"\";\n if (!!lastDeliberationTypeSearch?.idcentre) {\n const centre = centres.find(c => +c.idValue === +lastDeliberationTypeSearch?.idcentre?.criterias?.[0]?.value)\n ?.displayValue;\n messagePart1 = t(ETLCodes.BulletinGenerationWarningNb, { nb: totalCount, centre: centre });\n } else {\n const classe = lastDeliberationTypeSearch?.idclasse?.criterias?.[0]?.value;\n messagePart1 = t(ETLCodes.BulletinGenerationWarningNbClasse, { nb: totalCount, classe: classe });\n }\n const res = await showDialogPromise({\n title: t(ETLCodes.Attention),\n message: `${messagePart1}${\n !!lastDeliberationTypeSearch?.metier\n ? \" \" +\n t(ETLCodes.BulletinGenerationWarningMetier, {\n metier: lastDeliberationTypeSearch?.metier.criterias?.[0]?.value\n })\n : \"\"\n }. ${t(ETLCodes.BulletinGenerationWarningQuestion)}`\n });\n if (res === \"yes\") {\n if (queuePrintings?.length > 0) {\n const res = await showDialogPromise({\n title: t(ETLCodes.AnnulerMasquerGenerationPrecedente),\n message: t(ETLCodes.AnnulerMasquerGenerationPrecedenteMessage)\n });\n if (res === \"yes\") {\n await removePreviousPrintings();\n }\n }\n\n try {\n setTotalCountLoading(true);\n showInfo(t(ETLCodes.AddingBulletinToGenerationQueue));\n await api.deliberationTypeSendToPrintingQueue({\n DeliberationTypeSearch: {\n ...lastDeliberationTypeSearch,\n selectedIds: finalSelectedIds,\n has2Sess: sess2,\n canPrintBulletin: validate ? true : null\n },\n generate2Sess: sess2,\n validate\n });\n refreshQueue();\n setIsQueueForcedOpen(true);\n showSuccess(t(ETLCodes.BulletinsAddedToQueue));\n dispatchEvent(\"SEARCH_TABLE_REFRESH\", lastDeliberationTypeSearch);\n refetch();\n setSelectedIds({ ids1SessToInvalidate: [], ids2SessToInvalidate: [], idsToValidate: [] });\n } catch (e) {\n console.error(e);\n manageError(e, t(ETLCodes.ErrorWhileAddingBulletinToQueue));\n } finally {\n setTotalCountLoading(false);\n }\n }\n },\n [\n api,\n centres,\n deliberationIds?.idsToValidate,\n dispatchEvent,\n lastDeliberationTypeSearch,\n manageError,\n queuePrintings?.length,\n refetch,\n refreshQueue,\n removePreviousPrintings,\n selectedIds.ids1SessToInvalidate,\n selectedIds.ids2SessToInvalidate,\n selectedIds.idsToValidate,\n setIsQueueForcedOpen,\n showDialogPromise,\n t\n ]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n const fApi = useApiService(FichierApi);\n const downloadAvisValides = React.useCallback(\n async (sess2: boolean) => {\n const finalSelectedIds = [\n ...selectedIds.idsToValidate,\n ...selectedIds.ids1SessToInvalidate,\n ...selectedIds.ids2SessToInvalidate\n ];\n const sObj: DeliberationTypeSearch = {\n ...lastDeliberationTypeSearch,\n forceTake: 0,\n forceSkip: 0,\n has2Sess: sess2,\n selectedIds: finalSelectedIds\n };\n try {\n setIsSaving(true);\n const idsfichier = await api.deliberationTypeGetAvisResultatsIdsFichier({\n DeliberationTypeSearch: sObj,\n sess2\n });\n if (idsfichier.length === 0) {\n showInfo(t(ETLCodes.AucunFichierATelecharger));\n return;\n }\n const zip = await fApi.fichierMassDownloadPdf({\n MassDownloadRequestDto: { idsfichier: idsfichier }\n });\n if (!zip) {\n showInfo(t(ETLCodes.AucunFichierATelecharger));\n return;\n }\n saveAs(b64toBlob(zip), zip.fileName);\n } catch (e) {\n showError(t(ETLCodes.ErrorWhileDownloadingPrinting));\n console.error(e);\n } finally {\n setIsSaving(false);\n }\n },\n [\n api,\n fApi,\n lastDeliberationTypeSearch,\n selectedIds.ids1SessToInvalidate,\n selectedIds.ids2SessToInvalidate,\n selectedIds.idsToValidate,\n t\n ]\n );\n\n const globalActions = React.useMemo(\n () => (\n \n \n {hasRightToDevalidate && (\n <>\n triggerBulletinGeneration(false, true)}\n />\n triggerBulletinGeneration(true, true)}\n />\n \n \n )}\n triggerBulletinGeneration(false, false)}\n />\n triggerBulletinGeneration(true, false)}\n />\n downloadAvisValides(false)}\n />\n downloadAvisValides(true)}\n />\n \n \n }\n >\n \n \n ),\n [\n downloadAvisValides,\n hasRightToDevalidate,\n invalidateBulletins,\n isSaving,\n t,\n totalCountLoading,\n triggerBulletinGeneration\n ]\n );\n\n const defaultCriterias = React.useMemo(\n () => [\n {\n criteria: \"AnneeScolaire\",\n searchMode: ETextSearchType.Equals,\n value: currentAnneeScolaire?.idanneeScolaire,\n mandatory: true\n },\n {\n criteria: \"Idcentre\",\n searchMode: ETextSearchType.Equals,\n value: user?.idscentre[0].toString()\n }\n ],\n [currentAnneeScolaire?.idanneeScolaire, user?.idscentre]\n );\n\n return (\n \n );\n};\n","import { Button, Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { DataTable, FieldSet, Loading, useApiEffect, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { Col, Grid, Row } from \"react-flexbox-grid\";\nimport { useParams } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport {\n ApprenantApi,\n BulletinApprenantRecapitulatifSearch,\n BulletinApprenantRecaputilatifApi,\n FcbBulletinApprenantRecapitulatifGridDto\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { TableBASelectGradeEditor } from \"../../../../components\";\nimport { useEventsContext } from \"../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IDeliberationRecapitulatifListProps {}\n\nexport const DeliberationRecapitulatifList: React.FunctionComponent = () => {\n const { t } = useTl();\n const { idApprenant, annee } = useParams<{\n id: string;\n tab: string;\n idApprenant: string;\n annee: string;\n coursTypeTab: string;\n state: string;\n }>();\n\n const apprenantId = React.useMemo(() => +idApprenant, [idApprenant]);\n\n const api = useApiService(BulletinApprenantRecaputilatifApi);\n const apprenantApi = useApiService(ApprenantApi);\n const [grades, gloading] = useReferential(a => a.referentialGetGrade(), true);\n\n const { dispatchEvent } = useEventsContext();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5, 10, 25, 100],\n pageSize: 5,\n sortKeys: { anneeScolaire: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: BulletinApprenantRecapitulatifSearch) => {\n sObj.idapprenant = apprenantId;\n // sObj.idbulletinApprenantType = +id;\n return api.bulletinApprenantRecaputilatifBaseSearch({ BulletinApprenantRecapitulatifSearch: sObj });\n },\n [api, apprenantId]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction: searchFunction,\n tableState,\n initialSearch: true\n });\n\n const [data, dLoading] = useApiEffect(\n () => api.bulletinApprenantRecaputilatifGetClasseName({ id: apprenantId, anneeScolaire: annee }),\n [apprenantId, annee]\n );\n\n const getPhoto = React.useCallback(async () => {\n return await apprenantApi.apprenantGetPhoto({ id: apprenantId });\n }, [apprenantApi, apprenantId]);\n const [photo, pLoading] = useApiEffect(getPhoto, [getPhoto]);\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeScolaire\"\n },\n {\n header: () => t(ETLCodes.Metier),\n fieldName: \"metier\"\n },\n {\n header: () => t(ETLCodes.Degre),\n fieldName: \"degre\"\n },\n {\n header: () => t(ETLCodes.Point),\n fieldName: \"points\"\n },\n {\n header: () => t(ETLCodes.Grade),\n fieldName: \"idgrade\",\n customizeCellStyle: () =>\n css`\n width: 250px;\n `,\n render: (row: FcbBulletinApprenantRecapitulatifGridDto) => {\n if (row.idbulletinApprenant > 0) {\n return (\n \n );\n }\n }\n }\n ],\n [gloading, grades, t]\n );\n\n const onPhotoClick = React.useCallback(() => {\n window.open(`/#${ERoutes.apprenant}/${apprenantId}/signaletique/view`, \"_blank\");\n }, [apprenantId]);\n\n const refresh = React.useCallback(() => {\n search();\n dispatchEvent(\"DELIBERATION_REFRESH\");\n }, [dispatchEvent, search]);\n\n React.useEffect(() => {\n if (idApprenant) {\n search();\n }\n }, [idApprenant, search]);\n\n return (\n \n {apprenantId > 0 && (\n }\n >\n \n \n \n
\n \n
\n \n {pLoading ? (\n \n \n \n ) : photo === \"\" ? (\n \n
\n onPhotoClick()} />\n
\n \n ) : (\n \n
\n onPhotoClick()}\n />\n
\n \n )}\n
\n
\n \n )}\n
\n );\n};\n","import * as React from \"react\";\n\nimport { DeliberationBulletinSwitch } from \"./bulletins\";\nimport { DeliberationRecapitulatifList } from \"./DeliberationRecapitulatifList\";\n\ninterface IDeliberationProps {}\n\nexport const Deliberation: React.FunctionComponent = () => {\n return (\n <>\n \n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ApprenantApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { useEventsContext } from \"../../../../contexts\";\nimport { useApiService } from \"../../../../hooks\";\nimport { Deliberation } from \"./Deliberation\";\n\nexport interface IDeliberationTabsProps {}\n\nexport const DeliberationTabs: React.FunctionComponent = () => {\n const history = useHistory();\n const { id, idApprenant, annee, tab, coursTypeTab } = useParams<{\n id: string;\n tab: string;\n idApprenant: string;\n annee: string;\n coursTypeTab: string;\n state: string;\n }>();\n const apprenantId = React.useMemo(() => +idApprenant, [idApprenant]);\n const api = useApiService(ApprenantApi);\n const { dispatchEvent } = useEventsContext();\n\n const [annees] = useApiEffect(() => api.apprenantGetAnneesScolairesInscrites({ IdApprenant: apprenantId }), [\n apprenantId\n ]);\n\n return (\n annees && (\n {\n history.push(`${ERoutes.deliberationType}/${id}/${tab}/${apprenantId}/${newTabId}/${coursTypeTab}`);\n dispatchEvent(\"DELIBERATION_ANNEE_CHANGED\");\n }}\n selectedTabId={annee}\n renderActiveTabPanelOnly\n vertical\n >\n {annees.map(a => {\n return } panelClassName=\"full-width-panel\" />;\n })}\n \n )\n );\n};\n","import { Button, Tab } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { Loading, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { useLastDeliberationSearchObject } from \"..\";\nimport { DeliberationTypeApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { DeliberationTabs } from \"./DeliberationTabs\";\n\nexport interface IDeliberationItemPageProps {}\n\nexport const DeliberationItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, idApprenant, annee, tab, coursTypeTab } = useParams<{\n id: string;\n tab: string;\n idApprenant: string;\n annee: string;\n coursTypeTab: string;\n state: string;\n }>();\n const history = useHistory();\n\n const api = useApiService(DeliberationTypeApi);\n\n const [displayName] = useApiEffect(() => api.deliberationTypeGetDisplayName({ id: +id }), [id]);\n\n const { lastDeliberationTypeSearch: sObj } = useLastDeliberationSearchObject();\n\n const getIds = React.useCallback(async () => {\n if (!!sObj) {\n if (\n (sObj.hasOwnProperty(\"metier\") && sObj.metier !== void 0) ||\n (sObj.hasOwnProperty(\"degre\") && sObj.degre !== void 0) ||\n (sObj.hasOwnProperty(\"idclasse\") && sObj.idclasse !== void 0)\n ) {\n return await api.deliberationTypeSearchIds({\n DeliberationTypeSearch: { ...sObj, idbulletinApprenantType: +id }\n });\n }\n }\n\n return [];\n }, [api, id, sObj]);\n\n const [ids, loading] = useApiEffect(getIds, [getIds]);\n\n const breadCrumbs = React.useMemo(\n () => [\n { text: t(ETLCodes.DeliberationType), route: ERoutes.deliberationType },\n { text: +id <= 0 ? t(ETLCodes.New) : displayName }\n ],\n [displayName, id, t]\n );\n\n const previousTabs = React.useMemo(() => {\n let found = -1;\n if (ids) {\n found = ids.findIndex(item => item.idbulletinApprenantType === +id);\n }\n if (found > 0) {\n let newApprenant = ids[found - 1];\n return (\n \n history.push(\n `${ERoutes.deliberationType}/${newApprenant.idbulletinApprenantType}/detail/${newApprenant.idApprenant}/${annee}/${coursTypeTab}`\n )\n }\n text={`${t(ETLCodes.Precedent)}`}\n loading={loading}\n intent=\"primary\"\n minimal={true}\n icon={IconNames.CHEVRON_LEFT}\n />\n );\n }\n return ;\n }, [annee, coursTypeTab, history, id, ids, loading, t]);\n\n const nextTabs = React.useMemo(() => {\n let found = -1;\n if (ids) {\n found = ids.findIndex(item => item.idbulletinApprenantType === +id);\n }\n if (found >= 0 && found < ids.length - 1) {\n let newApprenant = ids[found + 1];\n return (\n \n history.push(\n `${ERoutes.deliberationType}/${newApprenant.idbulletinApprenantType}/detail/${newApprenant.idApprenant}/${annee}/${coursTypeTab}`\n )\n }\n text={`${t(ETLCodes.Suivant)}`}\n loading={loading}\n intent=\"primary\"\n minimal={true}\n rightIcon={IconNames.CHEVRON_RIGHT}\n />\n );\n }\n return ;\n }, [annee, coursTypeTab, history, id, ids, loading, t]);\n\n return (\n \n \n history.push(`${ERoutes.deliberationType}/${id}/${newTabId}/${idApprenant}/${annee}/${coursTypeTab}`)\n }\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n {previousTabs}\n } disabled />\n {nextTabs}\n \n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { DeliberationItemPage } from \"./DeliberationItemPage\";\n\nexport interface IDeliberationSwitchProps {}\n\nexport const DeliberationSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n );\n};\n","import { Divider } from \"@blueprintjs/core\";\nimport { FGCheckboxInput, FGTextAreaInput, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport * as Yup from \"yup\";\n\nimport { ValidationMasseTable } from \"..\";\nimport { AgrementMasseValidationApi, FcbAgrementValidationMasseDtoFromJSON } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, PageBase, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IValidationMasseItemPageProps {}\n\nexport const ValidationMasseItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(AgrementMasseValidationApi);\n const [decision, decisionLoading] = useReferential(a => a.referentialGetDecision(), false, []);\n const { data, saving, saveItem } = useCrudApi(\n React.useMemo(() => {\n return {\n getApiFn: () => {\n return FcbAgrementValidationMasseDtoFromJSON({ idApprenants: [] });\n },\n saveApiFn: d => {\n return api.agrementMasseValidationSave({ FcbAgrementValidationMasseDto: d });\n },\n onSavedRoute: () => `${ERoutes.validationMasse}`,\n deleteApiFn: () => {},\n onDeletedRoute: () => ERoutes.validationMasse\n };\n }, [api])\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idDecision: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const [formationIds, setFormationIds] = React.useState([]);\n\n return (\n \n
\n {data && (\n saveItem({ ...values, formationIds: formationIds })}\n showColons\n editMode\n validationSchema={FormSchema}\n saving={saving}\n formatDate=\"dd-MM-yyyy\"\n >\n \n \n \n \n \n \n \n \n )}\n {/* setFormationIds(newLinkedIds)}\n /> */}\n \n \n
\n
\n );\n};\n","import { Button, ButtonGroup, Icon } from \"@blueprintjs/core\";\nimport {\n DataTable,\n FieldSet,\n IDataTableColumn,\n InlineSearchCriteriaPanel,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { ValidationMasseAddModal } from \"..\";\nimport { AgrementMasseValidationApi, FcbRechercheapprenantValidationcemasseDto } from \"../../../../api\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IValidationMasseTableProps {\n linkedIds?: number[];\n onLinkedIdsChanged?: (linkedIds: number[]) => void;\n}\n\nconst Container = styled.div``;\n\nexport const ValidationMasseTable: React.FunctionComponent = ({\n linkedIds = [],\n onLinkedIdsChanged\n}) => {\n const { t } = useTl();\n const tableState = useGridState({ serverMode: false, sortKeys: { nom: \"ASC\" } });\n\n const api = useApiService(AgrementMasseValidationApi);\n const searchFn = React.useCallback(\n sObj =>\n api.agrementMasseValidationBaseSearch({\n RechercheApprenantValidationCeMasseSearch: { ...sObj, selectedIds: linkedIds }\n }),\n [api, linkedIds]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction: searchFn,\n tableState,\n initialSearch: true\n });\n\n const { data } = tableState;\n\n const registeredIds = React.useMemo(() => {\n return data?.filter(v => !linkedIds.includes(v.idformation)).map(v => v.idformation) ?? [];\n }, [data, linkedIds]);\n\n const columns = React.useMemo(\n () => [\n {\n fieldName: \"_action\",\n autoFitContent: true,\n computed: true,\n\n alignment: \"center\",\n render: (item: FcbRechercheapprenantValidationcemasseDto) => (\n \n )\n },\n {\n fieldName: \"nom\",\n header: () => t(ETLCodes.Nom)\n },\n {\n fieldName: \"prenom\",\n header: () => t(ETLCodes.Prenom)\n },\n {\n fieldName: \"dateNaissance\",\n header: () => t(ETLCodes.DateNaissance)\n },\n {\n fieldName: \"masculin\",\n header: () => t(ETLCodes.Formation)\n },\n {\n fieldName: \"degre\",\n header: () => t(ETLCodes.Degre)\n },\n {\n fieldName: \"codeclasse\",\n header: () => t(ETLCodes.CodeClasse)\n },\n {\n fieldName: \"classe\",\n header: () => t(ETLCodes.NomClasse)\n },\n {\n fieldName: \"agrement\",\n header: () => t(ETLCodes.ValidationCE)\n }\n ],\n [linkedIds, t]\n );\n\n const [showModal, setShowModal] = React.useState(false);\n const onAddFormation = React.useCallback(() => {\n setShowModal(true);\n }, []);\n\n const onClose = React.useCallback(\n (saved: number[]) => {\n if (saved) {\n onLinkedIdsChanged(saved);\n // Wait for the update to get dispatched\n setTimeout(() => {\n search();\n }, 0);\n }\n setShowModal(false);\n },\n [search, onLinkedIdsChanged]\n );\n\n const addButton = React.useMemo(() => {\n return (\n \n \n \n );\n }, [onAddFormation, t]);\n\n const getCriterias = React.useCallback(\n () => api.agrementMasseValidationGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n return (\n \n
\n \n
\n
\n \n
\n {!loading ? (\n \n ) : null}\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { Button, ButtonGroup, Divider, Icon, Tooltip } from \"@blueprintjs/core/lib/esm/components\";\nimport { useWhatChanged } from \"@simbathesailor/use-what-changed\";\nimport { IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport {\n AgrementMasseValidationApi,\n FcbRechercheapprenantValidationcemasseDto,\n RechercheApprenantValidationCeMasseSearch\n} from \"../../../../api\";\nimport { SearchTablePage } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst DialogStyled = styled(Dialog)`\n width: 1500px;\n background: white;\n`;\n\nexport interface IValidationMasseAddModalProps {\n isOpen: boolean;\n onClose: (apprenants?: number[]) => void;\n /**\n * Ids of the already registered apprenants to not fetch them\n */\n registeredIds: number[];\n /**\n * Elements that has been already selected\n */\n alreadySelected: number[];\n}\n\nexport const ValidationMasseAddModal: React.FunctionComponent = ({\n isOpen,\n onClose,\n registeredIds,\n alreadySelected\n}) => {\n const { t } = useTl();\n const validationMasseApi = useApiService(AgrementMasseValidationApi);\n\n const [totalCount, setTotalCount] = React.useState(0);\n const [data, setData] = React.useState();\n\n const searchFn = React.useCallback(\n async (nextSearch?: RechercheApprenantValidationCeMasseSearch) => {\n validationMasseApi\n .agrementMasseValidationSearchFunctionIds({\n RechercheApprenantValidationCeMasseSearch: {\n ...nextSearch,\n availableIds: registeredIds,\n forceSkip: 0,\n forceTake: 99999\n }\n })\n .then(res => {\n setData(res);\n setTotalCount(res.length);\n });\n\n return await validationMasseApi.agrementMasseValidationBaseSearch({\n RechercheApprenantValidationCeMasseSearch: {\n ...nextSearch,\n availableIds: registeredIds\n }\n });\n },\n [validationMasseApi, registeredIds]\n );\n\n const [selected, setSelected] = React.useState(alreadySelected ?? []);\n const toggleSelection = React.useCallback(\n (idformation: number) => {\n if (!selected.includes(idformation)) {\n setSelected(apprenants => [...apprenants, idformation]);\n } else {\n setSelected(apprenants => apprenants.filter(i => !(i === idformation)));\n }\n },\n [selected]\n );\n\n const allChecked = React.useMemo(() => totalCount > 0 && selected.length === totalCount, [\n selected.length,\n totalCount\n ]);\n const toggleSelectAll = React.useCallback(() => {\n if (data.length === selected.length) {\n setSelected([]);\n } else {\n setSelected(data);\n }\n }, [data, selected.length]);\n\n const onRowClick = React.useCallback(\n (id: number) => {\n toggleSelection(id);\n },\n [toggleSelection]\n );\n\n useWhatChanged([selected], \"selected\");\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"_action\",\n autoFitContent: true,\n computed: true,\n header: () => (\n \n \n \n ),\n alignment: \"center\",\n render: (item: FcbRechercheapprenantValidationcemasseDto) => (\n \n )\n },\n {\n fieldName: \"nom\",\n header: () => t(ETLCodes.Nom)\n },\n {\n fieldName: \"prenom\",\n header: () => t(ETLCodes.Prenom)\n },\n {\n fieldName: \"dateNaissance\",\n header: () => t(ETLCodes.DateNaissance)\n },\n {\n fieldName: \"masculin\",\n header: () => t(ETLCodes.Formation)\n },\n {\n fieldName: \"degre\",\n header: () => t(ETLCodes.Degre)\n },\n {\n fieldName: \"codeclasse\",\n header: () => t(ETLCodes.CodeClasse)\n },\n {\n fieldName: \"classe\",\n header: () => t(ETLCodes.NomClasse)\n },\n {\n fieldName: \"agrement\",\n header: () => t(ETLCodes.ValidationCE)\n }\n ];\n }, [allChecked, selected, t, toggleSelectAll]);\n\n const onSave = React.useCallback(async () => {\n onClose(selected);\n setSelected([]);\n }, [onClose, selected]);\n\n const close = React.useCallback(() => {\n onClose(undefined);\n setSelected(alreadySelected ?? []);\n }, [alreadySelected, onClose]);\n\n const getCriteria = React.useCallback(\n () => validationMasseApi.agrementMasseValidationGetSearchCriterias({ includeListsValues: true }),\n [validationMasseApi]\n );\n\n return (\n \n
\n onRowClick(item.idformation)}\n criteriasTlPrefix=\"ValidationMasse\"\n />\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n \n );\n};\n","import { Button, Checkbox, Colors, Icon, Intent, Menu, MenuItem, Popover, Spinner, Tooltip } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ButtonContainer, IDataTableColumn, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled, { css } from \"styled-components\";\n\nimport { LieuFormationGrid } from \".\";\nimport { SiegeSocialApi, SiegeSocialGridDto, SiegeSocialSearchDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n AddButton,\n CircleColumn,\n ColumnMask,\n CustomBulletList,\n EditButton,\n EmailButton,\n SearchTablePage,\n SmsButton,\n ViewButton\n} from \"../../../../components\";\nimport { useRouteParamsContext } from \"../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTheme, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport interface ISiegeSocialListProps {}\n\nexport const SiegeSocialList: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const history = useHistory();\n const api = useApiService(SiegeSocialApi);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const lastSearchObject = React.useRef();\n const { pushSmsRecipientIds, pushSmsRecipientType } = useRouteParamsContext();\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n const { theme } = useTheme();\n\n const apiFactory = useAbortableApiServiceFactory(SiegeSocialApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: SiegeSocialSearchDto) => {\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject?.current)) {\n lastSearchObject.current = nextSearch;\n }\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.siegeSocialBaseSearch({ SiegeSocialSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n api\n .siegeSocialSearchSiegeSocialIds({\n SiegeSocialSearchDto: { ...lastSearchObject?.current, forceSkip: 0, forceTake: 0 }\n })\n .then(allIds => {\n if (allIds.length === selectedIDs.length) {\n setSelectedIDs([]);\n setNbReturnedIds(0);\n } else {\n setSelectedIDs(allIds);\n setNbReturnedIds(allIds.length);\n }\n setSelectAllLoading(false);\n });\n }, [api, selectedIDs.length]);\n\n const toggleSelection = React.useCallback(\n (item: SiegeSocialGridDto) => {\n if (!selectedIDs.includes(item.idsiegeSocial)) {\n setSelectedIDs(ids => [...ids, item.idsiegeSocial]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idsiegeSocial));\n }\n },\n [selectedIDs]\n );\n\n const sendEmail = React.useCallback(async () => {\n if (selectedIDs.length > 0) {\n const emails = await api.siegeSocialGetEmails({ request_body: selectedIDs });\n if (!emails) {\n showError(t(ETLCodes.NoSelectedSiegeSocialHasAnEmail));\n return;\n }\n const el = document.createElement(\"a\");\n el.setAttribute(\"href\", `mailto:?bcc=${emails}`);\n el.click();\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [api, selectedIDs, t]);\n\n const sendEmailToLieux = React.useCallback(async () => {\n if (selectedIDs.length > 0) {\n const emails = await api.siegeSocialGetLieuxFormationEmails({ request_body: selectedIDs });\n if (!emails) {\n showError(t(ETLCodes.NoSelectedLieuxFormationHasAnEmail));\n return;\n }\n const el = document.createElement(\"a\");\n el.setAttribute(\"href\", `mailto:?bcc=${emails}`);\n el.click();\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [api, selectedIDs, t]);\n\n const sendSms = React.useCallback(() => {\n if (selectedIDs.length > 0) {\n pushSmsRecipientIds(selectedIDs);\n // pushSmsRecipientType(ETypeDestinataireSms.SiegeSocial); TODO:\n history.push(`${ERoutes.sms}/0/detail/edit`);\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [history, pushSmsRecipientIds, selectedIDs, t]);\n\n const sendSmsSingle = React.useCallback(\n (id: number) => {\n pushSmsRecipientIds([id]);\n // pushSmsRecipientType(ETypeDestinataireSms.SiegeSocial); TODO:\n history.push(`${ERoutes.sms}/0/detail/edit`);\n },\n [history, pushSmsRecipientIds]\n );\n\n const onAddSiegeSocial = React.useCallback(() => {\n history.push(`${ERoutes.siegeSocial}/-1/detail/edit`);\n }, [history]);\n\n const createSuivi = React.useCallback(\n (idsiegeSocial?: number) => {\n history.push(`${ERoutes.siegeSocial}/${idsiegeSocial}/suivi/edit/-1`);\n },\n [history]\n );\n\n const columns = React.useMemo(\n () => [\n {\n autoFitContent: true,\n computed: true,\n fieldName: \"_toggle\",\n render: (item: SiegeSocialGridDto, _, { subPanelOpened, toggleSubPanel }) =>\n item.hasLieuxFormations && (\n toggleSubPanel()}\n minimal\n >\n )\n },\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\n ),\n render: (item: SiegeSocialGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: SiegeSocialGridDto) => (\n \n history.push(`${ERoutes.siegeSocial}/${row.idsiegeSocial}/detail/view`)}\n />\n history.push(`${ERoutes.siegeSocial}/${row.idsiegeSocial}/detail/edit`)}\n />\n \n \n {\n e.stopPropagation();\n onAddSiegeSocial();\n }}\n text={t(ETLCodes.AddSiegeSocial)}\n intent={Intent.PRIMARY}\n />\n \n ),\n [onAddSiegeSocial, sendEmail, sendEmailToLieux, sendSms, t]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n css`\n & * {\n color: ${!row.actif ? Colors.RED3 + \" !important\" : null};\n }\n `}\n keyFieldName=\"idsiegeSocial\"\n onOpenSubComponent={(item: SiegeSocialGridDto) => }\n />\n );\n};\n","import {\n Button,\n Card,\n Checkbox,\n Colors,\n Icon,\n Intent,\n Menu,\n MenuItem,\n Popover,\n Spinner,\n Tooltip\n} from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n ButtonContainer,\n DataTable,\n FieldSet,\n IDataTableColumn,\n showError,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled, { css } from \"styled-components\";\n\nimport {\n LieuFormationApi,\n LieuFormationGridDto,\n LieuFormationSearchDto,\n SiegeSocialApi,\n SiegeSocialGridDto\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n AddButton,\n CircleColumn,\n CustomBulletList,\n EditButton,\n EmailButton,\n SmsButton,\n ViewButton\n} from \"../../../../components\";\nimport { useRouteParamsContext } from \"../../../../contexts\";\nimport { useApiService, useTheme, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport interface ILieuFormationGridProps {\n siegeSocial: SiegeSocialGridDto;\n}\n\nexport const LieuFormationGrid: React.FunctionComponent = ({ siegeSocial }) => {\n const { t } = useTl();\n const history = useHistory();\n const { theme } = useTheme();\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n const { pushSmsRecipientIds, pushSmsRecipientType } = useRouteParamsContext();\n const lastSearchObject = React.useRef();\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const siegeSocialId = React.useMemo(() => +siegeSocial.idsiegeSocial, [siegeSocial.idsiegeSocial]);\n const api = useApiService(LieuFormationApi);\n const sApi = useApiService(SiegeSocialApi);\n\n const searchFunction = React.useCallback(\n (sObj?: LieuFormationSearchDto) => {\n sObj.idsiegeSocial = siegeSocialId;\n if (JSON.stringify(sObj) !== JSON.stringify(lastSearchObject?.current)) {\n lastSearchObject.current = sObj;\n }\n return api.lieuFormationBaseSearch({ LieuFormationSearchDto: sObj });\n },\n [api, siegeSocialId]\n );\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onViewClick = React.useCallback(\n (dto: LieuFormationGridDto) => {\n history.push(`${ERoutes.lieuFormation}/${dto.idlieuFormation}/detail/view?idsiegeSocial=${dto.idsiegeSocial}`);\n },\n [history]\n );\n\n const onEditClick = React.useCallback(\n (dto: LieuFormationGridDto) => {\n history.push(`${ERoutes.lieuFormation}/${dto.idlieuFormation}/detail/edit?idsiegeSocial=${dto.idsiegeSocial}`);\n },\n [history]\n );\n\n const sendSms = React.useCallback(() => {\n if (selectedIDs.length > 0) {\n pushSmsRecipientIds(selectedIDs);\n // pushSmsRecipientType(ETypeDestinataireSms.SiegeSocial); TODO:\n history.push(`${ERoutes.sms}/0/detail/edit`);\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [history, pushSmsRecipientIds, selectedIDs, t]);\n\n const sendSmsSingle = React.useCallback(\n (id: number) => {\n // pushSmsRecipientIds([id]);\n // pushSmsRecipientType(ETypeDestinataireSms.SiegeSocial); TODO:\n history.push(`${ERoutes.sms}/0/detail/edit`);\n },\n [history]\n );\n\n const createSuivi = React.useCallback(\n (dto: LieuFormationGridDto) => {\n history.push(`${ERoutes.lieuFormation}/${dto.idlieuFormation}/suivi/edit/-1?idsiegeSocial=${dto.idsiegeSocial}`);\n },\n [history]\n );\n\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n api\n .lieuFormationSearchLieuFormationIds({\n LieuFormationSearchDto: { ...lastSearchObject?.current, forceSkip: 0, forceTake: 999999 }\n })\n .then(allIds => {\n if (allIds.length === selectedIDs.length) {\n setSelectedIDs([]);\n setNbReturnedIds(0);\n } else {\n setSelectedIDs(allIds);\n setNbReturnedIds(allIds.length);\n }\n setSelectAllLoading(false);\n });\n }, [api, selectedIDs.length]);\n\n const toggleSelection = React.useCallback(\n (item: LieuFormationGridDto) => {\n if (!selectedIDs.includes(item.idlieuFormation)) {\n setSelectedIDs(ids => [...ids, item.idlieuFormation]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idlieuFormation));\n }\n },\n [selectedIDs]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\n ),\n render: (item: LieuFormationGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: LieuFormationGridDto) => (\n \n onViewClick(row)} />\n onEditClick(row)} />\n \n \n {\n if (!siegeSocial.actif) {\n showError(t(ETLCodes.CannotAddLieuToSiegeSocialInactif));\n return;\n }\n onAddLieuFormation(siegeSocial.idsiegeSocial);\n }}\n />\n \n ),\n [onAddLieuFormation, sendEmail, sendSms, siegeSocial.actif, siegeSocial.idsiegeSocial, t]\n );\n\n return (\n \n
\n }\n customizeRowStyle={(row: LieuFormationGridDto) => css`\n & * {\n color: ${!row.actif ? Colors.RED3 + \" !important\" : null};\n }\n `}\n />\n
\n
\n );\n};\n","import { FormikProps } from \"formik\";\nimport isEqual from \"lodash/isEqual\";\nimport { FGMaskInput, FGTextAreaInput, FGTextInput, FieldGroup, IFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport {\n ContactApi,\n ContactSiegeDoublonSearch,\n ContactSiegeEditDto,\n ContactSiegeEditDtoFromJSON,\n ReferentialApi\n} from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n FGWalterSuggestTextInput,\n NationaliteSelect,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport FGCopyTextInput from \"../../../../../../components/formGenerator/FGCopyTextInput\";\nimport { useBeIdCardContext, useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTheme, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { belgianIdValidate } from \"../../../../../../utils/belgianIdValidate\";\nimport { phoneRegex } from \"../../../../../../utils/phoneRegex\";\nimport pick from \"lodash/pick\";\n\nexport interface ISiegeSocialContactProps {\n baseData: ContactSiegeDoublonSearch;\n}\n\nexport const SiegeSocialContact: React.FunctionComponent = ({ baseData }) => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ContactApi);\n const refApi = useApiService(ReferentialApi);\n const formikRef = React.useRef>();\n const { theme } = useTheme();\n\n const { id, state, subId: idcontactSiege } = useParams<{ id: string; state: string; subId: string }>();\n const { card } = useBeIdCardContext();\n const [cardDataDifferent, setCardDataDifferent] = React.useState(false);\n const { showDialogPromise } = useDialog();\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n let newData = {};\n if (baseData) {\n newData = { ...baseData };\n }\n if (card) {\n newData = {\n ...newData,\n nom: card?.surname.toUpperCase(),\n prenom: card?.firstName,\n dateNaissance: card?.dateOfBirthParsed,\n registreNational: card?.nationalNumber\n };\n }\n return +idcontactSiege <= 0\n ? ContactSiegeEditDtoFromJSON({\n ...newData,\n idcontactSiege: 0,\n idsiegeSocial: +id,\n actif: true\n })\n : api.contactGetContactSiege({ idcontactSiege: +idcontactSiege });\n },\n saveApiFn: async (d: ContactSiegeEditDto) => {\n return api.contactSaveContactSiege({ ContactSiegeEditDto: d });\n },\n deleteApiFn: async (d: ContactSiegeEditDto) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n if (result === \"yes\") {\n api.contactDeleteContactSiege({ idcontactSiege: d.idcontactSiege });\n }\n },\n onDeletedRoute: () => `${ERoutes.siegeSocial}/${+id}${ERoutes.contacts}/${state}`,\n onSavedRoute: d => `${ERoutes.siegeSocial}/${+id}${ERoutes.contacts}/${state}`\n }),\n [api, baseData, card, id, idcontactSiege, showDialogPromise, state, t]\n )\n );\n\n const idpersonne = React.useMemo(() => data?.idpersonne ?? 0, [data?.idpersonne]);\n const [personneTelephones, personneTelephonesLoading] = useReferential(\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n const [personneGsms, personneGsmsLoading] = useReferential(a => a.referentialGetGsmsPersonne({ idpersonne }), false, [\n idpersonne\n ]);\n\n const [personneEmails, personneEmailsLoading] = useReferential(\n a => a.referentialGetEmailsPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n\n const fetchExistingFunction = React.useCallback(() => {\n return refApi.referentialGetFonctionsContacts();\n }, [refApi]);\n const { data: existingFonctions, isFetching: efLoading } = useQuery(\"existing-functions\", fetchExistingFunction, {\n cacheTime: 0\n });\n\n const askDataDifferent = React.useCallback(async () => {\n const result = await showDialogPromise({\n message: t(ETLCodes.TuteurLieuIdCardIsDifferent)\n });\n if (result === \"yes\") {\n setCardDataDifferent(true);\n }\n }, [showDialogPromise, t]);\n\n React.useEffect(() => {\n if (data && card) {\n const cardObj = ContactSiegeEditDtoFromJSON({\n nom: card?.surname.toUpperCase(),\n prenom: card?.firstName,\n dateNaissance: card?.dateOfBirthParsed,\n registreNational: card?.nationalNumber\n });\n\n const propsToPick = [\"nom\", \"prenom\", \"dateNaissance\", \"registreNational\"];\n const cardBirthdate = new Date(card.dateOfBirthParsed);\n const cardBirthdateString = `${cardBirthdate.getDate()}/${cardBirthdate.getMonth() +\n 1}/${cardBirthdate.getFullYear()}`;\n const dataBirthdateString = `${data.dateNaissance.getDate()}/${data.dateNaissance.getMonth() +\n 1}/${data.dateNaissance.getFullYear()}`;\n if (\n +idcontactSiege > 0 &&\n (!isEqual(pick(cardObj, propsToPick), pick(data, propsToPick)) || cardBirthdateString !== dataBirthdateString)\n ) {\n askDataDifferent();\n }\n }\n }, [askDataDifferent, card, data, idcontactSiege]);\n\n React.useEffect(() => {\n if (cardDataDifferent) {\n setCardDataDifferent(false);\n formikRef?.current?.setValues(\n ContactSiegeEditDtoFromJSON({\n ...data,\n nom: card?.surname.toUpperCase() ?? data.nom,\n prenom: card?.firstName ?? data.prenom,\n dateNaissance: card?.dateOfBirthParsed ?? data.dateNaissance,\n registreNational: card?.nationalNumber ?? data.registreNational\n }),\n true\n );\n }\n }, [card?.dateOfBirthParsed, card?.firstName, card?.nationalNumber, card?.surname, cardDataDifferent, data]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n nom: Yup.string().required(t(ETLCodes.Required)),\n prenom: Yup.string().required(t(ETLCodes.Required)),\n dateNaissance: Yup.date().nullable(),\n nationalite: Yup.string().required(t(ETLCodes.Required)),\n registreNational: Yup.string()\n .nullable()\n .test(\"registre-checksum\", t(ETLCodes.NotValid), function(value) {\n if (!value || value === \"\") return true;\n\n var millenial = false;\n if (this.parent.dateNaissance) {\n const parsedDateNaissance = new Date(this.parent.dateNaissance);\n if (parsedDateNaissance.getFullYear() > 1999) {\n millenial = true;\n }\n }\n\n return belgianIdValidate(value, millenial);\n }),\n numeroIdentification: Yup.string().nullable(),\n telephone: Yup.object().shape({\n idtelephone: Yup.number()\n .nullable()\n .test(\"telid-required\", t(ETLCodes.AtLeastOneContactField), function(value, context: any) {\n if ((!this.parent.idcontactSiege || this.parent.idcontactSiege <= 0) && !context.from[1].value.idpersonne)\n return true;\n return !!value || !!context.from[1].value.gsm?.idtelephone || !!context.from[1].value.email?.idemail;\n }),\n numero: Yup.string()\n .nullable()\n .test(\"tel-required\", t(ETLCodes.AtLeastOneContactField), function(value, context: any) {\n if (this.parent.idcontactSiege > 0 || !!context.from[1].value.idpersonne) return true;\n return !!value || !!context.from[1].value.gsm?.numero || !!context.from[1].value.email?.adresseEmail;\n })\n .test(\"tel-valid\", t(ETLCodes.ErrorPhoneRegex), function(value, context: any) {\n if (this.parent.idcontactSiege > 0 || !value || !!context.from[1].value.idpersonne) return true;\n const numero = value as string;\n return !!numero.match(phoneRegex);\n })\n }),\n gsm: Yup.object().shape({\n idtelephone: Yup.number()\n .nullable()\n .test(\"gsmid-required\", t(ETLCodes.AtLeastOneContactField), function(value, context: any) {\n if ((!this.parent.idcontactSiege || this.parent.idcontactSiege <= 0) && !context.from[1].value.idpersonne)\n return true;\n return !!value || !!context.from[1].value.telephone?.idtelephone || !!context.from[1].value.email?.idemail;\n }),\n numero: Yup.string()\n .nullable()\n .test(\"gsm-required\", t(ETLCodes.AtLeastOneContactField), function(value, context: any) {\n if (this.parent.idcontactSiege > 0 || !!context.from[1].value.idpersonne) return true;\n return !!value || !!context.from[1].value.telephone?.numero || !!context.from[1].value.email?.adresseEmail;\n })\n .test(\"gsm-valid\", t(ETLCodes.ErrorPhoneRegex), function(value, context: any) {\n if (this.parent.idcontactSiege > 0 || !value || !!context.from[1].value.idpersonne) return true;\n const numero = value as string;\n return !!numero.match(phoneRegex);\n })\n }),\n email: Yup.object().shape({\n idemail: Yup.number()\n .nullable()\n .test(\"emailid-required\", t(ETLCodes.AtLeastOneContactField), function(value, context: any) {\n if ((!this.parent.idcontactSiege || this.parent.idcontactSiege <= 0) && !context.from[1].value.idpersonne)\n return true;\n return (\n !!value || !!context.from[1].value.telephone?.idtelephone || !!context.from[1].value.gsm?.idtelephone\n );\n }),\n adresseEmail: Yup.string()\n .nullable()\n .email(t(ETLCodes.InvalidEmail))\n .test(\"gsm-required\", t(ETLCodes.AtLeastOneContactField), function(value, context: any) {\n if (this.parent.idcontactSiege > 0 || !!context.from[1].value.idpersonne) return true;\n return !!value || !!context.from[1].value.telephone?.numero || !!context.from[1].value.gsm?.numero;\n })\n })\n });\n }, [t]);\n\n const isFullCreation = React.useMemo(() => +idcontactSiege <= 0 && !data?.idpersonne, [\n data?.idpersonne,\n idcontactSiege\n ]);\n\n const isRegNatDateNaiss = React.useCallback((ctx: IFGContext) => {\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\").replace(\"-\", \"\");\n if (ctx.formik.values.dateNaissance && ctx.formik.values.nationalite === \"BE\") {\n const parsedDateNaissance = new Date(ctx.formik.values.dateNaissance);\n if (parsedDateNaissance && value) {\n const year = value.slice(0, 2);\n const month = value.slice(2, 4);\n const day = value.slice(4, 6);\n if (\n +year !==\n +parsedDateNaissance\n .getFullYear()\n .toString()\n .substr(2, 2)\n ) {\n return false;\n }\n if (+month !== 0 && +month !== parsedDateNaissance.getMonth() + 1) {\n return false;\n }\n if (+day !== 0 && +day !== parsedDateNaissance.getDate()) {\n return false;\n }\n return true;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }, []);\n\n const isRegNatGenre = React.useCallback((ctx: IFGContext) => {\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\")?.replace(\"-\", \"\");\n if (value && ctx.formik.values.codesexe !== \"X\" && ctx.formik.values.nationalite === \"BE\") {\n const code = +value.slice(7, 9) % 2 === 0 ? \"F\" : \"H\";\n return ctx.formik.values.codesexe === code;\n }\n return true;\n }, []);\n\n const [sexe, sLoading] = useReferential(a => a.referentialGetSexe());\n\n return (\n history.push(`${ERoutes.siegeSocial}/${id}${ERoutes.contacts}/${state}`)}\n saving={saving}\n formikInnerRef={i => (formikRef.current = i)}\n validationErrors={validationErrors}\n onDelete={deleteItem}\n deleting={deleting}\n showDeleteButton={+idcontactSiege > 0}\n forceEnableSave={Object.values(baseData).some(el => !!el)}\n >\n \n \n \n \n \n \n \n (\n <>\n {isRegNatDateNaiss(ctx) ? null : (\n {t(ETLCodes.DateDeNaissanceNeCorrespondPas)}\n )}\n {isRegNatGenre(ctx) ? null : (\n {t(ETLCodes.GenreNeCorrespondPas)}\n )}\n \n )}\n />\n !!ctx.formik?.values?.nationalite && ctx.formik?.values?.nationalite !== \"BE\"}\n />\n {isFullCreation ? (\n \n ) : (\n \n )}\n {isFullCreation ? (\n \n ) : (\n \n )}\n {isFullCreation ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n useGridState,\n useSearchApi,\n ButtonContainer,\n FieldSet,\n showError,\n FieldGroup,\n FGTextInput,\n FGMaskInput,\n FGCustomPanel,\n InlineButtonContainer,\n ButtonsBloc,\n DataTable\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\n\nimport {\n ContactApi,\n ContactSiegeDoublonGridDto,\n ContactSiegeDoublonSearch,\n ContactSiegeDoublonSearchFromJSON\n} from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n ViewButton,\n EditButton,\n AddButton,\n UnordoredListColumn,\n SmallFormGenerator,\n FGWalterSelectInput,\n FGWalterDateMaskInput,\n CancelButton\n} from \"../../../../../../components\";\nimport { useBeIdCardContext, useDialog } from \"../../../../../../contexts\";\nimport { useTl, useApiService } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface ISiegeSocialContactDoublonsProps {\n setBaseData: (sObj: ContactSiegeDoublonSearch) => void;\n}\n\nexport const SiegeSocialContactDoublons: React.FunctionComponent = ({\n setBaseData\n}) => {\n const { t } = useTl();\n const dialogContext = useDialog();\n const history = useHistory();\n const [nationalites, nLoading] = useReferential(a => a.referentialGetAllNationalite(), false, []);\n const api = useApiService(ContactApi);\n const { id } = useParams<{ id: string }>();\n const { search: searchQ } = useLocation();\n const { foundRowsData } = useBeIdCardContext();\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [10],\n pageSize: 10,\n sortKeys: { nom: \"ASC\" }\n });\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ContactSiegeDoublonSearch) => {\n sObj.idsiegeSocial = +id;\n return api.contactSearchDoublonsSiege({ ContactSiegeDoublonSearch: sObj });\n },\n [api, id]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n const add = React.useCallback(() => {\n if (totalCount && totalCount > 0) {\n dialogContext.showDialog({\n message: t(ETLCodes.AddConfirmMessage),\n onConfirmed: async () => {\n history.push(`${ERoutes.siegeSocial}/${id}/contacts/edit/-1${searchQ}`);\n }\n });\n } else {\n history.push(`${ERoutes.siegeSocial}/${id}/contacts/edit/-1${searchQ}`);\n }\n }, [dialogContext, history, id, searchQ, t, totalCount]);\n\n const initialData = React.useMemo(() => {\n const onlyRegNatNb =\n !foundRowsData ||\n (!foundRowsData.nom && !foundRowsData.prenom && !foundRowsData.dateNaissance && foundRowsData.nationalNb);\n return ContactSiegeDoublonSearchFromJSON({\n nom: foundRowsData?.nom,\n prenom: foundRowsData?.prenom,\n registreNational: onlyRegNatNb ? foundRowsData?.nationalNb : undefined,\n dateNaissance: foundRowsData?.dateNaissance\n });\n }, [foundRowsData]);\n\n React.useEffect(() => {\n if (foundRowsData) {\n search(initialData);\n }\n }, [foundRowsData, initialData, search]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ContactSiegeDoublonGridDto) => (\n \n {row.isContact && !!row.idcontactSiege ? (\n <>\n history.push(`${ERoutes.siegeSocial}/${id}/contacts/view/${row.idcontactSiege}`)}\n />\n history.push(`${ERoutes.siegeSocial}/${id}/contacts/edit/${row.idcontactSiege}`)}\n />\n \n ) : (\n {\n setBaseData({ ...row });\n add();\n }}\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.NumeroNational),\n fieldName: \"registreNational\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\"\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Nationalite),\n fieldName: \"nationalite\"\n }\n // {\n // header: () => t(ETLCodes.Forme),\n // fieldName: \"forme\",\n // render: (row: ContactSiegeDoublonGridDto) => (\n // \n // )\n // }\n ],\n [add, history, id, setBaseData, t]\n );\n\n const [firstSearch, setFirstSearch] = React.useState(false);\n\n return (\n
\n {\n if ((c.nom && c.prenom) || c.registreNational) {\n search(c);\n setFirstSearch(true);\n } else {\n showError(t(ETLCodes.NoCriteriaFilled));\n }\n }}\n editMode\n hideButtons={true}\n onCancel={() => history.push(`${ERoutes.siegeSocial}/${id}/contacts`)}\n >\n \n \n \n \n \n \n \n \n \n {ctx => (\n \n \n \n history.push(`${ERoutes.siegeSocial}/${id}/contacts`)} />\n
\n );\n};\n","import { Colors, Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport { ContactApi, ContactSiegeGridDto, ContactSiegeSearch } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface ISiegeSocialContactListPageProps { }\n\nexport const SiegeSocialContactListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const SiegeSocialId = React.useMemo(() => +id, [id]);\n const api = useApiService(ContactApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ContactSiegeSearch) => {\n sObj.idsiegeSocial = SiegeSocialId;\n return api.contactSearchContactSiege({ ContactSiegeSearch: sObj });\n },\n [api, SiegeSocialId]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onViewClick = React.useCallback(\n (dto: ContactSiegeGridDto) => {\n history.push(`${ERoutes.siegeSocial}/${id}${ERoutes.contacts}/view/${dto.idcontactSiege}`);\n },\n [history, id]\n );\n\n const onEditClick = React.useCallback(\n (dto: ContactSiegeGridDto) => {\n history.push(`${ERoutes.siegeSocial}/${id}${ERoutes.contacts}/edit/${dto.idcontactSiege}`);\n },\n [history, id]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ContactSiegeGridDto) => (\n \n onViewClick(row)} />\n onEditClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.Fonction),\n fieldName: \"fonction\"\n },\n {\n header: () => t(ETLCodes.GsmPro),\n fieldName: \"gsm\"\n },\n {\n header: () => t(ETLCodes.TelephonePro),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.EmailPro),\n fieldName: \"email\"\n }\n ],\n [onEditClick, onViewClick, t]\n );\n\n const onAddClick = React.useCallback(() => {\n history.push(`${ERoutes.siegeSocial}/${id}${ERoutes.contacts}/checkDoublons`);\n }, [history, id]);\n\n return (\n }\n >\n css`\n & * {\n color: ${row.principal ? Colors.GREEN3 + \" !important\" : null};\n }\n `}\n />\n \n );\n};\n","import * as React from \"react\";\nimport { matchPath, useLocation, useParams } from \"react-router-dom\";\n\nimport { SiegeSocialContact, SiegeSocialContactDoublons, SiegeSocialContactListPage } from \".\";\nimport { ContactSiegeDoublonSearchFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\n\nexport interface ISiegeSocialContactSwitchProps { }\n\nexport const SiegeSocialContactSwitch: React.FunctionComponent = props => {\n const [sObj, setSObj] = React.useState(ContactSiegeDoublonSearchFromJSON({}));\n const { pathname } = useLocation();\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n if (\n matchPath(pathname, {\n path: `${ERoutes.siegeSocial}/${id}${ERoutes.contacts}/:state/:subId`\n })\n ) {\n return ;\n } else if (\n matchPath(pathname, {\n path: `${ERoutes.siegeSocial}/${id}${ERoutes.contacts}/checkDoublons`\n })\n ) {\n return ;\n } else {\n return ;\n }\n};\n","import { ButtonContainer, IDataTableColumn, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport { SiegeSocialDocumentEditDialog, SiegeSocialDocumentUploadDialog } from \".\";\nimport { SiegeSocialFichierApi, SiegeSocialFichierGridDto, SiegeSocialFichierSearchDto } from \"../../../../../api\";\nimport { DeleteButton, DownloadButton, EditButton, SearchTablePage } from \"../../../../../components\";\nimport { useDialog, useEventsContext } from \"../../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { exportFile } from \"../../../../../utils\";\n\nexport interface ISiegeSocialDocumentsProps {}\n\nexport const SiegeSocialDocuments: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(SiegeSocialFichierApi);\n const { id } = useParams<{ id: string }>();\n const [currentSiegeSocialFichierId, setCurrentSiegeSocialFichierId] = React.useState(null);\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { dispatchEvent } = useEventsContext();\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idsiegeSocialFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idsiegeSocialFichier);\n await api.siegeSocialFichierDeleteSiegeSocialFichier({ id: idsiegeSocialFichier });\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, dispatchEvent, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idsiegeSocialFichier: number) => {\n try {\n setRowLoading(idsiegeSocialFichier);\n const file = await api.siegeSocialFichierDownloadSiegeSocialFichier({ id: idsiegeSocialFichier });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: SiegeSocialFichierGridDto) => (\n \n setCurrentSiegeSocialFichierId(row.idsiegeSocialFichier)}\n loading={rowLoading === row.idsiegeSocialFichier}\n disabled={!!rowLoading && rowLoading !== row.idsiegeSocialFichier}\n />\n downloadFichier(row.idsiegeSocialFichier)}\n loading={rowLoading === row.idsiegeSocialFichier}\n disabled={!!rowLoading && rowLoading !== row.idsiegeSocialFichier}\n />\n deleteFichier(row.idsiegeSocialFichier)}\n loading={rowLoading === row.idsiegeSocialFichier}\n disabled={!!rowLoading && rowLoading !== row.idsiegeSocialFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeSiegeSocialFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const getSearchCriterias = React.useCallback(\n () => api.siegeSocialFichierGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(SiegeSocialFichierApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: SiegeSocialFichierSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.siegeSocialFichierBaseSearch({\n SiegeSocialFichierSearchDto: { ...nextSearch, idsiegeSocial: +id }\n });\n },\n [apiFactory, id]\n );\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentSiegeSocialFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }\n },\n [dispatchEvent]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n \n {uploadDialoOpen && (\n \n )}\n {!!currentSiegeSocialFichierId && (\n \n )}\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n SiegeSocialFichierApi,\n SiegeSocialFichierUploadDto,\n SiegeSocialFichierUploadDtoFromJSON\n} from \"../../../../../api\";\nimport { FGWalterFileInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ISiegeSocialDocumentUploadDialogProps {\n idsiegeSocial: number;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const SiegeSocialDocumentUploadDialog: React.FunctionComponent = ({\n idsiegeSocial,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(SiegeSocialFichierApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return SiegeSocialFichierUploadDtoFromJSON({ idsiegeSocial });\n },\n saveApiFn: async (d: SiegeSocialFichierUploadDto) => {\n return api.siegeSocialFichierUploadSiegeSocialFichier({ SiegeSocialFichierUploadDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idsiegeSocial, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeSiegeSocialFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n file: Yup.object()\n .nullable()\n .shape({\n fileName: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n contentB64: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typesSiegeSocialFichier, tLoading] = useReferential(a => a.referentialGetTypesSiegeSocialFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { SiegeSocialFichierApi, SiegeSocialFichierDto } from \"../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ISiegeSocialDocumentEditDialogProps {\n idsiegeSocialFichier: number;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const SiegeSocialDocumentEditDialog: React.FunctionComponent = ({\n idsiegeSocialFichier,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(SiegeSocialFichierApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.siegeSocialFichierGetSiegeSocialFichier({ id: idsiegeSocialFichier });\n },\n saveApiFn: async (d: SiegeSocialFichierDto) => {\n return api.siegeSocialFichierSaveSiegeSocialFichier({ SiegeSocialFichierDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idsiegeSocialFichier, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idtypeSiegeSocialFichier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [typesSiegeSocialFichier, tLoading] = useReferential(a => a.referentialGetTypesSiegeSocialFichier());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Tab, Tag } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport {\n LieuxFormationListPage,\n SiegeSocialAssuranceList,\n SiegeSocialChefEntrepriseSwitch,\n SiegeSocialHistory,\n SiegeSocialSignaletique,\n SiegeSocialSuiviSwitch\n} from \".\";\nimport { SiegeSocialApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useEventsContext } from \"../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { SiegeSocialContactSwitch } from \"./contacts/SiegeSocialContactSwitch\";\nimport { SiegeSocialDocuments } from \"./documents\";\n\nconst TabTitleContainer = styled.div`\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: 5px;\n }\n`;\n\nexport interface ISiegeSocialItemPageProps {}\n\nexport const SiegeSocialItemPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const idSiegeSocial = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const siegeSocialApi = useApiService(SiegeSocialApi);\n\n const fetchDisplayName = React.useCallback(() => {\n return siegeSocialApi.siegeSocialGetDisplayName({ id: +id });\n }, [id, siegeSocialApi]);\n const { data: displayName } = useQuery([\"siege-social-display-name\", id], fetchDisplayName);\n const onTabChange = React.useCallback(\n newTabId => {\n history.push(`${ERoutes.siegeSocial}/${id}/${newTabId}/${state !== \"checkDoublons\" ? state : \"view\"}`);\n },\n [history, id, state]\n );\n\n const fetchNbChefsEntreprise = React.useCallback(() => {\n return siegeSocialApi.siegeSocialGetChefsEntrepriseCount({ idsiegeSocial: idSiegeSocial });\n }, [idSiegeSocial, siegeSocialApi]);\n const { data: nbChefsEntreprise, isFetching: nbChefsEntrepriseLoading, refetch: refetchNbChefsEntreprise } = useQuery(\n [\"nb-chefs-entreprise\", idSiegeSocial],\n fetchNbChefsEntreprise\n );\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n React.useEffect(() => {\n subscribeToEvent(\"REFRESH_NB_TABS\", refetchNbChefsEntreprise);\n return () => unsubscribeEvent(\"REFRESH_NB_TABS\", refetchNbChefsEntreprise);\n }, [refetchNbChefsEntreprise, subscribeToEvent, unsubscribeEvent]);\n\n return (\n 0 ? displayName : t(ETLCodes.New) }\n ]}\n >\n \n \n } />\n \n {t(ETLCodes.ChefsEntreprise)}\n {!nbChefsEntrepriseLoading && (\n \n {nbChefsEntreprise}\n \n )}\n \n }\n panel={}\n disabled={idSiegeSocial <= 0}\n />\n }\n disabled={idSiegeSocial <= 0}\n />\n }\n disabled={idSiegeSocial <= 0}\n />\n } disabled={idSiegeSocial <= 0} />\n } disabled={idSiegeSocial <= 0} />\n }\n disabled={idSiegeSocial <= 0}\n />\n }\n disabled={idSiegeSocial <= 0}\n />\n \n \n );\n};\n","export function bceNumberValidate(bce: string) {\n //if (!id) return true;\n // id = id.replace(\".\", \"\");\n // id = id.replace(\"BE\", \"\");\n //if (id.length < 10) return false;\n try {\n let numberToValidate = bce.slice(0, 8);\n const validator = bce.slice(8);\n return 97 - (+numberToValidate % 97) === +validator;\n } catch (Error) {\n return false;\n }\n}\n","import { Callout, Classes, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport IBAN from \"iban\";\nimport {\n FGCustomInput,\n FGCustomPanel,\n FGIBANNumberInput,\n FGMaskInput,\n FGMultiSuggestInput,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n useFGFormik,\n usePrevious\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n CodePostalApi,\n FormateurApi,\n SiegeSocialApi,\n SiegeSocialEditDto,\n SiegeSocialEditDtoFromJSON\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n ChefEntrepriseSelectorField,\n CommuneSelect,\n FGWalterCheckboxInput,\n FGWalterSelectInput,\n LocaliteSelect,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useDialog, useEventsContext } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTabMessage, useTheme, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { bceNumberValidate } from \"../../../../../utils/bceNumberValidate\";\n\nconst StatusContainer = styled.div<{ color: string }>`\n color: ${props => props.color};\n font-weight: bold;\n height: 30px;\n display: flex;\n align-items: center;\n`;\n\nconst StyledRadioGroup = styled(RadioGroup)`\n & .contact-select {\n display: flex;\n align-items: center;\n & .${Classes.LABEL} {\n min-width: auto;\n font-weight: normal;\n }\n }\n`;\n\nexport interface ISiegeSocialSignaletiqueProps {}\n\nexport const SiegeSocialSignaletique: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(SiegeSocialApi);\n const codePostalApi = useApiService(CodePostalApi);\n const { theme } = useTheme();\n const history = useHistory();\n const { id, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const { dispatchEvent } = useEventsContext();\n const { search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { sendMessage } = useTabMessage(cfs);\n const fieldNameToReturn = React.useMemo(() => new URLSearchParams(search).get(\"fieldName\"), [search]);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n +id <= 0\n ? SiegeSocialEditDtoFromJSON({\n idsiegeSocial: 0,\n actif: true,\n isContactCE: true,\n hasNoAssurances: true\n })\n : api.siegeSocialGetSiegeSocial({ id: +id }),\n saveApiFn: d => api.siegeSocialSaveSiegeSocial({ SiegeSocialEditDto: d }),\n onSavedRoute: d => `${ERoutes.siegeSocial}/${d.idsiegeSocial}/detail/edit`,\n onSaved: d => {\n sendMessage(d[fieldNameToReturn], true);\n dispatchEvent(\"REFRESH_NB_TABS\");\n }\n }),\n [api, dispatchEvent, fieldNameToReturn, id, sendMessage]\n )\n );\n\n const { showDialogPromise } = useDialog();\n const save = React.useCallback(\n async (values: SiegeSocialEditDto) => {\n let result = \"yes\";\n if (data?.actif && !values.actif) {\n result = await showDialogPromise({\n message: t(ETLCodes.DesactiverSiegeSocialText),\n title: t(ETLCodes.EtesVousSureDesactiverSiegeSocial)\n });\n }\n\n if (!data?.actif && values.actif) {\n result = await showDialogPromise({\n message: t(ETLCodes.ReactiverSiegeSocialText),\n title: t(ETLCodes.ReactivationSiegeSocialTitle)\n });\n }\n\n if (result === \"yes\") {\n await saveItem(values);\n }\n },\n [data?.actif, saveItem, showDialogPromise, t]\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n denominationSociale: Yup.string().required(t(ETLCodes.Required)),\n idchefEntreprise: Yup.number().nullable(),\n numeroBce: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"bce-validity\", t(ETLCodes.InvalidBCE), async function(value) {\n return !value || bceNumberValidate(value.toString());\n }),\n iban: Yup.string()\n .nullable()\n .test(\"iban-valid\", t(ETLCodes.InvalidIban), async value => {\n if (!value || value.trim() === \"\") return true;\n return IBAN.isValid(value);\n }),\n idtypeEntreprise: Yup.number().required(t(ETLCodes.Required)),\n idtaille: Yup.number().required(t(ETLCodes.Required)),\n actif: Yup.bool().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const formik = useFGFormik({\n initialValues: data,\n onSubmit: save,\n validationSchema: FormSchema\n });\n const [previousIdchefEntreprise, setPreviousIdchefEntreprise] = React.useState(data?.idchefEntreprise);\n React.useEffect(() => {\n if (data?.idchefEntreprise) {\n setPreviousIdchefEntreprise(data?.idchefEntreprise);\n }\n }, [data?.idchefEntreprise]);\n\n const useChefEntrepriseHasContact = React.useMemo(() => data?.isContactCE, [data?.isContactCE]);\n\n const [typesEntreprise, loadingTypesEntreprise, , rawTypesEntreprise] = useReferential(\n a => a.referentialGetTypesEntreprise(),\n false,\n []\n );\n const [formesJuridiques, loadingFormesJuridiques] = useReferential(\n a => a.referentialGetFormesJuridiques(),\n false,\n []\n );\n const [tailles, loadingTailles] = useReferential(a => a.referentialGetTailles(), false, []);\n\n const [idpersonne, setIdpersonne] = React.useState(data?.idpersonne);\n React.useEffect(() => {\n if (data?.idpersonne) {\n setIdpersonne(data?.idpersonne);\n }\n }, [data?.idpersonne]);\n const [personneTelephones, personneTelephonesLoading] = useReferential(\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n const [personneGsms, personneGsmsLoading] = useReferential(a => a.referentialGetGsmsPersonne({ idpersonne }), false, [\n idpersonne\n ]);\n const [contacts, contactsLoading] = useReferential(\n a => a.referentialGetContactSiegeSocial({ idSiegeSocial: +id }),\n false,\n [idpersonne]\n );\n\n const [personneEmails, personneEmailsLoading] = useReferential(\n a => a.referentialGetEmailsPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n\n const [commissionsParitaires, cpLoading] = useReferential(\n a => a.referentialGetCommissionsParitaires({ idmetier: 0, idsiegeSocial: 0, currentId: 0 }),\n true,\n []\n );\n\n const fetchChefEntrepriseId = React.useCallback(async () => {\n if (!formik?.values?.idchefEntreprise || formik?.values?.idchefEntreprise === 0) return null;\n return await api.siegeSocialGetSelectedChefEntreprise({\n IdchefEntreprise: formik?.values?.idchefEntreprise,\n idsiegeSocial: +id\n });\n }, [api, id, formik?.values?.idchefEntreprise]);\n\n const { data: chefEntreprisePersonne } = useQuery(\n [\"chefEntreprise-for-select\", formik?.values?.idchefEntreprise, id],\n fetchChefEntrepriseId,\n { enabled: true }\n );\n React.useEffect(() => {\n if (\n formik?.values?.idchefEntreprise !== 0 &&\n formik?.values?.idchefEntreprise !== previousIdchefEntreprise &&\n !!chefEntreprisePersonne &&\n !loading\n ) {\n if (useChefEntrepriseHasContact) {\n formik?.setFieldValue(\"contact\", chefEntreprisePersonne?.nom + \" \" + chefEntreprisePersonne?.prenom ?? null);\n formik?.setFieldValue(\"contactGsm\", chefEntreprisePersonne?.gsm?.numero ?? null);\n formik?.setFieldValue(\"contactTel\", chefEntreprisePersonne?.telephone?.numero ?? null);\n }\n\n formik?.setFieldValue(\"gsm\", chefEntreprisePersonne?.gsm ?? null);\n formik?.setFieldValue(\"telephone\", chefEntreprisePersonne?.telephone ?? null);\n formik?.setFieldValue(\"email\", chefEntreprisePersonne?.email ?? null);\n formik?.setFieldValue(\"idpersonne\", chefEntreprisePersonne?.idpersonne ?? null);\n setIdpersonne(chefEntreprisePersonne?.idpersonne);\n setPreviousIdchefEntreprise(formik?.values?.idchefEntreprise);\n }\n }, [chefEntreprisePersonne, loading, formik, previousIdchefEntreprise, useChefEntrepriseHasContact]);\n\n const showFormeJuridique = React.useCallback(\n () => rawTypesEntreprise?.find(te => +te.idValue === +formik.values?.idtypeEntreprise)?.keyValue === \"MORALE\",\n [formik.values?.idtypeEntreprise, rawTypesEntreprise]\n );\n\n const [iban, setIban] = React.useState();\n const previousIban = usePrevious(formik?.values?.iban);\n React.useEffect(() => {\n if (formik?.values?.iban !== previousIban) {\n setIban(formik?.values?.iban);\n }\n }, [formik?.values?.iban, previousIban]);\n const formateurApi = useApiService(FormateurApi);\n const queryEnabled = React.useMemo(() => iban?.toUpperCase()?.startsWith(\"BE\") && iban?.length > 8, [iban]);\n const fetchBic = React.useCallback(async () => {\n if (queryEnabled) return formateurApi.formateurGetBicFromAccount({ account: iban });\n return \"\";\n }, [formateurApi, iban, queryEnabled]);\n\n const { data: bic, isFetching: bicLoading } = useQuery([\"bic-siege\", id, iban], fetchBic);\n\n React.useEffect(() => {\n if (!formik.touched.iban) return;\n if (!iban && !!formik.values.bic) {\n formik.setFieldValue(\"bic\", null);\n }\n }, [formik, iban]);\n\n const previousBic = usePrevious(bic);\n React.useEffect(() => {\n if (bic && previousBic !== bic) {\n formik?.setFieldValue(\"bic\", bic);\n }\n }, [bic, formik, previousBic]);\n\n const [pays, pLoading] = useReferential(a => a.referentialGetPays());\n\n const { data: codePostaux } = useQuery(\n [\"all-codes-postaux\"],\n React.useCallback(() => {\n return codePostalApi.codePostalGetAll();\n }, [codePostalApi])\n );\n\n const previousCodePostalText = usePrevious(formik?.values?.codePostalText);\n const previousLocalite = usePrevious(formik?.values?.localite);\n\n React.useEffect(() => {\n if (\n !formik?.values?.codePostalText ||\n formik?.values?.codePostalText === previousCodePostalText ||\n formik?.values?.codePostalText === data?.codePostalText\n ) {\n return;\n }\n\n formik.setFieldValue(\"idcodePostal\", null);\n formik.setFieldValue(\"localite\", null);\n formik.setFieldValue(\"commune\", null);\n }, [codePostaux, data?.codePostalText, formik, previousCodePostalText]);\n\n React.useEffect(() => {\n if (!formik?.values?.localite || formik?.values?.localite === previousLocalite || !codePostaux?.length) return;\n\n const cpList = codePostaux?.filter(cp => cp.codePostal === formik?.values?.codePostalText) ?? [];\n const foundIdCp =\n cpList.length === 1\n ? cpList[0].idcodePostal\n : !!formik?.values?.localite\n ? cpList.find(cp => cp.localite === formik?.values?.localite)?.idcodePostal\n : cpList.find(cp => cp.codePays === \"BE\")?.idcodePostal;\n if (+foundIdCp === +formik?.values?.idcodePostal) return;\n\n formik.setFieldValue(\"idcodePostal\", foundIdCp);\n }, [codePostaux, formik, previousCodePostalText, previousLocalite]);\n\n const fetchCp = React.useCallback(async () => {\n if (!formik?.values?.idcodePostal) return null;\n return await codePostalApi.codePostalGet({ id: formik.values.idcodePostal });\n }, [codePostalApi, formik]);\n const { data: cp } = useQuery([\"code-postal\", formik.values?.idcodePostal], fetchCp);\n\n React.useEffect(() => {\n if (!cp || formik?.values?.pays === cp.codePays || !!formik?.values?.pays) return;\n formik.setFieldValue(\"pays\", cp.codePays);\n }, [cp, formik]);\n\n React.useEffect(() => {\n if (!!formik?.values?.gsm && !formik?.values?.gsm.idtelephone) {\n formik.setFieldValue(\"gsm\", null);\n }\n }, [formik]);\n\n React.useEffect(() => {\n if (!!formik?.values?.telephone && !formik?.values?.telephone.idtelephone) {\n formik.setFieldValue(\"telephone\", null);\n }\n }, [formik]);\n\n React.useEffect(() => {\n if (!!formik?.values?.email && !formik?.values?.email.idemail) {\n formik.setFieldValue(\"email\", null);\n }\n }, [formik]);\n\n return (\n data && (\n history.push(ERoutes.siegeSocial)}\n showDeleteButton={+id > 0}\n saving={saving}\n minLabelWidth={250}\n validationErrors={validationErrors}\n >\n {formik?.values?.hasNoAssurances && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n {ctx => (\n {\n if (e.currentTarget.value === \"1\") {\n ctx.formik.setFieldValue(\"idcontactBeneficiaire\", null);\n } else {\n ctx.formik.setFieldValue(\"idcontactBeneficiaire\", -1);\n }\n }}\n >\n \n \n \n \n \n )}\n \n (\n \n {value ? t(ETLCodes.Actif) : t(ETLCodes.Inactif)}\n \n )}\n />\n \n \n \n {ctx => (\n <>\n \n \n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n {ctx => (\n <>\n \n \n \n )}\n \n \n \n \n \n \n \n \n )\n );\n};\n","import { Button, Colors, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ButtonContainer, IDataTableColumn, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport {\n EBooleanSearchTypes,\n LieuFormationApi,\n LieuFormationGridDto,\n LieuFormationSearchDto,\n SiegeSocialApi\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, EmailButton, SearchTablePage, SmsButton, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ILieuxFormationListPageProps {}\n\nexport const LieuxFormationListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const siegeSocialId = React.useMemo(() => +id, [id]);\n const api = useApiService(LieuFormationApi);\n const siegeSocialApi = useApiService(SiegeSocialApi);\n\n const apiFactory = useAbortableApiServiceFactory(LieuFormationApi);\n const lastAbortController = React.useRef();\n const searchFunction = React.useCallback(\n (sObj?: LieuFormationSearchDto) => {\n sObj.idsiegeSocial = siegeSocialId;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.lieuFormationBaseSearch({ LieuFormationSearchDto: sObj });\n },\n [apiFactory, siegeSocialId]\n );\n const onViewClick = React.useCallback(\n (dto: LieuFormationGridDto) => {\n history.push(`${ERoutes.lieuFormation}/${dto.idlieuFormation}/detail/view?idsiegeSocial=${dto.idsiegeSocial}`);\n },\n [history]\n );\n\n const onEditClick = React.useCallback(\n (dto: LieuFormationGridDto) => {\n history.push(`${ERoutes.lieuFormation}/${dto.idlieuFormation}/detail/edit?idsiegeSocial=${dto.idsiegeSocial}`);\n },\n [history]\n );\n\n const sendSmsSingle = React.useCallback(\n (id: number) => {\n // pushSmsRecipientIds([id]);\n // pushSmsRecipientType(ETypeDestinataireSms.SiegeSocial); TODO:\n history.push(`${ERoutes.sms}/0/detail/edit`);\n },\n [history]\n );\n\n const { data: isSiegeSocialActif } = useQuery([\"siege-social-actif\", siegeSocialId], () =>\n siegeSocialApi.siegeSocialIsActif({ id: siegeSocialId })\n );\n\n const createSuivi = React.useCallback(\n (dto: LieuFormationGridDto) => {\n history.push(`${ERoutes.lieuFormation}/${dto.idlieuFormation}/suivi/edit/-1?idsiegeSocial=${dto.idsiegeSocial}`);\n },\n [history]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: LieuFormationGridDto) => (\n \n onViewClick(row)} />\n onEditClick(row)} />\n \n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ContratGridDto) => (\n \n window.open(`#${ERoutes.contrat}/${row.idcontrat}/detail/${row.type}/view`)}\n />\n {isHope && hopeContratTypes.includes(row.type) ? (\n window.open(`#${ERoutes.contrat}/${row.idcontrat}/detail/${row.type}/edit`)}\n />\n ) : null}\n \n \n {isHope && hopeContratTypes.includes(row.type) ? (\n <>\n onRuptureClick(row.idcontrat)}\n disabled={[EStatutContrat.Rompu, EStatutContrat.SansSuite].includes(row.statut)}\n />\n onAddSuspensionClick(row.idcontrat)}\n disabled={[EStatutContrat.Rompu, EStatutContrat.SansSuite].includes(row.statut)}\n />\n {}}\n disabled\n />\n {!!idsrapportContrat?.[row.type] && (\n printContrat(row.idcontrat, row.type)}\n />\n )}\n \n ) : null}\n \n \n }\n >\n \n \n \n )\n },\n {\n header: () => t(ETLCodes.Apprenant),\n fieldName: \"apprenant\"\n },\n {\n computed: true,\n alignment: \"center\",\n autoFitContent: true,\n header: () => (\n \n {t(ETLCodes.Statut)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"statut\",\n render: (row: ContratGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Service),\n fieldName: \"serviceNom\"\n },\n {\n header: () => t(ETLCodes.NomMetier),\n fieldName: \"nomMetier\"\n },\n {\n header: () => t(ETLCodes.Tuteur),\n fieldName: \"tuteurPrincipal\"\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n },\n {\n header: () => t(ETLCodes.DateRupture),\n fieldName: \"rompuLe\"\n }\n ],\n [hopeContratTypes, idsrapportContrat, isHope, onAddSuspensionClick, onRuptureClick, printContrat, t, tUnsafe, theme]\n );\n\n const onClose = React.useCallback(\n (toSave: ContratSuspensionDto) => {\n if (!!toSave) {\n search();\n }\n setCurrentSuspension(null);\n },\n [search]\n );\n\n return (\n <>\n
\n (\n \n )}\n >\n
\n {!!currentSuspension && (\n \n )}\n {!!currentContratId && (\n 0}\n currentContratId={currentContratId}\n onClose={(refresh: boolean) => {\n setCurrentContratId(0);\n if (refresh) search();\n }}\n />\n )}\n \n );\n};\n","import { Card, Tooltip } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ContratApi, ContratAvenantGridDto, ContratAvenantSearchDto, ContratGridDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ILieuFormationAvenantsGridProps {\n contrat: ContratGridDto;\n}\n\nexport const LieuFormationAvenantsGrid: React.FunctionComponent = ({ contrat }) => {\n const { t } = useTl();\n const api = useApiService(ContratApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const searchFunction = React.useCallback(\n (sObj?: ContratAvenantSearchDto) => {\n sObj.idcontrat = contrat.idcontrat;\n sObj.showDeleted = false;\n return api.contratSearchAvenants({ ContratAvenantSearchDto: sObj });\n },\n [api, contrat.idcontrat]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onViewClick = React.useCallback(\n (dto: ContratAvenantGridDto) => {\n window.open(`#${ERoutes.contrat}/${contrat.idcontrat}/avenants/${contrat.type}/view/${dto.idavenant}`);\n },\n [contrat.idcontrat, contrat.type]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ContratAvenantGridDto) => (\n \n onViewClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Types),\n autoFitContent: true,\n computed: true,\n fieldName: \"types\",\n render: (row: ContratAvenantGridDto) => {\n if (row.types?.length > 0) {\n return (\n \n {row.types.length > 0 && row.types[0]}\n {row.types.length > 1 && (\n \n  \n \n {row.types.map((type, i) => (\n
{type}
\n ))}\n
\n }\n position=\"right\"\n >\n
...
\n \n \n )}\n \n );\n } else {\n return
;\n }\n }\n },\n {\n header: () => t(ETLCodes.Numero),\n fieldName: \"numero\"\n },\n {\n header: () => t(ETLCodes.DatePriseEnCours),\n fieldName: \"datePriseEnCours\"\n },\n {\n header: () => t(ETLCodes.DateSignature),\n fieldName: \"dateSignature\"\n },\n {\n header: () => t(ETLCodes.LieuSignature),\n fieldName: \"lieuSignature\"\n }\n ],\n [onViewClick, t]\n );\n\n const onAddAvenant = React.useCallback(\n (idcontrat?: number) => {\n window.open(`#${ERoutes.contrat}/${idcontrat}/avenants/${contrat.type}/view/-1`);\n },\n [contrat.type]\n );\n\n const buttons = React.useMemo(\n () => (\n {\n onAddAvenant(contrat.idcontrat);\n }}\n />\n ),\n [contrat.idcontrat, onAddAvenant, t]\n );\n\n return (\n \n
\n }\n loading={loading}\n />\n
\n
\n );\n};\n","import {\n Button,\n Checkbox,\n Colors,\n Icon,\n Intent,\n Menu,\n MenuItem,\n Popover,\n Spinner,\n SpinnerSize,\n Tooltip\n} from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { faHouseChimneyUser, faBalanceScale } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { ButtonContainer, IDataTableColumn, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\nimport styled, { css } from \"styled-components\";\n\nimport {\n LieuFormationAgremantDemandeSectorielleDialog,\n LieuFormationAgrementDecisionDialog,\n LieuFormationAgrementMultipleVisiteDialog,\n LieuFormationAgrementRetraitDialog,\n LieuFormationAgrementSuspensionDetailDialog\n} from \"..\";\nimport {\n EBooleanSearchTypes,\n LieuFormationAgrementApi,\n LieuFormationAgrementGridDto,\n LieuFormationAgrementSearchDto,\n LieuFormationAgrementSuspensionDto,\n LieuFormationAgrementSuspensionMultipleDtoFromJSON,\n LieuFormationApi\n} from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n AddButton,\n BooleanColumn,\n CircleColumn,\n CustomBulletList,\n EditButton,\n SearchTablePage,\n ViewButton\n} from \"../../../../../../components\";\nimport { useEventsContext } from \"../../../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTheme, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport interface ILieuFormationAgrementListProps {}\n\nexport const LieuFormationAgrementList: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { theme } = useTheme();\n const { push } = useHistory();\n const { id, state } = useParams<{ id: string; state: string }>();\n const lieuFormationId = React.useMemo(() => +id, [id]);\n const { search } = useLocation();\n const api = useApiService(LieuFormationAgrementApi);\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const [allSelected, setAllSelected] = React.useState(false);\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const lastSearchObject = React.useRef();\n const { dispatchEvent } = useEventsContext();\n\n const apiFactory = useAbortableApiServiceFactory(LieuFormationAgrementApi);\n const lastAbortController = React.useRef();\n const searchFunction = React.useCallback(\n (sObj?: LieuFormationAgrementSearchDto) => {\n sObj.idlieuFormation = lieuFormationId;\n if (JSON.stringify(sObj) !== JSON.stringify(lastSearchObject.current)) {\n lastSearchObject.current = sObj;\n }\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.lieuFormationAgrementBaseSearch({ LieuFormationAgrementSearchDto: sObj });\n },\n [apiFactory, lieuFormationId]\n );\n\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n api\n .lieuFormationAgrementSearchIds({\n LieuFormationAgrementSearchDto: { ...lastSearchObject.current, forceSkip: 0, forceTake: 999999 }\n })\n .then(allIds => {\n if (allIds.length === selectedIDs.length) {\n setAllSelected(false);\n setSelectedIDs([]);\n setNbReturnedIds(0);\n } else {\n setAllSelected(true);\n setSelectedIDs(allIds);\n setNbReturnedIds(allIds.length);\n }\n setSelectAllLoading(false);\n });\n }, [api, selectedIDs.length]);\n\n const toggleSelection = React.useCallback(\n (item: LieuFormationAgrementGridDto) => {\n if (!selectedIDs.includes(item.idlieuFormationAgrement)) {\n setSelectedIDs(ids => [...ids, item.idlieuFormationAgrement]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idlieuFormationAgrement));\n }\n },\n [selectedIDs]\n );\n\n const computeType = React.useCallback(\n (row: LieuFormationAgrementGridDto) => {\n if (row.agrementPartielA && row.agrementPartielB) return t(ETLCodes.PartielAB);\n if (row.agrementPartielA) return t(ETLCodes.PartielA);\n if (row.agrementPartielB) return t(ETLCodes.PartielB);\n return t(ETLCodes.Complet);\n },\n [t]\n );\n\n const onDuplicateClick = React.useCallback(\n (row: LieuFormationAgrementGridDto) => {\n push(\n `${ERoutes.lieuFormation}/${row.idlieuFormation}/agrements/edit/-1${search}&duplicateId=${row.idlieuFormationAgrement}`\n );\n },\n [push, search]\n );\n\n const lieuFormationApi = useApiService(LieuFormationApi);\n\n const [currentLieuFormationAgrementSuspension, setCurrentLieuFormationAgrementSuspension] = React.useState<\n LieuFormationAgrementSuspensionDto\n >(null);\n const onEditSuspension = React.useCallback(\n async (row: LieuFormationAgrementGridDto) => {\n const suspension = await api.lieuFormationAgrementGetSuspension({\n idlieuFormationAgrementSuspension: row.idEditableCurrentSuspension\n });\n setCurrentLieuFormationAgrementSuspension(suspension);\n setSuspensionDialogOpen(true);\n },\n [api]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\n ),\n render: (item: LieuFormationAgrementGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: LieuFormationAgrementGridDto) => (\n \n \n push(\n `${ERoutes.lieuFormation}/${row.idlieuFormation}/agrements/view/${row.idlieuFormationAgrement}${search}`\n )\n }\n />\n \n push(\n `${ERoutes.lieuFormation}/${row.idlieuFormation}/agrements/edit/${row.idlieuFormationAgrement}${search}`\n )\n }\n />\n \n \n {row.idEditableCurrentSuspension && (\n onEditSuspension(row)}\n />\n )}\n onDuplicateClick(row)}\n />\n \n \n }\n >\n \n \n \n )\n },\n {\n header: () => t(ETLCodes.Offre),\n fieldName: \"offreActive\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: LieuFormationAgrementGridDto) => \n },\n {\n header: () => (\n \n {t(ETLCodes.C)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"capaciteAtteinte\",\n autoFitContent: true,\n render: (row: LieuFormationAgrementGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.CodeMetier),\n fieldName: \"codeMetier\"\n },\n {\n header: () => t(ETLCodes.NomMetier),\n fieldName: \"nomMetier\"\n },\n {\n header: () => t(ETLCodes.Stade),\n fieldName: \"nomStade\"\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"statut\",\n render: row => tUnsafe(`StatutAgrement_${row.statut}`)\n },\n {\n header: () => t(ETLCodes.DecisionAgrement),\n fieldName: \"decision\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"type\",\n render: (row: LieuFormationAgrementGridDto) => computeType(row)\n },\n {\n header: () => t(ETLCodes.DateDecision),\n fieldName: \"dateDecision\"\n }\n ],\n [\n computeType,\n nbReturnedIds,\n onDuplicateClick,\n onEditSuspension,\n push,\n search,\n selectAll,\n selectAllLoading,\n selectedIDs,\n t,\n tUnsafe,\n theme.dangerColor,\n theme.sucessColor,\n toggleSelection\n ]\n );\n\n const getCriteria = React.useCallback(\n () => api.lieuFormationAgrementGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const { data: displayName, isLoading: displayNameLoading } = useQuery([\"lieu-formation-display-name\", id], () =>\n lieuFormationApi.lieuFormationGetDisplayName({ id: +id })\n );\n const finalDisplayName = React.useMemo(\n () => (displayNameLoading ? : displayName),\n [displayName, displayNameLoading]\n );\n\n const [actionsLoading, setActionsLoading] = React.useState(false);\n const [retraitDialogOpen, setRetraitDialogOpen] = React.useState(false);\n const onRetrait = React.useCallback(async () => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n setActionsLoading(true);\n const existingRetrait = (await api.lieuFormationAgrementCheckStatutRetrait({ request_body: selectedIDs })).value;\n setActionsLoading(false);\n if (existingRetrait) {\n showError(t(ETLCodes.RetraitDejaEffectueSurUnAgrementSelectionne));\n return;\n }\n\n setRetraitDialogOpen(true);\n }, [api, selectedIDs, t]);\n\n const onCloseRetrait = React.useCallback(\n (refresh: boolean) => {\n if (refresh) {\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }\n setRetraitDialogOpen(false);\n setAllSelected(false);\n },\n [dispatchEvent]\n );\n\n const [suspensionDialogOpen, setSuspensionDialogOpen] = React.useState(false);\n const onSuspension = React.useCallback(async () => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n setSuspensionDialogOpen(true);\n }, [selectedIDs, t]);\n\n const [suspensionEditIds, setSuspensionEditIds] = React.useState([]);\n const onSuspensionEdit = React.useCallback(async () => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n\n var canEditIds = await api.lieuFormationAgrementCanEditSuspensionsMultiple({ request_body: selectedIDs });\n if (canEditIds.length === 0 || selectedIDs.length !== canEditIds.length) {\n showError(t(ETLCodes.SuspensionsAgrementNonModifiables));\n return;\n }\n\n setSuspensionEditIds(canEditIds);\n }, [api, selectedIDs, t]);\n\n const onCloseSuspension = React.useCallback(\n async (toSave: LieuFormationAgrementSuspensionDto) => {\n if (!!toSave) {\n setActionsLoading(true);\n if (toSave.idlieuFormationAgrementSuspension > 0) {\n await api.lieuFormationAgrementEditSuspension({ LieuFormationAgrementSuspensionDto: toSave });\n } else {\n const dto = LieuFormationAgrementSuspensionMultipleDtoFromJSON({\n ...toSave,\n idslieuFormationAgrement: selectedIDs,\n idslieuFormationAgrementSuspension: suspensionEditIds\n });\n await api.lieuFormationAgrementSuspensionMultiple({ LieuFormationAgrementSuspensionMultipleDto: dto });\n }\n\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }\n setActionsLoading(false);\n setCurrentLieuFormationAgrementSuspension(null);\n setSuspensionDialogOpen(false);\n setSuspensionEditIds([]);\n },\n [api, dispatchEvent, selectedIDs, suspensionEditIds]\n );\n\n const [visiteDialogOpen, setVisiteDialogOpen] = React.useState(false);\n const onVisite = React.useCallback(async () => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n setVisiteDialogOpen(true);\n }, [selectedIDs, t]);\n\n const onCloseVisite = React.useCallback(\n (refresh?: boolean) => {\n if (refresh) {\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }\n setVisiteDialogOpen(false);\n },\n [dispatchEvent]\n );\n\n const [demandeSectorielleDialogOpen, setDemandeSectorielleDialogOpen] = React.useState(false);\n const onDemandeSectorielle = React.useCallback(async () => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n setDemandeSectorielleDialogOpen(true);\n }, [selectedIDs, t]);\n\n const onCloseDemandeSectorielle = React.useCallback(\n (refresh?: boolean) => {\n if (refresh) {\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }\n setDemandeSectorielleDialogOpen(false);\n },\n [dispatchEvent]\n );\n\n const [decisionDialogOpen, setDecisionDialogOpen] = React.useState(false);\n const onDecision = React.useCallback(async () => {\n if (selectedIDs.length <= 0) {\n showError(t(ETLCodes.SelectAtLeastOne));\n return;\n }\n setDecisionDialogOpen(true);\n }, [selectedIDs, t]);\n\n const onCloseDecision = React.useCallback(\n (refresh?: boolean) => {\n if (refresh) {\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }\n setDecisionDialogOpen(false);\n },\n [dispatchEvent]\n );\n\n const buttons = React.useMemo(\n () => (\n <>\n \n \n }\n text={t(ETLCodes.Visite)}\n intent={Intent.PRIMARY}\n onClick={() => onVisite()}\n />\n onDemandeSectorielle()}\n />\n }\n text={t(ETLCodes.DecisionAgrement)}\n intent={Intent.PRIMARY}\n onClick={() => onDecision()}\n />\n onSuspension()}\n />\n onSuspensionEdit()}\n />\n onRetrait()}\n />\n \n \n }\n >\n \n \n {\n e.stopPropagation();\n push(`${ERoutes.lieuFormation}/${id}/agrements/edit/-1${search}`);\n }}\n text={t(ETLCodes.AddAgrement)}\n intent={Intent.PRIMARY}\n loading={actionsLoading}\n />\n \n ),\n [\n actionsLoading,\n id,\n onDecision,\n onDemandeSectorielle,\n onRetrait,\n onSuspension,\n onSuspensionEdit,\n onVisite,\n push,\n search,\n t\n ]\n );\n\n const defaultCriterias = React.useMemo(\n () => [\n {\n criteria: \"Actif\",\n searchMode: EBooleanSearchTypes.Equals,\n value: true\n }\n ],\n []\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n css`\n & * {\n color: ${!row.actif ? Colors.RED3 + \" !important\" : null};\n }\n `}\n />\n {retraitDialogOpen && (\n \n )}\n {(suspensionDialogOpen || suspensionEditIds.length > 0) && (\n 0}\n onClose={onCloseSuspension}\n currentSuspension={currentLieuFormationAgrementSuspension}\n showFile={false}\n multipleEdit={selectedIDs?.length > 0 && suspensionEditIds.length > 0}\n />\n )}\n {visiteDialogOpen && (\n \n )}\n {demandeSectorielleDialogOpen && (\n \n )}\n {decisionDialogOpen && (\n \n )}\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport * as Yup from \"yup\";\nimport {\n LieuFormationAgrementApi,\n LieuFormationAgrementVisiteMultipleDto,\n LieuFormationAgrementVisiteMultipleDtoFromJSON\n} from \"../../../../../../api\";\nimport { LieuFormationAgrementVisite } from \"..\";\nimport { endOfToday } from \"date-fns\";\n\nconst StyledDialog = styled(Dialog)`\n width: 500px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ILieuFormationAgrementMultipleVisiteDialogProps {\n dialogOpen: boolean;\n onClose: (refresh: boolean) => void;\n idslieuFormationAgrement: number[];\n}\n\nexport const LieuFormationAgrementMultipleVisiteDialog: React.FunctionComponent = ({\n dialogOpen,\n onClose,\n idslieuFormationAgrement\n}) => {\n const { t } = useTl();\n const api = useApiService(LieuFormationAgrementApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return LieuFormationAgrementVisiteMultipleDtoFromJSON({\n idslieuFormationAgrement: idslieuFormationAgrement\n });\n },\n saveApiFn: async (d: LieuFormationAgrementVisiteMultipleDto) => {\n return api.lieuFormationAgrementVisiteMultiple({ LieuFormationAgrementVisiteMultipleDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idslieuFormationAgrement, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n dateVisite: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture))\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n LieuFormationAgrementApi,\n LieuFormationAgrementDemandeSectorielleMultipleDto,\n LieuFormationAgrementDemandeSectorielleMultipleDtoFromJSON\n} from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { SmallFormGenerator } from \"../../../../../../components\";\nimport { FieldGroup } from \"nsitools-react\";\nimport { LieuFormationAgrementDemandeSectorielle } from \"..\";\nimport { endOfToday } from \"date-fns\";\n\nconst StyledDialog = styled(Dialog)`\n width: 700px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ILieuFormationAgrementDemandeSectorielleDialogProps {\n idslieuFormationAgrement: number[];\n dialogOpen: boolean;\n onClose: (refresh: boolean) => void;\n}\n\nexport const LieuFormationAgremantDemandeSectorielleDialog: React.FunctionComponent = ({\n idslieuFormationAgrement = [],\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(LieuFormationAgrementApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return LieuFormationAgrementDemandeSectorielleMultipleDtoFromJSON({\n idslieuFormationAgrement: idslieuFormationAgrement\n });\n },\n saveApiFn: async (d: LieuFormationAgrementDemandeSectorielleMultipleDto) => {\n return api.lieuFormationAgrementDemandeSectorielleMultiple({\n LieuFormationAgrementDemandeSectorielleMultipleDto: d\n });\n },\n onSaved: () => onClose(true)\n }),\n [api, idslieuFormationAgrement, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idagrementAvis: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateEnvoiD1: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture)),\n dateReceptionAvis: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture))\n }),\n [t]\n );\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n LieuFormationAgrementApi,\n LieuFormationAgrementDecisionMultipleDto,\n LieuFormationAgrementDecisionMultipleDtoFromJSON\n} from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { SmallFormGenerator } from \"../../../../../../components\";\nimport { FieldGroup } from \"nsitools-react\";\nimport { LieuFormationAgrementDecision } from \"..\";\nimport { endOfToday } from \"date-fns\";\n\nconst StyledDialog = styled(Dialog)`\n width: 700px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ILieuFormationAgrementDecisionDialogProps {\n idslieuFormationAgrement: number[];\n dialogOpen: boolean;\n onClose: (refresh: boolean) => void;\n}\n\nexport const LieuFormationAgrementDecisionDialog: React.FunctionComponent = ({\n idslieuFormationAgrement = [],\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(LieuFormationAgrementApi);\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return LieuFormationAgrementDecisionMultipleDtoFromJSON({\n idslieuFormationAgrement: idslieuFormationAgrement\n });\n },\n saveApiFn: async (d: LieuFormationAgrementDecisionMultipleDto) => {\n return api.lieuFormationAgrementDecisionMultiple({ LieuFormationAgrementDecisionMultipleDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idslieuFormationAgrement, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idlieuFormationAgrementDecision: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateDecision: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture))\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n >\n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog, Intent, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport { endOfToday, isAfter, isBefore, isSameDay } from \"date-fns\";\nimport { FormikProps } from \"formik\";\nimport {\n ButtonContainer,\n DataTable,\n FGCustomInput,\n FGCustomPanel,\n FGMultiSuggestInput,\n FGNumberInput,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n IFGContext,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n LieuFormationAgrementDecision,\n LieuFormationAgrementDemandeSectorielle,\n LieuFormationAgrementSuspensionDetailDialog,\n LieuFormationAgrementVisiteDialog\n} from \".\";\nimport {\n ELevelName,\n ELieuFormationAgrementStatut,\n FichierApi,\n LieuFormationAgrementApi,\n LieuFormationAgrementEditDto,\n LieuFormationAgrementEditDtoFromJSON,\n LieuFormationAgrementOffreDtoFromJSON,\n LieuFormationAgrementSuspensionDto,\n LieuFormationAgrementSuspensionDtoFromJSON,\n LieuFormationAgrementVisiteDto,\n LieuFormationAgrementVisiteDtoFromJSON,\n LieuFormationApi\n} from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n AddButton,\n BooleanColumn,\n DeleteButton,\n EditButton,\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n LinkButton,\n SaveButton,\n SmallFormGenerator,\n ViewButton,\n WarningText\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTheme, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { exportFile } from \"../../../../../../utils\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nconst StatutContainer = styled.div<{ color: string }>`\n display: flex;\n justify-content: center;\n > span {\n font-weight: bold;\n color: ${props => props.color};\n font-size: 14pt;\n }\n`;\n\nconst RadioReadonlyContainer = styled.div`\n height: 30px;\n display: flex;\n align-items: center;\n`;\n\nexport interface ILieuFormationAgrementItemProps {}\n\nexport const LieuFormationAgrementItem: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { theme } = useTheme();\n const history = useHistory();\n const api = useApiService(LieuFormationAgrementApi);\n const lieuFormationApi = useApiService(LieuFormationApi);\n const [, , , stades] = useReferential(a => a.referentialGetStade(), true);\n const [metiers, mLoading, , rawMetiers] = useReferential(a => a.referentialGetMetier(), true);\n const [motifsRetrait, mrLoading] = useReferential(a => a.referentialGetMotifsRetrait(), true);\n const [currentSuspension, setCurrentSuspension] = React.useState(null);\n const formikRef = React.useRef>();\n const innerIdIndex = React.useRef(-1);\n const { search } = useLocation();\n\n const idsiegeSocial = React.useMemo(() => new URLSearchParams(search).get(\"idsiegeSocial\"), [search]);\n const duplicateId = React.useMemo(() => new URLSearchParams(search).get(\"duplicateId\"), [search]);\n\n const [users, usersLoading] = useReferential(a =>\n a.referentialGetUsersByRoles({ ELevelName: [ELevelName.RI, ELevelName.CALC], currentIduser: 0 })\n );\n\n const { id, state, subId: idlieuFormationAgrement } = useParams<{ id: string; state: string; subId: string }>();\n const { data: displayName, isLoading: displayNameLoading } = useQuery([\"lieu-formation-display-name\", id], () =>\n lieuFormationApi.lieuFormationGetDisplayName({ id: +id })\n );\n\n const { showDialogPromise } = useDialog();\n const [remarqueOffreDialogOpen, setRemarqueOffreDialogOpen] = React.useState(false);\n\n const saveFn = React.useCallback(\n async (d: LieuFormationAgrementEditDto) => {\n return api.lieuFormationAgrementSaveLieuFormationAgrement({ LieuFormationAgrementEditDto: d });\n },\n [api]\n );\n\n const onSavedMode = React.useRef<\"duplicate\" | \"new\" | \"none\">(\"none\");\n const emptyFormValues = React.useMemo(\n () =>\n LieuFormationAgrementEditDtoFromJSON({\n offre: LieuFormationAgrementOffreDtoFromJSON({ actif: false }),\n dossierComplet: false,\n idlieuFormationAgrement: 0,\n idlieuFormation: +id,\n statut: null\n }),\n [id]\n );\n const onSaved = React.useCallback(() => {\n switch (onSavedMode.current) {\n case \"none\":\n return history.push(`${ERoutes.lieuFormation}/${+id}/agrements/${state}?idsiegeSocial=${idsiegeSocial}`);\n case \"new\":\n formikRef.current.resetForm({ values: emptyFormValues });\n break;\n case \"duplicate\":\n formikRef.current.setValues({\n ...formikRef.current.values,\n offre: LieuFormationAgrementOffreDtoFromJSON({ actif: false }),\n idlieuFormationAgrementDecision: null,\n dateDecision: null,\n idlieuFormationAgrement: 0,\n idmetier: null,\n capaciteFormative: 0\n });\n break;\n }\n\n onSavedMode.current = \"none\";\n }, [emptyFormValues, history, id, idsiegeSocial, state]);\n\n const { data, loading, saveItem, saving, deleteItem, deleting, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n let duplicateValues: LieuFormationAgrementEditDto = {};\n if (duplicateId) {\n duplicateValues = await api.lieuFormationAgrementGetLieuFormationAgrement({\n idlieuFormationAgrement: +duplicateId\n });\n }\n const values =\n +idlieuFormationAgrement <= 0\n ? LieuFormationAgrementEditDtoFromJSON({\n ...duplicateValues,\n visites: duplicateValues?.visites?.map((v, idx) => ({\n ...v,\n idlieuFormationAgrementVisite: (idx + 1) * -1\n })),\n suspensions: duplicateValues?.suspensions?.map((s, idx) => ({\n ...s,\n idlieuFormationAgrementSuspension: (idx + 1) * -1\n })),\n dossierComplet: false,\n offre: LieuFormationAgrementOffreDtoFromJSON({ actif: false }),\n idlieuFormationAgrementDecision: null,\n dateDecision: null,\n idlieuFormationAgrement: 0,\n idlieuFormation: +id,\n actif: true\n })\n : await api.lieuFormationAgrementGetLieuFormationAgrement({\n idlieuFormationAgrement: +idlieuFormationAgrement\n });\n\n return values;\n },\n saveApiFn: saveFn,\n onSaved,\n deleteApiFn: (d: LieuFormationAgrementEditDto) =>\n api.lieuFormationAgrementDeleteLieuFormationAgrement({ idlieuFormationAgrement: d.idlieuFormationAgrement }),\n onDeletedRoute: () => `${ERoutes.lieuFormation}/${+id}/agrements/${state}?idsiegeSocial=${idsiegeSocial}`,\n childArraysToSanitize: [\n { name: \"suspensions\", idKey: \"idlieuFormationAgrementSuspension\" },\n { name: \"visites\", idKey: \"idlieuFormationAgrementVisite\" }\n ],\n serverValidationRootKey: \"Dto\"\n }),\n [api, duplicateId, id, idlieuFormationAgrement, idsiegeSocial, onSaved, saveFn, state]\n )\n );\n\n const save = React.useCallback(\n async (d: LieuFormationAgrementEditDto) => {\n let res = \"yes\";\n if (!!d.datePriseEffetRetrait) {\n res = await showDialogPromise({\n title: t(ETLCodes.AgrementRetraitWarningTitle),\n message: t(ETLCodes.AgrementRetraitWarningMessage)\n });\n }\n\n var hasContratsEnCours = await lieuFormationApi.lieuFormationHasContratsEnCours({\n idlieuFormation: data?.idlieuFormation\n });\n if (\n d.suspensions?.some(s => s.idlieuFormationAgrementSuspension <= 0) &&\n d.statut !== ELieuFormationAgrementStatut.Suspendu &&\n hasContratsEnCours.value\n ) {\n res = await showDialogPromise({\n title: t(ETLCodes.AgrementSuspensionWarningTitle),\n message: t(ETLCodes.AgrementSuspensionWarningMessage)\n });\n }\n\n if (res === \"no\") return;\n\n await saveItem(d);\n },\n [data?.idlieuFormation, lieuFormationApi, saveItem, showDialogPromise, t]\n );\n\n const preCreate = React.useCallback(\n async (d: LieuFormationAgrementEditDto) => {\n const res = await showDialogPromise({\n title: t(ETLCodes.LieuFormationAgrementOffreTitle),\n message: t(ETLCodes.LieuFormationAgrementOffreMessage)\n });\n if (res === \"yes\") {\n setRemarqueOffreDialogOpen(true);\n return;\n }\n\n await save(d);\n },\n [save, showDialogPromise, t]\n );\n\n const mainSave = React.useCallback(\n async (values: LieuFormationAgrementEditDto) => {\n await (+idlieuFormationAgrement <= 0 ? preCreate(values) : save(values));\n },\n [idlieuFormationAgrement, preCreate, save]\n );\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { dateDebut: \"DESC\" }\n });\n\n const { setData } = tableState;\n React.useEffect(() => {\n if (!!data?.suspensions) {\n setData(data.suspensions);\n }\n }, [data?.suspensions, setData]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape(\n {\n idlieuFormation: Yup.number().required(t(ETLCodes.Required)),\n idmetier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateDecision: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture))\n .when(\"idlieuFormationAgrementDecision\", (value, schema) =>\n !!value ? schema.required(t(ETLCodes.Required)) : schema\n ),\n dateReception: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture)),\n dateEnvoiD1: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture)),\n dateReceptionAvis: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture)),\n dateVisite: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture)),\n dateEnvoiD3: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture)),\n dateRetrait: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture)),\n datePriseEffetRetrait: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture))\n .when(\"dateRetrait\", (value, schema) => {\n return !!value ? schema.required(t(ETLCodes.Required)) : schema;\n })\n .when(\"retraitIsIfapme\", (value, schema) => {\n return !!value ? schema.required(t(ETLCodes.Required)) : schema;\n })\n .when(\"idsMotifRetrait\", (value, schema) => {\n return !!value && value?.length > 0 ? schema.required(t(ETLCodes.Required)) : schema;\n })\n .when(\"remarqueRetrait\", (value, schema) => {\n return !!value ? schema.required(t(ETLCodes.Required)) : schema;\n })\n },\n [\n [\"datePriseEffetRetrait\", \"dateRetrait\"],\n [\"datePriseEffetRetrait\", \"retraitIsIfapme\"],\n [\"datePriseEffetRetrait\", \"idsMotifRetrait\"],\n [\"datePriseEffetRetrait\", \"remarqueRetrait\"]\n ]\n );\n }, [t]);\n const onDeleteClick = React.useCallback(\n async (dto: LieuFormationAgrementSuspensionDto) => {\n let nextValues = [...formikRef?.current?.values?.suspensions];\n nextValues.splice(nextValues.indexOf(dto), 1);\n formikRef?.current.setFieldValue(`suspensions`, nextValues);\n formikRef?.current.setFieldTouched(`suspensions`, true);\n setData(nextValues);\n },\n [setData]\n );\n\n const onEditClick = React.useCallback((dto: LieuFormationAgrementSuspensionDto) => {\n setCurrentSuspension(dto);\n }, []);\n\n const onClose = React.useCallback(\n (toSave: LieuFormationAgrementSuspensionDto, formik: FormikProps) => {\n if (!!toSave) {\n let nextValues = [...(formik?.values?.suspensions ?? [])];\n let found = nextValues.find(\n s => s.idlieuFormationAgrementSuspension === toSave.idlieuFormationAgrementSuspension\n );\n if (!!found) {\n found.dateDebut = toSave.dateDebut;\n found.dateFin = toSave.dateFin;\n found.fichierSuspension = toSave.fichierSuspension;\n found.idfichierSuspension = !!toSave.fichierSuspension ? toSave.idfichierSuspension : null;\n } else {\n nextValues.push(toSave);\n }\n formik.setFieldValue(\"suspensions\", nextValues);\n formik.setFieldTouched(\"suspensions\", true);\n setData(nextValues);\n }\n setCurrentSuspension(null);\n },\n [setData]\n );\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async idfichier => await fapi.fichierDownload({ id: idfichier }), [fapi]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: LieuFormationAgrementSuspensionDto) =>\n state === \"edit\" &&\n data?.actif !== false && (\n \n onEditClick(row)} />\n onDeleteClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n },\n {\n header: () => t(ETLCodes.Document),\n fieldName: \"fichierSuspension\",\n render: (row: LieuFormationAgrementSuspensionDto) =>\n row.fichierSuspension &&\n (row.idfichierSuspension ? (\n downloadFn(row.idfichierSuspension)} />\n ) : (\n row.fichierSuspension?.fileName\n ))\n }\n ],\n [data?.actif, downloadFn, onDeleteClick, onEditClick, state, t]\n );\n\n const onAddClick = React.useCallback(\n e => {\n e.stopPropagation();\n setCurrentSuspension(\n LieuFormationAgrementSuspensionDtoFromJSON({\n idlieuFormationAgrement,\n idlieuFormationAgrementSuspension: innerIdIndex.current--\n })\n );\n },\n [idlieuFormationAgrement]\n );\n\n const additionalRightButtons = React.useCallback(\n (ctx: IFGContext) =>\n +idlieuFormationAgrement <= 0 && (\n <>\n {\n onSavedMode.current = \"new\";\n ctx.formik.submitForm();\n }}\n text={t(ETLCodes.SauverEtNouveau)}\n minimal={false}\n loading={saving}\n />\n {\n onSavedMode.current = \"duplicate\";\n ctx.formik.submitForm();\n }}\n text={t(ETLCodes.SauverEtDupliquer)}\n minimal={false}\n loading={saving}\n />\n \n ),\n [idlieuFormationAgrement, saving, t]\n );\n\n const statutColor = React.useMemo(() => {\n if (!data) return \"white\";\n switch (data.statut) {\n case ELieuFormationAgrementStatut.EnInstance:\n case ELieuFormationAgrementStatut.Agree:\n case ELieuFormationAgrementStatut.PourOffre:\n return theme.sucessColor;\n case ELieuFormationAgrementStatut.Provisoire:\n case ELieuFormationAgrementStatut.Suspendu:\n return theme.warningColor;\n case ELieuFormationAgrementStatut.NonAgree:\n case ELieuFormationAgrementStatut.Retrait:\n return theme.dangerColor;\n }\n }, [data, theme.dangerColor, theme.sucessColor, theme.warningColor]);\n\n const onCloseRemarque = React.useCallback(\n async (remarque?: string, ctx?: IFGContext) => {\n setRemarqueOffreDialogOpen(false);\n await save({ ...ctx?.formik?.values, offre: { ...ctx?.formik?.values?.offre, remarque, actif: true } });\n },\n [save]\n );\n\n const [idmetier, setIdmetier] = React.useState(null);\n const fetchLieuFormationCapaciteFormative = React.useCallback(async () => {\n if (!idmetier) return null;\n return await lieuFormationApi.lieuFormationGetNbContrats({ id: +id, idmetier });\n }, [id, idmetier, lieuFormationApi]);\n const { data: lfCapaciteFormative } = useQuery(\n [\"lf-capacite-formative\", id, idmetier],\n fetchLieuFormationCapaciteFormative\n );\n\n // Visites\n const tableStateVisite = useGridState({\n serverMode: false,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { dateVisite: \"DESC\" }\n });\n\n const { setData: setVisiteData } = tableStateVisite;\n React.useEffect(() => {\n if (!!data?.visites) {\n setVisiteData(data.visites);\n }\n }, [data?.visites, setVisiteData]);\n const [currentVisite, setCurrentVisite] = React.useState(null);\n const onAddVisiteClick = React.useCallback(() => {\n setCurrentVisite(\n LieuFormationAgrementVisiteDtoFromJSON({\n idlieuFormationAgrementVisite: innerIdIndex.current--,\n idlieuFormationAgrement\n })\n );\n }, [idlieuFormationAgrement]);\n\n const onVisiteClose = React.useCallback(\n (toSave: LieuFormationAgrementVisiteDto, formik: FormikProps) => {\n if (!!toSave) {\n let nextValues = [...(formik?.values?.visites ?? [])];\n let found = nextValues.find(s => s.idlieuFormationAgrementVisite === toSave.idlieuFormationAgrementVisite);\n if (!!found) {\n found.dateVisite = toSave.dateVisite;\n found.pratiqueSimulee = toSave.pratiqueSimulee;\n found.compteRendu = toSave.compteRendu;\n found.fichierCompteRendu = toSave.fichierCompteRendu;\n found.idfichierCompteRendu = !!toSave.fichierCompteRendu ? toSave.idfichierCompteRendu : null;\n } else {\n nextValues.push(toSave);\n }\n formik.setFieldValue(\"visites\", nextValues);\n formik.setFieldTouched(\"visites\", true);\n setVisiteData(nextValues);\n }\n setCurrentVisite(null);\n },\n [setVisiteData]\n );\n const onDeleteVisiteClick = React.useCallback(\n async (dto: LieuFormationAgrementVisiteDto) => {\n let nextValues = [...formikRef?.current?.values?.visites];\n nextValues.splice(nextValues.indexOf(dto), 1);\n formikRef?.current.setFieldValue(`visites`, nextValues);\n formikRef?.current.setFieldTouched(`visites`, true);\n setVisiteData(nextValues);\n },\n [setVisiteData]\n );\n\n const onEditVisiteClick = React.useCallback((dto: LieuFormationAgrementVisiteDto) => {\n setCurrentVisite(dto);\n }, []);\n\n const visiteColumns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: LieuFormationAgrementVisiteDto) =>\n state === \"edit\" &&\n data?.actif !== false && (\n \n onEditVisiteClick(row)} />\n onDeleteVisiteClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.DateVisite),\n fieldName: \"dateVisite\"\n },\n {\n header: () => t(ETLCodes.PratiqueSimulee),\n fieldName: \"pratiqueSimulee\",\n autoFitContent: true,\n alignment: \"center\",\n render: row => \n },\n {\n header: () => t(ETLCodes.CompteRendu),\n fieldName: \"compteRendu\"\n },\n {\n header: () => t(ETLCodes.Document),\n fieldName: \"fichierCompteRendu\",\n render: (row: LieuFormationAgrementVisiteDto) =>\n row.fichierCompteRendu &&\n (row.idfichierCompteRendu ? (\n exportFile(await downloadFn(row.idfichierCompteRendu))}\n />\n ) : (\n row.fichierCompteRendu?.fileName\n ))\n }\n ],\n [data?.actif, downloadFn, onDeleteVisiteClick, onEditVisiteClick, state, t]\n );\n\n const decisionRO = React.useMemo(\n () =>\n !!data?.idlieuFormationAgrementDecision &&\n ![\n ELieuFormationAgrementStatut.Provisoire,\n ELieuFormationAgrementStatut.EnInstance,\n ELieuFormationAgrementStatut.PourOffre\n ].includes(data?.statut),\n [data?.idlieuFormationAgrementDecision, data?.statut]\n );\n\n return (\n history.push(`${ERoutes.lieuFormation}/${+id}/agrements/${state}?idsiegeSocial=${idsiegeSocial}`)}\n saving={saving}\n validationErrors={validationErrors}\n onDelete={deleteItem}\n deleting={deleting}\n showDeleteButton={+idlieuFormationAgrement > 0}\n formikInnerRef={i => (formikRef.current = i)}\n minLabelWidth={220}\n additionalRightButtons={additionalRightButtons}\n forceEnableSave\n touchOnSubmit\n watchChanges={{\n idmetier: (value, formik) => {\n setIdmetier(value);\n if (+value > 0 && formik.dirty) {\n const idstade = rawMetiers?.find(m => +m.idValue === +value)?.keyValue;\n const code = stades?.find(s => +s.idValue === +idstade)?.keyValue;\n formik.setFieldValue(\"isApprentissage\", code === \"AP\");\n }\n },\n fichierRetrait: (value, formik) => {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichierRetrait\", null);\n }\n }\n }}\n >\n \n {ctx => (\n \n \n {!!ctx.formik.values?.statut\n ? tUnsafe(`StatutAgrement_${ctx.formik.values?.statut}`) +\n (ctx.formik.values?.actif === false ? ` (${t(ETLCodes.Inactif)})` : \"\")\n : t(ETLCodes.EnCoursCreation)}\n \n \n )}\n \n \n history.push(`${ERoutes.offre}/${data.offre.idlieuFormationAgrementOffre}/detail/view`)}\n />\n )\n }}\n >\n displayName}\n />\n \n \n \n +idlieuFormationAgrement > 0 &&\n lfCapaciteFormative !== null &&\n (ctx?.formik?.values?.capaciteFormative ?? 0) >= +lfCapaciteFormative ? (\n +lfCapaciteFormative &&\n ETLCodes.CapaciteFormativeLieuFormationAgrementVaEtreDepassee\n )}\n />\n ) : null\n }\n />\n \n \n !!ctx?.formik?.values?.offre?.actif}\n />\n \n \n \n {ctx => }\n \n \n \n {(ctx: IFGContext) => (\n \n )\n }\n >\n \n {!!currentVisite && (\n onVisiteClose(toSave, ctx.formik)}\n />\n )}\n \n )}\n \n \n \n {ctx => (\n downloadFn(ctx.formik.values?.idfichierEnvoiD3)}\n decisionRO={decisionRO}\n />\n )}\n \n \n \n \n \n \n \n \n {(ctx: IFGContext) => (\n \n (isBefore(s.dateDebut, new Date()) || isSameDay(s.dateDebut, new Date())) &&\n (!s.dateFin || isAfter(s.dateFin, new Date()))\n )}\n />\n )\n }\n >\n \n {!!currentSuspension && (\n onClose(toSave, ctx.formik)}\n />\n )}\n \n )}\n \n \n \n \n \n \n {ctx =>\n ctx?.editMode ? (\n ctx.formik.setFieldValue(\"retraitIsIfapme\", e.currentTarget.value === \"1\")}\n >\n \n \n \n ) : (\n \n {!ctx?.formik?.values?.retraitIsIfapme ? t(ETLCodes.IFAPME) : t(ETLCodes.CEFA)}\n \n )\n }\n \n \n \n \n {ctx => (\n downloadFn(ctx.formik.values?.idfichierRetrait))\n }\n />\n )}\n \n \n \n \n {(ctx: IFGContext) => (\n onCloseRemarque()}\n >\n
\n onCloseRemarque(d.remarque, ctx)}\n editMode={true}\n onCancel={onCloseRemarque}\n showDeleteButton={false}\n enableDirtyCheck={false}\n forceEnableSave\n >\n \n \n \n \n
\n \n )}\n
\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGCustomPanel, FGListen, FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n FichierApi,\n LieuFormationAgrementSuspensionDto,\n LieuFormationAgrementSuspensionDtoFromJSON\n} from \"../../../../../../api\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 500px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ILieuFormationAgrementSuspensionDetailDialogProps {\n dialogOpen: boolean;\n onClose: (toSave?: LieuFormationAgrementSuspensionDto) => void;\n currentSuspension?: LieuFormationAgrementSuspensionDto;\n multipleEdit?: boolean;\n showFile?: boolean;\n}\n\nexport const LieuFormationAgrementSuspensionDetailDialog: React.FunctionComponent = ({\n currentSuspension,\n dialogOpen,\n onClose,\n multipleEdit = false,\n showFile = true\n}) => {\n const { t } = useTl();\n\n const [motifs, mLoading] = useReferential(a => a.referentialGetMotifsSuspension());\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape(\n {\n dateDebut: multipleEdit\n ? Yup.date().nullable()\n : Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.max(Yup.ref(\"dateFin\"), t(ETLCodes.DateDebutGreaterThanDateFin)) : schema\n )\n .required(t(ETLCodes.Required)),\n dateFin: Yup.date()\n .nullable()\n .when(\"dateDebut\", (value, schema) =>\n !!value ? schema.min(Yup.ref(\"dateDebut\"), t(ETLCodes.DateFinGreaterThanDateDebut)) : schema\n ),\n idmotifSuspension: multipleEdit\n ? Yup.number().nullable()\n : Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n },\n [[\"dateDebut\", \"dateFin\"]]\n ),\n [multipleEdit, t]\n );\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(\n async formik => await fapi.fichierDownload({ id: formik.values?.idfichierSuspension }),\n [fapi]\n );\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n minLabelWidth={100}\n >\n {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichierSuspension\", null);\n }\n }}\n />\n \n 0}\n visible={!multipleEdit}\n />\n \n 0}\n visible={!multipleEdit}\n />\n \n \n {ctx => (\n downloadFn(ctx.formik))}\n visible={showFile}\n />\n )}\n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport { endOfToday } from \"date-fns\";\nimport { FGCustomInput, FGListen, FGMultiSuggestInput, FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n LieuFormationAgrementApi,\n LieuFormationAgrementRetraitMultipleDto,\n LieuFormationAgrementRetraitMultipleDtoFromJSON\n} from \"../../../../../../api\";\nimport { FGWalterDateMaskInput, FGWalterFileInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 700px;\n height: auto;\n background-color: white;\n`;\n\nconst RadioReadonlyContainer = styled.div`\n height: 30px;\n display: flex;\n align-items: center;\n`;\n\nexport interface ILieuFormationAgrementRetraitDialogProps {\n idslieuFormationAgrement: number[];\n idlieuFormation: number;\n allSelected?: boolean;\n dialogOpen: boolean;\n onClose: (refresh: boolean) => void;\n multiple: boolean;\n}\n\nexport const LieuFormationAgrementRetraitDialog: React.FunctionComponent = ({\n idlieuFormation,\n idslieuFormationAgrement = [],\n allSelected = false,\n dialogOpen,\n onClose,\n multiple\n}) => {\n const { t } = useTl();\n const api = useApiService(LieuFormationAgrementApi);\n\n const { showDialogPromise } = useDialog();\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return LieuFormationAgrementRetraitMultipleDtoFromJSON({\n idlieuFormation,\n idslieuFormationAgrement: idslieuFormationAgrement,\n retraitIsIfapme: true,\n idsMotifRetrait: []\n });\n },\n saveApiFn: async (d: LieuFormationAgrementRetraitMultipleDto) => {\n return api.lieuFormationAgrementRetraitMultiple({ LieuFormationAgrementRetraitMultipleDto: d });\n },\n onSaved: () => onClose(true)\n }),\n [api, idlieuFormation, idslieuFormationAgrement, onClose]\n )\n );\n\n const save = React.useCallback(\n async (d: LieuFormationAgrementRetraitMultipleDto) => {\n const canSave = await showDialogPromise({\n title: t(ETLCodes.AgrementRetraitWarningTitle),\n message: t(ETLCodes.AgrementRetraitWarningMessage)\n });\n\n if (canSave === \"yes\") {\n if (allSelected) {\n const disableLf = await showDialogPromise({\n title: t(ETLCodes.DisableLieuFormationTitle),\n message: t(ETLCodes.DisableLieuFormationMessage)\n });\n d.disableLieuFormation = disableLf === \"yes\";\n }\n\n await saveItem(d);\n }\n },\n [allSelected, saveItem, showDialogPromise, t]\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n datePriseEffetRetrait: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture))\n .required(t(ETLCodes.Required)),\n dateRetrait: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture)),\n idsMotifRetrait: Yup.array()\n .of(Yup.number())\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n const [motifs, mLoading] = useReferential(a => a.referentialGetMotifsRetrait());\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n loading={loading}\n validationErrors={validationErrors}\n minLabelWidth={220}\n >\n {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichierRetrait\", null);\n }\n }}\n />\n \n \n \n \n {ctx =>\n ctx?.editMode ? (\n ctx.formik.setFieldValue(\"retraitIsIfapme\", e.currentTarget.value === \"1\")}\n >\n \n \n \n ) : (\n \n {!ctx?.formik?.values?.retraitIsIfapme ? t(ETLCodes.IFAPME) : t(ETLCodes.CEFA)}\n \n )\n }\n \n \n \n \n \n \n
\n
\n );\n};\n","import { FGListen, FGTextAreaInput, useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { FichierApi } from \"../../../../../../api\";\n\nimport { FGWalterCheckboxInput, FGWalterDateMaskInput, FGWalterFileInput } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface ILieuFormationAgrementVisiteProps {}\n\nexport const LieuFormationAgrementVisite: React.FunctionComponent = props => {\n const { t } = useTl();\n const { formik } = useFGContext();\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(\n async () => await fapi.fichierDownload({ id: formik.values.idfichierCompteRendu }),\n [fapi, formik?.values?.idfichierCompteRendu]\n );\n\n return (\n <>\n {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichierCompteRendu\", null);\n }\n }}\n />\n \n \n \n \n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { endOfToday } from \"date-fns\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { LieuFormationAgrementVisite } from \".\";\nimport { LieuFormationAgrementVisiteDto } from \"../../../../../../api\";\nimport { SmallFormGenerator } from \"../../../../../../components\";\nimport { useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 500px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ILieuFormationAgrementVisiteDialogProps {\n dialogOpen: boolean;\n onClose: (toSave?: LieuFormationAgrementVisiteDto) => void;\n currentVisite: LieuFormationAgrementVisiteDto;\n}\n\nexport const LieuFormationAgrementVisiteDialog: React.FunctionComponent = ({\n dialogOpen,\n onClose,\n currentVisite\n}) => {\n const { t } = useTl();\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n dateVisite: Yup.date()\n .nullable()\n .max(endOfToday(), t(ETLCodes.DateCannotBeInFurture))\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n >\n \n \n
\n
\n );\n};\n","import { FGCustomPanel, FGListen, FGTextAreaInput, useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { FichierApi } from \"../../../../../../api\";\nimport { FGWalterDateMaskInput, FGWalterFileInput, FGWalterSelectInput } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface ILieuFormationAgrementDemandeSectorielleProps {\n disabled?: boolean;\n}\n\nexport const LieuFormationAgrementDemandeSectorielle: React.FunctionComponent = ({\n disabled\n}) => {\n const { t } = useTl();\n const { formik } = useFGContext();\n const [avis, aLoading] = useReferential(a => a.referentialGetLieuFormationAgrementAvis(), true);\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(\n async () => await fapi.fichierDownload({ id: formik.values.idfichierDemandeSectorielle }),\n [fapi, formik?.values?.idfichierDemandeSectorielle]\n );\n\n return (\n \n {ctx => (\n <>\n {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichierDemandeSectorielle\", null);\n }\n }}\n />\n \n \n \n \n \n \n )}\n \n );\n};\n","import { FGCustomPanel, FGListen, FGMultiSuggestInput, FGTextAreaInput, useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { FileDownloadDto } from \"../../../../../../api\";\nimport { FGWalterDateMaskInput, FGWalterFileInput, FGWalterSelectInput } from \"../../../../../../components\";\nimport { useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface ILieuFormationAgrementDecisionProps {\n downloadFn?: () => Promise;\n multiple?: boolean;\n decisionRO?: boolean;\n}\n\nexport const LieuFormationAgrementDecision: React.FunctionComponent = ({\n downloadFn,\n multiple,\n decisionRO\n}) => {\n const { t } = useTl();\n const { formik } = useFGContext();\n const [decisions, dLoading, , rawDecisions] = useReferential(\n a => a.referentialGetLieuFormationAgrementDecisions(),\n true\n );\n const [motifs, moLoading] = useReferential(a => a.referentialGetMotifsNonAgrement(), true);\n\n return (\n <>\n {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichierEnvoiD3\", null);\n }\n }}\n />\n \n \n {ctx => (\n <>\n \n d.keyValue === \"NON_AGREE\")?.idValue ?? \"0\") !==\n ctx.formik.values?.idlieuFormationAgrementDecision\n }\n />\n \n )}\n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { matchPath, useLocation, useParams } from \"react-router\";\nimport { LieuFormationAgrementItem, LieuFormationAgrementList } from \".\";\nimport { ERoutes } from \"../../../../../AppRouter\";\n\nexport interface ILieuFormationAgrementSwitchProps {}\n\nexport const LieuFormationAgrementSwitch: React.FunctionComponent = props => {\n const { pathname } = useLocation();\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n if (\n matchPath(pathname, {\n path: `${ERoutes.lieuFormation}/${id}/agrements/:state/:subId`\n })\n ) {\n return ;\n } else {\n return ;\n }\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport { LieuFormationSuiviItem, LieuFormationSuiviList } from \".\";\nimport { ERoutes } from \"../../../../../AppRouter\";\n\nexport interface ILieuFormationSuiviSwitchProps {}\n\nexport const LieuFormationSuiviSwitch: React.FunctionComponent = props => {\n const path = React.useMemo(() => `${ERoutes.lieuFormation}/:id/suivi/:state?`, []);\n return (\n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useLocation, useParams } from \"react-router\";\nimport { SiegeLieuSuivi } from \"../../../..\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\n\nexport interface ILieuFormationSuiviItemProps { }\n\nexport const LieuFormationSuiviItem: React.FunctionComponent = props => {\n const { id, state, subId } = useParams<{ id: string; tab: string; state: string; subId: string }>();\n const idlieuFormation = React.useMemo(() => +id, [id]);\n const idsuivi = React.useMemo(() => +subId, [subId]);\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n const { search } = useLocation();\n const idsiegeSocial = React.useMemo(() => new URLSearchParams(search).get(\"idsiegeSocial\"), [search]);\n\n return (\n \n );\n};\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\nimport { SiegeLieuSuiviGridDto, SiegeLieuSuiviSearchBase, SiegeSocialSuiviApi } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { EditButton, LinkButton, SearchTablePage, ViewButton } from \"../../../../../../components\";\nimport { useAuth } from \"../../../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface ILieuFormationSuiviListProps {}\n\nexport const LieuFormationSuiviList: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const idlieuFormation = React.useMemo(() => +id, [id]);\n const { search } = useLocation();\n const api = useApiService(SiegeSocialSuiviApi);\n const { user } = useAuth();\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: SiegeLieuSuiviGridDto) => (\n \n \n history.push(\n `${ERoutes.lieuFormation}/${idlieuFormation}/suivi/view/${row.idsiegeSocialLieuFormationSuivi}${search}`\n )\n }\n />\n\n {row.idrealisateurSuivi === user.iduser && (\n \n history.push(\n `${ERoutes.lieuFormation}/${idlieuFormation}/suivi/edit/${row.idsiegeSocialLieuFormationSuivi}${search}`\n )\n }\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.DateSuivi),\n fieldName: \"dateSuivi\"\n },\n {\n header: () => t(ETLCodes.RealisateurSuivi),\n fieldName: \"realisateurSuivi\",\n render: (row: SiegeLieuSuiviGridDto) => (\n window.open(`#${ERoutes.users}/${row.idrealisateurSuivi}/detail/view`, \"_blank\")}\n />\n )\n },\n {\n header: () => t(ETLCodes.Encodeur),\n fieldName: \"encodeur\",\n render: (row: SiegeLieuSuiviGridDto) => (\n window.open(`#${ERoutes.users}/${row.idencodeur}/detail/view`, \"_blank\")}\n />\n )\n },\n {\n header: () => t(ETLCodes.TypeSuivi),\n fieldName: \"typeSuivi\"\n },\n {\n header: () => t(ETLCodes.ContenuCache),\n fieldName: \"hiddenContent\"\n }\n ],\n [history, idlieuFormation, search, t, user.iduser]\n );\n\n const getCriteriasFunc = React.useCallback(\n () => api.siegeSocialSuiviGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(SiegeSocialSuiviApi);\n const lastAbortController = React.useRef();\n const searchFunc = React.useCallback(\n (nextSearch?: SiegeLieuSuiviSearchBase) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.siegeSocialSuiviBaseSearch({ SiegeLieuSuiviSearchBase: { ...nextSearch, idlieuFormation } });\n },\n [apiFactory, idlieuFormation]\n );\n\n const onAddSuivi = React.useCallback(() => {\n history.push(`${ERoutes.lieuFormation}/${idlieuFormation}/suivi/edit/-1${search}`);\n }, [history, idlieuFormation, search]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Checkbox, Icon, Spinner, Tooltip } from \"@blueprintjs/core\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport {\n EBooleanSearchTypes,\n ELieuFormationAgrementStatut,\n LieuFormationAgrementApi,\n LieuFormationAgrementSearchDto,\n OffreDemandeApi,\n OffreDemandeGridDto\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { CircleColumn, CustomBulletList, EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useEventsContext } from \"../../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTheme, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport interface ILieuFormationOffresProps {}\n\nexport const LieuFormationOffres: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { theme } = useTheme();\n const api = useApiService(OffreDemandeApi);\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n\n const apiFactory = useAbortableApiServiceFactory(OffreDemandeApi);\n const lastAbortController = React.useRef();\n const searchFunction = React.useCallback(\n (sObj?: LieuFormationAgrementSearchDto) => {\n sObj.idlieuFormation = +id;\n sObj.excludedStatuts = [ELieuFormationAgrementStatut.Suspendu, ELieuFormationAgrementStatut.Retrait];\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.offreDemandeBaseSearch({ OffreDemandeSearchDto: sObj });\n },\n [apiFactory, id]\n );\n\n const computeType = React.useCallback(\n (row: OffreDemandeGridDto) => {\n if (row.agrementPartielA && row.agrementPartielB) return t(ETLCodes.PartielAB);\n if (row.agrementPartielA) return t(ETLCodes.PartielA);\n if (row.agrementPartielB) return t(ETLCodes.PartielB);\n return t(ETLCodes.Complet);\n },\n [t]\n );\n\n const [updateOffreLoading, setUpdateOffreLoading] = React.useState(0);\n const { dispatchEvent } = useEventsContext();\n const lfAgrementApi = useApiService(LieuFormationAgrementApi);\n const updateOffre = React.useCallback(\n async (row: OffreDemandeGridDto) => {\n setUpdateOffreLoading(row.idlieuFormationAgrement);\n await lfAgrementApi.lieuFormationAgrementUpdateOffre({\n idlieuFormationAgrement: row.idlieuFormationAgrement,\n newValue: !row.offreActive\n });\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n setUpdateOffreLoading(0);\n },\n [dispatchEvent, lfAgrementApi]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: OffreDemandeGridDto) => (\n \n window.open(`#${ERoutes.offre}/${row.idlieuFormationAgrementOffre}/detail/view`)}\n />\n window.open(`#${ERoutes.offre}/${row.idlieuFormationAgrementOffre}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.LieuFormation),\n fieldName: \"nomLieuFormation\"\n },\n {\n header: () => t(ETLCodes.Enseigne),\n fieldName: \"enseigneLieuFormation\"\n },\n {\n header: () => t(ETLCodes.Active),\n fieldName: \"offreActive\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: OffreDemandeGridDto) =>\n updateOffreLoading === row.idlieuFormationAgrement ? (\n \n ) : (\n {\n await updateOffre(row);\n }}\n disabled={updateOffreLoading > 0}\n />\n )\n },\n {\n header: () => (\n \n {t(ETLCodes.C)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"capaciteAtteinte\",\n autoFitContent: true,\n render: (row: OffreDemandeGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.CodeMetier),\n fieldName: \"codeMetier\"\n },\n {\n header: () => t(ETLCodes.NomMetier),\n fieldName: \"nomMetier\"\n },\n {\n header: () => t(ETLCodes.Stade),\n fieldName: \"nomStade\"\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"statut\",\n render: row => tUnsafe(`StatutAgrement_${row.statut}`)\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"type\",\n render: (row: OffreDemandeGridDto) => computeType(row)\n },\n {\n header: () => t(ETLCodes.DateDecision),\n fieldName: \"dateDecision\"\n }\n ],\n [computeType, t, tUnsafe, theme.dangerColor, theme.sucessColor, updateOffre, updateOffreLoading]\n );\n\n const getCriteria = React.useCallback(() => api.offreDemandeGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport { InstitutionApprenantLiesSearchDto, InstitutionApi, InstitutionApprenantLiesGridDto } from \"../../../../api\";\nimport { ApprenantTooltip } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nexport interface IInstitutionAppernantLiesListPageProps {}\n\nexport const InstitutionAppernantLiesListPage: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string; state: string }>();\n const idInstitution = React.useMemo(() => +id, [id]);\n const { t } = useTl();\n const api = useApiService(InstitutionApi);\n\n const tableState = useGridState({\n sortKeys: { nom: \"ASC\" },\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const searchFunction = React.useCallback(\n (sObj?: InstitutionApprenantLiesSearchDto) => {\n sObj.idinstitution = +idInstitution;\n return api.institutionGetApprenantLies({ InstitutionApprenantLiesSearchDto: sObj });\n },\n [api, idInstitution]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const { totalCount } = tableState;\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Identifiant),\n computed: true,\n fieldName: \"info\",\n render: (value: InstitutionApprenantLiesGridDto) => ,\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n }\n ],\n [t]\n );\n\n return (\n
\n \n
\n );\n};\n","import { FGCustomPanel, FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation } from \"react-router\";\nimport { InstitutionApi, InstitutionEditDtoFromJSON } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { SmallFormGenerator, CommuneSelect, LocaliteSelect } from \"../../../../components\";\nimport { useTl, useApiService, useCrudApi, useTabMessage } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport * as Yup from \"yup\";\n\nexport interface IInstitutionDetailProps {\n idinstitution: string;\n editMode: boolean;\n}\nexport const InstitutionDetail: React.FunctionComponent = ({ idinstitution, editMode }) => {\n const { t } = useTl();\n const api = useApiService(InstitutionApi);\n const history = useHistory();\n\n const { search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { sendMessage } = useTabMessage(cfs);\n\n const { data, saving, saveItem, deleting, deleteItem, loading, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n +idinstitution <= 0 ? InstitutionEditDtoFromJSON({}) : api.institutionGetInstitution({ id: +idinstitution }),\n saveApiFn: values => api.institutionSaveInstitution({ InstitutionEditDto: values }),\n deleteApiFn: values => api.institutionDeleteInstitution({ id: values.idinstitution }),\n onDeletedRoute: () => ERoutes.institution,\n onSaved: d => sendMessage(d.idinstitution, true),\n onSavedRoute: d => `${ERoutes.institution}/${d.idinstitution}/detail/edit`\n }),\n [api, idinstitution, sendMessage]\n )\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n denomination: Yup.string().required(t(ETLCodes.Required)),\n telephone: Yup.string().test(\"telephone-regex\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (value) {\n const regex = /^[+\\d/\\-.]*$/gm;\n const match = value.match(regex);\n if (!match) {\n return false;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }),\n telephonePrive: Yup.string().test(\"telephone-prive-regex\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (value) {\n const regex = /^[+\\d/\\-.]*$/gm;\n const match = value.match(regex);\n if (!match) {\n return false;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }),\n gsm: Yup.string().test(\"gsm-regex\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (value) {\n const regex = /^[+\\d/\\-.]*$/gm;\n const match = value.match(regex);\n if (!match) {\n return false;\n } else {\n return true;\n }\n } else {\n return true;\n }\n })\n });\n }, [t]);\n\n return (\n = 0}\n onCancel={() => history.push(ERoutes.institution)}\n validationErrors={validationErrors}\n >\n \n \n \n\n \n \n\n \n \n \n {ctx => (\n \n )}\n \n \n \n {ctx => (\n \n )}\n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { InstitutionApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { InstitutionAppernantLiesListPage } from \"./InstitutionApprenantLiesListPage\";\nimport { InstitutionDetail } from \"./InstitutionDetail\";\n\ninterface IInstitutionItemPageProps {}\n\nexport const InstitutionItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(InstitutionApi);\n const [displayName] = useApiEffect(() => api.institutionGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.institution}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n }\n disabled={+id <= 0}\n />\n \n \n );\n};\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { InstitutionApi, InstitutionGridDto, InstitutionSearchDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IInstitutionSearchPageProps {}\n\nexport const InstitutionSearchPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(InstitutionApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: InstitutionGridDto) => (\n \n history.push(`${ERoutes.institution}/${row.idinstitution}/detail/view`)}\n />\n history.push(`${ERoutes.institution}/${row.idinstitution}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.DenominationSociale),\n fieldName: \"denomination\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.institution}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.institutionGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(InstitutionApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: InstitutionSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.institutionBaseSearch({ InstitutionSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Icon, Tooltip } from \"@blueprintjs/core\";\nimport { format, isAfter, startOfDay } from \"date-fns\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport { ENumericSearchType, EOrigineSuivi, SuiviApi, SuiviGlobalSearchDto, SuiviGridDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { CustomBulletList, EditButton, LinkButton, SearchTablePage, ViewButton } from \"../../../../components\";\nimport { useAuth } from \"../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTheme, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport interface SuiviSearchPageProps {}\n\nexport const SuiviSearchPage: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const history = useHistory();\n const api = useApiService(SuiviApi);\n const { user } = useAuth();\n const { theme } = useTheme();\n\n const getActionValue = React.useCallback((row: SuiviGridDto) => {\n if (!row.actionDateRealisation && !row.actionDateEcheance) return null;\n return format(!!row.actionDateRealisation ? row.actionDateRealisation : row.actionDateEcheance, \"dd-MM-yyyy\");\n }, []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: SuiviGridDto) =>\n ((row.fromHope && user.ifapmeSide.includes(\"Hope\")) ||\n (!row.fromHope && user.ifapmeSide.includes(\"Walter\"))) && (\n \n \n history.push(\n row.fromHope\n ? `${ERoutes.suivi}/${row.idsuivi}/detail/view`\n : `${ERoutes.apprenant}/${row.idapprenant}/suiviApprenant/${row.idsuivi}/view/walter`\n )\n }\n />\n\n {row.idrealisateurSuivi === user.iduser && (\n \n history.push(\n row.fromHope\n ? `${ERoutes.suivi}/${row.idsuivi}/detail/edit`\n : `${ERoutes.apprenant}/${row.idapprenant}/suiviApprenant/${row.idsuivi}/edit/walter`\n )\n }\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Source),\n fieldName: \"source\",\n render: (row: SuiviGridDto) => (row.origineSuivi === EOrigineSuivi.Services ? row.service : row.centre)\n },\n {\n header: () => t(ETLCodes.DateSuivi),\n fieldName: \"dateSuivi\"\n },\n {\n header: () => t(ETLCodes.RealisateurSuivi),\n fieldName: \"realisateurSuivi\",\n render: (row: SuiviGridDto) =>\n row.origineSuivi === EOrigineSuivi.Services ? (\n window.open(`#${ERoutes.users}/${row.idrealisateurSuivi}/detail/view`, \"_blank\")}\n />\n ) : (\n row.realisateurSuivi\n )\n },\n {\n header: () => t(ETLCodes.Encodeur),\n fieldName: \"encodeur\",\n render: (row: SuiviGridDto) => (\n window.open(`#${ERoutes.users}/${row.idencodeur}/detail/view`, \"_blank\")}\n />\n )\n },\n {\n header: () => t(ETLCodes.Apprenant),\n fieldName: \"apprenant\",\n render: (row: SuiviGridDto) => (\n window.open(`#${ERoutes.apprenant}/${row.idapprenant}/signaletique/view`, \"_blank\")}\n />\n )\n },\n {\n header: () => t(ETLCodes.TypeSuivi),\n fieldName: \"typeSuivi\"\n },\n {\n header: () => t(ETLCodes.SousTypeSuivi),\n fieldName: \"sousTypeSuivi\"\n },\n {\n header: () => (\n \n {t(ETLCodes.ActionARealiser)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"actionARealiser\",\n render: (row: SuiviGridDto) =>\n (!!row.actionDateRealisation || row.actionDateEcheance) && (\n \n \n {getActionValue(row)}\n \n )\n }\n ],\n [getActionValue, history, t, theme.dangerColor, theme.sucessColor, theme.warningColor, user.iduser, user.ifapmeSide]\n );\n\n const getCriteriasFunc = React.useCallback(async () => {\n let criterias = await api.suiviGetSearchCriterias({ includeListsValues: true });\n criterias = criterias.map(c => {\n if (c.criteria === \"SuiviAction\") {\n c.listValues.forEach(v => (v.displayValue = tUnsafe(\"SuiviAction_\" + v.displayValue)));\n }\n return c;\n });\n return criterias;\n }, [api, tUnsafe]);\n\n const apiFactory = useAbortableApiServiceFactory(SuiviApi);\n const lastAbortController = React.useRef();\n const searchFunc = React.useCallback(\n (nextSearch?: SuiviGlobalSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.suiviBaseSearch({ SuiviGlobalSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Button, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport { add, endOfDay, isAfter } from \"date-fns\";\nimport { FGCustomInput, FGCustomPanel, FGTextAreaInput, FGTextInput, FieldGroup, useFGFormik } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n ContratApi,\n DashboardApi,\n EContentHidingMode,\n EIfapmeSide,\n ELevelName,\n EStatutContrat,\n ETypeContrat,\n LieuFormationApi,\n MetierApi,\n SuiviApi,\n SuiviHopeEditDto,\n SuiviHopeEditDtoFromJSON\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n LinkButton,\n SmallFormGenerator,\n ViewButton\n} from \"../../../../components\";\nimport { useAuth, useDialog } from \"../../../../contexts\";\nimport { useApiService, useCrudApi, useTabMessage, useTheme, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { Guid } from \"../../../../utils/guid\";\nimport { SuiviActionDialog } from \"../../apprenant/item/suiviApprenant/suiviAction/SuiviActionDialog\";\n\nconst StatutContainer = styled.div<{ color: string }>`\n display: flex;\n justify-content: center;\n > span {\n font-weight: bold;\n color: ${props => props.color};\n font-size: 14pt;\n }\n`;\n\nconst RadioReadonlyContainer = styled.div`\n height: 30px;\n display: flex;\n align-items: center;\n`;\n\nexport interface SuiviDetailProps {\n idsuivi: string;\n editMode: boolean;\n}\n\nexport const SuiviDetail: React.FunctionComponent = ({ idsuivi, editMode }) => {\n const { t } = useTl();\n const api = useApiService(SuiviApi);\n const metierApi = useApiService(MetierApi);\n const lieuFormationApi = useApiService(LieuFormationApi);\n const contratApi = useApiService(ContratApi);\n const history = useHistory();\n const { search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { messageValue, clearMessageValue } = useTabMessage(cfs);\n const identifier = React.useMemo(() => Guid.newGuid(), []);\n const { sendMessage } = useTabMessage(identifier);\n const { user } = useAuth();\n const { ifapmeSide, theme } = useTheme();\n const isHope = React.useMemo(() => ifapmeSide === \"hope\", [ifapmeSide]);\n const [lieurencontres, lrLoading] = useReferential(a => a.referentialGetLieuRencontres(), true, []);\n const [modes, mLoading] = useReferential(a => a.referentialGetModes(), true, []);\n const [dialogOpen, setDialogOpen] = React.useState(messageValue === \"FromDashboard\");\n\n const isCop = React.useMemo(() => user?.hopeMainLevelName === ELevelName.COP, [user?.hopeMainLevelName]);\n const isCalc = React.useMemo(() => user?.hopeMainLevelName === ELevelName.CALC, [user?.hopeMainLevelName]);\n\n const { data, saving, saveItem, deleting, deleteItem, loading } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n +idsuivi <= 0\n ? SuiviHopeEditDtoFromJSON({ iduserService: user.iduser, contentHidingMode: EContentHidingMode.NONE })\n : api.suiviGetSuiviHope({ id: +idsuivi, idapprenant: 0 }),\n saveApiFn: values => api.suiviSaveSuiviHope({ SuiviHopeEditDto: values }),\n deleteApiFn: values => api.suiviDeleteSuiviHope({ id: values.idsuivi }),\n onDeletedRoute: () => ERoutes.suivi,\n onSaved: d => sendMessage(d.idsuivi, true),\n onSavedRoute: d => `${ERoutes.suivi}/${d.idsuivi}/detail/edit`\n }),\n [api, idsuivi, sendMessage, user.iduser]\n )\n );\n\n React.useEffect(() => {\n if (!!messageValue && messageValue === \"FromDashboard\" && !!data && !loading) {\n setDialogOpen(true);\n clearMessageValue();\n }\n }, [clearMessageValue, data, loading, messageValue]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n dateSuivi: Yup.date()\n .required(t(ETLCodes.Required))\n .max(endOfDay(add(new Date(), { years: 1 })), t(ETLCodes.DateCannotBeGreaterThan1YearInFurture)),\n idapprenant: Yup.number().required(t(ETLCodes.Required)),\n idservice: Yup.number().required(t(ETLCodes.Required)),\n iduserService: Yup.number().required(t(ETLCodes.Required)),\n idtypeSuivi: Yup.number().required(t(ETLCodes.Required)),\n idsousTypeSuivi: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const formik = useFGFormik({\n initialValues: data,\n onSubmit: saveItem,\n validationSchema: FormSchema\n });\n\n const [sousTypeSuivis, stsLoading, , rawSousTypeSuivis] = useReferential(\n a =>\n a.referentialGetSousTypeSuivis({\n idtypeSuivi: formik?.values?.idtypeSuivi,\n idsousTypeSuivi: data?.idsousTypeSuivi\n }),\n true,\n [formik?.values?.idtypeSuivi, data?.idsousTypeSuivi]\n );\n const [typeSuivis, tsLoading] = useReferential(\n a => a.referentialGetTypeSuivis({ side: EIfapmeSide.Hope, idtypeSuivi: data?.idtypeSuivi }),\n true,\n [data?.idtypeSuivi]\n );\n const [decisionCommissionTutelle, dctLoading] = useReferential(\n a => a.referentialGetDecisionCommissionTutelles({ id: data?.iddecisionCommissionTutelle }),\n true,\n [data?.iddecisionCommissionTutelle]\n );\n const [serviceUsers, suLoading] = useReferential(\n a =>\n a.referentialGetServiceUsers({\n request_body: !!formik?.values?.idservice ? [formik?.values?.idservice] : [],\n currentId: formik?.values?.iduserService\n }),\n true,\n [formik?.values?.idservice, formik?.values?.iduserService]\n );\n\n const [services, sLoading] = useReferential(\n a =>\n a.referentialGetServiceTutelle({\n userFilter: data?.creationUser === user.iduser,\n currentId: formik?.values?.idservice\n }),\n true,\n [data?.creationUser, user?.iduser, formik?.values?.idservice]\n );\n const [apprenantContrats, acLoading, , rawContrats] = useReferential(\n a =>\n a.referentialGetApprenantContrats({\n idApprenant: formik?.values?.idapprenant,\n ETypeContrat: [\n ETypeContrat.CC,\n ETypeContrat.CA,\n ETypeContrat.CS,\n ETypeContrat.CF,\n ETypeContrat.DM,\n ETypeContrat.JI,\n ETypeContrat.PP\n ]\n }),\n true,\n [formik?.values?.idapprenant]\n );\n\n React.useEffect(() => {\n if (rawContrats?.length > 0 && !!formik?.values && !formik?.values?.idcontrat && +idsuivi <= 0) {\n let c = rawContrats.find(c => c.keyValue === EStatutContrat.EnCours);\n if (!c) {\n const maxId = Math.max.apply(rawContrats.map(c => +c.idValue));\n c = rawContrats.find(c => +c.idValue === maxId);\n }\n if (c) formik.setFieldValue(\"idcontrat\", c.idValue);\n }\n }, [formik, idsuivi, rawContrats]);\n\n const fetchContratInfos = React.useCallback(async () => {\n if (!formik?.values?.idcontrat) return null;\n return await contratApi.contratGetContratInfosForSuivi({ idcontrat: formik.values.idcontrat });\n }, [contratApi, formik?.values?.idcontrat]);\n const { data: contratInfos } = useQuery([\"suivi-contrat-info\", formik?.values?.idcontrat], fetchContratInfos);\n\n const fetchMetierDisplayName = React.useCallback(async () => {\n if (!contratInfos?.idmetier) return \"\";\n return await metierApi.metierGetDisplayName({ id: contratInfos?.idmetier });\n }, [contratInfos?.idmetier, metierApi]);\n const { data: metierName, isFetching: mnLoading } = useQuery(\n [\"metier-display-name\", contratInfos?.idmetier],\n fetchMetierDisplayName\n );\n\n const fetchLfDisplayName = React.useCallback(async () => {\n if (!contratInfos?.idlieuFormation) return \"\";\n return await lieuFormationApi.lieuFormationGetDisplayName({ id: contratInfos?.idlieuFormation });\n }, [contratInfos?.idlieuFormation, lieuFormationApi]);\n const { data: lfName, isFetching: lfLoading } = useQuery(\n [\"lieu-formation-display-name\", contratInfos?.idlieuFormation],\n fetchLfDisplayName\n );\n\n React.useEffect(() => {\n if (formik?.values?.action && !formik?.initialValues?.action) {\n setDialogOpen(true);\n }\n }, [formik?.initialValues?.action, formik?.values?.action]);\n\n React.useEffect(() => {\n if (!formik?.values?.action && !!formik?.values?.suiviAction) {\n formik.setFieldValue(\"suiviAction\", null);\n }\n }, [formik]);\n\n const dashboardApi = useApiService(DashboardApi);\n const [loadingMarquage, setLoadingMarquage] = React.useState(false);\n const { showDialogPromise } = useDialog();\n const marquerCommeFait = React.useCallback(\n async (idsuivi: number) => {\n const res = await showDialogPromise({\n title: t(ETLCodes.MarquerSuiviCommeFaitConfirmTitle),\n message: t(ETLCodes.MarquerSuiviCommeFaitConfirmMessage)\n });\n if (res === \"yes\") {\n setLoadingMarquage(true);\n await dashboardApi.dashboardMarquerSuiviFait({\n idsuivi,\n ifapmeSide: EIfapmeSide.Hope\n });\n setLoadingMarquage(false);\n history.push(ERoutes.suivi);\n }\n },\n [dashboardApi, history, showDialogPromise, t]\n );\n\n const statutColor = React.useMemo(\n () =>\n !!formik?.values?.suiviAction?.dateRealisation\n ? theme.sucessColor\n : isAfter(formik?.values?.suiviAction?.dateEcheance, new Date())\n ? theme.warningColor\n : theme.dangerColor,\n [\n formik?.values?.suiviAction?.dateEcheance,\n formik?.values?.suiviAction?.dateRealisation,\n theme.dangerColor,\n theme.sucessColor,\n theme.warningColor\n ]\n );\n\n const statutText = React.useMemo(\n () =>\n t(\n !!formik?.values?.suiviAction?.dateRealisation\n ? ETLCodes.ActionRealisee\n : isAfter(formik?.values?.suiviAction?.dateEcheance, new Date())\n ? ETLCodes.ActionNonRealisee\n : ETLCodes.DateEcheanceDepassee\n ),\n [formik?.values?.suiviAction?.dateEcheance, formik?.values?.suiviAction?.dateRealisation, t]\n );\n\n const actionIsRealisee = React.useMemo(() => !!formik?.values?.suiviAction?.dateRealisation, [\n formik?.values?.suiviAction?.dateRealisation\n ]);\n\n const getROHidingMode = React.useCallback(\n (contentHidingMode: EContentHidingMode) => {\n switch (contentHidingMode) {\n case EContentHidingMode.NONE:\n return t(ETLCodes.Personne);\n case EContentHidingMode.CENTRES:\n return t(ETLCodes.Centres);\n case EContentHidingMode.ALL:\n return t(ETLCodes.TousSaufCopCalc);\n }\n },\n [t]\n );\n\n const contenuVisible = React.useCallback(\n ctx =>\n ctx?.formik?.values?.contentHidingMode === EContentHidingMode.NONE ||\n ctx?.formik?.values?.creationUser === user.iduser ||\n (isHope && ctx?.formik?.values?.contentHidingMode === EContentHidingMode.CENTRES) ||\n isCop ||\n isCalc,\n [isCalc, isCop, isHope, user.iduser]\n );\n\n return (\n 0 && !actionIsRealisee}\n onCancel={() => history.push(ERoutes.suivi)}\n minLabelWidth={150}\n editable={data?.creationUser === user.iduser || data?.iduserService === user.iduser || +idsuivi <= 0}\n additionalRightButtons={ctx =>\n user?.iduser === ctx?.formik?.values?.suiviAction?.idcollaborateurService &&\n +idsuivi > 0 && (\n marquerCommeFait(ctx?.formik?.values?.idsuivi)}\n loading={loadingMarquage}\n />\n )\n }\n >\n {!!formik?.values?.suiviAction && (\n \n {statutText}\n \n )}\n \n \n \n \n 0} />\n \n \n {ctx => (\n \n window.open(\n `#${ERoutes.apprenant}/${ctx?.formik?.values?.idapprenant}/signaletique/view`,\n \"_blank\"\n )\n }\n />\n }\n />\n )}\n \n \n metierName}\n loading={mnLoading}\n />\n lfName}\n loading={lfLoading}\n />\n \n \n {ctx => (\n \n )}\n \n \n !!ctx?.formik?.values?.idsousTypeSuivi &&\n !!rawSousTypeSuivis &&\n +ctx?.formik?.values?.idsousTypeSuivi ===\n +rawSousTypeSuivis.find(s => s.keyValue === \"TUTELLE_25\")?.idValue // Commission de tutelle\n }\n />\n \n \n \n {ctx => (\n <>\n \n {ctx =>\n ctx?.editMode ? (\n ctx.formik.setFieldValue(\"contentHidingMode\", e.currentTarget.value)}\n >\n \n \n \n \n ) : (\n \n {getROHidingMode(ctx?.formik?.values?.contentHidingMode)}\n \n )\n }\n \n {\n setDialogOpen(true);\n }}\n />\n )\n }\n />\n {\n setDialogOpen(false);\n if (toSave) {\n ctx?.formik.setFieldValue(\"suiviAction\", toSave);\n } else if (!ctx?.formik?.values?.suiviAction) {\n ctx.formik.setFieldValue(\"action\", false);\n }\n }}\n enveloppeId={0}\n editMode={ctx?.editMode && !actionIsRealisee}\n editable={\n (data?.creationUser === user.iduser || data?.iduserService === user.iduser || +idsuivi <= 0) &&\n !actionIsRealisee\n }\n />\n \n )}\n \n \n \n {ctx => (\n \n )}\n \n \n \n );\n};\n","import * as React from \"react\";\nimport { Tab } from \"@blueprintjs/core\";\nimport { useParams, useHistory } from \"react-router\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { PageBase, ProtectedTabs, BackButton } from \"../../../../components\";\nimport { useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { SuiviDetail } from \"./SuiviDetail\";\nimport { ApprenantMultipleSuiviPage, SuiviDocuments } from \"..\";\n\nexport interface SuiviItemPageProps {}\n\nexport const SuiviItemPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n return (\n \n history.push(`${ERoutes.suivi}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n } disabled={+id <= 0} />\n }\n hidden={tab !== \"multiple\"}\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { SuiviApprenantForm } from \"../..\";\nimport { SuiviApi, SuiviHopeMultipleEditDtoFromJSON } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { useAuth, useRouteParamsContext } from \"../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IApprenantMultipleSuiviPageProps {}\n\nexport const ApprenantMultipleSuiviPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { user } = useAuth();\n const history = useHistory();\n const api = useApiService(SuiviApi);\n const { popSelectedApprenantIds } = useRouteParamsContext();\n const [selectedIds] = React.useState(() => popSelectedApprenantIds());\n\n const { data, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return SuiviHopeMultipleEditDtoFromJSON({\n idsuivi: 0,\n idsApprenant: selectedIds ?? [],\n iduserService: user.iduser,\n encodeur: user.nom + \" \" + user.prenom,\n dateSuivi: new Date()\n });\n },\n saveApiFn: d => api.suiviSaveSuiviHopeMultiple({ SuiviHopeMultipleEditDto: d }),\n onSavedRoute: d => ERoutes.apprenant\n }),\n [selectedIds, user.iduser, user.nom, user.prenom, api]\n )\n );\n\n return (\n history.push(ERoutes.suivi)}\n validationErrors={validationErrors}\n loading={false}\n fieldsetTitle={t(ETLCodes.CreateSuiviForNbApprenants, { count: selectedIds?.length ?? 0 })}\n />\n );\n};\n","import { ButtonContainer, IDataTableColumn, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport { SuiviDocumentEditDialog, SuiviDocumentUploadDialog } from \"../../..\";\nimport { SuiviApi, SuiviFichierApi, SuiviFichierGridDto, SuiviFichierSearchDto } from \"../../../../../api\";\nimport { DeleteButton, DownloadButton, EditButton, SearchTablePage } from \"../../../../../components\";\nimport { useDialog, useEventsContext } from \"../../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { exportFile } from \"../../../../../utils\";\n\nexport interface ISuiviDocumentsProps {}\n\nexport const SuiviDocuments: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(SuiviApi);\n const searchApi = useApiService(SuiviFichierApi);\n const { id } = useParams<{ id: string }>();\n const [currentSuiviFichierId, setCurrentSuiviFichierId] = React.useState(null);\n const [uploadDialoOpen, setUploadDialoOpen] = React.useState(false);\n const [rowLoading, setRowLoading] = React.useState(null);\n\n const { dispatchEvent } = useEventsContext();\n const { showDialogPromise } = useDialog();\n const deleteFichier = React.useCallback(\n async (idsuiviFichier: number) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result === \"yes\") {\n try {\n setRowLoading(idsuiviFichier);\n await api.suiviDeleteSuiviFichier({ id: idsuiviFichier });\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n } catch {\n showError(t(ETLCodes.ErrorWhileDeletingFile));\n } finally {\n setRowLoading(null);\n }\n }\n },\n [api, dispatchEvent, showDialogPromise, t]\n );\n\n const downloadFichier = React.useCallback(\n async (idsuiviFichier: number) => {\n try {\n setRowLoading(idsuiviFichier);\n const file = await api.suiviDownloadSuiviFichier({ id: idsuiviFichier });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n } finally {\n setRowLoading(null);\n }\n },\n [api, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: SuiviFichierGridDto) => (\n \n setCurrentSuiviFichierId(row.idsuiviFichier)}\n loading={rowLoading === row.idsuiviFichier}\n disabled={!!rowLoading && rowLoading !== row.idsuiviFichier}\n />\n downloadFichier(row.idsuiviFichier)}\n loading={rowLoading === row.idsuiviFichier}\n disabled={!!rowLoading && rowLoading !== row.idsuiviFichier}\n />\n deleteFichier(row.idsuiviFichier)}\n loading={rowLoading === row.idsuiviFichier}\n disabled={!!rowLoading && rowLoading !== row.idsuiviFichier}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.NomFichier),\n fieldName: \"fileName\"\n },\n {\n header: () => t(ETLCodes.DateUpload),\n fieldName: \"uploadDate\"\n },\n {\n header: () => t(ETLCodes.UtilisateurUpload),\n fieldName: \"creationUserName\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"typeSuiviFichier\"\n }\n ],\n [deleteFichier, downloadFichier, rowLoading, t]\n );\n\n const getSearchCriterias = React.useCallback(\n () => searchApi.suiviFichierGetSearchCriterias({ includeListsValues: true }),\n [searchApi]\n );\n\n const apiFactory = useAbortableApiServiceFactory(SuiviFichierApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: SuiviFichierSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.suiviFichierBaseSearch({ SuiviFichierSearchDto: { ...nextSearch, idsuivi: +id } });\n },\n [apiFactory, id]\n );\n\n const onClose = React.useCallback(\n (refresh?: boolean) => {\n setCurrentSuiviFichierId(null);\n setUploadDialoOpen(false);\n if (refresh) {\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }\n },\n [dispatchEvent]\n );\n\n const onAdd = React.useCallback(() => {\n setUploadDialoOpen(true);\n }, []);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n \n {uploadDialoOpen && }\n {!!currentSuiviFichierId && }\n \n );\n};\n","import { Checkbox, Colors, Intent, Spinner } from \"@blueprintjs/core\";\nimport { ButtonContainer, IDataTableColumn, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport { EBooleanSearchTypes, TuteurApi, TuteurGridDto, TuteurSearchDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { AddButton, EditButton, SearchTablePage, SmsButton, ViewButton } from \"../../../../components\";\nimport { useRouteParamsContext } from \"../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface ITuteurListPageProps {}\n\nexport const TuteurListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(TuteurApi);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const lastSearchObject = React.useRef();\n const { pushSmsRecipientIds, pushSmsRecipientType } = useRouteParamsContext();\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n\n const apiFactory = useAbortableApiServiceFactory(TuteurApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: TuteurSearchDto) => {\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject?.current)) {\n lastSearchObject.current = nextSearch;\n }\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.tuteurBaseSearch({ TuteurSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const onAddTuteur = React.useCallback(() => {\n history.push(`${ERoutes.tuteur}/-1/detail/checkDoublons`);\n }, [history]);\n\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n api\n .tuteurSearchTuteurIds({\n TuteurSearchDto: { ...lastSearchObject?.current, forceSkip: 0, forceTake: 999999 }\n })\n .then(allIds => {\n if (allIds.length === selectedIDs.length) {\n setSelectedIDs([]);\n setNbReturnedIds(0);\n } else {\n setSelectedIDs(allIds);\n setNbReturnedIds(allIds.length);\n }\n setSelectAllLoading(false);\n });\n }, [api, selectedIDs.length]);\n\n const toggleSelection = React.useCallback(\n (item: TuteurGridDto) => {\n if (!selectedIDs.includes(item.idtuteur)) {\n setSelectedIDs(ids => [...ids, item.idtuteur]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idtuteur));\n }\n },\n [selectedIDs]\n );\n\n const sendSms = React.useCallback(() => {\n if (selectedIDs.length > 0) {\n pushSmsRecipientIds(selectedIDs);\n // pushSmsRecipientType(ETypeDestinataireSms.Tuteur);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [history, pushSmsRecipientIds, selectedIDs, t]);\n\n const sendSmsSingle = React.useCallback(\n (id: number) => {\n pushSmsRecipientIds([id]);\n // pushSmsRecipientType(ETypeDestinataireSms.Tuteur);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n },\n [history, pushSmsRecipientIds]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\n ),\n render: (item: TuteurGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: TuteurGridDto) => (\n \n history.push(`${ERoutes.tuteur}/${row.idtuteur}/detail/view`)} />\n history.push(`${ERoutes.tuteur}/${row.idtuteur}/detail/edit`)} />\n \n )\n },\n {\n autoFitContent: true,\n header: () => t(ETLCodes.C),\n fieldName: \"c\"\n },\n {\n autoFitContent: true,\n header: () => t(ETLCodes.CF),\n fieldName: \"cf\"\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DernierLieuFormation),\n fieldName: \"lastLieuFormationNom\",\n computed: true\n },\n {\n header: () => t(ETLCodes.EnseigneDernierLieuFormation),\n fieldName: \"lastLieuFormationEnseigne\",\n computed: true\n },\n {\n header: () => t(ETLCodes.Gsm),\n fieldName: \"gsm.numero\",\n computed: true,\n render: (value: TuteurGridDto) => (\n sendSmsSingle(value.idtuteur)} />\n )\n },\n {\n header: () => t(ETLCodes.Email),\n fieldName: \"email.adresseEmail\",\n computed: true\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.LocaliteNaissance),\n fieldName: \"localitenaissance\"\n }\n ],\n [history, nbReturnedIds, selectAll, selectAllLoading, selectedIDs, sendSmsSingle, t, toggleSelection]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n const getCriteria = React.useCallback(() => api.tuteurGetSearchCriterias({ includeListsValues: true }), [api]);\n\n return (\n {\n e.stopPropagation();\n onAddTuteur();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n }\n keyFieldName=\"idtuteur\"\n buttons={[\n {\n icon: \"chat\",\n text: t(ETLCodes.SendAnSMSToSelected),\n onClick: sendSms,\n disabled: true\n }\n ]}\n customizeRowStyle={(row: TuteurGridDto) => css`\n & * {\n color: ${!row.actif ? Colors.RED3 + \" !important\" : null};\n }\n `}\n />\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\n\nimport { TuteurContrats, TuteurDetailSwitch, TuteurHistory, TuteurLieuxFormation } from \".\";\nimport { TuteurApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useAuth } from \"../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { AcquisSwitch } from \"../../apprenant/item/acquis/AcquisSwitch\";\n\nexport interface ITuteurItemPageProps {}\n\nexport const TuteurItemPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, tab } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n const { hasPermission } = useAuth();\n const { search } = useLocation();\n\n const api = useApiService(TuteurApi);\n const fetchIdPersonne = React.useCallback(() => {\n return api.tuteurGetIdPersonne({ idtuteur: +id });\n }, [api, id]);\n const { data: idpersonne } = useQuery([\"idpersonne-tuteur\", id], fetchIdPersonne);\n\n const fetchDisplayName = React.useCallback(() => {\n return api.tuteurGetDisplayName({ id: +id });\n }, [api, id]);\n const { data: displayName } = useQuery([\"tuteur-display-name\", id], fetchDisplayName);\n\n const state = React.useMemo(() => (hasPermission(\"tuteur\", \"RW\", tab) ? \"edit\" : \"view\"), [hasPermission, tab]);\n\n return (\n \n history.push(`${ERoutes.tuteur}/${id}/${newTabId}/${state}${search}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n } />\n } />\n }\n />\n } />\n \n \n );\n};\n","import * as React from \"react\";\nimport { matchPath, useLocation } from \"react-router\";\nimport { TuteurDetail, TuteurDetailDoublons } from \".\";\nimport { TuteurLieuDoublonSearchDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useTabMessage } from \"../../../../../hooks\";\n\nexport interface ITuteurDetailSwitchProps {}\n\nexport const TuteurDetailSwitch: React.FunctionComponent = props => {\n const [sObj, setSObj] = React.useState(TuteurLieuDoublonSearchDtoFromJSON({}));\n const { pathname, search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { messageValue, clearMessageValue } = useTabMessage(cfs);\n\n React.useEffect(() => {\n if (!!messageValue) {\n setSObj(messageValue);\n clearMessageValue();\n }\n }, [clearMessageValue, messageValue]);\n if (\n matchPath(pathname, {\n path: `${ERoutes.tuteur}/-1/:tab/checkDoublons`\n })\n ) {\n return ;\n } else {\n return ;\n }\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n ButtonContainer,\n ButtonsBloc,\n DataTable,\n FGCustomPanel,\n FGMaskInput,\n FGTextInput,\n FieldGroup,\n FieldSet,\n InlineButtonContainer,\n showError,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation } from \"react-router\";\n\nimport {\n TuteurApi,\n TuteurLieuDoublonGridDto,\n TuteurLieuDoublonSearchDto,\n TuteurLieuDoublonSearchDtoFromJSON\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n CancelButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator,\n UnordoredListColumn,\n ViewButton\n} from \"../../../../../components\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useBeIdCardContext } from \"../../../../../contexts/BeIdCardContext\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ITuteurDetailDoublonsProps {\n setBaseData: (sObj: TuteurLieuDoublonSearchDto) => void;\n}\n\nexport const TuteurDetailDoublons: React.FunctionComponent = ({ setBaseData }) => {\n const { t } = useTl();\n const dialogContext = useDialog();\n const history = useHistory();\n const { search: searchQ } = useLocation();\n const [nationalites, nLoading] = useReferential(a => a.referentialGetAllNationalite(), false, []);\n const api = useApiService(TuteurApi);\n const { foundRowsData } = useBeIdCardContext();\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [10],\n pageSize: 10,\n sortKeys: { nom: \"ASC\" }\n });\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: TuteurLieuDoublonSearchDto) => {\n return api.tuteurSearchDoublonsLieu({ TuteurLieuDoublonSearchDto: sObj });\n },\n [api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n const add = React.useCallback(() => {\n if (totalCount && totalCount > 0) {\n dialogContext.showDialog({\n message: t(ETLCodes.AddConfirmMessage),\n onConfirmed: async () => {\n history.push(`${ERoutes.tuteur}/-1/detail/edit${searchQ}`);\n }\n });\n } else {\n history.push(`${ERoutes.tuteur}/-1/detail/edit${searchQ}`);\n }\n }, [dialogContext, history, searchQ, t, totalCount]);\n\n const initialData = React.useMemo(() => {\n const onlyRegNatNb =\n !foundRowsData ||\n (!foundRowsData.nom && !foundRowsData.prenom && !foundRowsData.dateNaissance && foundRowsData.nationalNb);\n return TuteurLieuDoublonSearchDtoFromJSON({\n nom: foundRowsData?.nom,\n prenom: foundRowsData?.prenom,\n registreNational: onlyRegNatNb ? foundRowsData?.nationalNb : undefined,\n dateNaissance: foundRowsData?.dateNaissance\n });\n }, [foundRowsData]);\n\n React.useEffect(() => {\n if (foundRowsData) {\n search(initialData);\n }\n }, [foundRowsData, initialData, search]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: TuteurLieuDoublonGridDto) => (\n \n {row.idtuteur ? (\n <>\n history.push(`${ERoutes.tuteur}/${row.idtuteur}/detail/view`)}\n />\n history.push(`${ERoutes.tuteur}/${row.idtuteur}/detail/edit`)}\n />\n \n ) : (\n {\n setBaseData({ ...row });\n add();\n }}\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.NumeroNational),\n fieldName: \"registreNational\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\"\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Nationalite),\n fieldName: \"nationalite\"\n }\n // {\n // header: () => t(ETLCodes.Forme),\n // fieldName: \"forme\",\n // render: (row: TuteurLieuDoublonGridDto) => (\n // \n // )\n // }\n ],\n [add, history, setBaseData, t]\n );\n\n const [firstSearch, setFirstSearch] = React.useState(false);\n\n return (\n
\n {\n if ((c.nom && c.prenom) || c.registreNational) {\n search(c);\n setFirstSearch(true);\n } else {\n showError(t(ETLCodes.NoCriteriaFilled));\n }\n }}\n editMode\n hideButtons={true}\n onCancel={() => history.push(`${ERoutes.tuteur}`)}\n >\n \n \n \n \n \n \n \n \n \n {ctx => (\n \n \n \n history.push(`${ERoutes.tuteur}`)} />\n
\n );\n};\n","import { Button, Classes, Dialog, Icon, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport classNames from \"classnames\";\nimport { FormikProps } from \"formik\";\nimport isEqual from \"lodash/isEqual\";\nimport {\n ButtonsBloc,\n FGCustomInput,\n FGCustomPanel,\n FGEmpty,\n FGMaskInput,\n FGMultiSuggestInput,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IFGContext,\n InlineButtonContainer\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n FichierApi,\n TuteurApi,\n TuteurEditDto,\n TuteurEditDtoFromJSON,\n TuteurLieuDoublonSearchDto\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n CustomBulletList,\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n NationaliteSelect,\n PhotoModifier,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useBeIdCardContext, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useFetchPicture, useTabMessage, useTheme, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { belgianIdValidate } from \"../../../../../utils/belgianIdValidate\";\nimport pick from \"lodash/pick\";\n\nconst DialogStyled = styled(Dialog)`\n background: white;\n`;\n\nexport interface ITuteurDetailProps {\n baseData: TuteurLieuDoublonSearchDto;\n}\n\nexport const TuteurDetail: React.FunctionComponent = ({ baseData }) => {\n const { t } = useTl();\n const { theme } = useTheme();\n const history = useHistory();\n const api = useApiService(TuteurApi);\n const formikRef = React.useRef>();\n const [metiers, mLoading] = useReferential(a => a.referentialGetMetier(), true);\n\n const { id, state } = useParams<{ id: string; state: string }>();\n const { card } = useBeIdCardContext();\n const [mustLoadPicture, setMustLoadPicture] = React.useState(true);\n const [cardDataDifferent, setCardDataDifferent] = React.useState(false);\n const [photoDialogOpen, setPhotoDialogOpen] = React.useState(false);\n const { showDialogPromise } = useDialog();\n const { search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { sendMessage } = useTabMessage(cfs);\n const [sexe, sLoading] = useReferential(a => a.referentialGetSexe());\n\n const { data, setData, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n let newData = {};\n if (baseData) {\n newData = { ...baseData };\n }\n if (card) {\n newData = {\n ...newData,\n nom: card?.surname.toUpperCase(),\n prenom: card?.firstName,\n photo: card?.photoB64,\n dateNaissance: card?.dateOfBirthParsed,\n registreNational: card?.nationalNumber\n };\n }\n return +id <= 0\n ? TuteurEditDtoFromJSON({\n ...newData,\n idtuteur: 0,\n actif: true\n })\n : api.tuteurGetTuteur({ idtuteur: +id });\n },\n saveApiFn: async (d: TuteurEditDto) => {\n return api.tuteurSaveTuteur({ TuteurEditDto: d });\n },\n onSaved: d => {\n sendMessage(d.idtuteur, true);\n setMustLoadPicture(true);\n },\n onSavedRoute: d => `${ERoutes.tuteur}/${d.idtuteur}/detail/${state}`\n }),\n [api, baseData, card, id, sendMessage, state]\n )\n );\n\n const [picture, picLoading] = useFetchPicture(data?.idpersonne, [data]);\n React.useEffect(() => {\n if (picture && data && !cardDataDifferent && mustLoadPicture) {\n setMustLoadPicture(false);\n setData({ ...data, photo: picture });\n }\n }, [cardDataDifferent, data, mustLoadPicture, picture, setData]);\n\n const [hopeUsers, huLoading] = useReferential(a => a.referentialGetHopeUsers(), false, []);\n const askDataDifferent = React.useCallback(async () => {\n const result = await showDialogPromise({\n message: t(ETLCodes.TuteurIdCardIsDifferent)\n });\n if (result === \"yes\") {\n setCardDataDifferent(true);\n }\n }, [showDialogPromise, t]);\n\n const canUseCardData = React.useMemo(() => {\n if (+id > 0) {\n return !data?.registreNational || data?.registreNational === card?.nationalNumber;\n }\n\n return false;\n }, [card?.nationalNumber, data?.registreNational, id]);\n\n React.useEffect(() => {\n if (!picLoading && data && card) {\n const cardObj = TuteurEditDtoFromJSON({\n nom: card?.surname.toUpperCase(),\n prenom: card?.firstName,\n photo: card?.photoB64,\n dateNaissance: card?.dateOfBirthParsed,\n registreNational: card?.nationalNumber\n });\n\n const propsToPick = [\"nom\", \"prenom\", \"dateNaissance\", \"registreNational\"];\n const cardBirthdate = new Date(card.dateOfBirthParsed);\n const cardBirthdateString = `${cardBirthdate.getDate()}/${cardBirthdate.getMonth() +\n 1}/${cardBirthdate.getFullYear()}`;\n const dataBirthdateString = `${data.dateNaissance.getDate()}/${data.dateNaissance.getMonth() +\n 1}/${data.dateNaissance.getFullYear()}`;\n if (\n +id > 0 &&\n (!isEqual(pick(cardObj, propsToPick), pick(data, propsToPick)) || cardBirthdateString !== dataBirthdateString)\n ) {\n if (canUseCardData) {\n askDataDifferent();\n }\n }\n }\n }, [askDataDifferent, canUseCardData, card, data, id, picLoading]);\n\n React.useEffect(() => {\n if (cardDataDifferent) {\n setCardDataDifferent(false);\n setMustLoadPicture(false);\n formikRef?.current?.setValues(\n TuteurEditDtoFromJSON({\n ...data,\n nom: card?.surname.toUpperCase() ?? data.nom,\n prenom: card?.firstName ?? data.prenom,\n photo: card?.photoB64 ?? picture,\n dateNaissance: card?.dateOfBirthParsed ?? data.dateNaissance,\n registreNational: card?.nationalNumber ?? data.registreNational\n }),\n true\n );\n }\n }, [\n card?.dateOfBirthParsed,\n card?.firstName,\n card?.nationalNumber,\n card?.photoB64,\n card?.surname,\n cardDataDifferent,\n data,\n picture\n ]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape(\n {\n nom: Yup.string().required(t(ETLCodes.Required)),\n prenom: Yup.string().required(t(ETLCodes.Required)),\n codesexe: Yup.string().required(t(ETLCodes.Required)),\n dateNaissance: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required)),\n nationalite: Yup.string().required(t(ETLCodes.Required)),\n registreNational: Yup.string()\n .nullable()\n .test(\"registre-checksum\", t(ETLCodes.NotValid), function(value) {\n if (!value || value === \"\") return true;\n\n var millenial = false;\n if (this.parent.dateNaissance) {\n const parsedDateNaissance = new Date(this.parent.dateNaissance);\n if (parsedDateNaissance.getFullYear() > 1999) {\n millenial = true;\n }\n }\n\n return belgianIdValidate(value, millenial);\n })\n .when([\"nationalite\", \"numeroIdentification\"], {\n is: (nationalite, numeroIdentification) => nationalite === \"BE\" || !numeroIdentification,\n then: schema => schema.required(t(ETLCodes.AtLeastOneRegNatFields))\n }),\n numeroIdentification: Yup.string()\n .nullable()\n .when([\"nationalite\", \"registreNational\"], {\n is: (nationalite, registreNational) => nationalite !== \"BE\" && !registreNational,\n then: schema => schema.required(t(ETLCodes.AtLeastOneRegNatFields))\n })\n },\n [\n [\"numeroIdentification\", \"nationalite\"],\n [\"numeroIdentification\", \"registreNational\"],\n [\"registreNational\", \"nationalite\"],\n [\"registreNational\", \"numeroIdentification\"]\n ]\n );\n }, [t]);\n\n const isRegNatDateNaiss = React.useCallback((ctx: IFGContext) => {\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\").replace(\"-\", \"\");\n if (ctx.formik.values.dateNaissance && ctx.formik.values.nationalite === \"BE\") {\n const parsedDateNaissance = new Date(ctx.formik.values.dateNaissance);\n if (parsedDateNaissance && value) {\n const year = value.slice(0, 2);\n const month = value.slice(2, 4);\n const day = value.slice(4, 6);\n if (\n +year !==\n +parsedDateNaissance\n .getFullYear()\n .toString()\n .substr(2, 2)\n ) {\n return false;\n }\n if (+month !== 0 && +month !== parsedDateNaissance.getMonth() + 1) {\n return false;\n }\n if (+day !== 0 && +day !== parsedDateNaissance.getDate()) {\n return false;\n }\n return true;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }, []);\n\n const isRegNatGenre = React.useCallback((ctx: IFGContext) => {\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\")?.replace(\"-\", \"\");\n if (value && ctx.formik.values.codesexe !== \"X\" && ctx.formik.values.nationalite === \"BE\") {\n const code = +value.slice(7, 9) % 2 === 0 ? \"F\" : \"H\";\n return ctx.formik.values.codesexe === code;\n }\n return true;\n }, []);\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async idfichier => await fapi.fichierDownload({ id: idfichier }), [fapi]);\n\n return (\n history.push(ERoutes.tuteur)}\n saving={saving}\n validationErrors={validationErrors}\n showDeleteButton={false}\n forceEnableSave={Object.values(baseData).some(el => !!el)}\n watchChanges={{\n fichierCv: (value, formik) => {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichierCv\", null);\n }\n },\n fichierDerogation: (value, formik) => {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichierDerogation\", null);\n }\n }\n }}\n >\n \n \n \n \n \n \n \n (\n <>\n {isRegNatDateNaiss(ctx) ? null : (\n {t(ETLCodes.DateDeNaissanceNeCorrespondPas)}\n )}\n {isRegNatGenre(ctx) ? null : (\n {t(ETLCodes.GenreNeCorrespondPas)}\n )}\n \n )}\n />\n !!ctx.formik?.values?.nationalite && ctx.formik?.values?.nationalite !== \"BE\"}\n />\n \n \n \n \n \n {ctx => (\n <>\n downloadFn(ctx.formik.values?.idfichierCv))}\n />\n {ctx.editMode ? (\n \n ) : (\n \n {() => (\n ctx?.formik?.values?.idmetiers?.includes(m.value))\n ?.map(m => ({ text: m.label })) ?? []\n }\n />\n )}\n \n )}\n \n )}\n \n \n \n \n \n \n {ctx => (\n <>\n \n \n \n )}\n \n \n {ctx => (\n downloadFn(ctx.formik.values?.idfichierDerogation))\n }\n />\n )}\n \n \n \n \n \n \n {ctx => (\n
\n
\n {ctx.formik.values.photo ? (\n <>\n \n \n ) : (\n \n )}\n
\n
\n )}\n
\n \n \n \n {ctx => (\n \n \n \n setPhotoDialogOpen(true)}\n disabled={!ctx.editMode}\n />\n ctx.formik.setFieldValue(\"photo\", null)}\n disabled={!ctx.editMode}\n />\n \n \n \n )}\n \n
\n
\n \n {ctx => (\n setPhotoDialogOpen(false)}\n canOutsideClickClose={true}\n canEscapeKeyClose={true}\n title={`Photo ${ctx.formik.values?.nom ?? \"\"} ${ctx.formik.values?.prenom ?? \"\"}`}\n style={{ width: \"90%\", height: \"800px\" }}\n enforceFocus={false}\n >\n {\n ctx.formik.setFieldValue(\"photo\", newPhoto);\n setPhotoDialogOpen(false);\n }}\n onCancel={() => setPhotoDialogOpen(false)}\n />\n \n )}\n \n \n );\n};\n","import { Colors } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport { TuteurApi, TuteurLieuFormationGridDto, TuteurLieuFormationSearchDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ITuteurLieuxFormationProps {}\n\nexport const TuteurLieuxFormation: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id } = useParams<{ id: string }>();\n const api = useApiService(TuteurApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: TuteurLieuFormationSearchDto) => {\n sObj.idtuteur = +id;\n return api.tuteurSearchTuteurLieuFormation({ TuteurLieuFormationSearchDto: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onViewClick = React.useCallback((dto: TuteurLieuFormationGridDto) => {\n window.open(\n `#${ERoutes.lieuFormation}/${dto.idlieuFormation}/detail/view?idsiegeSocial=${dto.idsiegeSocial}`,\n \"_blank\"\n );\n }, []);\n\n const onEditClick = React.useCallback((dto: TuteurLieuFormationGridDto) => {\n window.open(\n `#${ERoutes.lieuFormation}/${dto.idlieuFormation}/detail/edit?idsiegeSocial=${dto.idsiegeSocial}`,\n \"_blank\"\n );\n }, []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: TuteurLieuFormationGridDto) => (\n \n onViewClick(row)} />\n onEditClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.NomLieuFormation),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Enseigne),\n fieldName: \"enseigne\"\n },\n {\n header: () => t(ETLCodes.Email),\n fieldName: \"email\"\n },\n {\n header: () => t(ETLCodes.Telephone),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.NumeroUe),\n fieldName: \"numeroUe\"\n }\n ],\n [onEditClick, onViewClick, t]\n );\n\n return (\n
\n css`\n & * {\n color: ${!row.actif ? Colors.RED3 + \" !important\" : null};\n }\n `}\n >\n
\n );\n};\n","import { addMinutes, format, parseJSON } from \"date-fns\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport { TuteurApi, TuteurHistoryGridDto, TuteurHistorySearch } from \"../../../../../api\";\nimport { ERoutes } from '../../../../../AppRouter';\nimport { LinkButton } from '../../../../../components';\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ITuteurHistoryProps { }\n\nexport const TuteurHistory: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { id } = useParams<{ id: string }>();\n const api = useApiService(TuteurApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { actionDate: \"DESC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: TuteurHistorySearch) => {\n sObj.idtuteur = +id;\n return api.tuteurSearchHistory({ TuteurHistorySearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Utilisateur),\n fieldName: \"userName\",\n render: (row: TuteurHistoryGridDto) => window.open(`#${ERoutes.personne}/${row.idpersonne}/signaletique/view`, '_blank')} />\n },\n {\n header: () => t(ETLCodes.Action),\n fieldName: \"action\",\n render: (row: TuteurHistoryGridDto) => tUnsafe(`Tuteur_${row.actionType}_${row.action}`)\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"actionDate\"\n },\n {\n header: () => t(ETLCodes.UserType),\n fieldName: \"ifapmeSide\",\n render: (row: TuteurHistoryGridDto) =>\n `${row.ifapmeSide.includes(\"Walter\") ? tUnsafe(\"UserType_Centre\") : \"\"}${row.ifapmeSide.length === 2 ? \" / \" : \"\"\n }${row.ifapmeSide.includes(\"Hope\") ? tUnsafe(\"UserType_Service\") : \"\"}`\n }\n ],\n [t, tUnsafe]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n return (\n <>\n
\n \n
\n \n );\n};\n","import { Button, Colors, Icon, Intent, Menu, MenuItem, Popover, Tooltip } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { ContratRuptureDialog, ContratSuspensionDetailDialog, TuteurLieuFormationSelectDialog } from \"../../..\";\nimport {\n ContratApi,\n ContratGridDto,\n ContratSearchDto,\n ContratSuspensionDto,\n ContratSuspensionDtoFromJSON,\n EStatutContrat,\n ETypeContrat,\n RapportHopeApi,\n TuteurApi,\n TuteurLieuFormationSearchDtoFromJSON\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, CircleColumn, CustomBulletList, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTabMessage, useTheme, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { computeContratStatutColor } from \"../../../../../utils/contratStatutColor\";\nimport { Guid } from \"../../../../../utils/guid\";\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport interface ITuteurContratsProps {}\n\nexport const TuteurContrats: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { theme } = useTheme();\n const { push } = useHistory();\n const { id } = useParams<{ id: string }>();\n const idtuteur = React.useMemo(() => +id, [id]);\n const [currentSuspension, setCurrentSuspension] = React.useState(null);\n const [currentContratId, setCurrentContratId] = React.useState(0);\n const api = useApiService(ContratApi);\n const tuteurApi = useApiService(TuteurApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ContratSearchDto) => {\n sObj.idtuteur = idtuteur;\n return api.contratBaseSearch({ ContratSearchDto: sObj });\n },\n [api, idtuteur]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onAddSuspensionClick = React.useCallback(idcontrat => {\n setCurrentSuspension(ContratSuspensionDtoFromJSON({ idcontrat, idcontratSuspension: 0 }));\n }, []);\n\n const onRuptureClick = React.useCallback(idcontrat => {\n setCurrentContratId(idcontrat);\n }, []);\n\n const fetchLfTuteur = React.useCallback(\n async () =>\n await tuteurApi.tuteurSearchTuteurLieuFormation({\n TuteurLieuFormationSearchDto: TuteurLieuFormationSearchDtoFromJSON({ idtuteur })\n }),\n [idtuteur, tuteurApi]\n );\n\n const { data: lieuxFormation } = useQuery([\"lieux-fromation-tuteur\", idtuteur], fetchLfTuteur);\n\n const [contratType, setContratType] = React.useState(null);\n\n const onContratClick = React.useCallback(\n (type: string) => {\n let idlieuFormation = 0;\n if (lieuxFormation.results.length === 1) idlieuFormation = lieuxFormation.results[0].idlieuFormation;\n\n if (lieuxFormation.results.length > 1) setContratType(type);\n else push(`${ERoutes.contrat}/-1/detail/${type}/edit?idlieuFormation=${idlieuFormation}&idtuteur=${idtuteur}`);\n },\n [idtuteur, lieuxFormation?.results, push]\n );\n\n const fetchIsSpp = React.useCallback(\n async () =>\n await tuteurApi.tuteurIsSpp({\n idtuteur\n }),\n [idtuteur, tuteurApi]\n );\n\n const { data: isSpp } = useQuery([\"tuteur-is-spp\", idtuteur], fetchIsSpp);\n\n const buttons = React.useMemo(\n () => (\n \n \n {!isSpp?.value && (\n onContratClick(\"CC\")}\n />\n )}\n {!isSpp?.value && (\n onContratClick(\"CS\")}\n />\n )}\n onContratClick(\"PP\")}\n />\n {!isSpp?.value && (\n onContratClick(\"CF\")}\n />\n )}\n onContratClick(\"DM\")}\n />\n \n \n }\n >\n \n \n ),\n [isSpp?.value, onContratClick, t]\n );\n\n const identifier = React.useMemo(() => Guid.newGuid(), []);\n const { openTabThenSendMessage } = useTabMessage(identifier);\n\n const rapportApi = useApiService(RapportHopeApi);\n const fetchIdsrapportContrat = React.useCallback(() => {\n return rapportApi.rapportHopeGetIdsrapportContrat();\n }, [rapportApi]);\n const { data: idsrapportContrat } = useQuery(\"idsrapportContrat\", fetchIdsrapportContrat);\n const printContrat = React.useCallback(\n (idcontrat: number, typeContrat: ETypeContrat) => {\n const idrapportContrat = idsrapportContrat?.[typeContrat];\n openTabThenSendMessage(`/#${ERoutes.SSRSReports}/${idrapportContrat}`, [idcontrat]);\n },\n [idsrapportContrat, openTabThenSendMessage]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ContratGridDto) => (\n \n window.open(`#${ERoutes.contrat}/${row.idcontrat}/detail/${row.type}/view`)}\n />\n {[\n ETypeContrat.CC,\n ETypeContrat.CA,\n ETypeContrat.CS,\n ETypeContrat.CF,\n ETypeContrat.DM,\n ETypeContrat.JI,\n ETypeContrat.PP\n ].includes(row.type) && (\n window.open(`#${ERoutes.contrat}/${row.idcontrat}/detail/${row.type}/edit`)}\n />\n )}\n \n \n {[\n ETypeContrat.CC,\n ETypeContrat.CA,\n ETypeContrat.CS,\n ETypeContrat.CF,\n ETypeContrat.DM,\n ETypeContrat.JI,\n ETypeContrat.PP\n ].includes(row.type) && (\n <>\n onRuptureClick(row.idcontrat)}\n disabled={[EStatutContrat.Rompu, EStatutContrat.SansSuite].includes(row.statut)}\n />\n onAddSuspensionClick(row.idcontrat)}\n disabled={[EStatutContrat.Rompu, EStatutContrat.SansSuite].includes(row.statut)}\n />\n {}}\n disabled\n />\n \n )}\n {!!idsrapportContrat?.[row.type] && (\n printContrat(row.idcontrat, row.type)}\n />\n )}\n \n \n }\n >\n \n \n \n )\n },\n {\n header: () => t(ETLCodes.Apprenant),\n fieldName: \"apprenant\"\n },\n {\n computed: true,\n alignment: \"center\",\n autoFitContent: true,\n header: () => (\n \n {t(ETLCodes.Statut)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"statut\",\n render: (row: ContratGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Service),\n fieldName: \"serviceNom\"\n },\n {\n header: () => t(ETLCodes.NomMetier),\n fieldName: \"nomMetier\"\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n },\n {\n header: () => t(ETLCodes.DateRupture),\n fieldName: \"rompuLe\"\n }\n ],\n [idsrapportContrat, onAddSuspensionClick, onRuptureClick, printContrat, t, tUnsafe, theme]\n );\n\n const onClose = React.useCallback(\n (toSave: ContratSuspensionDto) => {\n if (!!toSave) {\n search();\n }\n setCurrentSuspension(null);\n },\n [search]\n );\n\n return (\n <>\n
\n \n
\n {!!currentSuspension && (\n \n )}\n {!!currentContratId && (\n 0}\n currentContratId={currentContratId}\n onClose={(refresh: boolean) => {\n setCurrentContratId(0);\n if (refresh) search();\n }}\n />\n )}\n {!!lieuxFormation && lieuxFormation.results.length > 1 && (\n 1 && !!contratType}\n lieuxFormation={lieuxFormation.results}\n onClose={(idlieuFormation?: number) => {\n if (idlieuFormation) {\n push(\n `${ERoutes.contrat}/-1/detail/${contratType}/edit?idlieuFormation=${idlieuFormation}&idtuteur=${idtuteur}`\n );\n }\n setContratType(null);\n }}\n />\n )}\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { TuteurLieuFormationGridDto } from \"../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport * as Yup from \"yup\";\nimport { FieldGroup } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface ITuteurLieuFormationSelectDialogProps {\n dialogOpen: boolean;\n lieuxFormation: TuteurLieuFormationGridDto[];\n onClose: (idlieuFormation?: number) => void;\n}\n\nexport const TuteurLieuFormationSelectDialog: React.FunctionComponent = ({\n lieuxFormation,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n\n const initialData = React.useMemo(() => ({ idlieuFormation: null }), []);\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idlieuFormation: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n return (\n onClose()}>\n
\n onClose(d.idlieuFormation)}\n editMode={true}\n validationSchema={FormSchema}\n onCancel={onClose}\n showDeleteButton={false}\n enableDirtyCheck={false}\n >\n \n \n \n \n
\n
\n );\n};\n","import { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport {\n ChefEntrepriseApi,\n ChefEntrepriseSiegeSocialGridDto,\n ChefEntrepriseSiegeSocialSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ColumnMask, EditButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ICESiegesSociauxProps { }\n\nexport const CESiegesSociaux: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id } = useParams<{ id: string }>();\n const api = useApiService(ChefEntrepriseApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ChefEntrepriseSiegeSocialSearch) => {\n sObj.idChefEntreprise = +id;\n return api.chefEntrepriseSearchChefEntrepriseSiegeSocial({ ChefEntrepriseSiegeSocialSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onViewClick = React.useCallback((dto: ChefEntrepriseSiegeSocialGridDto) => {\n window.open(`#${ERoutes.siegeSocial}/${dto.idsiegeSocial}/detail/view`, \"_blank\");\n }, []);\n\n const onEditClick = React.useCallback((dto: ChefEntrepriseSiegeSocialGridDto) => {\n window.open(`#${ERoutes.siegeSocial}/${dto.idsiegeSocial}/detail/edit`, \"_blank\");\n }, []);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ChefEntrepriseSiegeSocialGridDto) => (\n \n onViewClick(row)} />\n onEditClick(row)} />\n \n )\n },\n {\n header: () => t(ETLCodes.DenominationSiegeSocial),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Email),\n fieldName: \"email\"\n },\n {\n header: () => t(ETLCodes.Telephone),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.NumeroBce),\n fieldName: \"numeroBce\",\n render: (row: ChefEntrepriseSiegeSocialGridDto) => (\n \n )\n }\n ],\n [onEditClick, onViewClick, t]\n );\n\n return (\n
\n \n
\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\nimport { ChefEntrepriseDetailSwitch } from \".\";\nimport { ChefEntrepriseApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { CESiegesSociaux } from \"./sieges\";\n\nexport interface IChefEntrepriseItemPageProps {}\n\nexport const ChefEntrepriseItemPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n const { search } = useLocation();\n\n const api = useApiService(ChefEntrepriseApi);\n\n const fetchDisplayName = React.useCallback(() => {\n return api.chefEntrepriseGetDisplayName({ id: +id });\n }, [api, id]);\n const { data: displayName } = useQuery([\"chef-entreprise-display-name\", id], fetchDisplayName);\n\n return (\n \n history.push(`${ERoutes.chefEntreprise}/${id}/${newTabId}/${state}${search}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n } />\n \n \n );\n};\n","import * as React from \"react\";\nimport { matchPath, useLocation } from \"react-router\";\nimport { ChefEntrepriseDetail, ChefEntrepriseDetailDoublons } from \".\";\nimport { ChefsEntrepriseDoublonSearchDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useTabMessage } from \"../../../../../hooks\";\n\nexport interface IChefEntrepriseDetailSwitchProps {}\n\nexport const ChefEntrepriseDetailSwitch: React.FunctionComponent = props => {\n const [sObj, setSObj] = React.useState(ChefsEntrepriseDoublonSearchDtoFromJSON({}));\n const { pathname, search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { messageValue, clearMessageValue } = useTabMessage(cfs);\n\n React.useEffect(() => {\n if (!!messageValue) {\n setSObj(messageValue);\n clearMessageValue();\n }\n }, [clearMessageValue, messageValue]);\n if (\n matchPath(pathname, {\n path: `${ERoutes.chefEntreprise}/-1/:tab/checkDoublons`\n })\n ) {\n return ;\n } else {\n return ;\n }\n};\n","import { FormikProps } from \"formik\";\nimport isEqual from \"lodash/isEqual\";\nimport { FGCustomPanel, FGMaskInput, FGTextInput, FieldGroup, IFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport {\n ChefEntrepriseApi,\n ChefEntrepriseEditDto,\n ChefEntrepriseEditDtoFromJSON,\n ChefsEntrepriseDoublonSearchDto\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n NationaliteSelect,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useBeIdCardContext, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTabMessage, useTheme, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { belgianIdValidate } from \"../../../../../utils/belgianIdValidate\";\nimport pick from \"lodash/pick\";\n\nexport interface IChefEntrepriseDetailProps {\n baseData: ChefsEntrepriseDoublonSearchDto;\n}\n\nexport const ChefEntrepriseDetail: React.FunctionComponent = ({ baseData }) => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ChefEntrepriseApi);\n const formikRef = React.useRef>();\n\n const { search } = useLocation();\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { sendMessage } = useTabMessage(cfs);\n\n const { id, state } = useParams<{ id: string; state: string }>();\n const { card } = useBeIdCardContext();\n const [cardDataDifferent, setCardDataDifferent] = React.useState(false);\n const { showDialogPromise } = useDialog();\n const { theme } = useTheme();\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n let newData = {};\n if (baseData) {\n newData = { ...baseData };\n }\n if (card) {\n newData = {\n ...newData,\n nom: card?.surname.toUpperCase(),\n prenom: card?.firstName,\n dateNaissance: card?.dateOfBirthParsed,\n registreNational: card?.nationalNumber\n };\n }\n return +id <= 0\n ? ChefEntrepriseEditDtoFromJSON({\n ...newData,\n idchefEntreprise: 0,\n actif: true\n })\n : api.chefEntrepriseGetChefEntreprise({ id: +id });\n },\n saveApiFn: async (d: ChefEntrepriseEditDto) => {\n return api.chefEntrepriseSaveChefEntreprise({ ChefEntrepriseEditDto: d });\n },\n onSaved: d => sendMessage(d.idchefEntreprise, true),\n onSavedRoute: d => `${ERoutes.chefEntreprise}/${d.idchefEntreprise}/detail/${state}`\n }),\n [api, baseData, card, id, sendMessage, state]\n )\n );\n\n const canUseCardData = React.useMemo(() => {\n if (+id > 0) {\n return !data?.registreNational || data?.registreNational === card?.nationalNumber;\n }\n\n return false;\n }, [card?.nationalNumber, data?.registreNational, id]);\n\n const askDataDifferent = React.useCallback(async () => {\n const result = await showDialogPromise({\n message: t(ETLCodes.ChefEntrepriseIdCardIsDifferent)\n });\n if (result === \"yes\") {\n setCardDataDifferent(true);\n }\n }, [showDialogPromise, t]);\n\n React.useEffect(() => {\n if (data && card) {\n const cardObj = ChefEntrepriseEditDtoFromJSON({\n nom: card?.surname.toUpperCase(),\n prenom: card?.firstName,\n codesexe: card?.gender,\n dateNaissance: card?.dateOfBirthParsed,\n registreNational: card?.nationalNumber\n });\n\n const propsToPick = [\"nom\", \"prenom\", \"dateNaissance\", \"registreNational\", \"codesexe\"];\n const cardBirthdate = new Date(card.dateOfBirthParsed);\n const cardBirthdateString = `${cardBirthdate.getDate()}/${cardBirthdate.getMonth() +\n 1}/${cardBirthdate.getFullYear()}`;\n const dataBirthdateString = `${data.dateNaissance.getDate()}/${data.dateNaissance.getMonth() +\n 1}/${data.dateNaissance.getFullYear()}`;\n if (\n +id > 0 &&\n (!isEqual(pick(cardObj, propsToPick), pick(data, propsToPick)) || cardBirthdateString !== dataBirthdateString)\n ) {\n if (canUseCardData) {\n askDataDifferent();\n }\n }\n }\n }, [askDataDifferent, canUseCardData, card, data, id]);\n\n React.useEffect(() => {\n if (cardDataDifferent) {\n setCardDataDifferent(false);\n formikRef?.current?.setValues(\n ChefEntrepriseEditDtoFromJSON({\n ...data,\n nom: card?.surname.toUpperCase() ?? data.nom,\n prenom: card?.firstName ?? data.prenom,\n dateNaissance: card?.dateOfBirthParsed ?? data.dateNaissance,\n codesexe: card?.gender ?? data.codesexe,\n registreNational: card?.nationalNumber ?? data.registreNational\n }),\n true\n );\n }\n }, [\n card?.dateOfBirthParsed,\n card?.firstName,\n card?.gender,\n card?.nationalNumber,\n card?.surname,\n cardDataDifferent,\n data\n ]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape(\n {\n nom: Yup.string().required(t(ETLCodes.Required)),\n prenom: Yup.string().required(t(ETLCodes.Required)),\n dateNaissance: Yup.date().nullable(),\n registreNational: Yup.string()\n .nullable()\n .test(\"registre-checksum\", t(ETLCodes.NotValid), function(value) {\n if (!value || value === \"\") return true;\n\n var millenial = false;\n if (this.parent.dateNaissance) {\n const parsedDateNaissance = new Date(this.parent.dateNaissance);\n if (parsedDateNaissance.getFullYear() > 1999) {\n millenial = true;\n }\n }\n\n return belgianIdValidate(value, millenial);\n }),\n numeroIdentification: Yup.string().nullable()\n },\n [\n [\"numeroIdentification\", \"nationalite\"],\n [\"numeroIdentification\", \"registreNational\"],\n [\"registreNational\", \"nationalite\"],\n [\"registreNational\", \"numeroIdentification\"]\n ]\n );\n }, [t]);\n\n const isRegNatDateNaiss = React.useCallback((ctx: IFGContext) => {\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\").replace(\"-\", \"\");\n if (ctx.formik.values.dateNaissance && ctx.formik.values.nationalite === \"BE\") {\n const parsedDateNaissance = new Date(ctx.formik.values.dateNaissance);\n if (parsedDateNaissance && value) {\n const year = value.slice(0, 2);\n const month = value.slice(2, 4);\n const day = value.slice(4, 6);\n if (\n +year !==\n +parsedDateNaissance\n .getFullYear()\n .toString()\n .substr(2, 2)\n ) {\n return false;\n }\n if (+month !== 0 && +month !== parsedDateNaissance.getMonth() + 1) {\n return false;\n }\n if (+day !== 0 && +day !== parsedDateNaissance.getDate()) {\n return false;\n }\n return true;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }, []);\n\n const isRegNatGenre = React.useCallback((ctx: IFGContext) => {\n const value = ctx.formik.values.registreNational?.replace(\".\", \"\")?.replace(\"-\", \"\");\n if (value && ctx.formik.values.codesexe !== \"X\" && ctx.formik.values.nationalite === \"BE\") {\n const code = +value.slice(7, 9) % 2 === 0 ? \"F\" : \"H\";\n return ctx.formik.values.codesexe === code;\n }\n return true;\n }, []);\n const [sexe, sLoading] = useReferential(a => a.referentialGetSexe());\n\n return (\n history.push(`${ERoutes.chefEntreprise}`)}\n saving={saving}\n validationErrors={validationErrors}\n showDeleteButton={false}\n forceEnableSave={Object.values(baseData).some(el => !!el)}\n >\n \n \n \n \n \n \n \n \n {ctx => (\n (\n <>\n {isRegNatDateNaiss(ctx) ? null : (\n {t(ETLCodes.DateDeNaissanceNeCorrespondPas)}\n )}\n {isRegNatGenre(ctx) ? null : (\n {t(ETLCodes.GenreNeCorrespondPas)}\n )}\n \n )}\n requiredMark={ctx?.formik?.values?.nationalite === \"BE\"}\n />\n )}\n \n !!ctx.formik?.values?.nationalite && ctx.formik?.values?.nationalite !== \"BE\"}\n />\n \n \n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n ButtonContainer,\n ButtonsBloc,\n DataTable,\n FGCustomPanel,\n FGMaskInput,\n FGTextInput,\n FieldGroup,\n FieldSet,\n InlineButtonContainer,\n showError,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation } from \"react-router\";\nimport {\n ChefEntrepriseApi,\n ChefsEntrepriseDoublonGridDto,\n ChefsEntrepriseDoublonSearchDto,\n ChefsEntrepriseDoublonSearchDtoFromJSON\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n CancelButton,\n EditButton,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator,\n UnordoredListColumn,\n ViewButton\n} from \"../../../../../components\";\nimport { useBeIdCardContext, useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTabMessage, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IChefEntrepriseDetailDoublonsProps {\n setBaseData: (values: ChefsEntrepriseDoublonSearchDto) => void;\n}\n\nexport const ChefEntrepriseDetailDoublons: React.FunctionComponent = ({\n setBaseData\n}) => {\n const { t } = useTl();\n const dialogContext = useDialog();\n const history = useHistory();\n const { search: searchQ } = useLocation();\n const [nationalites, nLoading] = useReferential(a => a.referentialGetAllNationalite(), false, []);\n const api = useApiService(ChefEntrepriseApi);\n const { foundRowsData } = useBeIdCardContext();\n const cfs = React.useMemo(() => new URLSearchParams(searchQ).get(\"cfs\"), [searchQ]);\n const { messageValue: baseSObj } = useTabMessage(cfs);\n const [firstSearch, setFirstSearch] = React.useState(false);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [10],\n pageSize: 10,\n sortKeys: { nom: \"ASC\", prenom: \"ASC\" }\n });\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ChefsEntrepriseDoublonSearchDto) => {\n return api.chefEntrepriseSearchDoublonsChefsEntreprise({ ChefsEntrepriseDoublonSearchDto: sObj });\n },\n [api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n const add = React.useCallback(\n (fromPersonne: boolean) => {\n if (totalCount && totalCount > 0) {\n dialogContext.showDialog({\n message: t(fromPersonne ? ETLCodes.AddFormeConfirmMessage : ETLCodes.AddConfirmMessage, {\n forme: t(ETLCodes.ChefEntreprise)\n }),\n onConfirmed: async () => {\n history.push(`${ERoutes.chefEntreprise}/-1/detail/edit${searchQ}`);\n }\n });\n } else {\n history.push(`${ERoutes.chefEntreprise}/-1/detail/edit${searchQ}`);\n }\n },\n [dialogContext, history, searchQ, t, totalCount]\n );\n\n const initialData = React.useMemo(() => {\n const onlyRegNatNb =\n !foundRowsData ||\n (!foundRowsData.nom && !foundRowsData.prenom && !foundRowsData.dateNaissance && foundRowsData.nationalNb);\n return ChefsEntrepriseDoublonSearchDtoFromJSON({\n nom: baseSObj?.nom?.value ?? foundRowsData?.nom,\n prenom: baseSObj?.prenom?.value ?? foundRowsData?.prenom,\n registreNational: baseSObj?.registreNational?.value ?? (onlyRegNatNb ? foundRowsData?.nationalNb : undefined),\n dateNaissance: baseSObj?.dateNaissance?.value ?? foundRowsData?.dateNaissance,\n nationalite: baseSObj?.nationalite?.value\n });\n }, [baseSObj, foundRowsData]);\n\n React.useEffect(() => {\n if (foundRowsData || baseSObj) {\n search(initialData);\n setFirstSearch(true);\n }\n }, [baseSObj, foundRowsData, initialData, search]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ChefsEntrepriseDoublonGridDto) => (\n \n {!!row.idchefEntreprise ? (\n <>\n history.push(`${ERoutes.chefEntreprise}/${row.idchefEntreprise}/detail/view`)}\n />\n history.push(`$${ERoutes.chefEntreprise}/${row.idchefEntreprise}/detail/edit`)}\n />\n \n ) : (\n {\n setBaseData({ ...row });\n add(!row.isChefEntreprise);\n }}\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.NumeroNational),\n fieldName: \"registreNational\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\"\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Nationalite),\n fieldName: \"nationalite\"\n }\n // {\n // header: () => t(ETLCodes.Forme),\n // fieldName: \"forme\",\n // render: (row: ChefsEntrepriseDoublonGridDto) => (\n // \n // )\n // }\n ],\n [add, history, setBaseData, t]\n );\n\n return (\n
\n {\n if ((c.nom && c.prenom) || c.registreNational) {\n search(c);\n setFirstSearch(true);\n } else {\n showError(t(ETLCodes.NoCriteriaFilled));\n }\n }}\n editMode\n hideButtons={true}\n onCancel={() => history.push(`${ERoutes.chefEntreprise}`)}\n >\n \n \n \n \n \n \n \n \n \n {ctx => (\n \n \n \n history.push(`${ERoutes.chefEntreprise}`)} />\n
\n );\n};\n","import { Checkbox, Spinner } from \"@blueprintjs/core\";\nimport { ButtonContainer, IDataTableColumn, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { ChefEntrepriseApi, ChefEntrepriseGridDto, ChefEntrepriseSearchDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, SearchTablePage, SmsButton, ViewButton } from \"../../../../components\";\nimport { useRouteParamsContext } from \"../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IChefEntrepriseListPageProps {}\n\nexport const ChefEntrepriseListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ChefEntrepriseApi);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const lastSearchObject = React.useRef();\n const { pushSmsRecipientIds, pushSmsRecipientType } = useRouteParamsContext();\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n\n const apiFactory = useAbortableApiServiceFactory(ChefEntrepriseApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: ChefEntrepriseSearchDto) => {\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject.current)) {\n lastSearchObject.current = nextSearch;\n }\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.chefEntrepriseBaseSearch({ ChefEntrepriseSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n api\n .chefEntrepriseSearchChefEntrepriseIds({\n ChefEntrepriseSearchDto: { ...lastSearchObject.current, forceSkip: 0, forceTake: 999999 }\n })\n .then(allIds => {\n if (allIds.length === selectedIDs.length) {\n setSelectedIDs([]);\n setNbReturnedIds(0);\n } else {\n setSelectedIDs(allIds);\n setNbReturnedIds(allIds.length);\n }\n setSelectAllLoading(false);\n });\n }, [api, selectedIDs.length]);\n\n const toggleSelection = React.useCallback(\n (item: ChefEntrepriseGridDto) => {\n if (!selectedIDs.includes(item.idchefEntreprise)) {\n setSelectedIDs(ids => [...ids, item.idchefEntreprise]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idchefEntreprise));\n }\n },\n [selectedIDs]\n );\n\n const sendSms = React.useCallback(() => {\n if (selectedIDs.length > 0) {\n pushSmsRecipientIds(selectedIDs);\n // pushSmsRecipientType(ETypeDestinataireSms.ChefEntreprise);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n } else {\n showError(t(ETLCodes.SelectAtLeastOne));\n }\n }, [history, pushSmsRecipientIds, selectedIDs, t]);\n\n const sendSmsSingle = React.useCallback(\n (id: number) => {\n pushSmsRecipientIds([id]);\n // pushSmsRecipientType(ETypeDestinataireSms.ChefEntreprise);\n history.push(`${ERoutes.sms}/0/detail/edit`);\n },\n [history, pushSmsRecipientIds]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length} onChange={selectAll} />\n ),\n render: (item: ChefEntrepriseGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ChefEntrepriseGridDto) => (\n \n history.push(`${ERoutes.chefEntreprise}/${row.idchefEntreprise}/detail/view`)}\n />\n history.push(`${ERoutes.chefEntreprise}/${row.idchefEntreprise}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DernierSiegeSocial),\n fieldName: \"nomLastSiegeSocial\",\n render: (row: ChefEntrepriseGridDto) => row.lastSiegeSocial?.denominationSociale\n },\n {\n header: () => t(ETLCodes.FonctionDernierSiegeSocial),\n fieldName: \"fonctionLastSiegeSocial\",\n render: (row: ChefEntrepriseGridDto) => row.lastSiegeSocial?.fonction\n },\n {\n header: () => t(ETLCodes.Email),\n fieldName: \"email\"\n },\n {\n header: () => t(ETLCodes.Gsm),\n fieldName: \"gsm\",\n render: (value: ChefEntrepriseGridDto) => (\n sendSmsSingle(value.idchefEntreprise)} />\n )\n }\n ],\n [history, nbReturnedIds, selectAll, selectAllLoading, selectedIDs, sendSmsSingle, t, toggleSelection]\n );\n\n const getCriteria = React.useCallback(() => api.chefEntrepriseGetSearchCriterias({ includeListsValues: false }), [\n api\n ]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ContratAvenantsSwitch, ContratDetailPage, ContratDocuments, ContratHistory, ContratSuspensionsPage } from \".\";\nimport { ContratApi, ETypeContrat } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IContratItemPageProps {}\n\nexport const ContratItemPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, tab, type, state } = useParams<{ id: string; tab: string; type: string; state: string }>();\n const typeContrat = React.useMemo(() => type as ETypeContrat, [type]);\n const history = useHistory();\n\n const api = useApiService(ContratApi);\n\n const fetchDisplayName = React.useCallback(() => {\n return api.contratGetDisplayName({ id: +id });\n }, [api, id]);\n const { data: displayName } = useQuery([\"contrat-display-name\", id], fetchDisplayName);\n\n return (\n \n history.push(`${ERoutes.contrat}/${id}/${newTabId}/${type}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n } disabled={+id <= 0} />\n {![ETypeContrat.DM, ETypeContrat.JI, ETypeContrat.SO, ETypeContrat.CCE, ETypeContrat.CSE].includes(\n typeContrat\n ) && } disabled={+id <= 0} />}\n } disabled={+id <= 0} />\n } disabled={+id <= 0} />\n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { isAfter, isSameDay } from \"date-fns\";\nimport { isBefore } from \"date-fns/esm\";\nimport {\n ButtonContainer,\n DataTable,\n FieldSet,\n IDataTableColumn,\n showSuccess,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useParams } from \"react-router\";\n\nimport { ContratSuspensionDetailDialog } from \".\";\nimport {\n ContratApi,\n ContratSuspensionApi,\n ContratSuspensionDto,\n ContratSuspensionDtoFromJSON,\n ContratSuspensionSearchDto,\n EStatutContrat,\n ETypeContrat\n} from \"../../../../../api\";\nimport { AddButton, DeleteButton, EditButton } from \"../../../../../components\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useApiService, useManageError, useTheme, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IContratSuspensionsPageProps {}\n\nexport const ContratSuspensionsPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { ifapmeSide } = useTheme();\n const { id, type } = useParams<{ id: string; type: string; state: string }>();\n const idcontrat = React.useMemo(() => +id, [id]);\n const typeContrat = React.useMemo(() => type as ETypeContrat, [type]);\n const [currentSuspension, setCurrentSuspension] = React.useState(null);\n const [deleteLoading, setDeleteLoading] = React.useState(null);\n const api = useApiService(ContratSuspensionApi);\n const contratApi = useApiService(ContratApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { dateDebut: \"DESC\" }\n });\n\n const { totalCount, data } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ContratSuspensionSearchDto) => {\n sObj.idcontrat = idcontrat;\n return api.contratSuspensionBaseSearch({ ContratSuspensionSearchDto: sObj });\n },\n [api, idcontrat]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const onEditClick = React.useCallback((dto: ContratSuspensionDto) => {\n setCurrentSuspension(dto);\n }, []);\n\n const { showDialogPromise } = useDialog();\n const { manageError } = useManageError();\n const onDeleteClick = React.useCallback(\n async (dto: ContratSuspensionDto) => {\n const result = await showDialogPromise({\n title: t(ETLCodes.DeleteDialogTitle),\n message: t(ETLCodes.DeleteConfirmationMessage)\n });\n\n if (result !== \"yes\") return;\n\n try {\n setDeleteLoading(dto.idcontratSuspension);\n await api.contratSuspensionDeleteContratSuspension({ idcontratSuspension: dto.idcontratSuspension });\n showSuccess(t(ETLCodes.SuspensionContratSupprimee));\n } catch (e) {\n manageError(e);\n } finally {\n search();\n setDeleteLoading(null);\n }\n },\n [api, manageError, search, showDialogPromise, t]\n );\n\n const fetchStatut = React.useCallback(async () => {\n if (!idcontrat) return null;\n return await contratApi.contratGetStatut({ idcontrat });\n }, [contratApi, idcontrat]);\n const { data: statut, isFetching: statutLoading } = useQuery([\"contrat-statut\", idcontrat], fetchStatut);\n const disabled = React.useMemo(() => !statut || [EStatutContrat.Rompu, EStatutContrat.SansSuite].includes(statut), [\n statut\n ]);\n\n const mode = React.useMemo(\n () =>\n [\n ETypeContrat.CC,\n ETypeContrat.CA,\n ETypeContrat.CS,\n ETypeContrat.CF,\n ETypeContrat.DM,\n ETypeContrat.JI,\n ETypeContrat.PP\n ].includes(typeContrat)\n ? \"hope\"\n : \"walter\",\n [typeContrat]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ContratSuspensionDto) => (\n \n onEditClick(row)}\n disabled={!!deleteLoading || disabled || ifapmeSide !== mode}\n />\n onDeleteClick(row)}\n loading={row.idcontratSuspension === deleteLoading}\n disabled={\n (!!deleteLoading && row.idcontratSuspension !== deleteLoading) || disabled || ifapmeSide !== mode\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.DateDebut),\n fieldName: \"dateDebut\"\n },\n {\n header: () => t(ETLCodes.DateFin),\n fieldName: \"dateFin\"\n },\n {\n header: () => t(ETLCodes.Motif),\n fieldName: \"motif\"\n },\n {\n header: () => t(ETLCodes.Remarque),\n fieldName: \"remarque\"\n }\n ],\n [deleteLoading, disabled, ifapmeSide, mode, onDeleteClick, onEditClick, t]\n );\n\n const onAddClick = React.useCallback(() => {\n setCurrentSuspension(ContratSuspensionDtoFromJSON({ idcontrat, idcontratSuspension: 0 }));\n }, [idcontrat]);\n\n const onClose = React.useCallback(\n (toSave: ContratSuspensionDto) => {\n if (!!toSave) {\n search();\n }\n setCurrentSuspension(null);\n },\n [search]\n );\n\n const alreadySuspendedText = React.useMemo(\n () =>\n data &&\n data.some(\n s =>\n (isBefore(s.dateDebut, new Date()) || isSameDay(s.dateDebut, new Date())) &&\n (isSameDay(s.dateFin, new Date()) || isAfter(s.dateFin, new Date()))\n )\n ? t(ETLCodes.ContratAlreadySuspended)\n : null,\n [data, t]\n );\n\n const soonSuspendedText = React.useMemo(\n () => (data && data.some(s => isAfter(s.dateDebut, new Date())) ? t(ETLCodes.ContratSoonSuspended) : null),\n [data, t]\n );\n\n return (\n <>\n \n )\n }\n >\n \n \n {!!currentSuspension && (\n \n )}\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGCustomPanel, FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { ContratSuspensionApi, ContratSuspensionDto, FichierApi } from \"../../../../../api\";\nimport {\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 500px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IContratSuspensionDetailDialogProps {\n dialogOpen: boolean;\n onClose: (toSave?: ContratSuspensionDto) => void;\n currentSuspension: ContratSuspensionDto;\n}\n\nexport const ContratSuspensionDetailDialog: React.FunctionComponent = ({\n currentSuspension,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ContratSuspensionApi);\n\n const { data, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => currentSuspension,\n saveApiFn: d => api.contratSuspensionSaveContratSuspension({ ContratSuspensionDto: d }),\n onSaved: d => onClose(d),\n serverValidationRootKey: \"Dto\"\n }),\n [api, currentSuspension, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape(\n {\n dateDebut: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.max(Yup.ref(\"dateFin\"), t(ETLCodes.DateDebutGreaterThanDateFin)) : schema\n )\n .required(t(ETLCodes.Required)),\n dateFin: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.min(Yup.ref(\"dateDebut\"), t(ETLCodes.DateFinGreaterThanDateDebut)) : schema\n ),\n idmotifSuspension: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n },\n [[\"dateFin\", \"dateFin\"]]\n ),\n [t]\n );\n\n const [motifs, mLoading] = useReferential(a => a.referentialGetMotifsSuspension());\n\n const fapi = useApiService(FichierApi);\n const downloadFn = React.useCallback(async idfichier => await fapi.fichierDownload({ id: idfichier }), [fapi]);\n\n return (\n onClose()}>\n
\n onClose()}\n showDeleteButton={false}\n saving={saving}\n minLabelWidth={100}\n validationErrors={validationErrors}\n preventDefaultSaveOnEnter\n watchChanges={{\n fichierR: (value, formik) => {\n if (formik.dirty) {\n formik.setFieldValue(\"idfichier\", null);\n }\n }\n }}\n >\n \n \n \n \n \n \n {ctx => (\n downloadFn(ctx.formik.values?.idfichier))}\n />\n )}\n \n \n \n
\n
\n );\n};\n","import { Button, Callout, Intent, Spinner, SpinnerSize } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { addMonths, format, isAfter, isBefore, isSameDay, startOfDay } from \"date-fns\";\nimport { FormikProps } from \"formik\";\nimport {\n ButtonContainer,\n DataTable,\n FGCustomPanel,\n FGCustomReadOnly,\n FGEmpty,\n FGTextAreaInput,\n FGTextInput,\n FieldGroup,\n IDataTableColumn,\n IFGContext,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { Route, Switch, useHistory, useLocation, useParams } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n ContratAlternanceCommunPanel,\n ContratAlternancePanel,\n ContratConventionStageExternePanel,\n ContratConventionStagePanel,\n ContratDecouverteMetierPanel,\n ContratFaltPanel,\n ContratLieuFormationTuteursGrid,\n ContratPratiqueProfessionnellePanel,\n StageObservationPanel\n} from \".\";\nimport {\n CanDisableOffreRequestDtoFromJSON,\n ContratApi,\n ContratApprenantInfosDto,\n ContratEditDto,\n ContratLieuFormationGridDto,\n ContratLieuFormationGridDtoFromJSON,\n ContratLieuFormationTuteurGridDtoFromJSON,\n EIfapmeSide,\n ELevelName,\n EStatutContrat,\n ETypeContrat,\n FichierApi,\n LieuFormationApi,\n ReferentialResultInfoDtoFromJSON,\n TuteurApi\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AddButton,\n ApprenantSelectorField,\n ContratMotifRuptureJeuneSelect,\n ContratMotifRupturePatronSelect,\n DeleteButton,\n ErrorText,\n FavoriteButton,\n FGWalterDateMaskInput,\n FGWalterFileInput,\n FGWalterSelectInput,\n LieuFormationSelectorDialog,\n LinkButton,\n SmallFormGenerator,\n WarningText\n} from \"../../../../../components\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useApiService, useCrudApi, useTheme, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { nameof } from \"../../../../../utils\";\n\nconst StatutContainer = styled.div`\n display: flex;\n`;\n\nexport const TitleContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 1rem;\n`;\n\nexport const StyledCallout = styled(Callout)`\n width: auto !important;\n`;\n\nconst StatutText = styled.span<{ color: string }>`\n color: ${props => props.color};\n font-weight: bold;\n font-size: 14pt;\n margin-right: 1rem;\n`;\n\nconst RoContainer = styled.div`\n display: flex;\n align-items: center;\n height: 30px;\n`;\n\nexport interface IContratDetailPageProps {}\n\nexport const ContratDetailPage: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const history = useHistory();\n const api = useApiService(ContratApi);\n const formikInnerRef = React.useRef>();\n const lieuFormationApi = useApiService(LieuFormationApi);\n const tuteurApi = useApiService(TuteurApi);\n const { theme, ifapmeSide, isHope } = useTheme();\n const [selectorDialogOpen, setSelectorDialogOpen] = React.useState(false);\n const [firstIdLieuFormation, setFirstIdLieuFormation] = React.useState(0);\n const { showDialogPromise } = useDialog();\n const { search } = useLocation();\n const idlieuFormation = React.useMemo(() => new URLSearchParams(search).get(\"idlieuFormation\"), [search]);\n const idtuteur = React.useMemo(() => new URLSearchParams(search).get(\"idtuteur\"), [search]);\n const idapprenant = React.useMemo(() => new URLSearchParams(search).get(\"idapprenant\"), [search]);\n\n const { id, type, state } = useParams<{ id: string; type: string; state: string }>();\n const typeContrat = React.useMemo(() => type as ETypeContrat, [type]);\n\n const [idserviceTutelle, setIdserviceTutelle] = React.useState(0);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false,\n availablePageSizes: [9999],\n pageSize: 9999,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { setData } = tableState;\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n let lieuxFormation = [];\n if (!!idlieuFormation) {\n const lfData = await lieuFormationApi.lieuFormationGetLieuFormation({ id: +idlieuFormation });\n const lf = ContratLieuFormationGridDtoFromJSON({\n idlieuFormation,\n idsiegeSocial: lfData.idsiegeSocial,\n nom: lfData.nom,\n enseigne: lfData.enseigne,\n numeroUe: lfData.numeroUe,\n localite: lfData.localite,\n capaciteFormativeAtteinte: lfData.capaciteFormativeAtteinte,\n principal: true,\n tuteurs: [],\n actif: lfData.actif\n });\n if (!!idtuteur) {\n const tData = await tuteurApi.tuteurGetTuteurLieuByIds({\n idtuteur: +idtuteur,\n idlieuFormation: +idlieuFormation\n });\n lf.tuteurs = [\n ContratLieuFormationTuteurGridDtoFromJSON({\n idtuteur,\n principal: true,\n actif: tData.actif,\n nom: tData.nom + \" \" + tData.prenom,\n capaciteFormativeAtteinte: tData.capaciteFormativeAtteinte\n })\n ];\n }\n lieuxFormation.push(lf);\n }\n let toReturn = await api.contratGetContrat({ id: +id, typeContrat, idapprenant: +idapprenant });\n if (+id <= 0) {\n toReturn = {\n ...toReturn,\n idmetier: null,\n idserviceTutelle: null,\n dateDebut: null,\n dateFin: null,\n idapprenant: !!idapprenant && +idapprenant,\n lieuxFormation,\n customHeuresHebdo: 0\n };\n }\n return toReturn;\n },\n saveApiFn: async (d: ContratEditDto) => {\n let mustDisableOffre = false;\n if (\n [\n ETypeContrat.CC,\n ETypeContrat.CA,\n ETypeContrat.CS,\n ETypeContrat.CF,\n ETypeContrat.DM,\n ETypeContrat.JI,\n ETypeContrat.PP\n ].includes(d.type)\n ) {\n const mainLf = d.lieuxFormation.find(lf => lf.principal);\n const mainTuteur = mainLf?.tuteurs?.find(t => t.principal);\n if (d.idcontrat <= 0 && !!mainLf && !!mainTuteur) {\n const canDisableOffre = await lieuFormationApi.lieuFormationCheckCanDisableOffre({\n CanDisableOffreRequestDto: CanDisableOffreRequestDtoFromJSON({\n idlieuFormation: mainLf.idlieuFormation,\n idmetier: d.idmetier\n })\n });\n if (canDisableOffre) {\n mustDisableOffre =\n (await showDialogPromise({\n title: t(ETLCodes.MaintenirOffreTitle),\n message: t(ETLCodes.MaintenirOffreMessage)\n })) === \"no\";\n }\n }\n }\n d.mustDisableOffre = mustDisableOffre;\n return api.contratSaveContrat({ ContratEditDto: d });\n },\n onSavedRoute: d => `${ERoutes.contrat}/${d.idcontrat}/detail/${type}/${state}`\n }),\n [\n api,\n id,\n idapprenant,\n idlieuFormation,\n idtuteur,\n lieuFormationApi,\n showDialogPromise,\n state,\n t,\n tuteurApi,\n type,\n typeContrat\n ]\n )\n );\n\n const mode = React.useMemo(\n () =>\n [\n ETypeContrat.CC,\n ETypeContrat.CA,\n ETypeContrat.CS,\n ETypeContrat.CF,\n ETypeContrat.DM,\n ETypeContrat.JI,\n ETypeContrat.PP\n ].includes(typeContrat)\n ? \"hope\"\n : \"walter\",\n [typeContrat]\n );\n\n const softRO = React.useMemo(() => [EStatutContrat.Rompu].includes(data?.statut), [data?.statut]);\n const fullRO = React.useMemo(\n () =>\n [EStatutContrat.SansSuite].includes(data?.statut) ||\n ifapmeSide !== mode ||\n [ETypeContrat.CA, ETypeContrat.JI].includes(typeContrat),\n [data?.statut, ifapmeSide, mode, typeContrat]\n );\n\n const editMode = React.useMemo(() => state === \"edit\" && !fullRO, [fullRO, state]);\n\n React.useEffect(() => {\n if (!!data) {\n setData(data.lieuxFormation);\n if (data.lieuxFormation.length > 0) {\n setFirstIdLieuFormation(data.lieuxFormation[0].idlieuFormation);\n }\n }\n }, [data, setData]);\n\n const fetchIdSiegeSocial = React.useCallback(() => {\n if (firstIdLieuFormation <= 0) return null;\n return lieuFormationApi.lieuFormationGetIdSiegeSocial({ id: firstIdLieuFormation });\n }, [firstIdLieuFormation, lieuFormationApi]);\n const { data: idsiegeSocial } = useQuery(\n [\"idsiegesocial-lieuformation-contrat\", firstIdLieuFormation],\n fetchIdSiegeSocial\n );\n\n const [serviceTutelle, loadingServiceTutelle] = useReferential(\n a =>\n a.referentialGetServiceTutelle({\n userFilter: mode === \"hope\",\n ifapmeSide: mode === \"walter\" ? EIfapmeSide.Walter : EIfapmeSide.Hope,\n currentId: idserviceTutelle\n }),\n true,\n [idserviceTutelle]\n );\n\n const [idapprenantForm, setIdapprenant] = React.useState(0);\n const [classes, cLoading] = useReferential(\n a =>\n idapprenantForm > 0\n ? a.referentialGetClasseForContrat({ idapprenant: idapprenantForm })\n : Promise.resolve(ReferentialResultInfoDtoFromJSON({ list: [] })),\n true,\n [idapprenantForm]\n );\n\n const [metiers, mLoading] = useReferential(\n a =>\n a.referentialMetierByStadeForContrat({\n idStade: formikInnerRef.current?.values?.idstade,\n currentId: formikInnerRef.current?.values?.idmetier\n }),\n false,\n [formikInnerRef.current?.values?.idstade, formikInnerRef.current?.values?.idmetier]\n );\n\n const codeRO = React.useMemo(() => mode === \"hope\" || typeContrat === ETypeContrat.SO || +id > 0, [\n id,\n mode,\n typeContrat\n ]);\n\n const hopeFormSchema = React.useMemo(() => {\n let subContratSchema = {};\n switch (typeContrat) {\n case ETypeContrat.CC:\n case ETypeContrat.CA:\n subContratSchema = {\n iddureeContrat: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idmetier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idcommissionParitaire: Yup.number().nullable(),\n idheureHebdoPossibleCommissionParitaire: Yup.number()\n .nullable()\n .min(0, t(ETLCodes.CannotBeNegative))\n .when(\"customHeuresHebdo\", {\n is: val => val === null || val === undefined,\n then: Yup.number()\n .nullable()\n .min(0, t(ETLCodes.CannotBeNegative))\n .required(t(ETLCodes.Required))\n }),\n customHeuresHebdo: Yup.number()\n .nullable()\n .min(0, t(ETLCodes.CannotBeNegative))\n .when(\"idheureHebdoPossibleCommissionParitaire\", {\n is: val => val === null || val === undefined,\n then: Yup.number()\n .nullable()\n .min(0, t(ETLCodes.CannotBeNegative))\n .required(t(ETLCodes.Required))\n })\n };\n if (!data?.idariane) {\n subContratSchema = {\n ...subContratSchema,\n baremes: Yup.array()\n .nullable()\n .of(\n Yup.object().shape({\n remunReelle: Yup.number()\n .nullable()\n .min(Yup.ref(\"remunTheorique\"), t(ETLCodes.CannotBeUnderBareme))\n })\n )\n };\n }\n break;\n case ETypeContrat.CS:\n subContratSchema = {\n iddureeContrat: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idcommissionParitaire: Yup.number().nullable(),\n idmetier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n };\n if (!data?.idariane) {\n subContratSchema = {\n ...subContratSchema,\n baremes: Yup.array()\n .nullable()\n .of(\n Yup.object().shape({\n remunReelle: Yup.number()\n .nullable()\n .min(Yup.ref(\"remunTheorique\"), t(ETLCodes.CannotBeUnderBareme))\n })\n )\n };\n }\n break;\n case ETypeContrat.PP:\n subContratSchema = {\n idmetier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idcommissionParitaire: Yup.number().nullable(),\n idheureHebdoPossibleCommissionParitaire: Yup.number()\n .nullable()\n .min(0, t(ETLCodes.CannotBeNegative))\n };\n break;\n case ETypeContrat.CF:\n subContratSchema = {\n idmetier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idcommissionParitaire: Yup.number().nullable(),\n idheureHebdoPossibleCommissionParitaire: Yup.number()\n .nullable()\n .min(0, t(ETLCodes.CannotBeNegative)),\n contratFaltDto: Yup.object()\n .nullable()\n .shape({\n pcFormationEmployeur: Yup.number()\n .nullable()\n .min(0, t(ETLCodes.CannotBeNegative))\n .max(100, t(ETLCodes.CannotBeGreaterThan, { amount: 100 })),\n pcFormationOperateur: Yup.number()\n .nullable()\n .min(0, t(ETLCodes.CannotBeNegative))\n .max(100, t(ETLCodes.CannotBeGreaterThan, { amount: 100 })),\n interventionFinanciere: Yup.number()\n .nullable()\n .min(0, t(ETLCodes.CannotBeNegative))\n })\n };\n break;\n case ETypeContrat.DM:\n case ETypeContrat.JI:\n subContratSchema = {\n idmetier: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n };\n break;\n case ETypeContrat.CCE:\n case ETypeContrat.CSE:\n subContratSchema = {\n code: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n };\n break;\n }\n return Yup.object().shape(\n {\n idserviceTutelle: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idpri: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idari: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateDebut: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.max(Yup.ref(\"dateFin\"), t(ETLCodes.DateDebutGreaterThanDateFin)) : schema\n )\n .required(t(ETLCodes.Required)),\n dateFin: Yup.date()\n .nullable()\n .when(\"dateDebut\", (value, schema) =>\n !!value ? schema.min(Yup.ref(\"dateDebut\"), t(ETLCodes.DateFinGreaterThanDateDebut)) : schema\n )\n .required(t(ETLCodes.Required)),\n rompuLe: Yup.date()\n .nullable()\n .min(Yup.ref(\"dateDebut\"), t(ETLCodes.MustBeWithinContractPeriod))\n .max(Yup.ref(\"dateFin\"), t(ETLCodes.MustBeWithinContractPeriod)),\n datePriseActe: Yup.date()\n .nullable()\n .min(Yup.ref(\"rompuLe\"), t(ETLCodes.MustBeAfterRupture)),\n ...subContratSchema\n },\n [\n [\"dateDebut\", \"dateFin\"],\n [\"idheureHebdoPossibleCommissionParitaire\", \"customHeuresHebdo\"]\n ]\n );\n }, [data?.idariane, t, typeContrat]);\n\n const walterFormSchema = React.useMemo(() => {\n let subContratSchema = {};\n switch (typeContrat) {\n case ETypeContrat.SO:\n subContratSchema = {\n contratStageObservationDto: Yup.object()\n .nullable()\n .shape({\n siegeSocial: Yup.object()\n .nullable()\n .shape({\n numeroBce: Yup.number().required(t(ETLCodes.Required))\n // .test(\"bce-validity\", t(ETLCodes.InvalidBCE), async function(value) {\n // return !value || bceNumberValidate(value.toString());\n // })\n })\n })\n };\n break;\n case ETypeContrat.CCE:\n subContratSchema = {\n code: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n rompuLe: Yup.date()\n .nullable()\n .min(Yup.ref(\"dateDebut\"), t(ETLCodes.MustBeWithinContractPeriod))\n .max(Yup.ref(\"dateFin\"), t(ETLCodes.MustBeWithinContractPeriod)),\n contratAlternanceCommunDto: Yup.object()\n .nullable()\n .shape({\n email: Yup.string()\n .nullable()\n .email(t(ETLCodes.InvalidEmail)),\n idcontratStatutWalter: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n };\n break;\n case ETypeContrat.CSE:\n subContratSchema = {\n code: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n rompuLe: Yup.date()\n .nullable()\n .min(Yup.ref(\"dateDebut\"), t(ETLCodes.MustBeWithinContractPeriod))\n .max(Yup.ref(\"dateFin\"), t(ETLCodes.MustBeWithinContractPeriod)),\n contratConventionStageExterneDto: Yup.object()\n .nullable()\n .shape({\n email: Yup.string()\n .nullable()\n .email(t(ETLCodes.InvalidEmail)),\n idcontratStatutWalter: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n };\n break;\n }\n return Yup.object().shape(\n {\n idapprenant: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idclasse: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateDebut: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.max(Yup.ref(\"dateFin\"), t(ETLCodes.DateDebutGreaterThanDateFin)) : schema\n )\n .required(t(ETLCodes.Required)),\n dateFin: Yup.date()\n .nullable()\n .when(\"dateFin\", (value, schema) =>\n !!value ? schema.min(Yup.ref(\"dateDebut\"), t(ETLCodes.DateFinGreaterThanDateDebut)) : schema\n )\n .required(t(ETLCodes.Required)),\n ...subContratSchema\n },\n [[\"dateFin\", \"dateFin\"]]\n );\n }, [t, typeContrat]);\n\n const statutColor = React.useMemo(() => {\n if (!data) return \"white\";\n switch (data.statut) {\n case EStatutContrat.EnCours:\n case EStatutContrat.Termine:\n return theme.sucessColor;\n case EStatutContrat.NonDemarre:\n case EStatutContrat.Suspendu:\n return theme.warningColor;\n case EStatutContrat.Rompu:\n case EStatutContrat.SansSuite:\n return theme.dangerColor;\n }\n }, [data, theme.dangerColor, theme.sucessColor, theme.warningColor]);\n\n const marquerSansSuite = React.useCallback(\n async (ctx: IFGContext) => {\n const result = await showDialogPromise({\n message: t(ETLCodes.MarquerSansSuiteConfirmMessage),\n title: t(ETLCodes.MarquerSansSuiteConfirm)\n });\n\n if (result === \"yes\") {\n ctx.formik.setFieldValue(\"marqueSansSuiteLe\", new Date());\n ctx.formik.submitForm();\n }\n },\n [showDialogPromise, t]\n );\n\n const removeLieuFormation = React.useCallback(\n (row: ContratLieuFormationGridDto) => {\n let nextValues = [...formikInnerRef.current?.values?.lieuxFormation];\n nextValues.splice(nextValues.indexOf(row), 1);\n formikInnerRef.current.setFieldValue(`lieuxFormation`, nextValues);\n formikInnerRef.current.setFieldTouched(`lieuxFormation`, true);\n setData(nextValues);\n\n if (nextValues.length === 0) {\n setFirstIdLieuFormation(null);\n }\n },\n [setData]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n autoFitContent: true,\n fieldName: \"_toggle\",\n render: (item: ContratLieuFormationGridDto, _, { subPanelOpened, toggleSubPanel }) => {\n return \n \n )\n }\n >\n \n \n \n \n \n !ctx.formik?.values?.nationalite || ctx.formik?.values?.nationalite === \"BE\"}\n />\n !!ctx.formik?.values?.nationalite && ctx.formik?.values?.nationalite !== \"BE\"}\n />\n \n \n \n {(ctx: IFGContext) => (\n
\n {t(ETLCodes.XYear, { ageNumber: moment().diff(ctx?.formik?.values?.dateNaissance, \"years\") })}\n
\n )}\n
\n
\n \n \n \n \n \n \n \n {(ctx: IFGContext) => (\n <>\n {ctx?.formik?.values?.compteBancaires?.map((_, idx: number) => (\n \n ))}\n {ctx?.editMode && !typeTel && !typeEmail && (\n addCb(ctx?.formik)}\n fill\n disabled={ctx.disabled}\n />\n )}\n \n )}\n \n
\n \n \n {ctx => (\n
\n
\n {ctx.formik.values.photo ? (\n <>\n \n \n \n \n \n ) : (\n \n )}\n
\n
\n )}\n
\n \n \n \n \n {(ctx: IFGContext) => (\n <>\n {ctx?.formik?.values?.telephones?.map((_, idx: number) => (\n \n = 0}\n />\n \n {\n removeTel(idx, ctx?.formik)}\n disabled={\n ctx.disabled ||\n !(\n ctx?.editMode &&\n !typeEmail &&\n (!typeTel || !ctx?.formik?.values?.telephones[idx].idtelephone)\n )\n }\n />\n }\n \n ))}\n {ctx?.editMode && !typeEmail && (\n addTel(ctx?.formik)}\n fill\n disabled={ctx.disabled}\n />\n )}\n \n )}\n \n \n \n \n {(ctx: IFGContext) => (\n <>\n {ctx?.formik?.values?.emails?.map((_, idx: number) => (\n \n = 0}\n />\n \n {\n removeEmail(idx, ctx?.formik)}\n disabled={\n ctx.disabled ||\n !(ctx?.editMode && !typeTel && (!typeEmail || !ctx?.formik?.values?.emails[idx].idemail))\n }\n />\n }\n \n ))}\n {ctx?.editMode && !typeTel && (\n addEmail(ctx?.formik)}\n fill\n disabled={ctx.disabled}\n />\n )}\n \n )}\n \n \n \n \n {ctx => (\n \n \n {t(ETLCodes.Domicile)}{\" \"}\n {ctx.formik.values?.idaddressDoublons?.length > 1 && (\n \n \n {\"\\u00A0\"}\n fixAdresse(ctx.formik.values.idpersonne, +typeAdresseDomicile?.idValue)}\n />\n \n )}\n \n )\n }}\n rightElement={\n ctx?.editMode && (\n removeAdresse(\"adresseDomicile\", ctx?.formik)}\n disabled={ctx.disabled}\n />\n )\n }\n >\n \n \n \n \n {ctx => (\n <>\n \n \n \n )}\n \n \n \n {t(ETLCodes.Courrier)}{\" \"}\n {ctx.formik.values?.idaddressCourrierDoublons?.length > 1 && (\n \n \n {\"\\u00A0\"}\n fixAdresse(ctx.formik.values.idpersonne, +typeAdresseCourrier?.idValue)}\n />\n \n )}\n \n )\n }}\n rightElement={\n ctx?.editMode && (\n removeAdresse(\"adresseCourrier\", ctx?.formik)}\n disabled={ctx.disabled}\n />\n )\n }\n >\n \n \n \n \n {ctx => (\n <>\n \n \n \n )}\n \n \n \n {t(ETLCodes.Autre)}{\" \"}\n {ctx.formik.values?.idaddressAutreDoublons?.length > 1 && (\n \n \n {\"\\u00A0\"}\n fixAdresse(ctx.formik.values.idpersonne, +typeAdresseAutre?.idValue)}\n />\n \n )}\n \n )\n }}\n rightElement={\n ctx?.editMode && (\n removeAdresse(\"adresseAutre\", ctx?.formik)}\n disabled={ctx.disabled}\n />\n )\n }\n >\n \n \n \n \n {ctx => (\n <>\n \n \n \n )}\n \n \n \n )}\n \n \n {!!telToReplace && (\n \n )}\n {!!emailToReplace && (\n \n )}\n {!!fixAdresseData && (\n {\n if (refreshData) {\n refresh();\n }\n setFixAdresseData(null);\n }}\n />\n )}\n \n );\n};\n","import { ControlGroup } from \"@blueprintjs/core\";\nimport { FormikProps } from \"formik\";\nimport { FGIBANNumberInput, FGListen, FGTextInput } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\n\nimport { FormateurApi, PersonneEditDto } from \"../../../../../../api\";\nimport { DeleteButton } from \"../../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IPersonneBankAccountRowProps {\n idpersonne: number;\n index: number;\n formik: FormikProps;\n editMode: boolean;\n disabled: boolean;\n}\n\nexport const PersonneBankAccountRow: React.FunctionComponent = ({\n idpersonne,\n index,\n formik,\n editMode,\n disabled\n}) => {\n const { t } = useTl();\n const formateurApi = useApiService(FormateurApi);\n const [bankAccount, setBankAccount] = React.useState(null);\n const queryEnabled = React.useMemo(() => bankAccount?.startsWith(\"BE\") && bankAccount?.length > 8, [bankAccount]);\n const fetchBic = React.useCallback(async () => {\n if (queryEnabled) return formateurApi.formateurGetBicFromAccount({ account: bankAccount });\n return \"\";\n }, [bankAccount, formateurApi, queryEnabled]);\n\n const { data: bic, isFetching: bicLoading, refetch } = useQuery([\"bic-personne\", idpersonne, bankAccount], fetchBic);\n\n React.useEffect(() => {\n if (bankAccount) {\n refetch();\n }\n }, [bankAccount, refetch]);\n\n React.useEffect(() => {\n if (bic && bic !== formik.values?.compteBancaires?.[index]?.bic) {\n formik?.setFieldValue(`compteBancaires[${index}].bic`, bic);\n }\n }, [bic, formik, index]);\n\n const removeCb = React.useCallback(\n async (index: number) => {\n let cbs = [...formik.values.compteBancaires];\n cbs.splice(index, 1);\n formik.setFieldValue(\"compteBancaires\", cbs);\n },\n [formik]\n );\n\n return (\n \n {\n if (!!value) {\n setBankAccount(value);\n } else if (!!formik.values.compteBancaires?.[index]?.bic) {\n formik.setFieldValue(`compteBancaires[${index}].bic`, null);\n }\n }}\n />\n \n \n {editMode && removeCb(index)} disabled={disabled} />}\n \n );\n};\n","import { Classes, ControlGroup, Dialog, NonIdealState, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n EmailDto,\n EmailReplaceDto,\n EmailReplaceDtoFromJSON,\n EmailReplaceDtoToJSON,\n PersonneApi\n} from \"../../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../../../locales\";\nimport { useReferential } from \"../../../../../../../hooks/useReferential\";\nimport { DeleteButton, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../../components\";\nimport { FGCustomPanel, FGTextInput } from \"nsitools-react\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n\n & .${Classes.RADIO} {\n align-self: center;\n min-width: 125px;\n }\n`;\n\nconst StyledNonIdealState = styled(NonIdealState)`\n margin-bottom: 1rem;\n`;\n\nconst StyledControlGroup = styled(ControlGroup)`\n & > .adresseEmail {\n margin-left: 0.5rem !important;\n }\n`;\n\nexport interface IEmailReplaceDialogProps {\n dialogOpen: boolean;\n onClose: (replaced?: EmailReplaceDto) => void;\n idpersonne: number;\n currentEmail: EmailDto;\n}\n\nexport const EmailReplaceDialog: React.FunctionComponent = ({\n dialogOpen,\n onClose,\n idpersonne,\n currentEmail\n}) => {\n const { t } = useTl();\n const api = useApiService(PersonneApi);\n\n const { data, loading, saveItem, saving } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n EmailReplaceDtoFromJSON({\n idpersonne,\n oldIdemail: currentEmail?.idemail,\n isNew: false\n }),\n saveApiFn: d => api.personneReplaceEmail({ EmailReplaceDto: d }),\n onSaved: d => onClose(d)\n }),\n [api, currentEmail?.idemail, idpersonne, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n oldIdemail: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n newIdemail: Yup.number().nullable(),\n adresseEmail: Yup.string()\n .nullable()\n .when(\"isNew\", {\n is: true,\n then: Yup.string()\n .required(t(ETLCodes.Required))\n .email(t(ETLCodes.InvalidEmail))\n }),\n idtypeEmail: Yup.number()\n .nullable()\n .when(\"isNew\", {\n is: true,\n then: Yup.number().required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typeEmails, teLoading] = useReferential(a => a.referentialGetTypesEmail());\n const [fullPersonneEmails, personneEmailsLoading] = useReferential(\n a => a.referentialGetEmailsPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n const personneEmails = React.useMemo(() => fullPersonneEmails?.filter(t => +t.value !== currentEmail.idemail), [\n currentEmail.idemail,\n fullPersonneEmails\n ]);\n\n const deleteEmail = React.useCallback(\n async (emailId: number) => {\n await api.personneDeleteEmail({ idemail: emailId });\n onClose(EmailReplaceDtoToJSON({ oldIdemail: emailId }));\n },\n [api, onClose]\n );\n\n return (\n onClose()}>\n
\n \n onClose()}\n showDeleteButton={false}\n saving={saving}\n >\n \n {ctx => (\n {\n if (e.currentTarget.value === \"1\") {\n ctx.formik.setFieldValue(\"isNew\", true);\n ctx.formik.setFieldValue(\"newIdemail\", null);\n } else {\n ctx.formik.setFieldValue(\"isNew\", false);\n ctx.formik.setFieldValue(\"adresseEmail\", null);\n ctx.formik.setFieldValue(\"idtypeEmail\", null);\n }\n }}\n >\n \n \n
\n \n \n \n \n \n
\n deleteEmail(ctx?.formik?.values?.oldIdemail)}\n minimal={false}\n />\n \n )}\n
\n \n
\n
\n );\n};\n","import { Classes, ControlGroup, Dialog, NonIdealState, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n PersonneApi,\n TelephoneDto,\n TelephoneDtoFromJSON,\n TelephoneReplaceDto,\n TelephoneReplaceDtoFromJSON\n} from \"../../../../../../../api\";\nimport { DeleteButton, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../../locales\";\nimport * as Yup from \"yup\";\nimport { phoneRegex } from \"../../../../../../../utils/phoneRegex\";\nimport { FGCustomPanel, FGTextInput } from \"nsitools-react\";\nimport { useReferential } from \"../../../../../../../hooks/useReferential\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n\n & .${Classes.RADIO} {\n align-self: center;\n min-width: 125px;\n }\n`;\n\nconst StyledNonIdealState = styled(NonIdealState)`\n margin-bottom: 1rem;\n`;\n\nconst StyledControlGroup = styled(ControlGroup)`\n & > .numero {\n margin-left: 0.5rem !important;\n }\n`;\n\nexport interface ITelephoneReplaceDialogProps {\n dialogOpen: boolean;\n onClose: (replaced?: TelephoneReplaceDto) => void;\n idpersonne: number;\n currentTel: TelephoneDto;\n}\n\nexport const TelephoneReplaceDialog: React.FunctionComponent = ({\n dialogOpen,\n onClose,\n idpersonne,\n currentTel\n}) => {\n const { t } = useTl();\n const api = useApiService(PersonneApi);\n\n const { data, loading, saveItem, saving } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n TelephoneReplaceDtoFromJSON({\n idpersonne,\n oldIdtelephone: currentTel?.idtelephone,\n isNew: false\n }),\n saveApiFn: d => api.personneReplacePhone({ TelephoneReplaceDto: d }),\n onSaved: d => onClose(d)\n }),\n [api, currentTel?.idtelephone, idpersonne, onClose]\n )\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n oldIdtelephone: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n newIdtelephone: Yup.number().nullable(),\n numero: Yup.string()\n .nullable()\n .when(\"isNew\", {\n is: true,\n then: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"tel-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (!!this.parent.newIdtelephone || !value) return true;\n return !!value.match(phoneRegex);\n })\n }),\n idtypeTelephone: Yup.number()\n .nullable()\n .when(\"isNew\", {\n is: true,\n then: Yup.number().required(t(ETLCodes.Required))\n })\n }),\n [t]\n );\n\n const [typeTels, ttLoading] = useReferential(a => a.referentialGetTypesTelephone());\n const [fullPersonneTelephones, personneTelephonesLoading] = useReferential(\n a => a.referentialGetAllTelephonesPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n const personneTelephones = React.useMemo(\n () => fullPersonneTelephones?.filter(t => +t.value !== currentTel.idtelephone),\n [currentTel.idtelephone, fullPersonneTelephones]\n );\n\n const deleteTel = React.useCallback(\n async (telId: number) => {\n await api.personneDeleteTel({ idtelephone: telId });\n onClose(TelephoneDtoFromJSON({ oldIdtelephone: telId }));\n },\n [api, onClose]\n );\n\n return (\n onClose()}>\n
\n \n onClose()}\n showDeleteButton={false}\n saving={saving}\n >\n \n {ctx => (\n {\n if (e.currentTarget.value === \"1\") {\n ctx.formik.setFieldValue(\"isNew\", true);\n ctx.formik.setFieldValue(\"newIdtelephone\", null);\n } else {\n ctx.formik.setFieldValue(\"isNew\", false);\n ctx.formik.setFieldValue(\"numero\", null);\n ctx.formik.setFieldValue(\"idtypeTelephone\", null);\n }\n }}\n >\n \n \n
\n \n \n \n \n \n
\n deleteTel(ctx?.formik?.values?.oldIdtelephone)}\n minimal={false}\n />\n \n )}\n
\n \n
\n
\n );\n};\n","import addMinutes from \"date-fns/addMinutes\";\nimport format from \"date-fns/format\";\nimport parseJSON from \"date-fns/parseJSON\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport { PersonneApi, PersonneHistoryGridDto, PersonneHistorySearch } from \"../../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IPersonneHistoryProps {}\n\nexport const PersonneHistory: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { id } = useParams<{ id: string }>();\n const personneId = React.useMemo(() => +id, [id]);\n const api = useApiService(PersonneApi);\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { actionDate: \"DESC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: PersonneHistorySearch) => {\n sObj.idpersonne = personneId;\n return api.personneSearchHistory({ PersonneHistorySearch: sObj });\n },\n [api, personneId]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Utilisateur),\n fieldName: \"userName\"\n },\n {\n header: () => t(ETLCodes.Action),\n fieldName: \"action\",\n render: (row: PersonneHistoryGridDto) => tUnsafe(`Personne_${row.actionType}_${row.action}`)\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"actionDate\"\n },\n {\n header: () => t(ETLCodes.UserType),\n fieldName: \"ifapmeSide\",\n render: (row: PersonneHistoryGridDto) =>\n `${row.ifapmeSide.includes(\"Walter\") ? tUnsafe(\"UserType_Centre\") : \"\"}${\n row.ifapmeSide.length === 2 ? \" / \" : \"\"\n }${row.ifapmeSide.includes(\"Hope\") ? tUnsafe(\"UserType_Service\") : \"\"}`\n }\n ],\n [t, tUnsafe]\n );\n\n const formatDate = React.useCallback((date: Date) => {\n return format(parseJSON(addMinutes(date, date.getTimezoneOffset())), \"dd/MM/yyyy HH:mm\");\n }, []);\n\n return (\n <>\n
\n \n
\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport { RapportHopeDetailPage, RapportHopePermissionsPage } from \".\";\nimport { RapportHopeApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IRapportHopeItemPageProps {}\n\nexport const RapportHopeItemPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(RapportHopeApi);\n const fetchDisplayName = React.useCallback(async () => {\n if (+id <= 0) return null;\n return await api.rapportHopeGetDisplayName({ idrapportHope: +id });\n }, [api, id]);\n const { data: displayName } = useQuery([\"rapport-hope-display-name\", id], fetchDisplayName);\n\n return (\n 0 ? displayName : t(ETLCodes.New) }\n ]}\n >\n history.push(`${ERoutes.rapports}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n }\n disabled={+id === 0}\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { RapportHopeApi, RapportHopeEditDtoFromJSON, ReferentialApi } from \"../../../../../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterSelectInput,\n FGWalterSuggestTextInput,\n SmallFormGenerator\n} from \"../../../../../../components\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { useQuery } from \"react-query\";\n\nexport interface IRapportHopeDetailPageProps {\n idrapportHope: number;\n editMode: boolean;\n}\n\nexport const RapportHopeDetailPage: React.FunctionComponent = ({\n idrapportHope,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(RapportHopeApi);\n const refApi = useApiService(ReferentialApi);\n const history = useHistory();\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n nom: Yup.string().required(t(ETLCodes.Required)),\n path: Yup.string().required(t(ETLCodes.Required)),\n idrapportHopeType: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n +idrapportHope <= 0\n ? RapportHopeEditDtoFromJSON({ idrapportHope: 0, actif: true })\n : api.rapportHopeGetRapportHope({ idrapportHope: +idrapportHope }),\n saveApiFn: d => api.rapportHopeSaveRapportHope({ RapportHopeEditDto: d }),\n onSavedRoute: d => `${ERoutes.rapports}/${d.idrapportHope}/detail/edit`,\n deleteApiFn: d => api.rapportHopeDeleteRapportHope({ idrapportHope: d.idrapportHope }),\n onDeletedRoute: () => ERoutes.rapports\n }),\n [api, idrapportHope]\n )\n );\n\n const [types, tLoading] = useReferential(a => a.referentialGetRapportHopeTypes());\n\n const fetchExistingCategories = React.useCallback(() => {\n return refApi.referentialGetCategoriesRapport();\n }, [refApi]);\n const { data: categories, isFetching: cLoading } = useQuery(\n \"existing-categories-rapport-hope\",\n fetchExistingCategories,\n {\n cacheTime: 0\n }\n );\n\n return (\n history.push(ERoutes.rapports)}\n onDelete={deleteItem}\n showDeleteButton={+idrapportHope > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport {\n RapportHopeAccesPermissionsGrid,\n RapportHopeModulePermissionsGrid,\n RapportHopeServicePermissionsGrid\n} from \".\";\nimport { RapportHopeApi } from \"../../../../../../api\";\nimport { useApiService } from \"../../../../../../hooks\";\n\nexport interface IRapportHopePermissionsPageProps {\n idrapportHope: number;\n}\n\nexport const RapportHopePermissionsPage: React.FunctionComponent = ({\n idrapportHope\n}) => {\n const api = useApiService(RapportHopeApi);\n\n const fetchPermissions = React.useCallback(() => api.rapportHopeGetPermissions({ idrapportHope }), [\n api,\n idrapportHope\n ]);\n const { data, isFetching: loading } = useQuery([\"rapport-hope-permission\", idrapportHope], fetchPermissions);\n\n return (\n <>\n \n \n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { RapportHopeAccesPermissionDto, RapportHopeApi } from \"../../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IRapportHopeAccesPermissionsGridProps {\n idrapportHope: number;\n acces: RapportHopeAccesPermissionDto[];\n loading: boolean;\n}\n\nexport const RapportHopeAccesPermissionsGrid: React.FunctionComponent = ({\n acces,\n idrapportHope,\n loading\n}) => {\n const { t } = useTl();\n const api = useApiService(RapportHopeApi);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n setData(acces);\n }, [acces, setData]);\n\n const toggleSelection = React.useCallback(\n (row: RapportHopeAccesPermissionDto) => {\n row.selected = !row.selected;\n row.idrapportHope = idrapportHope;\n let nextData = [...acces];\n setData(nextData);\n api.rapportHopeSaveAccesPermissions({ RapportHopeAccesPermissionDto: row });\n },\n [acces, api, idrapportHope, setData]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n render: (item: RapportHopeAccesPermissionDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n }\n ],\n [t, toggleSelection]\n );\n\n return (\n
\n \n
\n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { RapportHopeApi, RapportHopeServicePermissionDto } from \"../../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IRapportHopeServicePermissionsGridProps {\n idrapportHope: number;\n services: RapportHopeServicePermissionDto[];\n loading: boolean;\n}\n\nexport const RapportHopeServicePermissionsGrid: React.FunctionComponent = ({\n idrapportHope,\n loading,\n services\n}) => {\n const { t } = useTl();\n const api = useApiService(RapportHopeApi);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n setData(services);\n }, [services, setData]);\n\n const toggleSelection = React.useCallback(\n (row: RapportHopeServicePermissionDto) => {\n row.selected = !row.selected;\n row.idrapportHope = idrapportHope;\n let nextData = [...services];\n setData(nextData);\n api.rapportHopeSaveServicePermissions({ RapportHopeServicePermissionDto: row });\n },\n [api, idrapportHope, services, setData]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n render: (item: RapportHopeServicePermissionDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"nom\"\n }\n ],\n [t, toggleSelection]\n );\n\n return (\n
\n \n
\n );\n};\n","import { Checkbox } from '@blueprintjs/core';\nimport { DataTable, FieldSet, IDataTableColumn, useGridState } from 'nsitools-react';\nimport * as React from \"react\";\nimport { RapportHopeApi, RapportHopeModulePermissionDto } from \"../../../../../../api\";\nimport { useApiService, useTl } from '../../../../../../hooks';\nimport { ETLCodes } from '../../../../../../locales';\n\nexport interface IRapportHopeModulePermissionsGridProps {\n idrapportHope: number;\n modules: RapportHopeModulePermissionDto[];\n loading: boolean;\n}\n\nexport const RapportHopeModulePermissionsGrid: React.FunctionComponent = ({idrapportHope, loading, modules}) => {\n const { t } = useTl();\n const api = useApiService(RapportHopeApi);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n setData(modules);\n }, [modules, setData]);\n\n const toggleSelection = React.useCallback(\n (row: RapportHopeModulePermissionDto) => {\n row.selected = !row.selected;\n row.idrapportHope = idrapportHope;\n let nextData = [...modules];\n setData(nextData);\n api.rapportHopeSaveModulePermissions({ RapportHopeModulePermissionDto: row });\n },\n [api, idrapportHope, modules, setData]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n render: (item: RapportHopeModulePermissionDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"nom\"\n }\n ],\n [t, toggleSelection]\n );\n\n return (\n
\n \n
\n );\n};\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { EBooleanSearchTypes, RapportHopeApi, RapportHopeGridDto, RapportHopeSearchDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BooleanColumn, EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IRapportHopeListPageProps {}\n\nexport const RapportHopeListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(RapportHopeApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: RapportHopeGridDto) => (\n \n history.push(`${ERoutes.rapports}/${row.idrapportHope}/detail/view`)}\n />\n history.push(`${ERoutes.rapports}/${row.idrapportHope}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Actif),\n fieldName: \"actif\",\n alignment: \"center\",\n render: (row: RapportHopeGridDto) => \n },\n {\n header: () => t(ETLCodes.Rapport),\n fieldName: \"path\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"rapportHopeType\"\n },\n {\n header: () => t(ETLCodes.Categorie),\n fieldName: \"categorie\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.rapports}/-1/detail/edit`);\n }, [history]);\n\n const apiFactory = useAbortableApiServiceFactory(RapportHopeApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: RapportHopeSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.rapportHopeBaseSearch({ RapportHopeSearchDto: sObj });\n },\n [apiFactory]\n );\n const criteriasFn = React.useCallback(() => api.rapportHopeGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { CentreGlobalDetailPage } from \"..\";\nimport { EntiteCentreApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ICentreGlobalItemPageProps {}\n\nexport const CentreGlobalItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idCentreGlobal = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const centreGlobalApi = useApiService(EntiteCentreApi);\n\n const [displayName] = useApiEffect(() => centreGlobalApi.entiteCentreGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.centreGlobal}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { EntiteCentreApi, EntiteCentreSearch, FcbEntitecentreDto, EBooleanSearchTypes } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SearchTablePage, EditButton, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ICentreGlobalListPageProps {}\nconst Container = styled.div`\n display: flex;\n`;\nexport const CentreGlobalListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(EntiteCentreApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbEntitecentreDto) => (\n \n history.push(`${ERoutes.centreGlobal}/${row.identite}/detail/view`)}\n />\n history.push(`${ERoutes.centreGlobal}/${row.identite}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => history.push(`${ERoutes.centreGlobal}/0/detail/edit`), [history]);\n\n const getCriteriasFn = React.useCallback(() => api.entiteCentreGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(EntiteCentreApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: EntiteCentreSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.entiteCentreBaseSearch({ EntiteCentreSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { EntiteCentreApi, FcbEntitecentreDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ICentreGlobalDetailPage {\n idCentreGlobal: number;\n editMode: boolean;\n}\n\nexport const CentreGlobalDetailPage: React.FunctionComponent = ({\n idCentreGlobal,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(EntiteCentreApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idCentreGlobal <= 0\n ? FcbEntitecentreDtoFromJSON({ idProjetFinancement: 0 })\n : api.entiteCentreGet({ id: +idCentreGlobal }),\n saveApiFn: d => api.entiteCentreSave({ FcbEntitecentreDto: d }),\n onSavedRoute: d => `${ERoutes.centreGlobal}/${d.identite}/detail/edit`,\n deleteApiFn: d => api.entiteCentreDelete({ id: d.identite }),\n onDeletedRoute: () => ERoutes.centreGlobal\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n nom: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n data && (\n history.push(ERoutes.centreGlobal)}\n onDelete={deleteItem}\n showDeleteButton={+idCentreGlobal > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n )\n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { FcbEcoleGridDto, EcoleSearch, EcoleApi, EBooleanSearchTypes } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ButtonContainer } from \"nsitools-react\";\n\ninterface IEcoleListProps {}\n\nexport const EcoleListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(EcoleApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbEcoleGridDto) => (\n \n history.push(`${ERoutes.ecole}/${row.idecole}/detail/view`)} />\n history.push(`${ERoutes.ecole}/${row.idecole}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Pays),\n fieldName: \"nomPays\"\n },\n {\n header: () => t(ETLCodes.Tel),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.Fax),\n fieldName: \"fax\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.ecole}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.ecoleGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(EcoleApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: EcoleSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.ecoleBaseSearch({ EcoleSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { EcoleDetailPage } from \"..\";\nimport { EcoleApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IEcoleItemPageProps {}\n\nexport const EcoleItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const ecoleApi = useApiService(EcoleApi);\n const [displayName] = useApiEffect(() => ecoleApi.ecoleGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.ecole}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGCustomPanel, FGEmpty, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { EcoleApi, FcbEcoleDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n CommuneSelect,\n FGWalterSelectInput,\n SmallFormGenerator,\n FGWalterCheckboxInput\n} from \"../../../../../components\";\nimport { LocaliteSelect } from \"../../../../../components/LocaliteSelect\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IEcoleDetailPageProps {\n idEcole: number;\n editMode: boolean;\n}\n\nexport const EcoleDetailPage: React.FunctionComponent = ({ idEcole, editMode }) => {\n const { t } = useTl();\n const api = useApiService(EcoleApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (+idEcole <= 0 ? FcbEcoleDtoFromJSON({ idEcole: 0 }) : api.ecoleGet({ id: +idEcole })),\n saveApiFn: d => api.ecoleSave({ FcbEcoleDto: d }),\n onSavedRoute: d => `${ERoutes.ecole}/${d.idecole}/detail/edit`,\n deleteApiFn: d => api.ecoleDelete({ id: d.idecole }),\n onDeletedRoute: () => ERoutes.ecole\n });\n\n const [pays, loadingPays] = useReferential(a => a.referentialGetPays(), false, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n codePays: Yup.string().required(t(ETLCodes.Required)),\n nom: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const Localite = formik => {\n return ;\n };\n\n const Commune = formik => {\n return ;\n };\n\n return (\n data && (\n history.push(ERoutes.ecole)}\n onDelete={deleteItem}\n showDeleteButton={+idEcole > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n {ctx => Localite(ctx.formik)}\n \n {ctx => Commune(ctx.formik)}\n \n \n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { LocalApi, LocalSearch, FcbLocalGridDto, EBooleanSearchTypes } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ButtonContainer } from \"nsitools-react\";\n\ninterface ILocalListPageProps {}\n\nexport const LocalListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(LocalApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbLocalGridDto) => (\n \n history.push(`${ERoutes.local}/${row.idlocal}/detail/view`)} />\n history.push(`${ERoutes.local}/${row.idlocal}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.Lieu),\n fieldName: \"lieu\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.local}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.localGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(LocalApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: LocalSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.localBaseSearch({ LocalSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { LocalDetailPage } from \"..\";\nimport { LocalApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ILocalItemPageProps {}\n\nexport const LocalItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const localApi = useApiService(LocalApi);\n const [displayName] = useApiEffect(() => localApi.localGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.local}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import * as React from \"react\";\n\nimport { FGWalterSelectInput } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ILieuSelectProps {\n idCentre: number;\n}\n\nexport const LieuSelect: React.FunctionComponent = ({ idCentre }) => {\n const { t } = useTl();\n const [data, loading] = useReferential(api => api.referentialGetLieu({ idCentre }), true, [idCentre]);\n\n return ;\n};\n","import { FGCustomPanel, FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbLocalDtoFromJSON, LocalApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator, FGWalterCheckboxInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { LieuSelect } from \"./LieuSelect\";\n\ninterface ILocalDetailPageProps {\n idLocal: number;\n editMode: boolean;\n}\n\nexport const LocalDetailPage: React.FunctionComponent = ({ idLocal, editMode }) => {\n const { t } = useTl();\n const api = useApiService(LocalApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (+idLocal <= 0 ? FcbLocalDtoFromJSON({ idLocal: 0 }) : api.localGet({ id: +idLocal })),\n saveApiFn: d => api.localSave({ FcbLocalDto: d }),\n onSavedRoute: d => `${ERoutes.local}/${d.idlocal}/detail/edit`,\n deleteApiFn: d => api.localDelete({ id: d.idlocal }),\n onDeletedRoute: () => ERoutes.local\n });\n\n const [centre, cLoading] = useReferential(cApi => cApi.referentialGetCentre(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n code: Yup.string().required(t(ETLCodes.Required)),\n description: Yup.string().required(t(ETLCodes.Required)),\n idcentre: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const Lieu = React.useCallback((idCentre: number) => , []);\n\n return (\n data && (\n history.push(ERoutes.local)}\n onDelete={deleteItem}\n showDeleteButton={+idLocal > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n {ctx => Lieu(ctx.formik.values.idcentre)}\n \n \n \n \n )\n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { FcbCentreGridDto, CentreApi, CentreSearch, EBooleanSearchTypes } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, NumberShower, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { IDataTableColumn } from \"nsitools-react\";\nimport styled from \"styled-components\";\n\ninterface ICentreListPageProps {}\n\nconst ButtonContainer = styled.div`\n display: flex;\n`;\n\nexport const CentreListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(CentreApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbCentreGridDto) => (\n \n history.push(`${ERoutes.centre}/${row.idcentre}/detail/view`)} />\n history.push(`${ERoutes.centre}/${row.idcentre}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\",\n render: (row: FcbCentreGridDto) =>\n `${row.adresse ?? \"\"} ${row.codePostal ?? \"\"} ${row.localite ?? \"\"} (${row.commune ?? \"\"})`\n },\n {\n header: () => t(ETLCodes.Tel),\n fieldName: \"telephone\",\n width: 200,\n render: (row: FcbCentreGridDto) => (\n <>\n \n \n \n \n \n \n )\n },\n {\n header: () => t(ETLCodes.Fax),\n fieldName: \"fax\",\n width: 200,\n render: (row: FcbCentreGridDto) => (\n <>\n \n \n \n \n \n )\n },\n {\n header: () => t(ETLCodes.Directeur),\n fieldName: \"directeur\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.centre}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.centreGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(CentreApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: CentreSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.centreBaseSearch({ CentreSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Divider } from \"@blueprintjs/core\";\nimport { FGCustomPanel, FGEmpty, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { CentreApi, FcbCentreDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n CommuneSelect,\n FGWalterSelectInput,\n SmallFormGenerator,\n FGWalterCheckboxInput\n} from \"../../../../../components\";\nimport { LocaliteSelect } from \"../../../../../components/LocaliteSelect\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ICentreDetailTabProps {\n idCentre: number;\n editMode: boolean;\n}\n\nexport const CentreDetailTab: React.FunctionComponent = ({ idCentre, editMode }) => {\n const { t } = useTl();\n const api = useApiService(CentreApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (+idCentre <= 0 ? FcbCentreDtoFromJSON({ idCentre: 0 }) : api.centreGet({ id: +idCentre })),\n saveApiFn: d => api.centreSave({ FcbCentreDto: d }),\n onSavedRoute: d => `${ERoutes.centre}/${d.idcentre}/detail/edit`,\n deleteApiFn: d => api.centreDelete({ id: d.idcentre }),\n onDeletedRoute: () => ERoutes.centre\n });\n\n const [pays, loadingPays] = useReferential(a => a.referentialGetPays(), false, []);\n const [centresGlobal, loadingCentreGlobal] = useReferential(a => a.referentialGetCentreGlobal(), true, []);\n const [directionTerritoriale, loadingDirectionTerritoriale] = useReferential(\n a => a.referentialGetDirectionTerritoriale(),\n true,\n []\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n codePays: Yup.string().required(t(ETLCodes.Required)),\n code: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"code-not-exists\", t(ETLCodes.CentreDetailPage_CodeExistsError), async value => {\n if (value === data.code) return true;\n const validationError = await api.centreCodeExists({ code: value });\n return validationError.isValid;\n }),\n nom: Yup.string().required(t(ETLCodes.Required)),\n email: Yup.string().email(t(ETLCodes.InvalidEmail)),\n iddirectionTerritoriale: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t, api, data]);\n\n const Localite = formik => {\n return (\n \n );\n };\n\n const Commune = formik => {\n return ;\n };\n\n return (\n history.push(ERoutes.centre)}\n onDelete={deleteItem}\n showDeleteButton={+idCentre > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {ctx => Localite(ctx.formik)}\n {ctx => Commune(ctx.formik)}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router\";\n\nimport { CentreHoraireList, CentreHoraireDetails } from \"..\";\n\ninterface ICentreHoraireItemProps {}\n\nexport const CentreHoraireItem: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { CentreApi, FcbCentreDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { CentreResponsableAdjointList } from \"..\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\n\nexport interface ICentreResponsableProps {\n idCentre: number;\n editMode: boolean;\n}\n\nexport const CentreResponsable: React.FunctionComponent = ({ idCentre, editMode }) => {\n const { t } = useTl();\n const api = useApiService(CentreApi);\n\n const { data, loading, saveItem, saving } = useCrudApi({\n getApiFn: () => (+idCentre <= 0 ? FcbCentreDtoFromJSON({ idCentre: 0 }) : api.centreGet({ id: +idCentre })),\n saveApiFn: d => api.centreSave({ FcbCentreDto: d }),\n onSavedRoute: d => `${ERoutes.centre}/${d.idcentre}/responsable/edit`,\n deleteApiFn: d => api.centreDelete({ id: d.idcentre }),\n onDeletedRoute: () => ERoutes.centre\n });\n\n const [users, usersLoading] = useReferential(a => a.referentialGetCentreGlobalUsers(), false, []);\n\n return (\n data && (\n <>\n
\n \n \n \n \n \n \n \n
\n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { CentreLieuxCoursItem } from \"..\";\nimport { CentreApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { CentreDetailTab } from \"./CentreDetailsTab\";\nimport { CentreHoraireItem } from \"./CentreHoraireItem\";\nimport { CentreResponsable } from \"./CentreResponsable\";\n\ninterface ICentreItemPageProps { }\n\nexport const CentreItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idCentre = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const centreApi = useApiService(CentreApi);\n const [displayName] = useApiEffect(() => centreApi.centreGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.centre}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n }\n disabled={+id <= 0}\n />\n } disabled={+id <= 0} />\n } disabled={+id <= 0} />\n \n \n );\n};\n","import { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { AdjointApi, AdjointSearch } from \"../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ICentreResponsableAdjointListProps {\n idCentre: number;\n}\n\nexport const CentreResponsableAdjointList: React.FunctionComponent = ({\n idCentre\n}) => {\n const adApi = useApiService(AdjointApi);\n const { t } = useTl();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { titre: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: AdjointSearch) => {\n sObj.idcentre = idCentre;\n return adApi.adjointBaseSearch({ AdjointSearch: sObj });\n },\n [adApi, idCentre]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Title),\n fieldName: \"titre\"\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n }\n ],\n [t]\n );\n return (\n
\n \n
\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { FcbLieuxCoursGridDto, LieuxCoursApi, LieuxCoursSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ICentreLieuxCoursListProps {}\n\nexport const CentreLieuxCoursList: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const api = useApiService(LieuxCoursApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { code: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: LieuxCoursSearch) => {\n sObj.idcentre = +id;\n return api.lieuxCoursBaseSearch({ LieuxCoursSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const { totalCount } = tableState;\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbLieuxCoursGridDto) => (\n \n history.push(`${ERoutes.centre}/${+id}/lieuxCours/${row.idlieu}/view`)}\n />\n history.push(`${ERoutes.centre}/${+id}/lieuxCours/${row.idlieu}/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Commune),\n fieldName: \"commune\"\n },\n {\n header: () => t(ETLCodes.Pays),\n fieldName: \"codePays\",\n render: (row: FcbLieuxCoursGridDto) => row.pays\n },\n {\n header: () => t(ETLCodes.Tel),\n fieldName: \"tel\"\n },\n {\n header: () => t(ETLCodes.Fax),\n fieldName: \"fax\"\n }\n ],\n [history, id, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.centre}/${+id}/lieuxCours/0/edit`);\n }, [history, id]);\n\n return (\n {\n e.stopPropagation();\n addItemFunction();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }\n >\n \n \n );\n};\n","import { FGCustomPanel, FGEmpty, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbLieuxCoursDtoFromJSON, LieuxCoursApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { CommuneSelect, FGWalterSelectInput, LocaliteSelect, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ICentreLieuxCoursDetailProps { }\n\nexport const CentreLieuxCoursDetail: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(LieuxCoursApi);\n const history = useHistory();\n const { id, lieuId, state } = useParams<{ id: string; lieuId: string; state: string }>();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +lieuId <= 0 ? FcbLieuxCoursDtoFromJSON({ lieuId: 0, idcentre: id }) : api.lieuxCoursGet({ id: +lieuId }),\n saveApiFn: d => api.lieuxCoursSave({ FcbLieuxCoursDto: d }),\n onSavedRoute: d => `${ERoutes.centre}/${d.idcentre}/lieuxCours/${d.idlieu}/edit`,\n deleteApiFn: d => api.lieuxCoursDelete({ id: d.idlieu }),\n onDeletedRoute: () => `${ERoutes.centre}/${id}/lieuxCours/`\n });\n\n const [pays, loadingPays] = useReferential(a => a.referentialGetPays(), false, [], true);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n nom: Yup.string().required(t(ETLCodes.Required)),\n code: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"code-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === data?.code) return true;\n const validationError = await api.lieuxCoursCodeExists({ code: value });\n return validationError.isValid;\n })\n });\n }, [api, data, t]);\n\n return (\n history.push(`${ERoutes.centre}/${id}/lieuxCours/`)}\n onDelete={deleteItem}\n showDeleteButton={+lieuId > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n {ctx => (\n \n )}\n \n \n {ctx => (\n \n )}\n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch, useRouteMatch } from \"react-router\";\n\nimport { CentreLieuxCoursList } from \"./CentreLieuxCoursList\";\nimport { CentreLieuxCoursDetail } from \"./CentreLieuxCoursDetails\";\n\ninterface ICentreLieuxCoursItemProps {}\n\nexport const CentreLieuxCoursItem: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup, FGNumberInput, FGMaskInput } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { PlageHoraireApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { Divider } from \"@blueprintjs/core\";\nimport { useGlobalData } from \"../../../../../contexts\";\n\nexport interface ICentreHoraireDetailsProps {}\n\nexport const CentreHoraireDetails: React.FunctionComponent = () => {\n const { t } = useTl();\n const { tUnsafe } = useTl();\n const api = useApiService(PlageHoraireApi);\n const history = useHistory();\n const globalData = useGlobalData();\n const { id, plageId, state } = useParams<{ id: string; plageId: string; state: string }>();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => api.plageHoraireGet({ id: +plageId, nbPlages: globalData.nbPlages, idCentre: +id }),\n saveApiFn: d => api.plageHoraireSave({ FcbPlageHoraireDto: d }),\n onSavedRoute: d => `${ERoutes.centre}/${d.idcentre}/horaire/${d.idplage}/edit`,\n deleteApiFn: d => api.plageHoraireDelete({ id: d.idplage }),\n onDeletedRoute: () => `${ERoutes.centre}/${id}/horaire/`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n duree: Yup.string().required(t(ETLCodes.Required)),\n description: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n data && (\n history.push(`${ERoutes.centre}/${id}/horaire/`)}\n onDelete={deleteItem}\n showDeleteButton={+plageId > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n {data.plagesDetails.map((value, index) => (\n \n ))}\n \n \n \n )\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer, DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { FcbPlageHoraireGridDto, PlageHoraireApi, PlageHoraireSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AddButton, EditButton, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ICentreHoraireListProps {}\n\nexport const CentreHoraireList: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const api = useApiService(PlageHoraireApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { description: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: PlageHoraireSearch) => {\n sObj.idcentre = +id;\n return api.plageHoraireBaseSearch({ PlageHoraireSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const { totalCount } = tableState;\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbPlageHoraireGridDto) => (\n \n history.push(`${ERoutes.centre}/${+id}/horaire/${row.idplage}/view`)}\n />\n history.push(`${ERoutes.centre}/${+id}/horaire/${row.idplage}/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n }\n ],\n [history, id, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.centre}/${+id}/horaire/0/edit`);\n }, [history, id]);\n\n return (\n {\n e.stopPropagation();\n addItemFunction();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }\n >\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n FcbDirectionTerritorialeGridDto,\n DirectionTerritorialeApi,\n DirectionTerritorialeSearch,\n EBooleanSearchTypes\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\n\ninterface IDirectionTerritorialeListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const DirectionTerritorialeListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(DirectionTerritorialeApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbDirectionTerritorialeGridDto) => (\n \n \n history.push(`${ERoutes.directionTerritoriale}/${row.iddirectionTerritoriale}/detail/view`)\n }\n />\n \n history.push(`${ERoutes.directionTerritoriale}/${row.iddirectionTerritoriale}/detail/edit`)\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\",\n autoFitContent: true\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.directionTerritoriale}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(\n () => api.directionTerritorialeGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(DirectionTerritorialeApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: DirectionTerritorialeSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.directionTerritorialeBaseSearch({ DirectionTerritorialeSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGCustomPanel, FGEmpty, FGMaskInput, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { DirectionTerritorialeApi, FcbDirectionTerritorialeDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n CommuneSelect,\n FGWalterSelectInput,\n LocaliteSelect,\n SmallFormGenerator,\n FGWalterCheckboxInput\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IDirectionTerritorialeDetailPageProps {\n idDirection: number;\n editMode: boolean;\n}\n\nexport const DirectionTerritorialeDetailPage: React.FunctionComponent = ({\n idDirection,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(DirectionTerritorialeApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idDirection <= 0\n ? FcbDirectionTerritorialeDtoFromJSON({ idDirection: 0 })\n : api.directionTerritorialeGet({ id: +idDirection }),\n saveApiFn: d => api.directionTerritorialeSave({ FcbDirectionTerritorialeDto: d }),\n onSavedRoute: d => `${ERoutes.directionTerritoriale}/${d.iddirectionTerritoriale}/detail/edit`,\n deleteApiFn: d => api.directionTerritorialeDelete({ id: d.iddirectionTerritoriale }),\n onDeletedRoute: () => ERoutes.directionTerritoriale\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n code: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"code-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === data?.code) return true;\n const validationError = await api.directionTerritorialeDirectionTerritorialeCodeExists({\n id: idDirection,\n code: value\n });\n return validationError.isValid;\n }),\n nom: Yup.string().required(t(ETLCodes.Required)),\n codePays: Yup.string().required(t(ETLCodes.Required)),\n email: Yup.string().email(t(ETLCodes.InvalidEmail))\n });\n }, [t, idDirection, api, data]);\n\n const [pays, loadingPays] = useReferential(a => a.referentialGetPays(), false, []);\n\n const Localite = formik => {\n return ;\n };\n\n const Commune = formik => {\n return ;\n };\n\n return (\n <>\n {data && (\n history.push(ERoutes.directionTerritoriale)}\n onDelete={deleteItem}\n showDeleteButton={+idDirection > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {ctx => Localite(ctx.formik)}\n {ctx => Commune(ctx.formik)}\n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { DirectionTerritorialeApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { DirectionTerritorialeDetailPage } from \"./DirectionTerritorialeDetailPage\";\n\ninterface IDirectionTerritorialeItemPageProps {}\n\nexport const DirectionTerritorialeItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idDirectionTerritoriale = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const directionTerritorialeApi = useApiService(DirectionTerritorialeApi);\n const [displayName] = useApiEffect(() => directionTerritorialeApi.directionTerritorialeGetDisplayName({ id: +id }), [\n id\n ]);\n\n return (\n \n history.push(`${ERoutes.directionTerritoriale}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n ServiceTutelleApi,\n FcbServiceTutelleGridDto,\n ServiceTutelleSearch,\n EBooleanSearchTypes\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\n\ninterface IServiceTutelleListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const ServiceTutelleListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ServiceTutelleApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbServiceTutelleGridDto) => (\n \n history.push(`${ERoutes.serviceTutelle}/${row.idserviceTutelle}/detail/view`)}\n />\n history.push(`${ERoutes.serviceTutelle}/${row.idserviceTutelle}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Service),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresse\"\n },\n {\n header: () => t(ETLCodes.CodePostal),\n fieldName: \"codePostal\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Localite),\n fieldName: \"localite\"\n },\n {\n header: () => t(ETLCodes.Tel),\n fieldName: \"telephone\"\n },\n {\n header: () => t(ETLCodes.Fax),\n fieldName: \"fax\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.serviceTutelle}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.serviceTutelleGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(ServiceTutelleApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: ServiceTutelleSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.serviceTutelleBaseSearch({ ServiceTutelleSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ServiceTutelleLocaliteApi, ServiceTutelleLocaliteSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IServiceTutelleLocaliteLiePageProps {}\n\nexport const ServiceTutelleLocaliteLiePage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id } = useParams<{ id: string }>();\n const api = useApiService(ServiceTutelleLocaliteApi);\n const idServiceTutelle = React.useMemo(() => +id, [id]);\n\n const tableState = useGridState({\n sortKeys: { codePostal: \"ASC\" },\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const searchFunction = React.useCallback(\n (sObj?: ServiceTutelleLocaliteSearch) => {\n sObj.idserviceTutelle = idServiceTutelle;\n return api.serviceTutelleLocaliteBaseSearch({ ServiceTutelleLocaliteSearch: sObj });\n },\n [api, idServiceTutelle]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const { totalCount } = tableState;\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Indice),\n fieldName: \"codePostal\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"localite\"\n }\n ],\n [t]\n );\n\n return (\n {\n history.push(`${ERoutes.serviceTutelle}/${idServiceTutelle}/Localites/selector`);\n }}\n intent={Intent.PRIMARY}\n text={t(ETLCodes.Modify)}\n />\n }\n >\n \n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService } from \"../../../../../hooks\";\nimport { useHistory, useParams } from \"react-router\";\nimport { useApiEffect, IDataTableColumn } from \"nsitools-react\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { CodePostalApi, ServiceTutelleLocaliteApi } from \"../../../../../api\";\nimport { useDialog } from \"../../../../../contexts\";\n\nexport interface IServiceTutelleLocaliteLieeSelectorProps {}\n\nexport const ServiceTutelleLocaliteLieeSelector: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const cpApi = useApiService(CodePostalApi);\n const stApi = useApiService(ServiceTutelleLocaliteApi);\n const { id } = useParams<{ id: string }>();\n const dialogContext = useDialog();\n\n const [data, loading] = useApiEffect(() =>\n stApi.serviceTutelleLocaliteGetCodePostalServiceTutelle({ idServiceTutelle: +id })\n );\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"codePostal\",\n header: () => t(ETLCodes.CodePostal)\n },\n {\n fieldName: \"commune\",\n header: () => t(ETLCodes.Commune)\n },\n {\n fieldName: \"localite\",\n header: () => t(ETLCodes.Localite)\n }\n ];\n }, [t]);\n\n return (\n !loading && (\n cpApi.codePostalSearchCodePostalIds({ CodePostalSearch: sObj })}\n getCriteriasFunction={() => cpApi.codePostalGetSearchCriterias({ includeListsValues: true })}\n searchFunction={sObj => cpApi.codePostalBaseSearch({ CodePostalSearch: sObj })}\n onSave={async newIds => {\n await stApi.serviceTutelleLocaliteSave({\n FcbServiceTutelleCodePostalDto: { idserviceTutelle: +id, idcodePostaux: newIds }\n });\n\n history.push(`${ERoutes.serviceTutelle}/${id}/Localites`);\n }}\n onCancel={() => history.push(`${ERoutes.serviceTutelle}/${id}/Localites`)}\n dialogContext={dialogContext}\n sortKeys={{ codePostal: \"ASC\" }}\n />\n )\n );\n};\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ServiceTutelleLocaliteLiePage } from \"./ServiceTutelleLocaliteLiePage\";\nimport { ServiceTutelleLocaliteLieeSelector } from \"./ServiceTutelleLocaliteLieeSelector\";\n\nexport interface IServiceTutelleLocaliteLieeSwitchProps {}\n\nexport const ServiceTutelleLocaliteLieeSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { ServiceTutelleUserLieApi, ServiceUserLieEditDto, ServiceUserLieEditDtoFromJSON } from \"../../../../../api\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IServiceTutelleUserLieDialogProps {\n initialData: ServiceUserLieEditDto;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const ServiceTutelleUserLieDialog: React.FunctionComponent = ({\n initialData,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const api = useApiService(ServiceTutelleUserLieApi);\n\n const [users, loadingUsers] = useReferential(\n a => a.referentialGetCalcsForService({ idService: initialData?.idServiceTutelle }),\n false,\n [initialData?.idServiceTutelle]\n );\n\n const { data, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return ServiceUserLieEditDtoFromJSON({\n idServiceTutelle: initialData?.idServiceTutelle,\n idUser: initialData?.idUser,\n calcFrom: initialData?.calcFrom,\n calcTo: initialData?.calcTo\n });\n },\n saveApiFn: async (d: ServiceUserLieEditDto) => {\n return await api.serviceTutelleUserLieSaveServiceTutelleUserLie({ ServiceUserLieEditDto: d });\n },\n onSaved: () => {\n onClose(true);\n },\n getDeps: [initialData]\n }),\n [api, initialData, onClose]\n )\n );\n\n const formSchema = React.useMemo(() => {\n return Yup.object().shape(\n {\n idUser: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required)),\n calcFrom: Yup.date()\n .nullable()\n .when(\"calcTo\", (value, schema) =>\n !!value ? schema.max(Yup.ref(\"calcTo\"), t(ETLCodes.DateDebutGreaterThanDateFin)) : schema\n ),\n calcTo: Yup.date()\n .nullable()\n .when(\"calcFrom\", (value, schema) =>\n !!value ? schema.min(Yup.ref(\"calcFrom\"), t(ETLCodes.DateFinGreaterThanDateDebut)) : schema\n )\n },\n [[\"calcTo\", \"calcFrom\"]]\n );\n }, [t]);\n\n const isUserDisabled = React.useMemo(() => {\n return !!data?.idUser;\n }, [data?.idUser]);\n\n return (\n onClose()}>\n
\n \n \n \n \n \n
\n
\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport {\n ServiceTutelleUserLieApi,\n ServiceUserLieEditDto,\n ServiceUserLieGridDto,\n ServiceUserLieSearch\n} from \"../../../../../api\";\nimport { AddButton, BooleanColumn, EditButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ServiceTutelleUserLieDialog } from \"./ServiceTutelleUserLieDialog\";\n\ninterface IServiceTutelleUserLiePageProps {}\n\nexport const ServiceTutelleUserLiePage: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(ServiceTutelleUserLieApi);\n const { id } = useParams<{ id: string; tab: string; state: string }>();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: ServiceUserLieSearch) => {\n sObj.idService = +id;\n return api.serviceTutelleUserLieBaseSearch({ ServiceUserLieSearch: sObj });\n },\n [api, id]\n );\n\n const { loading, search } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const [dialogOpen, setDialogOpen] = React.useState(false);\n const [dialogInitalData, setDialogInitialData] = React.useState({});\n const onEditClick = React.useCallback(\n (d?: ServiceUserLieGridDto) => {\n if (d) {\n setDialogInitialData({ idUser: d.idUser, idServiceTutelle: +id, calcFrom: d.calcFrom, calcTo: d.calcTo });\n } else {\n setDialogInitialData({ idServiceTutelle: +id });\n }\n\n setDialogOpen(true);\n },\n [id]\n );\n\n const onCloseDialog = React.useCallback(\n (refresh: boolean) => {\n setDialogOpen(false);\n setDialogInitialData({});\n if (refresh === true) {\n search();\n }\n },\n [search]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: ServiceUserLieGridDto) => onEditClick(row)} />\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.Login),\n fieldName: \"login\"\n },\n {\n header: () => t(ETLCodes.Profil),\n fieldName: \"level\"\n },\n {\n header: () => t(ETLCodes.Actif),\n fieldName: \"actif\",\n alignment: \"center\",\n render: (row: ServiceUserLieGridDto) => \n },\n {\n header: () => t(ETLCodes.Debut),\n fieldName: \"calcFrom\"\n },\n {\n header: () => t(ETLCodes.Fin),\n fieldName: \"calcTo\"\n }\n ],\n [onEditClick, t]\n );\n\n return (\n onEditClick()}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n minimal={false}\n />\n }\n >\n \n {dialogOpen && (\n \n )}\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { ServiceTutelleDetailPage } from \"..\";\nimport { ServiceTutelleApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ServiceTutelleLocaliteLieeSwitch } from \"./ServiceTutelleLocaliteLieeSwitch\";\nimport { ServiceTutelleUserLiePage } from \"./ServiceTutelleUserLiePage\";\n\ninterface IServiceTutelleItemPageProps {}\n\nexport const ServiceTutelleItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const serviceTutelleApi = useApiService(ServiceTutelleApi);\n const [displayName] = useApiEffect(() => serviceTutelleApi.serviceTutelleGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.serviceTutelle}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n }\n disabled={+id <= 0}\n />\n } disabled={+id <= 0} />\n \n \n );\n};\n","import { FGCustomPanel, FGEmpty, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { ELevelName, FcbServiceTutelleDtoFromJSON, ServiceTutelleApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n CommuneSelect,\n FGWalterSelectInput,\n LocaliteSelect,\n SmallFormGenerator,\n FGWalterCheckboxInput\n} from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IServiceTutelleDetailPageProps {\n idServiceTutelle: number;\n editMode: boolean;\n}\n\nexport const ServiceTutelleDetailPage: React.FunctionComponent = ({\n idServiceTutelle,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(ServiceTutelleApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idServiceTutelle <= 0\n ? FcbServiceTutelleDtoFromJSON({ idServiceTutelle: 0 })\n : api.serviceTutelleGet({ id: +idServiceTutelle }),\n saveApiFn: d => api.serviceTutelleSave({ FcbServiceTutelleDto: d }),\n onSavedRoute: d => `${ERoutes.serviceTutelle}/${d.idserviceTutelle}/detail/edit`,\n deleteApiFn: d => api.serviceTutelleDelete({ id: d.idserviceTutelle }),\n onDeletedRoute: () => ERoutes.serviceTutelle\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n code: Yup.string().required(t(ETLCodes.Required)),\n nom: Yup.string().required(t(ETLCodes.Required)),\n codePays: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const Localite = formik => {\n return (\n \n );\n };\n\n const Commune = formik => {\n return ;\n };\n\n const [pays, loadingPays] = useReferential(a => a.referentialGetPays(), false, []);\n const [directionTerritoriale, loadingDirectionTerritoriale] = useReferential(\n a => a.referentialGetDirectionTerritoriale(),\n true,\n []\n );\n\n const [usersCop, usersCopLoading] = useReferential(a =>\n a.referentialGetServiceUsersByRoles({ ELevelName: [ELevelName.COP], idService: idServiceTutelle })\n );\n\n return (\n <>\n {data && (\n history.push(ERoutes.serviceTutelle)}\n onDelete={deleteItem}\n showDeleteButton={+idServiceTutelle > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {ctx => Localite(ctx.formik)}\n {ctx => Commune(ctx.formik)}\n \n \n \n \n \n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { SocieteExterneApi, SocieteExterneGridDto, SocieteExterneSearchDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport interface ISocieteExterneListProps {}\n\nexport const SocieteExterneList: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(SocieteExterneApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: SocieteExterneGridDto) => (\n \n history.push(`${ERoutes.societeExterne}/${row.idsocieteExterne}/detail/view`)}\n />\n history.push(`${ERoutes.societeExterne}/${row.idsocieteExterne}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Metiers),\n fieldName: \"metiers\",\n computed: true,\n render: (row: SocieteExterneGridDto) =>\n row.codesMetiers.length > 0 && (\n \n {row.codesMetiers.map((metier, i) => (\n <>\n {metier}\n {i < row.codesMetiers.length - 1 && \", \"}\n \n ))}\n \n )\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.societeExterne}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.societeExterneGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(SocieteExterneApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: SocieteExterneSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.societeExterneBaseSearch({ SocieteExterneSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from '@blueprintjs/core';\nimport { useApiEffect } from 'nsitools-react';\nimport * as React from \"react\";\nimport { useHistory, useParams } from 'react-router';\nimport { SocieteExterneDetailPage } from '.';\nimport { SocieteExterneApi } from '../../../../../api';\nimport { ERoutes } from '../../../../../AppRouter';\nimport { BackButton, PageBase, ProtectedTabs } from '../../../../../components';\nimport { useApiService, useTl } from '../../../../../hooks';\nimport { ETLCodes } from '../../../../../locales';\n\nexport interface ISocieteExterneItemProps { }\n\nexport const SocieteExterneItem: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const societeExterneApi = useApiService(SocieteExterneApi);\n const [displayName] = useApiEffect(() => societeExterneApi.societeExterneGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.societeExterne}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};","import * as React from \"react\";\nimport { useHistory, useParams } from 'react-router';\nimport { SocieteExterneApi, SocieteExterneEditDtoFromJSON } from '../../../../../api';\nimport { ERoutes } from '../../../../../AppRouter';\nimport { useApiService, useCrudApi, useTl } from '../../../../../hooks';\nimport * as Yup from \"yup\";\nimport { ETLCodes } from '../../../../../locales';\nimport { useReferential } from '../../../../../hooks/useReferential';\nimport { SmallFormGenerator } from '../../../../../components';\nimport { FGMultiSuggestInput, FGTextInput, FieldGroup } from 'nsitools-react';\n\nexport interface ISocieteExterneDetailPageProps { }\n\nexport const SocieteExterneDetailPage: React.FunctionComponent = props => {\n const { id: idSocieteExterne, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const { t } = useTl();\n const api = useApiService(SocieteExterneApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idSocieteExterne <= 0\n ? SocieteExterneEditDtoFromJSON({ idSocieteExterne: 0 })\n : api.societeExterneGetSocieteExterne({ id: +idSocieteExterne }),\n saveApiFn: d => api.societeExterneSaveSocieteExterne({ SocieteExterneEditDto: d }),\n onSavedRoute: d => `${ERoutes.societeExterne}/${d.idsocieteExterne}/detail/edit`,\n deleteApiFn: d => api.societeExterneDeleteSocieteExterne({ id: d.idsocieteExterne }),\n onDeletedRoute: () => ERoutes.societeExterne\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n nom: Yup.string().required(t(ETLCodes.Required)),\n idsMetier: Yup.array().of(Yup.number()).required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const [metiers, mLoading] = useReferential(a => a.referentialGetMetier(), true, []);\n\n return (\n history.push(ERoutes.societeExterne)}\n onDelete={deleteItem}\n showDeleteButton={+idSocieteExterne > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n );\n};\n","import { FGEmpty, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { ClauseApi, FcbClauseDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator, FGWalterCheckboxInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IClauseDetailPageProps {\n editMode: boolean;\n idClause: number;\n}\n\nexport const ClauseDetailPage: React.FunctionComponent = ({ editMode, idClause }) => {\n const { t } = useTl();\n const api = useApiService(ClauseApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (+idClause <= 0 ? FcbClauseDtoFromJSON({ idClause: 0 }) : api.clauseGet({ id: +idClause })),\n saveApiFn: d => api.clauseSave({ FcbClauseDto: d }),\n onSavedRoute: d => `${ERoutes.clause}/${d.idclause}/detail/edit`,\n deleteApiFn: d => api.clauseDelete({ id: d.idclause }),\n onDeletedRoute: () => ERoutes.clause\n });\n\n const [stade, loadingStade] = useReferential(a => a.referentialGetStade(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idstade: Yup.number()\n .required(t(ETLCodes.Required))\n .notOneOf([-1, 0], t(ETLCodes.Required)),\n title: Yup.string()\n .required(t(ETLCodes.Required))\n .max(100, t(ETLCodes.MaxCharacterTitle))\n });\n }, [t]);\n\n return (\n history.push(ERoutes.clause)}\n onDelete={deleteItem}\n showDeleteButton={+idClause > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ClauseMetierLiesApi, ClauseMetierSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IClauseMetierLiesPageProps {}\n\nexport const ClauseMetierLiesPage: React.FunctionComponent = () => {\n const { id, state } = useParams<{ id: string; state: string }>();\n const idClause = React.useMemo(() => +id, [id]);\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ClauseMetierLiesApi);\n\n const tableState = useGridState({\n sortKeys: { indice: \"ASC\" },\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const searchFunction = React.useCallback(\n (sObj?: ClauseMetierSearch) => {\n sObj.idclause = +idClause;\n return api.clauseMetierLiesBaseSearch({ ClauseMetierSearch: sObj });\n },\n [api, idClause]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const { totalCount } = tableState;\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Indice),\n fieldName: \"indice\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n }\n ],\n [t]\n );\n\n return (\n history.push(`${ERoutes.clause}/${idClause}/MetierLies/${state}/selector`)}\n intent={Intent.PRIMARY}\n text={t(ETLCodes.Modify)}\n />\n }\n >\n \n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService } from \"../../../../../hooks\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { useApiEffect, IDataTableColumn } from \"nsitools-react\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ClauseMetierLiesApi, MetierApi } from \"../../../../../api\";\nimport { useDialog } from \"../../../../../contexts/DialogContext\";\n\nexport interface IClauseMetierLiesSelectorProps {}\n\nexport const ClauseMetierLiesSelector: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const mApi = useApiService(MetierApi);\n const cmApi = useApiService(ClauseMetierLiesApi);\n const { id } = useParams<{ id: string }>();\n const dialogContext = useDialog();\n\n const [data, loading] = useApiEffect(() => cmApi.clauseMetierLiesGetClauseMetier({ idClause: +id }));\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"code\",\n header: () => t(ETLCodes.Code)\n },\n {\n fieldName: \"stade\",\n header: () => t(ETLCodes.Stade)\n },\n {\n fieldName: \"masculin\",\n header: () => t(ETLCodes.Metier)\n }\n ];\n }, [t]);\n\n return (\n !loading && (\n mApi.metierSearchMetierIds({ MetierSearch: sObj })}\n getCriteriasFunction={() => mApi.metierGetSearchCriterias({ includeListsValues: true })}\n searchFunction={sObj => mApi.metierBaseSearch({ MetierSearch: sObj })}\n onSave={async newIds => {\n await cmApi.clauseMetierLiesSave({\n FcbClauseMetiersLiesDto: { idClause: +id, idMetiers: newIds }\n });\n\n history.push(`${ERoutes.clause}/${id}/MetierLies/edit`);\n }}\n onCancel={() => history.push(`${ERoutes.clause}/${id}/MetierLies/edit`)}\n overrideListValues={{ Idstade: i => i.displayValue }}\n dialogContext={dialogContext}\n sortKeys={{ masculin: \"ASC\" }}\n />\n )\n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ClauseMetierLiesPage } from \"./ClauseMetierLiesPage\";\nimport { ClauseMetierLiesSelector } from \"./ClauseMetierLiesSelector\";\n\nexport interface IClauseMetierLiesSwitchProps {}\n\nexport const ClauseMetierLiesSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ClauseApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ClauseDetailPage } from \"./ClauseDetailPage\";\nimport { ClauseMetierLiesSwitch } from \"./ClauseMetierLiesSwitch\";\n\ninterface IClauseItemPageProps {}\n\nexport const ClauseItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idClause = React.useMemo(() => +id, [id]);\n const history = useHistory();\n const clauseApi = useApiService(ClauseApi);\n const [displayName] = useApiEffect(() => clauseApi.clauseGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.clause}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n } />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { ClauseApi, ClauseSearch, FcbClauseGridDto, EBooleanSearchTypes } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n display: flex;\n`;\n\ninterface IClauseListPageProps {}\n\nexport const ClauseListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ClauseApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbClauseGridDto) => (\n \n history.push(`${ERoutes.clause}/${row.idclause}/detail/view`)} />\n history.push(`${ERoutes.clause}/${row.idclause}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.ClauseListPageTitle),\n fieldName: \"title\"\n },\n {\n header: () => t(ETLCodes.ClauseListPageClause),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.ClauseListPageStade),\n fieldName: \"stade\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => history.push(`${ERoutes.clause}/0/detail/edit`), [history]);\n\n const getCriteriasFn = React.useCallback(() => api.clauseGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(ClauseApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: ClauseSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.clauseBaseSearch({ ClauseSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { DiplomeApi, DiplomeSearch, EBooleanSearchTypes, FcbDiplomeGridDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IDiplomeListPageProps {}\n\nexport const DiplomeListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(DiplomeApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbDiplomeGridDto) => (\n \n history.push(`${ERoutes.diplome}/${row.iddiplome}/detail/view`)}\n />\n history.push(`${ERoutes.diplome}/${row.iddiplome}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.diplome}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.diplomeGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(DiplomeApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: DiplomeSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.diplomeBaseSearch({ DiplomeSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { DiplomeDetailPage } from \"../../..\";\nimport { DiplomeApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IDiplomeItemPageProps {}\n\nexport const DiplomeItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idDiplome = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const diplomeApi = useApiService(DiplomeApi);\n const [displayName] = useApiEffect(() => diplomeApi.diplomeGetDisplayName({ id: idDiplome }), [id]);\n\n return (\n \n history.push(`${ERoutes.diplome}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { DiplomeApi, FcbDiplomeDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator, FGWalterCheckboxInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDiplomeDetailPageProps {\n editMode: boolean;\n idDiplome: number;\n}\n\nexport const DiplomeDetailPage: React.FunctionComponent = ({ idDiplome, editMode }) => {\n const { t } = useTl();\n const api = useApiService(DiplomeApi);\n const history = useHistory();\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (+idDiplome <= 0 ? FcbDiplomeDtoFromJSON({ idDiplome: 0 }) : api.diplomeGet({ id: +idDiplome })),\n saveApiFn: d => api.diplomeSave({ FcbDiplomeDto: d }),\n onSavedRoute: d => `${ERoutes.diplome}/${d.iddiplome}/detail/edit`,\n deleteApiFn: d => api.diplomeDelete({ id: d.iddiplome }),\n onDeletedRoute: () => ERoutes.diplome\n });\n\n return (\n history.push(ERoutes.diplome)}\n onDelete={deleteItem}\n showDeleteButton={+idDiplome > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { TypeEnseignementDetailPage } from \"..\";\nimport { TypeEnseignementApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ITypeEnseignementItemPageProps {}\n\nexport const TypeEnseignementItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idTypeEnseignement = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const typeEnseignement = useApiService(TypeEnseignementApi);\n const [displayName] = useApiEffect(\n () => typeEnseignement.typeEnseignementGetDisplayName({ id: idTypeEnseignement }),\n [id]\n );\n\n return (\n \n history.push(`${ERoutes.typeEnseignement}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbTypeEnseignementDtoFromJSON, TypeEnseignementApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator, FGWalterCheckboxInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ITypeEnseignementDetailPageProps {\n editMode: boolean;\n idTypeEnseignement: number;\n}\n\nexport const TypeEnseignementDetailPage: React.FunctionComponent = ({\n editMode,\n idTypeEnseignement\n}) => {\n const { t } = useTl();\n const api = useApiService(TypeEnseignementApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idTypeEnseignement <= 0\n ? FcbTypeEnseignementDtoFromJSON({ idTypeEnseignement: 0 })\n : api.typeEnseignementGet({ id: +idTypeEnseignement }),\n saveApiFn: d => api.typeEnseignementSave({ FcbTypeEnseignementDto: d }),\n onSavedRoute: d => `${ERoutes.typeEnseignement}/${d.idtypeEnseignement}/detail/edit`,\n deleteApiFn: d => api.typeEnseignementDelete({ id: d.idtypeEnseignement }),\n onDeletedRoute: () => ERoutes.typeEnseignement\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n history.push(ERoutes.typeEnseignement)}\n onDelete={deleteItem}\n showDeleteButton={+idTypeEnseignement > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n FcbTypeEnseignementDto,\n TypeEnseignementApi,\n TypeEnseignementSearch,\n EBooleanSearchTypes\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\n\ninterface ITypeEnseignementListPageProps {}\nconst ButtonContainer = styled.div`\n display: flex;\n`;\nexport const TypeEnseignementListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(TypeEnseignementApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbTypeEnseignementDto) => (\n \n history.push(`${ERoutes.typeEnseignement}/${row.idtypeEnseignement}/detail/view`)}\n />\n history.push(`${ERoutes.typeEnseignement}/${row.idtypeEnseignement}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => history.push(`${ERoutes.typeEnseignement}/0/detail/edit`), [history]);\n\n const getCriteriasFn = React.useCallback(() => api.typeEnseignementGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(TypeEnseignementApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: TypeEnseignementSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.typeEnseignementBaseSearch({ TypeEnseignementSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { FcbStatutSocialGridDto, StatutSocialApi, StatutSocialSearch, EBooleanSearchTypes } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\n\ninterface IStatutSocialListPageProps {}\nconst ButtonContainer = styled.div`\n display: flex;\n`;\nexport const StatutSocialListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(StatutSocialApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbStatutSocialGridDto) => (\n \n history.push(`${ERoutes.statutSocial}/${row.idstatutSocial}/detail/view`)}\n />\n history.push(`${ERoutes.statutSocial}/${row.idstatutSocial}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => history.push(`${ERoutes.statutSocial}/0/detail/edit`), [history]);\n\n const getCriteriasFn = React.useCallback(() => api.statutSocialGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(StatutSocialApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: StatutSocialSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.statutSocialBaseSearch({ StatutSocialSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { StatutSocialDetailPage } from \"..\";\nimport { StatutSocialApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IStatutSocialItemPageProps {}\n\nexport const StatutSocialItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idStatut = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const statutSocialApi = useApiService(StatutSocialApi);\n const [displayName] = useApiEffect(() => statutSocialApi.statutSocialGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.statutSocial}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbStatutSocialDtoFromJSON, StatutSocialApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator, FGWalterCheckboxInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IStatutSocialDetailPageProps {\n idStatut: number;\n editMode: boolean;\n}\n\nexport const StatutSocialDetailPage: React.FunctionComponent = ({\n idStatut,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(StatutSocialApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idStatut <= 0 ? FcbStatutSocialDtoFromJSON({ idStatut: 0 }) : api.statutSocialGet({ id: +idStatut }),\n saveApiFn: d => api.statutSocialSave({ FcbStatutSocialDto: d }),\n onSavedRoute: d => `${ERoutes.statutSocial}/${d.idstatutSocial}/detail/edit`,\n deleteApiFn: d => api.statutSocialDelete({ id: d.idstatutSocial }),\n onDeletedRoute: () => ERoutes.statutSocial\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n history.push(ERoutes.statutSocial)}\n onDelete={deleteItem}\n showDeleteButton={+idStatut > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { AnneeReussieApi, FcbAnneeReussieDto, AnneeReussieSearch, EBooleanSearchTypes } from \"../../../../../api\";\nimport styled from \"styled-components\";\n\ninterface IDerniereAnneeReussieListPageProps {}\nconst ButtonContainer = styled.div`\n display: flex;\n`;\nexport const DerniereAnneeReussieListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(AnneeReussieApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbAnneeReussieDto) => (\n \n history.push(`${ERoutes.anneeReussie}/${row.idanneeReussie}/detail/view`)}\n />\n history.push(`${ERoutes.anneeReussie}/${row.idanneeReussie}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.anneeReussie}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.anneeReussieGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(AnneeReussieApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: AnneeReussieSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.anneeReussieBaseSearch({ AnneeReussieSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { AnneeReussieApi, FcbAnneeReussieDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDerniereAnneeReussieDetailPageProps {\n idAnnee: number;\n editMode: boolean;\n}\n\nexport const DerniereAnneeReussieDetailPage: React.FunctionComponent = ({\n idAnnee,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(AnneeReussieApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idAnnee <= 0 ? FcbAnneeReussieDtoFromJSON({ idAnnee: 0 }) : api.anneeReussieGet({ id: +idAnnee }),\n saveApiFn: d => api.anneeReussieSave({ FcbAnneeReussieDto: d }),\n onSavedRoute: d => `${ERoutes.anneeReussie}/${d.idanneeReussie}/detail/edit`,\n deleteApiFn: d => api.anneeReussieDelete({ id: d.idanneeReussie }),\n onDeletedRoute: () => ERoutes.anneeReussie\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n history.push(ERoutes.anneeReussie)}\n onDelete={deleteItem}\n showDeleteButton={+idAnnee > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { AnneeReussieApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { DerniereAnneeReussieDetailPage } from \"./DerniereAnneeReussieDetailPage\";\n\ninterface IDerniereAnneeReussieItemPageProps {}\n\nexport const DerniereAnneeReussieItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idAnnee = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const anneeReussieApi = useApiService(AnneeReussieApi);\n const [displayName] = useApiEffect(() => anneeReussieApi.anneeReussieGetDisplayName({ id: idAnnee }), [id]);\n\n return (\n \n history.push(`${ERoutes.anneeReussie}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGCustomPanel, FGEmpty, FGMaskInput, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { ConseillerPedagogiqueApi, FcbConseillerPedagogiqueDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n AdresseDoublonErrorLink,\n CommuneSelect,\n FGPersonneCodePostal,\n FGWalterCheckboxInput,\n FGWalterSelectInput,\n LocaliteSelect,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport FGCopyTextInput from \"../../../../../components/formGenerator/FGCopyTextInput\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { phoneRegex } from \"../../../../../utils/phoneRegex\";\n\ninterface IConseillerPedagogiqueDetailPageProps {\n idConseillerPedagogique: string;\n editMode: boolean;\n}\n\nexport const ConseillerPedagogiqueDetailPage: React.FunctionComponent = ({\n idConseillerPedagogique,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(ConseillerPedagogiqueApi);\n const history = useHistory();\n\n const [sexe, sLoading] = useReferential(a => a.referentialGetSexe(), false, []);\n const [pays, pLoading] = useReferential(a => a.referentialGetPays(), false, []);\n\n const { data, saving, saveItem, deleting, deleteItem, loading } = useCrudApi({\n getApiFn: () =>\n idConseillerPedagogique === \"0\"\n ? FcbConseillerPedagogiqueDtoFromJSON({})\n : api.conseillerPedagogiqueGetConseillerPedagogique({ id: idConseillerPedagogique }),\n saveApiFn: values => api.conseillerPedagogiqueSave({ FcbConseillerPedagogiqueDto: values }),\n deleteApiFn: values => api.conseillerPedagogiqueDelete({ id: values.idconseillerPedagogique }),\n onDeletedRoute: () => ERoutes.conseillerPedagogique,\n onSavedRoute: d => `${ERoutes.conseillerPedagogique}/${d.idconseillerPedagogique}/detail/edit`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idconseillerPedagogique: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"code-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === idConseillerPedagogique) return true;\n const validationError = await api.conseillerPedagogiqueCodeExists({ code: value });\n return validationError.isValid;\n }),\n codesexe: Yup.string().required(t(ETLCodes.Required)),\n nom: Yup.string().required(t(ETLCodes.Required)),\n prenom: Yup.string().required(t(ETLCodes.Required)),\n adresse: Yup.object().shape({\n adresse: Yup.string().required(t(ETLCodes.Required)),\n pays: Yup.string()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n telephonePrive: Yup.object().test(\"tel-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (this.parent.idrepresentant > 0 || !value?.numero) return true;\n const numero = value?.numero as string;\n return !!numero.match(phoneRegex);\n }),\n telephone: Yup.object().test(\"tel-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (this.parent.idrepresentant > 0 || !value?.numero) return true;\n const numero = value?.numero as string;\n return !!numero.match(phoneRegex);\n }),\n gsm: Yup.object().test(\"gsm-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (this.parent.idrepresentant > 0 || !value?.numero) return true;\n const numero = value?.numero as string;\n return !!numero.match(phoneRegex);\n }),\n email: Yup.object().when(\"idconseillerPedagogique\", {\n is: idconseillerPedagogique => idconseillerPedagogique <= 0,\n then: Yup.object().shape({\n adresseEmail: Yup.string().email(t(ETLCodes.InvalidEmail))\n })\n }),\n faxPrive: Yup.string().test(\"gsm-prive-regex\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (value) {\n const regex = /^[+\\d/\\-.]*$/gm;\n const match = value.match(regex);\n if (!match) {\n return false;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }),\n fax: Yup.string().test(\"fax-regex\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (value) {\n const regex = /^[+\\d/\\-.]*$/gm;\n const match = value.match(regex);\n if (!match) {\n return false;\n } else {\n return true;\n }\n } else {\n return true;\n }\n })\n });\n }, [api, idConseillerPedagogique, t]);\n\n const idpersonne = React.useMemo(() => data?.idpersonne ?? 0, [data?.idpersonne]);\n const [personneTelephones, personneTelephonesLoading] = useReferential(\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n const [personneGsms, personneGsmsLoading] = useReferential(a => a.referentialGetGsmsPersonne({ idpersonne }), false, [\n idpersonne\n ]);\n const [personneEmails, personneEmailsLoading] = useReferential(\n a => a.referentialGetEmailsPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n\n const isFullCreation = React.useMemo(() => +idConseillerPedagogique <= 0 && !data?.idpersonne, [\n data?.idpersonne,\n idConseillerPedagogique\n ]);\n\n return (\n history.push(ERoutes.conseillerPedagogique)}\n >\n \n \n \n \n \n \n \n {data?.hasAddressDoublons && (\n <>\n \n \n \n )}\n \n \n \n \n \n \n \n {ctx => (\n \n )}\n \n \n \n {ctx => (\n \n )}\n \n \n \n {isFullCreation ? (\n \n ) : (\n \n )}\n \n {isFullCreation ? (\n \n ) : (\n \n )}\n \n {isFullCreation ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n {isFullCreation ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ConseillerPedagogiqueMetierLiesSearch, ConseillerPedagogiqueMetiersLiesApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IConseillerPedagogiqueMetiersLiesProps {}\n\nexport const ConseillerPedagogiqueMetiersLies: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ConseillerPedagogiqueMetiersLiesApi);\n const { id } = useParams<{ id: string }>();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { code: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n const searchFunction = React.useCallback(\n (sObj?: ConseillerPedagogiqueMetierLiesSearch) => {\n sObj.idConseiller = id;\n return api.conseillerPedagogiqueMetiersLiesBaseSearch({ ConseillerPedagogiqueMetierLiesSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Stade),\n fieldName: \"stade\"\n },\n {\n header: () => t(ETLCodes.Metier),\n fieldName: \"metier\"\n }\n ],\n [t]\n );\n\n return (\n history.push(`${ERoutes.conseillerPedagogique}/${id}/metiersLies/selector`)}\n intent={Intent.PRIMARY}\n text={t(ETLCodes.Modify)}\n />\n }\n >\n \n \n );\n};\n","import { IDataTableColumn, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ConseillerPedagogiqueMetiersLiesApi, MetierApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useDialog } from \"../../../../../contexts\";\n\nexport interface IConseillerPedagogiqueMetiersLiesSelectorProps {}\n\nexport const ConseillerPedagogiqueMetiersLiesSelector: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const mApi = useApiService(MetierApi);\n const cpApi = useApiService(ConseillerPedagogiqueMetiersLiesApi);\n const { id } = useParams<{ id: string }>();\n const dialogContext = useDialog();\n\n const [data, loading] = useApiEffect(() =>\n cpApi.conseillerPedagogiqueMetiersLiesGetConseillerMetier({ codeConseiller: id })\n );\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"code\",\n header: () => t(ETLCodes.Code)\n },\n {\n fieldName: \"stade\",\n header: () => t(ETLCodes.Stade)\n },\n {\n fieldName: \"masculin\",\n header: () => t(ETLCodes.Metier)\n }\n ];\n }, [t]);\n\n return (\n !loading && (\n mApi.metierSearchMetierIds({ MetierSearch: sObj })}\n getCriteriasFunction={() => mApi.metierGetSearchCriterias({ includeListsValues: true })}\n searchFunction={sObj => mApi.metierBaseSearch({ MetierSearch: sObj })}\n onSave={async newIds => {\n await cpApi.conseillerPedagogiqueMetiersLiesSave({\n FcbConseillerMetiersDto: { codeConseiller: id, idMetiers: newIds }\n });\n\n history.push(`${ERoutes.conseillerPedagogique}/${id}/metiersLies`);\n }}\n onCancel={() => history.push(`${ERoutes.conseillerPedagogique}/${id}/metiersLies`)}\n overrideListValues={{ Idstade: i => i.displayValue }}\n dialogContext={dialogContext}\n sortKeys={{ masculin: \"ASC\" }}\n />\n )\n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ConseillerPedagogiqueMetiersLies } from \"./ConseillerPedagogiqueMetiersLies\";\nimport { ConseillerPedagogiqueMetiersLiesSelector } from \"./ConseillerPedagogiqueMetiersLiesSelector\";\n\nexport interface IConseillerPedagogiqueMetiersLiesSwitchProps {}\n\nexport const ConseillerPedagogiqueMetiersLiesSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ConseillerPedagogiqueApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ConseillerPedagogiqueDetailPage } from \"./ConseillerPedagogiqueDetailPage\";\nimport { ConseillerPedagogiqueMetiersLiesSwitch } from \"./ConseillerPedagogiqueMetiersLiesSwitch\";\n\ninterface IConseillerPedagogiqueItemPageProps {}\n\nexport const ConseillerPedagogiqueItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(ConseillerPedagogiqueApi);\n const [displayName] = useApiEffect(() => api.conseillerPedagogiqueGetDisplayName({ id: id }), [id]);\n\n return (\n \n history.push(`${ERoutes.conseillerPedagogique}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n }\n disabled={+id <= 0}\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n ConseillerPedagogiqueApi,\n ConseillerPedagogiqueSearch,\n FcbConseillerPedagogiqueGridDto,\n EBooleanSearchTypes\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, EmailButton, SearchTablePage, ViewButton, SmsButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\n\ninterface IConseillerPedagogiqueListPageProps {}\n\nexport const ConseillerPedagogiqueListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ConseillerPedagogiqueApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbConseillerPedagogiqueGridDto) => (\n \n \n history.push(`${ERoutes.conseillerPedagogique}/${row.idconseillerPedagogique}/detail/view`)\n }\n />\n \n history.push(`${ERoutes.conseillerPedagogique}/${row.idconseillerPedagogique}/detail/edit`)\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"idconseillerPedagogique\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.Gsm),\n fieldName: \"gsm.numero\",\n render: (value: FcbConseillerPedagogiqueGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.Tel),\n fieldName: \"telephone.numero\"\n },\n {\n header: () => t(ETLCodes.Fax),\n fieldName: \"fax\"\n },\n {\n header: () => t(ETLCodes.General_Email),\n fieldName: \"email.adresseEmail\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbConseillerPedagogiqueGridDto) => (\n \n )\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.conseillerPedagogique}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(\n () => api.conseillerPedagogiqueGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(ConseillerPedagogiqueApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: ConseillerPedagogiqueSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.conseillerPedagogiqueBaseSearch({ ConseillerPedagogiqueSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { DelegueTutelleDetailPage } from \"..\";\nimport { PersonnelTutelleApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IDelegueTutelleItemPageProps {}\n\nexport const DelegueTutelleItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(PersonnelTutelleApi);\n const [displayName] = useApiEffect(() => api.personnelTutelleGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.delegueTutelle}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n EBooleanSearchTypes,\n FcbPersonnelTutelleGridDto,\n PersonnelTutelleApi,\n PersonnelTutelleSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, EmailButton, SearchTablePage, SmsButton, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IDelegueTutelleListPageProps {}\n\nexport const DelegueTutelleListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(PersonnelTutelleApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbPersonnelTutelleGridDto) => (\n \n history.push(`${ERoutes.delegueTutelle}/${row.iddelegueTutelle}/detail/view`)}\n />\n history.push(`${ERoutes.delegueTutelle}/${row.iddelegueTutelle}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.PersonnelTutelleListPageCode),\n fieldName: \"code\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.PersonnelTutelleListPageNom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.PersonnelTutelleListPagePrenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.PersonnelTutelleListIndependant),\n fieldName: \"independant\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbPersonnelTutelleGridDto) => \n },\n {\n header: () => t(ETLCodes.PersonnelTutelleListPageGsm),\n fieldName: \"gsm\",\n render: (value: FcbPersonnelTutelleGridDto) => \n },\n\n {\n header: () => t(ETLCodes.PersonnelTutelleListEmail),\n fieldName: \"email\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbPersonnelTutelleGridDto) => \n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => history.push(`${ERoutes.delegueTutelle}/0/detail/edit`), [history]);\n\n const getCriteriasFn = React.useCallback(() => api.personnelTutelleGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(PersonnelTutelleApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: PersonnelTutelleSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.personnelTutelleBaseSearch({ PersonnelTutelleSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGEmpty, FGMaskInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbPersonnelTutelleDtoFromJSON, PersonnelTutelleApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IDelegueTutelleDetailPage {\n idDelegueTutelle: number;\n editMode: boolean;\n}\n\nexport const DelegueTutelleDetailPage: React.FunctionComponent = ({\n idDelegueTutelle,\n editMode\n}) => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(PersonnelTutelleApi);\n\n const [sexe, loadingSexe] = useReferential(a => a.referentialGetSexe(), false, []);\n const [serviceTutelle, loadingServiceTutelle] = useReferential(a => a.referentialGetServiceTutelle({userFilter: false}), true, []);\n\n const { data, loading, deleteItem, saveItem, deleting, saving } = useCrudApi({\n getApiFn: () =>\n idDelegueTutelle <= 0\n ? FcbPersonnelTutelleDtoFromJSON({ idDelegueTutelle: 0 })\n : api.personnelTutelleGet({ id: idDelegueTutelle }),\n saveApiFn: d => api.personnelTutelleSave({ FcbPersonnelTutelleDto: d }),\n deleteApiFn: d => api.personnelTutelleDelete({ id: d.iddelegueTutelle }),\n onDeletedRoute: () => ERoutes.delegueTutelle,\n onSavedRoute: d => `${ERoutes.delegueTutelle}/${d.iddelegueTutelle}/detail/edit`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idserviceTutelle: Yup.number()\n .required(t(ETLCodes.Required))\n .notOneOf([-1, 0], t(ETLCodes.Required)),\n codesexe: Yup.string().required(t(ETLCodes.Required)),\n code: Yup.string().required(t(ETLCodes.Required)),\n nom: Yup.string().required(t(ETLCodes.Required)),\n email: Yup.string().email(t(ETLCodes.InvalidEmail)),\n gsm: Yup.string().test(\"gsm-regex\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (value) {\n const regex = /^[+\\d/\\-.]*$/gm;\n const match = value.match(regex);\n if (!match) {\n return false;\n } else {\n return true;\n }\n } else {\n return true;\n }\n })\n });\n }, [t]);\n\n return (\n 0}\n onCancel={() => history.push(ERoutes.delegueTutelle)}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { FcbTypeCoursGridDto, TypeCoursApi, TypeCoursSearch, EBooleanSearchTypes } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n display: flex;\n`;\n\ninterface ITypeCoursListPageProps {}\n\nexport const TypeCoursListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(TypeCoursApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbTypeCoursGridDto) => (\n \n history.push(`${ERoutes.typeCours}/${row.code}/detail/view`)} />\n history.push(`${ERoutes.typeCours}/${row.code}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.AcquisIfapme),\n fieldName: \"acquisIfapme\",\n render: (row: FcbTypeCoursGridDto) => {}} disabled />\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.typeCours}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.typeCoursGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(TypeCoursApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: TypeCoursSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.typeCoursBaseSearch({ TypeCoursSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { TypeCoursDetailPage } from \"..\";\nimport { TypeCoursApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ITypeCoursItemPageProps {}\n\nexport const TypeCoursItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const typeCoursApi = useApiService(TypeCoursApi);\n const [displayName] = useApiEffect(() => typeCoursApi.typeCoursGetDisplayName({ id: id }), [id]);\n\n return (\n \n history.push(`${ERoutes.typeCours}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbTypeCoursDtoFromJSON, TypeCoursApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ITypeCoursDetailPageProps {\n codeTypeCours: string;\n editMode: boolean;\n}\n\nexport const TypeCoursDetailPage: React.FunctionComponent = ({\n codeTypeCours,\n editMode\n}) => {\n const { t } = useTl();\n\n const api = useApiService(TypeCoursApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (codeTypeCours === \"0\" ? FcbTypeCoursDtoFromJSON({}) : api.typeCoursGet({ code: codeTypeCours })),\n saveApiFn: d => api.typeCoursSave({ FcbTypeCoursDto: d }),\n onSavedRoute: d => `${ERoutes.typeCours}/${d.code}/detail/edit`,\n deleteApiFn: d => api.typeCoursDelete({ code: d.code }),\n onDeletedRoute: () => ERoutes.typeCours\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n code: Yup.string()\n .required(t(ETLCodes.Required))\n .max(1, t(ETLCodes.TypeCours_CharacterLimitCode))\n .test(\"code-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === codeTypeCours) return true;\n const validationError = await api.typeCoursCodeExists({ code: value });\n return validationError.isValid;\n }),\n libelle: Yup.string()\n .max(50, t(ETLCodes.TypeCours_CharacterLimitLibelle))\n .required(t(ETLCodes.Required))\n .test(\"libelle-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === data.libelle) return true;\n const validationError = await api.typeCoursLibelleExists({ code: codeTypeCours, libelle: value });\n return validationError.isValid;\n })\n });\n }, [api, codeTypeCours, t, data]);\n\n return (\n history.push(ERoutes.typeCours)}\n onDelete={deleteItem}\n showDeleteButton={codeTypeCours !== \"0\"}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { MetierApi, FcbMetierGridDto, MetierSearch, EBooleanSearchTypes } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, ViewButton, SearchTablePage } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\nimport { Checkbox } from \"@blueprintjs/core\";\nimport { IDataTableColumn } from \"nsitools-react\";\n\ninterface IMetierListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\nexport const MetierListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(MetierApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbMetierGridDto) => (\n \n history.push(`${ERoutes.metier}/${row.idmetier}/detail/view`)} />\n history.push(`${ERoutes.metier}/${row.idmetier}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.MetierListPageStade),\n fieldName: \"stade\"\n },\n {\n header: () => t(ETLCodes.MetierListPageIndice),\n fieldName: \"code\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.MetierListPageMetier),\n fieldName: \"masculin\"\n },\n {\n header: () => t(ETLCodes.MetierListPageIntegre),\n fieldName: \"integre\",\n alignment: \"center\",\n render: (row: FcbMetierGridDto) => \n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.metier}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.metierGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(MetierApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: MetierSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.metierBaseSearch({ MetierSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n i.displayValue }}\n defaultCriterias={[\n {\n criteria: \"Actif\",\n searchMode: EBooleanSearchTypes.Equals,\n value: true\n }\n ]}\n >\n );\n};\n","import { Divider } from \"@blueprintjs/core\";\nimport { FGEmpty, FGMultiSuggestInput, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbMetierDtoFromJSON, MetierApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IMetierDetailPageProps {\n editMode: boolean;\n idMetier: number;\n}\n\nexport const MetierDetailPage: React.FunctionComponent = ({ editMode, idMetier }) => {\n const { t } = useTl();\n const api = useApiService(MetierApi);\n const history = useHistory();\n const { codeSecteur } = useParams<{ codeSecteur: string }>();\n\n const [degres, loadingDegres] = useReferential(a => a.referentialGetDegre(), false, []);\n const [secteur, loadingSecteur] = useReferential(a => a.referentialGetSecteur(), false, []);\n const [stade, loadingStade] = useReferential(a => a.referentialGetStade(), true, []);\n const [cp, cpLoading] = useReferential(\n r => r.referentialGetCommissionsParitaires({ idmetier: 0, idsiegeSocial: 0, currentId: 0 }),\n true,\n []\n );\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idMetier <= 0\n ? FcbMetierDtoFromJSON({ idMetier: 0, codesecteur: codeSecteur, commissionParitaires: [] })\n : api.metierGet({ id: idMetier }),\n saveApiFn: d => api.metierSave({ FcbMetierDto: d }),\n onSavedRoute: d => `${ERoutes.metier}/${d.idmetier}/detail/edit`,\n deleteApiFn: d => api.metierDelete({ id: d.idmetier }),\n onDeletedRoute: () => ERoutes.metier\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n ifapmeSide: Yup.string().required(t(ETLCodes.Required)),\n code: Yup.string()\n .required(`${t(ETLCodes.Required)}`)\n .test(\"stade-indice-not-exists\", t(ETLCodes.MetierDetailPage_StadeIndiceExistsError), async function(value) {\n if (value === data?.code && this.parent.idstade === data?.idstade) return true;\n const validationError = await api.metierStadeIndiceMetierExists({\n code: this.parent.code,\n idStade: this.parent.idstade\n });\n return validationError.isValid;\n }),\n idstade: Yup.number()\n .required(t(ETLCodes.Required))\n .test(\"stade-indice-not-exists\", t(ETLCodes.MetierDetailPage_StadeIndiceExistsError), async function(value) {\n if (this.parent.code === data?.code && value === data?.idstade) return true;\n const validationError = await api.metierStadeIndiceMetierExists({\n code: this.parent.code,\n idStade: this.parent.idstade\n });\n return validationError.isValid;\n }),\n masculin: Yup.string().required(t(ETLCodes.Required)),\n feminin: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t, data, api]);\n\n const sides = React.useMemo(\n () => [\n { label: t(ETLCodes.Centres), value: \"Walter\" },\n { label: t(ETLCodes.Services), value: \"Hope\" },\n { label: t(ETLCodes.Tous), value: \"Hope|Walter\" }\n ],\n [t]\n );\n\n return (\n data && (\n history.push(ERoutes.metier)}\n saving={saving}\n deleting={deleting}\n onDelete={deleteItem}\n showDeleteButton={idMetier >= 0}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { MetierClauseLieeSearch, MetierClausesLieesApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IMetierClausesLieesProps {}\n\nexport const MetierClausesLiees: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(MetierClausesLieesApi);\n const { id } = useParams<{ id: string }>();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { titre: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: MetierClauseLieeSearch) => {\n sObj.idmetier = +id;\n return api.metierClausesLieesBaseSearch({ MetierClauseLieeSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Title),\n fieldName: \"titre\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n }\n ],\n [t]\n );\n\n return (\n history.push(`${ERoutes.metier}/${id}/clausesliees/selector`)}\n intent={Intent.PRIMARY}\n text={t(ETLCodes.Modify)}\n />\n }\n >\n \n \n );\n};\n","import { IDataTableColumn, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ClauseApi, MetierClausesLieesApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IMetierClausesLieesSelectorProps {}\n\nexport const MetierClausesLieesSelector: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const cApi = useApiService(ClauseApi);\n const mApi = useApiService(MetierClausesLieesApi);\n const { id } = useParams<{ id: string }>();\n const dialogContext = useDialog();\n\n const [data, loading] = useApiEffect(() => mApi.metierClausesLieesGetClauseMetier({ idMetier: +id }));\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"title\",\n header: () => t(ETLCodes.Title)\n },\n {\n fieldName: \"description\",\n header: () => t(ETLCodes.Description)\n },\n {\n fieldName: \"stade\",\n header: () => t(ETLCodes.Stade)\n }\n ];\n }, [t]);\n\n return (\n !loading && (\n cApi.clauseSearchClauseIds({ ClauseSearch: sObj })}\n getCriteriasFunction={() => cApi.clauseGetSearchCriterias({ includeListsValues: true })}\n searchFunction={sObj => cApi.clauseBaseSearch({ ClauseSearch: sObj })}\n onSave={async newIds => {\n await mApi.metierClausesLieesSaveClauseMetier({\n FcbMetierClausesLieesDto: { idMetier: +id, idsClause: newIds }\n });\n\n history.push(`${ERoutes.metier}/${id}/clausesliees`);\n }}\n onCancel={() => history.push(`${ERoutes.metier}/${id}/clausesliees`)}\n overrideListValues={{ Idstade: i => i.displayValue }}\n dialogContext={dialogContext}\n sortKeys={{ title: \"ASC\" }}\n />\n )\n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { MetierClausesLiees } from \"./MetierClausesLiees\";\nimport { MetierClausesLieesSelector } from \"./MetierClausesLieesSelector\";\n\nexport interface IMetierClausesLieesSwitchProps {}\n\nexport const MetierClausesLieesSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { MetierConseillersLiesApi, MetierConseillersLiesSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IMetierConseillersLiesProps {}\n\nexport const MetierConseillersLies: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(MetierConseillersLiesApi);\n const { id } = useParams<{ id: string }>();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: MetierConseillersLiesSearch) => {\n sObj.idmetier = +id;\n return api.metierConseillersLiesBaseSearch({ MetierConseillersLiesSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n }\n ],\n [t]\n );\n\n return (\n history.push(`${ERoutes.metier}/${id}/conseillerslies/selector`)}\n intent={Intent.PRIMARY}\n text={t(ETLCodes.Modify)}\n />\n }\n >\n \n \n );\n};\n","import { IDataTableColumn, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ConseillerPedagogiqueApi, MetierConseillersLiesApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IMetierConseillerLiesSelectorProps {}\n\nexport const MetierConseillerLiesSelector: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const cApi = useApiService(ConseillerPedagogiqueApi);\n const mApi = useApiService(MetierConseillersLiesApi);\n const { id } = useParams<{ id: string }>();\n const dialogContext = useDialog();\n\n const [data, loading] = useApiEffect(() => mApi.metierConseillersLiesGetConseillerMetier({ id: +id }));\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"idconseillerPedagogique\",\n header: () => t(ETLCodes.Code),\n autoFitContent: true\n },\n {\n fieldName: \"nom\",\n header: () => t(ETLCodes.Nom)\n },\n {\n fieldName: \"prenom\",\n header: () => t(ETLCodes.Prenom)\n },\n {\n fieldName: \"telephone\",\n header: () => t(ETLCodes.Tel)\n },\n {\n fieldName: \"gsm\",\n header: () => t(ETLCodes.Gsm)\n },\n {\n fieldName: \"fax\",\n header: () => t(ETLCodes.Fax)\n }\n ];\n }, [t]);\n\n return (\n !loading && (\n cApi.conseillerPedagogiqueSearchConseillerIds({ ConseillerPedagogiqueSearch: sObj })}\n getCriteriasFunction={() => cApi.conseillerPedagogiqueGetSearchCriterias({ includeListsValues: true })}\n searchFunction={sObj => cApi.conseillerPedagogiqueBaseSearch({ ConseillerPedagogiqueSearch: sObj })}\n onSave={async newIds => {\n await mApi.metierConseillersLiesSaveConseillerMetier({\n FcbMetierConseillersLiesDto: { idMetiers: +id, idsConseillers: newIds }\n });\n\n history.push(`${ERoutes.metier}/${id}/conseillerslies`);\n }}\n onCancel={() => history.push(`${ERoutes.metier}/${id}/conseillerslies`)}\n overrideListValues={{ Idstade: i => i.displayValue }}\n dialogContext={dialogContext}\n sortKeys={{ nom: \"ASC\" }}\n />\n )\n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { MetierConseillersLies } from \"./MetierConseillersLies\";\nimport { MetierConseillerLiesSelector } from \"./MetierConseillerLiesSelector\";\n\nexport interface IMetierConseillersLiesSwitchProps {}\n\nexport const MetierConseillersLiesSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { MetierDetailPage, MetierLocalisation } from \".\";\nimport { MetierApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { MetierClausesLieesSwitch } from \"./MetierClausesLieesSwitch\";\nimport { MetierConseillersLiesSwitch } from \"./MetierConseillersLiesSwitch\";\n\ninterface IMetierItemPageProps {}\n\nexport const MetierItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idMetier = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const metierApi = useApiService(MetierApi);\n const [displayName] = useApiEffect(() => metierApi.metierGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.metier}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n }\n disabled={+id <= 0}\n />\n }\n disabled={+id <= 0}\n />\n }\n disabled={+id <= 0}\n />\n \n \n );\n};\n","import * as React from \"react\";\r\n\r\nimport { ETextSearchType, MetierLocalisationApi, MetierLocalisationSearch } from \"../../../../../api\";\r\nimport { SearchTablePage } from \"../../../../../components\";\r\nimport { useGlobalData } from \"../../../../../contexts\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\n\r\nexport interface IMetierLocalisationProps {\r\n idMetier: number;\r\n}\r\n\r\nexport const MetierLocalisation: React.FunctionComponent = ({ idMetier }) => {\r\n const { t } = useTl();\r\n const api = useApiService(MetierLocalisationApi);\r\n const { currentAnneeScolaire } = useGlobalData();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n header: () => t(ETLCodes.Centre),\r\n fieldName: \"centre\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Degre),\r\n fieldName: \"degre\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Type),\r\n fieldName: \"typeCours\"\r\n },\r\n {\r\n header: () => t(ETLCodes.Annee),\r\n fieldName: \"anneeScolaire\"\r\n }\r\n ],\r\n [t]\r\n );\r\n\r\n const getCriteriasFn = React.useCallback(\r\n () => api.metierLocalisationGetSearchCriterias({ includeListsValues: true }),\r\n [api]\r\n );\r\n\r\n const apiFactory = useAbortableApiServiceFactory(MetierLocalisationApi);\r\n const lastAbortController = React.useRef();\r\n const searchFn = React.useCallback(\r\n (sObj?: MetierLocalisationSearch) => {\r\n sObj.idmetier = idMetier;\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.metierLocalisationBaseSearch({ MetierLocalisationSearch: sObj });\r\n },\r\n [apiFactory, idMetier]\r\n );\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { FcbDegreGridDto, DegreSearch, DegreApi, EBooleanSearchTypes } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\n\ninterface IDegreListPageProps {}\n\nconst ButtonContainer = styled.div`\n display: flex;\n`;\n\nexport const DegreListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(DegreApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbDegreGridDto) => (\n \n history.push(`${ERoutes.degre}/${row.idDegre}/detail/view`)} />\n history.push(`${ERoutes.degre}/${row.idDegre}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"idDegre\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.Stade),\n fieldName: \"stade\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => history.push(`${ERoutes.degre}/0/detail/edit`), [history]);\n\n const getCriteriasFn = React.useCallback(() => api.degreGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(DegreApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: DegreSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.degreBaseSearch({ DegreSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { DegreDetailPage } from \"../../..\";\nimport { DegreApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IDegreItemPageProps {}\n\nexport const DegreItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const degreApi = useApiService(DegreApi);\n const [displayName] = useApiEffect(() => degreApi.degreGetDisplayName({ id: id }), [id]);\n\n return (\n \n history.push(`${ERoutes.degre}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { DegreApi, FcbDegreDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IDegreDetailPageProps {\n editMode: boolean;\n idDegre: string;\n}\n\nexport const DegreDetailPage: React.FunctionComponent = ({ editMode, idDegre }) => {\n const { t } = useTl();\n const api = useApiService(DegreApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (idDegre === \"0\" ? FcbDegreDtoFromJSON({ actif: true }) : api.degreGet({ id: idDegre })),\n saveApiFn: d => api.degreSave({ FcbDegreDto: d }),\n onSavedRoute: d => `${ERoutes.degre}/${d.idDegre}/detail/edit`,\n deleteApiFn: d => api.degreDelete({ id: d.idDegre }),\n onDeletedRoute: () => ERoutes.degre\n });\n\n const [stades, refLoading] = useReferential(a => a.referentialGetStade(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idDegre: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"code-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === idDegre) return true;\n const validationError = await api.degreCodeDegreExists({ code: value });\n return validationError.isValid;\n }),\n idStade: Yup.string().required(t(ETLCodes.Required)),\n libelle: Yup.string().required(t(ETLCodes.Required))\n });\n }, [api, idDegre, t]);\n\n return (\n history.push(ERoutes.degre)}\n onDelete={deleteItem}\n showDeleteButton={idDegre !== \"0\"}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport {\n ContratFormateurApi,\n ContratFormateurSearch,\n FcbContratFormateurGridDto,\n EBooleanSearchTypes\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n display: flex;\n`;\n\ninterface IContratFormateurListPageProps {}\n\nexport const ContratFormateurListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ContratFormateurApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbContratFormateurGridDto) => (\n \n history.push(`${ERoutes.contratFormateur}/${row.idcontratFormateur}/detail/view`)}\n />\n history.push(`${ERoutes.contratFormateur}/${row.idcontratFormateur}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.TypeDisplay),\n fieldName: \"typeDisplay\"\n },\n {\n header: () => t(ETLCodes.Genre),\n fieldName: \"genre\"\n },\n {\n header: () => t(ETLCodes.NbHeureMin),\n fieldName: \"nbheureMin\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.MaxHForm),\n fieldName: \"nbheureMax\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.MaxHJury),\n fieldName: \"nbheureJury\",\n autoFitContent: true\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => history.push(`${ERoutes.contratFormateur}/0/detail/edit`), [history]);\n\n const getCriteriasFn = React.useCallback(() => api.contratFormateurGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(ContratFormateurApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: ContratFormateurSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.contratFormateurBaseSearch({ ContratFormateurSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGEmpty, FGMaskInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { ContratFormateurApi, FcbContratFormateurDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator, FGWalterCheckboxInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IContratFormateurDetailPage {\n editMode: boolean;\n idContrat: number;\n}\n\nexport const ContratFormateurDetailPage: React.FunctionComponent = ({\n editMode,\n idContrat\n}) => {\n const { t } = useTl();\n const api = useApiService(ContratFormateurApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idContrat <= 0 ? FcbContratFormateurDtoFromJSON({ idContrat: 0 }) : api.contratFormateurGet({ id: +idContrat }),\n saveApiFn: d => api.contratFormateurSave({ FcbContratFormateurDto: d }),\n onSavedRoute: d => `${ERoutes.contratFormateur}/${d.idcontratFormateur}/detail/edit`,\n deleteApiFn: d => api.contratFormateurDelete({ id: d.idcontratFormateur }),\n onDeletedRoute: () => ERoutes.contratFormateur\n });\n\n const [typeContrat, loadingType] = useReferential(a => a.referentialGetTypeContratFormateur(), true, []);\n const [genreContrat, loadingGenre] = useReferential(a => a.referentialGetGenreContrat(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n code: Yup.string()\n .required(t(ETLCodes.Required))\n .max(20)\n .test(\"code-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === data?.code) return true;\n const validationError = await api.contratFormateurCodeContratFormateurExists({ code: value });\n return validationError.isValid;\n }),\n idgenre: Yup.number()\n .required(t(ETLCodes.Required))\n .notOneOf([-1, 0], t(ETLCodes.Required)),\n type: Yup.number()\n .required(t(ETLCodes.Required))\n .notOneOf([-1, 0], t(ETLCodes.Required))\n });\n }, [t, data, api]);\n\n return (\n data && (\n history.push(ERoutes.contratFormateur)}\n onDelete={deleteItem}\n showDeleteButton={+idContrat > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ContratFormateurApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ContratFormateurDetailPage } from \"./ContratFormateurDetailPage\";\n\ninterface IContratFormateurItemPageProps {}\n\nexport const ContratFormateurItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const ContratApi = useApiService(ContratFormateurApi);\n const [displayName] = useApiEffect(() => ContratApi.contratFormateurGetDisplayName({ id: +id }), [id]);\n return (\n \n history.push(`${ERoutes.contratFormateur}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbProfessionFormateurDtoFromJSON, ProfessionFormateurApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IProfessionFormateurDetailPageProps {\n editMode: boolean;\n idProfession: number;\n}\n\nexport const ProfessionFormateurDetailPage: React.FunctionComponent = ({\n editMode,\n idProfession\n}) => {\n const { t } = useTl();\n const api = useApiService(ProfessionFormateurApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idProfession <= 0\n ? FcbProfessionFormateurDtoFromJSON({ idProfession: 0 })\n : api.professionFormateurGet({ id: +idProfession }),\n saveApiFn: d => api.professionFormateurSave({ FcbProfessionFormateurDto: d }),\n onSavedRoute: d => `${ERoutes.professionFormateur}/${d.idprofession}/detail/edit`,\n deleteApiFn: d => api.professionFormateurDelete({ id: d.idprofession }),\n onDeletedRoute: () => ERoutes.professionFormateur\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string()\n .required(t(ETLCodes.Required))\n .max(50)\n .test(\"code-not-exists\", t(ETLCodes.LibelleExistsError), async value => {\n if (value === data?.libelle) return true;\n const validationError = await api.professionFormateurLibelleProfessionFormateurExists({ libelle: value });\n return validationError.isValid;\n })\n });\n }, [api, data, t]);\n\n return (\n data && (\n history.push(ERoutes.professionFormateur)}\n onDelete={deleteItem}\n showDeleteButton={+idProfession > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ProfessionFormateurDetailPage } from \"..\";\nimport { ProfessionFormateurApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IProfessionFormateurItemPageProps {}\n\nexport const ProfessionFormateurItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n\n const professionFormateurApi = useApiService(ProfessionFormateurApi);\n const [displayName] = useApiEffect(() => professionFormateurApi.professionFormateurGetDisplayName({ id: +id }), [id]);\n const history = useHistory();\n\n return (\n \n history.push(`${ERoutes.professionFormateur}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport {\n ProfessionFormateurApi,\n FcbProfessionFormateurDto,\n ProfessionFormateurSearch,\n EBooleanSearchTypes\n} from \"../../../../../api\";\n\ninterface IProfessionFormateurListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const ProfessionFormateurListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ProfessionFormateurApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbProfessionFormateurDto) => (\n \n history.push(`${ERoutes.professionFormateur}/${row.idprofession}/detail/view`)}\n />\n history.push(`${ERoutes.professionFormateur}/${row.idprofession}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.professionFormateur}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(\n () => api.professionFormateurGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(ProfessionFormateurApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: ProfessionFormateurSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.professionFormateurBaseSearch({ ProfessionFormateurSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { FcbSecteurGridDto, SecteurApi, SecteurSearch, EBooleanSearchTypes } from \"../../../../../api\";\n\ninterface ISecteurMetierListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const SecteurMetierListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(SecteurApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbSecteurGridDto) => (\n \n history.push(`${ERoutes.secteurMetier}/${row.codesecteur}/detail/view`)}\n />\n history.push(`${ERoutes.secteurMetier}/${row.codesecteur}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.CodeSecteur),\n fieldName: \"codesecteur\",\n autoFitContent: true\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"description\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.secteurMetier}/-1/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.secteurGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(SecteurApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: SecteurSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.secteurBaseSearch({ SecteurSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGEmpty, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbSecteurDtoFromJSON, SecteurApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ISecteurMetierDetailPageProps {\n editMode: boolean;\n codeSecteur: string;\n}\n\nexport const SecteurMetierDetailPage: React.FunctionComponent = ({\n editMode,\n codeSecteur\n}) => {\n const { t } = useTl();\n const api = useApiService(SecteurApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n codeSecteur === \"-1\" ? FcbSecteurDtoFromJSON({ actif: true }) : api.secteurGet({ id: codeSecteur }),\n saveApiFn: d => api.secteurSave({ FcbSecteurDto: d }),\n onSavedRoute: d => `${ERoutes.secteurMetier}/${d.codesecteur}/detail/edit`,\n deleteApiFn: d => api.secteurDelete({ id: d.codesecteur }),\n onDeletedRoute: () => ERoutes.secteurMetier\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n codesecteur: Yup.string()\n .required(t(ETLCodes.Required))\n .max(3)\n .test(\"code-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === data.codesecteur) return true;\n const validationError = await api.secteurCodeExists({ code: value });\n return validationError.isValid;\n }),\n description: Yup.string().required()\n });\n }, [api, data, t]);\n return (\n data && (\n history.push(ERoutes.secteurMetier)}\n onDelete={deleteItem}\n showDeleteButton={codeSecteur !== \"0\"}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n )\n );\n};\n","import { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport { SecteurMetierLiesSearch, SecteurMetierMetierLiesApi } from \"../../../../../api\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ISecteurMetierMetierLiesListPageProps {}\n\nexport const SecteurMetierMetierLiesListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(SecteurMetierMetierLiesApi);\n\n const { id } = useParams<{ id: string; state: string }>();\n\n const tableState = useGridState({\n sortKeys: { code: \"ASC\" },\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const searchFunction = React.useCallback(\n (sObj?: SecteurMetierLiesSearch) => {\n sObj.codesecteur = id;\n return api.secteurMetierMetierLiesBaseSearch({ SecteurMetierLiesSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n const { totalCount } = tableState;\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Stade),\n fieldName: \"stade\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"masculin\"\n }\n ],\n [t]\n );\n\n return (\n
\n \n
\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { SecteurApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { SecteurMetierDetailPage } from \"./SecteurMetierDetailPage\";\nimport { SecteurMetierMetierLiesListPage } from \"./SecteurMetierMetierLiesListPage\";\n\ninterface ISecteurMetierItemPageProps {}\n\nexport const SecteurMetierItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const secteurMetierApi = useApiService(SecteurApi);\n const [displayName] = useApiEffect(() => secteurMetierApi.secteurGetDisplayName({ id: id }), [id]);\n\n return (\n \n history.push(`${ERoutes.secteurMetier}/${id}/${newTabId}/edit`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n }\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport {\n SecteurHomogeneApi,\n FcbSecteurHomogeneGridDto,\n SecteurHomogeneSearch,\n EBooleanSearchTypes\n} from \"../../../../../api\";\nimport styled from \"styled-components\";\nconst Container = styled.div`\n display: flex;\n`;\n\ninterface ISecteurClasseHomogeneListPageProps {}\n\nexport const SecteurClasseHomogeneListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(SecteurHomogeneApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbSecteurHomogeneGridDto) => (\n \n history.push(`${ERoutes.secteurClasseHomogene}/${row.idsecteur}/detail/view`)}\n />\n history.push(`${ERoutes.secteurClasseHomogene}/${row.idsecteur}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.Stade),\n fieldName: \"stade\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.secteurClasseHomogene}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.secteurHomogeneGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(SecteurHomogeneApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: SecteurHomogeneSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.secteurHomogeneBaseSearch({ SecteurHomogeneSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n e.displayValue!\n }}\n addFunc={addItemFunction}\n breadCrumbs={[{ text: t(ETLCodes.SecteursClasseHomogene), route: ERoutes.secteurClasseHomogene }]}\n defaultCriterias={[\n {\n criteria: \"Actif\",\n searchMode: EBooleanSearchTypes.Equals,\n value: true\n }\n ]}\n />\n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbSecteurHomogeneDtoFromJSON, SecteurHomogeneApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator, FGWalterCheckboxInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ISecteurClasseHomogeneDetailPageProps {\n editMode: boolean;\n idSecteur: number;\n}\n\nexport const SecteurClasseHomogeneDetailPage: React.FunctionComponent = ({\n editMode,\n idSecteur\n}) => {\n const { t } = useTl();\n const api = useApiService(SecteurHomogeneApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idSecteur <= 0\n ? FcbSecteurHomogeneDtoFromJSON({ idSecteur: 0, actif: true })\n : api.secteurHomogeneGet({ id: +idSecteur }),\n saveApiFn: d => api.secteurHomogeneSave({ FcbSecteurHomogeneDto: d }),\n onSavedRoute: d => `${ERoutes.secteurClasseHomogene}/${d.idsecteur}/detail/edit`,\n deleteApiFn: d => api.secteurHomogeneDelete({ id: d.idsecteur }),\n onDeletedRoute: () => ERoutes.secteurClasseHomogene\n });\n\n const [stade, sLoading] = useReferential(a => a.referentialGetStade(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"code-not-exists\", t(ETLCodes.SecteurClasseHomogeneDetailPage_StadeLibelleExistsError), async function(\n value\n ) {\n if (value === data?.libelle && this.parent.idstade === data?.idstade) return true;\n const validationError = await api.secteurHomogeneStadeLibelleSecteurHomogeneExists({\n libelle: value,\n idStade: this.parent.idstade\n });\n return validationError.isValid;\n }),\n idstade: Yup.number()\n .notOneOf([0, -1], t(ETLCodes.Required))\n .required(t(ETLCodes.Required))\n .test(\"code-not-exists\", t(ETLCodes.SecteurClasseHomogeneDetailPage_StadeLibelleExistsError), async function(\n value\n ) {\n if (this.parent.libelle === data?.libelle && value === data?.idstade) return true;\n const validationError = await api.secteurHomogeneStadeLibelleSecteurHomogeneExists({\n libelle: this.parent.libelle,\n idStade: value\n });\n return validationError.isValid;\n })\n });\n }, [api, data, t]);\n\n return (\n history.push(ERoutes.secteurClasseHomogene)}\n onDelete={deleteItem}\n showDeleteButton={+idSecteur > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { SecteurClasseHomogeneDetailPage } from \"..\";\nimport { SecteurHomogeneApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ISecteurClasseHomogeneItemPageProps {}\n\nexport const SecteurClasseHomogeneItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n const secteurClasseHomogeneApi = useApiService(SecteurHomogeneApi);\n const [displayName] = useApiEffect(() => secteurClasseHomogeneApi.secteurHomogeneGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.secteurClasseHomogene}/${id}/${state}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGEmpty, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { FcbStadeDtoFromJSON, StadeApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator, FGWalterCheckboxInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport * as Yup from \"yup\";\n\ninterface IStadeDetailPageProps {\n editMode: boolean;\n idStade: number;\n}\n\nexport const StadeDetailPage: React.FunctionComponent = ({ idStade, editMode }) => {\n const { t } = useTl();\n const api = useApiService(StadeApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (+idStade <= 0 ? FcbStadeDtoFromJSON({ idStade: 0 }) : api.stadeGet({ id: +idStade })),\n saveApiFn: d => api.stadeSave({ FcbStadeDto: d }),\n onSavedRoute: d => `${ERoutes.stade}/${d.idstade}/detail/edit`,\n deleteApiFn: d => api.stadeDelete({ id: d.idstade }),\n onDeletedRoute: () => ERoutes.stade\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n code: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n data && (\n history.push(ERoutes.stade)}\n onDelete={deleteItem}\n showDeleteButton={+idStade > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { StadeApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { StadeDetailPage } from \"./StadeDetailPage\";\n\ninterface IStadeItemPageProps {}\n\nexport const StadeItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idStade = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const stadeApi = useApiService(StadeApi);\n const [displayName] = useApiEffect(() => stadeApi.stadeGetDisplayName({ id: idStade }), [id]);\n\n return (\n \n history.push(`${ERoutes.stade}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { EBooleanSearchTypes, FcbStadeGridDto, StadeApi, StadeSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IStadeListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const StadeListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(StadeApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbStadeGridDto) => (\n \n history.push(`${ERoutes.stade}/${row.idstade}/detail/view`)} />\n history.push(`${ERoutes.stade}/${row.idstade}/detail/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.AcquisIfapme),\n fieldName: \"acquisIfapme\",\n render: (row: FcbStadeGridDto) => {}} disabled />\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => history.push(`${ERoutes.stade}/0/detail/edit`), [history]);\n\n const getCriteriasFn = React.useCallback(() => api.stadeGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(StadeApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: StadeSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.stadeBaseSearch({ StadeSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbTitrePedagogiqueDtoFromJSON, TitrePedagogiqueApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator, FGWalterCheckboxInput } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ITitrePedagogiqueDetailPageProps {\n idTitre: number;\n editMode: boolean;\n}\n\nexport const TitrePedagogiqueDetailPage: React.FunctionComponent = ({\n idTitre,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(TitrePedagogiqueApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idTitre <= 0 ? FcbTitrePedagogiqueDtoFromJSON({ idTitre: 0 }) : api.titrePedagogiqueGet({ id: +idTitre }),\n saveApiFn: d => api.titrePedagogiqueSave({ FcbTitrePedagogiqueDto: d }),\n onSavedRoute: d => `${ERoutes.titrePedagogique}/${d.idtitre}/detail/edit`,\n deleteApiFn: d => api.titrePedagogiqueDelete({ id: d.idtitre }),\n onDeletedRoute: () => ERoutes.titrePedagogique\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string()\n .required(t(ETLCodes.Required))\n .max(75)\n .test(\"libelle-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === data.libelle) return true;\n const validationError = await api.titrePedagogiqueExists({ libelle: value });\n return validationError.isValid;\n })\n });\n }, [t, data, api]);\n\n return (\n data && (\n history.push(ERoutes.titrePedagogique)}\n onDelete={deleteItem}\n showDeleteButton={+idTitre > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { TitrePedagogiqueDetailPage } from \"..\";\nimport { TitrePedagogiqueApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ITitrePedagogiqueItemPageProps {}\n\nexport const TitrePedagogiqueItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n\n const api = useApiService(TitrePedagogiqueApi);\n const [displayName] = useApiEffect(() => api.titrePedagogiqueGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.titrePedagogique}/${id}/${newTabId}`)}\n renderActiveTabPanelOnly\n selectedTabId={tab}\n >\n \n }\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../../hooks\";\nimport { useHistory } from \"react-router\";\nimport {\n TitrePedagogiqueApi,\n FcbTitrePedagogiqueDto,\n TitrePedagogiqueSearch,\n EBooleanSearchTypes\n} from \"../../../../../api\";\nimport { ViewButton, EditButton, SearchTablePage } from \"../../../../../components\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\n\ninterface ITitrePedagogiqueListPageProps {}\nconst Container = styled.div`\n display: flex;\n`;\nexport const TitrePedagogiqueListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(TitrePedagogiqueApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbTitrePedagogiqueDto) => (\n \n history.push(`${ERoutes.titrePedagogique}/${row.idtitre}/detail/view`)}\n />\n history.push(`${ERoutes.titrePedagogique}/${row.idtitre}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.titrePedagogique}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.titrePedagogiqueGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(TitrePedagogiqueApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: TitrePedagogiqueSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.titrePedagogiqueBaseSearch({ TitrePedagogiqueSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { EBooleanSearchTypes, FcbReferentielGridDto, ReferentielApi, ReferentielSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { CopyButton, EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IReferentielListPageProps {}\n\nexport const ReferentielListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ReferentielApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbReferentielGridDto) => (\n \n history.push(`${ERoutes.referentiel}/0/detail/edit/${row.idreferentiel}`)}\n />\n history.push(`${ERoutes.referentiel}/${row.idreferentiel}/detail/view`)}\n />\n history.push(`${ERoutes.referentiel}/${row.idreferentiel}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"codereferentiel\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Degres),\n fieldName: \"degre\"\n },\n {\n header: () => t(ETLCodes.NbHeure),\n fieldName: \"nbheures\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.referentiel}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.referentielGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(ReferentielApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: ReferentielSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.referentielBaseSearch({ ReferentielSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { FormikProps } from \"formik\";\nimport { FGEmpty, FGMaskInput, FGNumberInput, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbReferentielDto, FcbReferentielDtoFromJSON, ReferentielApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport {\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n SmallFormGenerator\n} from \"../../../../../components\";\nimport { FGEuroMaskInput } from \"../../../../../components/formGenerator/FGEuroMaskInput\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { useReferential } from \"../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IReferentielDetailPageProps {\n editMode: boolean;\n idReferentiel: number;\n copyId: number;\n}\n\nexport const ReferentielDetailPage: React.FunctionComponent = ({\n editMode,\n idReferentiel,\n copyId\n}) => {\n const { t } = useTl();\n const api = useApiService(ReferentielApi);\n const history = useHistory();\n const formikRef = React.useRef>();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n copyId\n ? api.referentielGet({ id: +copyId })\n : +idReferentiel <= 0\n ? FcbReferentielDtoFromJSON({ idReferentiel: 0, test: false })\n : api.referentielGet({ id: +idReferentiel }),\n saveApiFn: (d: any) => api.referentielSave({ SaveReferentielDto: { ...d, copyId } }),\n onSavedRoute: d => `${ERoutes.referentiel}/${d.idreferentiel}/detail/edit`,\n deleteApiFn: d => api.referentielDelete({ id: d.idreferentiel }),\n onDeletedRoute: () => ERoutes.referentiel\n }),\n [api, copyId, idReferentiel]\n )\n );\n\n React.useEffect(() => {\n if (copyId && data && data.idreferentiel === +copyId) {\n data.idreferentiel = idReferentiel;\n }\n }, [copyId, idReferentiel, data, formikRef]);\n\n const [metier, loadingMetier] = useReferential(a => a.referentialGetMetier(), true, []);\n const [degre, loadingDegre] = useReferential(a => a.referentialGetDegre(), false, []);\n const [typeReussite, loadingTypeReussite] = useReferential(a => a.referentialGetTypeReussite(), true, []);\n const [typeBulletin, loadingTypeBulletin] = useReferential(a => a.referentialGetTypesBulletin(), true, []);\n // const [certifications, loadingCertifications] = useReferential(a => a.referentialGetCertifications(), true, []);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idmetier: Yup.number().required(t(ETLCodes.Required)),\n iddegre: Yup.string().required(t(ETLCodes.Required)),\n date: Yup.date().required(t(ETLCodes.Required)),\n pcreport: Yup.number().max(100, t(ETLCodes.NumberTooHigh_100)),\n pcreussite: Yup.number().max(100, t(ETLCodes.NumberTooHigh_100))\n });\n }, [t]);\n\n return (\n data && (\n history.push(ERoutes.referentiel)}\n onDelete={deleteItem}\n showDeleteButton={+idReferentiel > 0}\n saving={saving}\n deleting={deleting}\n formikInnerRef={i => (formikRef.current = i)}\n forceEnableSave={true}\n >\n \n \n 0} name=\"test\" label={t(ETLCodes.IsTest)} />\n \n 0}\n loading={loadingMetier}\n name=\"idmetier\"\n label={t(ETLCodes.Metier)}\n />\n\n 0}\n items={degre}\n loading={loadingDegre}\n name=\"iddegre\"\n label={t(ETLCodes.Degres)}\n />\n \n \n \n 0}\n name=\"nbseances\"\n label={t(ETLCodes.NbSceances)}\n />\n 0} name=\"coutmatiere\" label={t(ETLCodes.CoutMatiere)} />\n 0}\n name=\"nbcandidat\"\n label={t(ETLCodes.NbCandidat)}\n />\n 0}\n name=\"pcreport\"\n label={t(ETLCodes.SeuilReport)}\n rightElement={}\n />\n 0}\n name=\"pcreussite\"\n label={t(ETLCodes.SeuilReussite)}\n rightElement={}\n />\n 0}\n />\n \n \n \n \n \n \n \n {/* */}\n \n \n )\n );\n};\n","import { Classes, Colors, Divider, InputGroup, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport {\n ButtonContainer,\n DataTable,\n FGTextInput,\n FieldGroup,\n FieldSet,\n IDataTableColumn,\n useApiEffect,\n useGridState,\n useSearchApi\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { FcbMatiereReferentielGridDto, MatiereReferentielApi, MatiereReferentielSearch } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport {\n AddButton,\n BooleanColumn,\n DeleteButton,\n EditButton,\n SmallFormGenerator,\n ViewButton\n} from \"../../../../../../components\";\nimport { useDialog } from \"../../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nconst ViewInput = styled(InputGroup)<{ colorcheck: string }>`\n & .${Classes.ICON} {\n color: ${p => p.colorcheck};\n margin-left: 0;\n }\n`;\n\nexport interface IReferentielMatiereListPageProps {}\n\nexport const ReferentielMatiereListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { showDialog } = useDialog();\n const { id } = useParams<{ id: string }>();\n const ReferentielId = React.useMemo(() => +id, [id]);\n const api = useApiService(MatiereReferentielApi);\n const path = `${ERoutes.referentiel}/${id}/matiere`;\n const tableState = useGridState({\n sortKeys: { idmatiere: \"ASC\" },\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: MatiereReferentielSearch) => {\n sObj.idreferentiel = ReferentielId;\n return api.matiereReferentielBaseSearch({ MatiereReferentielSearch: sObj });\n },\n [ReferentielId, api]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const [data, , , refresh] = useApiEffect(\n React.useCallback(() => {\n return api.matiereReferentielGetHours({ idReferentiel: ReferentielId });\n }, [ReferentielId, api])\n );\n\n const deleteClasse = React.useCallback(\n async (row: FcbMatiereReferentielGridDto) => {\n showDialog({\n message: t(ETLCodes.DeleteConfirmationMessage),\n title: t(ETLCodes.DeleteDialogTitle),\n onConfirmed: async () => {\n await api.matiereReferentielDelete({ idReferentiel: row.idreferentiel, idMatiere: row.idmatiere });\n search(null);\n refresh();\n }\n });\n },\n [api, refresh, search, showDialog, t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbMatiereReferentielGridDto) => (\n \n {row.isLinkedToClasse ? <> : deleteClasse(row)} />}\n history.push(`${path}/${row.idmatiere}/view`)} />\n history.push(`${path}/${row.idmatiere}/edit`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"idmatiere\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Niveau),\n fieldName: \"niveau\",\n render: (row: FcbMatiereReferentielGridDto) =>\n row.niveau && row.niveau + (row.niveau > 0 && !!row.matiereParent ? ` (${row.matiereParent})` : \"\")\n },\n {\n header: () => t(ETLCodes.Degre),\n fieldName: \"degre\"\n },\n {\n header: () => t(ETLCodes.NbHeure),\n fieldName: \"nbheures\"\n },\n {\n header: () => t(ETLCodes.TJ),\n fieldName: \"travail\"\n },\n {\n header: () => t(ETLCodes.Examen),\n fieldName: \"examen\"\n },\n {\n header: () => t(ETLCodes.Categorie),\n fieldName: \"categorie\"\n },\n {\n header: () => t(ETLCodes.TypeProjet),\n fieldName: \"projetFinancement\"\n },\n {\n header: () => t(ETLCodes.IsLinkedToClasse),\n fieldName: \"email\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbMatiereReferentielGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.PcMinReussite),\n fieldName: \"pcReussite\"\n },\n {\n header: () => t(ETLCodes.UAA),\n fieldName: \"uaa\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbMatiereReferentielGridDto) => \n },\n {\n header: () => t(ETLCodes.VisibleBulletin),\n fieldName: \"isVisibleBulletin\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbMatiereReferentielGridDto) => \n },\n {\n header: () => t(ETLCodes.Sommative),\n fieldName: \"sommative\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: FcbMatiereReferentielGridDto) => \n }\n ],\n [deleteClasse, history, path, t]\n );\n\n const labelStyle = React.useMemo(() => {\n if (data) {\n return {\n color: data.nbHeures === data.nbHeuresReelles ? Colors.GREEN3 : Colors.RED3\n };\n }\n }, [data]);\n\n const canAddMatiere = React.useMemo(() => {\n if (data) {\n return data.nbHeures !== data.nbHeuresReelles;\n }\n }, [data]);\n\n return (\n <>\n {\n e.stopPropagation();\n history.push(`${path}/0/edit`);\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n ) : (\n <>\n )\n }\n >\n {}} hideButtons={true} editable={false}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { FGListen, FGNumberInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbMatiereReferentielDtoFromJSON, MatiereReferentielApi } from \"../../../../../../api\";\nimport { ERoutes } from \"../../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IReferentielMatiereDetailPageProps {}\n\nexport const ReferentielMatiereDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(MatiereReferentielApi);\n const history = useHistory();\n const { id, matiereId, state } = useParams<{ id: string; matiereId: string; state: string }>();\n const ReferentielId = React.useMemo(() => +id, [id]);\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const [projetFinancement, projetFinancementLoading] = useReferential(\n a => a.referentialGetProjetFinancement(),\n true,\n []\n );\n const [niveau, setNiveau] = React.useState(0);\n const [matieresParent, mpLoading] = useReferential(\n a => niveau > 0 && a.referentialGetReferentielMatieresByNiveau({ idreferentiel: +id, niveau }),\n true,\n [id, niveau]\n );\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n matiereId === \"0\"\n ? FcbMatiereReferentielDtoFromJSON({ idreferentiel: ReferentielId, niveau: 0, isEditable: true })\n : api.matiereReferentielGet({ idReferentiel: ReferentielId, idMatiere: matiereId }),\n saveApiFn: d => api.matiereReferentielSave({ FcbMatiereReferentielDto: d }),\n onSavedRoute: d => `${ERoutes.referentiel}/${d.idreferentiel}/matiere/${d.idmatiere}/edit`,\n deleteApiFn: d => api.matiereReferentielDelete({ idReferentiel: d.idreferentiel, idMatiere: d.idmatiere }),\n onDeletedRoute: d => `${ERoutes.referentiel}/${d.idreferentiel}/matiere`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idmatiere: Yup.string()\n .required(t(ETLCodes.Required))\n .max(4),\n nbheures: Yup.number().nullable(),\n travail: Yup.number().nullable(),\n examen: Yup.number().nullable(),\n pcReussite: Yup.number().nullable(),\n categorie: Yup.number().nullable(),\n niveau: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idmatiereParent: Yup.number()\n .nullable()\n .when(\"niveau\", {\n is: val => val > 0,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n })\n });\n }, [t]);\n\n const isEditable = React.useMemo(() => {\n if (data) {\n return data.isEditable;\n }\n }, [data]);\n\n return (\n history.push(`${ERoutes.referentiel}/${ReferentielId}/matiere`)}\n onDelete={deleteItem}\n showDeleteButton={false} //matiereId !== \"0\"}\n saving={saving}\n deleting={deleting}\n >\n setNiveau(value)} />\n \n \n \n \n \n \n \n \n \n \n ctx?.formik?.values?.niveau > 0}\n />\n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useRouteMatch, Switch, Route } from \"react-router-dom\";\nimport { ReferentielMatiereListPage } from \"./ReferentielMatiereListPage\";\nimport { ReferentielMatiereDetailPage } from \"./ReferentielMatiereDetailPage\";\n\nexport interface IReferentielMatiereItemPageProps {}\n\nexport const ReferentielMatiereItemPage: React.FunctionComponent = () => {\n const match = useRouteMatch();\n\n return (\n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ReferentielApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { ReferentielMatiereItemPage } from \"./matiere/ReferentielMatiereItemPage\";\nimport { ReferentielDetailPage } from \"./ReferentielDetailPage\";\n\ninterface IReferentielItemPageProps {}\n\nexport const ReferentielItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, state = \"edit\", copyId } = useParams<{ id: string; tab: string; state: string; copyId: string }>();\n const referentielApi = useApiService(ReferentielApi);\n const [displayName] = useApiEffect(() => referentielApi.referentielGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.referentiel}/${id}/${newTabId}`)}\n renderActiveTabPanelOnly\n selectedTabId={tab}\n >\n \n }\n />\n }\n />\n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { AnneeScolaireDetailPage } from \"..\";\nimport { AnneeScolaireApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IAnneeScolaireItemPageProps {}\n\nexport const AnneeScolaireItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const AnneeApi = useApiService(AnneeScolaireApi);\n const [displayName] = useApiEffect(() => AnneeApi.anneeScolaireGetDisplayName({ id: id }), [id]);\n return (\n \n history.push(`${ERoutes.anneeScolaire}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGMaskInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { AnneeScolaireApi, FcbAnneeScolaireDetailDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useQuery } from \"react-query\";\n\nexport interface IAnneeScolaireDetailPageProps {\n editMode: boolean;\n idAnnee: string;\n}\n\nexport const AnneeScolaireDetailPage: React.FunctionComponent = ({\n editMode,\n idAnnee\n}) => {\n const { t } = useTl();\n const api = useApiService(AnneeScolaireApi);\n const history = useHistory();\n\n const fetchIsDeletable = React.useCallback(async () => {\n if (!idAnnee) return;\n const res = await api.anneeScolaireIsDeletable({\n id: idAnnee\n });\n\n return res.value;\n }, [idAnnee, api]);\n\n const { data: isDeletable } = useQuery([\"anneeScolaire-is-deletable\", idAnnee], fetchIsDeletable, {\n enabled: true\n });\n\n const { data, loading, saveItem, saving, deleteItem, deleting } = useCrudApi({\n getApiFn: () =>\n idAnnee === \"0\"\n ? FcbAnneeScolaireDetailDtoFromJSON({ idanneeScolaire: 0 })\n : api.anneeScolaireGet({ id: idAnnee }),\n saveApiFn: d => api.anneeScolaireSave({ FcbAnneeScolaireDetailDto: d }),\n onSavedRoute: d => `${ERoutes.anneeScolaire}/${d.idanneeScolaire}/detail/edit`,\n deleteApiFn: d => api.anneeScolaireDelete({ id: d.idanneeScolaire }),\n onDeletedRoute: () => `${ERoutes.anneeScolaire}/`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n anneeDebut: Yup.number()\n .required(t(ETLCodes.Required))\n .test(\"is-unique\", t(ETLCodes.ErrorAnneeScolaireAlreadyExists), async function(value: any) {\n if (this.parent.idanneeScolaire) return true;\n\n const validationError = await api.anneeScolaireExists({\n anneeDebut: \"\" + value,\n anneeFin: this.parent.anneeFin\n });\n return validationError.isValid;\n }),\n anneeFin: Yup.number()\n .required(t(ETLCodes.Required))\n .test(\"is-valid\", t(ETLCodes.DateFinTooLowError), async function(value) {\n return value > this.parent.anneeDebut;\n })\n .test(\"is-unique\", t(ETLCodes.ErrorAnneeScolaireAlreadyExists), async function(value: any) {\n if (this.parent.idanneeScolaire) return true;\n const validationError = await api.anneeScolaireExists({\n anneeDebut: this.parent.anneeDebut,\n anneeFin: \"\" + value\n });\n return validationError.isValid;\n })\n });\n }, [api, t]);\n\n return (\n history.push(ERoutes.anneeScolaire)}\n onDelete={deleteItem}\n deleting={deleting}\n showDeleteButton={idAnnee !== \"0\"}\n deleteBtnDisabled={!isDeletable}\n saving={saving}\n specificRights={{ module: \"ANNEESCOLAIRE\", tab: \"DETAIL\", rights: \"RW\" }}\n >\n \n {\n if (!value) {\n formik.setFieldValue(\"anneeFin\", null);\n } else {\n formik.setFieldValue(\"anneeFin\", 1 + parseInt(value, 10));\n }\n }}\n />\n \n \n \n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nimport { AnneeScolaireApi, AnneeScolaireSearch, EBooleanSearchTypes, FcbAnneeScolaireDto } from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\r\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\n\r\nexport interface IAnneeScolaireListPageProps {}\r\n\r\nexport const AnneeScolaireListPage: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const history = useHistory();\r\n const api = useApiService(AnneeScolaireApi);\r\n const [lastSearchObject, setLastSearchObject] = React.useState();\r\n\r\n const apiFactory = useAbortableApiServiceFactory(AnneeScolaireApi);\r\n const lastAbortController = React.useRef();\r\n const search = React.useCallback(\r\n (nextSearch?: AnneeScolaireSearch) => {\r\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject)) {\r\n setLastSearchObject(nextSearch);\r\n }\r\n const { api: abortableApi, abortController } = apiFactory();\r\n lastAbortController.current = abortController;\r\n return abortableApi.anneeScolaireBaseSearch({ AnneeScolaireSearch: nextSearch });\r\n },\r\n [apiFactory, lastSearchObject]\r\n );\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n computed: true,\r\n fieldName: \"actions\",\r\n autoFitContent: true,\r\n render: (row: FcbAnneeScolaireDto) => (\r\n \r\n history.push(`${ERoutes.anneeScolaire}/${row.idanneeScolaire}/detail/view`)}\r\n />\r\n history.push(`${ERoutes.anneeScolaire}/${row.idanneeScolaire}/detail/edit`)}\r\n />\r\n \r\n )\r\n },\r\n {\r\n header: () => t(ETLCodes.Description),\r\n fieldName: \"description\"\r\n }\r\n ],\r\n [history, t]\r\n );\r\n\r\n const onAddItem = React.useCallback(() => {\r\n history.push(`${ERoutes.anneeScolaire}/0/detail/edit`);\r\n }, [history]);\r\n\r\n const getCriteria = React.useCallback(() => api.anneeScolaireGetSearchCriterias({ includeListsValues: true }), [api]);\r\n\r\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { TypeBulletinApi, TypeBulletinGridDto, TypeBulletinSearchDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ITypeBulletinListPageProps {}\n\nexport const TypeBulletinListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(TypeBulletinApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: TypeBulletinGridDto) => (\n \n history.push(`${ERoutes.typeBulletin}/${row.idtypeBulletin}/detail/view`)}\n />\n history.push(`${ERoutes.typeBulletin}/${row.idtypeBulletin}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => {\n history.push(`${ERoutes.typeBulletin}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.typeBulletinGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(TypeBulletinApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: TypeBulletinSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.typeBulletinBaseSearch({ TypeBulletinSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n\nexport default TypeBulletinListPage;\n","import { Tab } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport { TypeBulletinDetailsPanel } from \".\";\nimport { TypeBulletinApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface ITypeBulletinItemPageProps {}\n\nexport const TypeBulletinItemPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(TypeBulletinApi);\n\n const { data: displayName } = useQuery(\n [\"type-bulletin-display-name\", id],\n async () => await api.typeBulletinGetDisplayName({ id: +id })\n );\n\n return (\n \n history.push(`${ERoutes.typeBulletin}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n\nexport default TypeBulletinItemPage;\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { TypeBulletinApi, TypeBulletinEditDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport * as Yup from \"yup\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { SmallFormGenerator } from \"../../../../../components\";\nimport { FGTextInput, FieldGroup } from \"nsitools-react\";\n\nexport interface ITypeBulletinDetailsPanelProps {\n idtypeBulletin: number;\n editMode: boolean;\n}\n\nexport const TypeBulletinDetailsPanel: React.FunctionComponent = ({\n editMode,\n idtypeBulletin\n}) => {\n const { t } = useTl();\n const api = useApiService(TypeBulletinApi);\n const history = useHistory();\n\n const { data, saving, saveItem, deleting, deleteItem, loading, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n idtypeBulletin <= 0\n ? TypeBulletinEditDtoFromJSON({})\n : api.typeBulletinGetTypeBulletin({ id: idtypeBulletin }),\n saveApiFn: values => api.typeBulletinSaveTypeBulletin({ TypeBulletinEditDto: values }),\n deleteApiFn: values => api.typeBulletinDeleteTypeBulletin({ id: values.idtypeBulletin }),\n onDeletedRoute: () => ERoutes.typeBulletin,\n onSavedRoute: d => `${ERoutes.typeBulletin}/${d.idtypeBulletin}/detail/edit`\n }),\n [api, idtypeBulletin]\n )\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string().required(t(ETLCodes.Required)),\n code: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n = 0}\n onCancel={() => history.push(ERoutes.typeBulletin)}\n validationErrors={validationErrors}\n >\n \n \n \n \n \n );\n};\n\nexport default TypeBulletinDetailsPanel;\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport {\n TypeFinancementApi,\n TypeFinancementSearch,\n FcbTypeFinancementGridDto,\n EBooleanSearchTypes\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport styled from \"styled-components\";\n\ninterface ITypeFinancementListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const TypeFinancementListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(TypeFinancementApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbTypeFinancementGridDto) => (\n \n history.push(`${ERoutes.typeFinancement}/${row.idfinancementType}/detail/view`)}\n />\n history.push(`${ERoutes.typeFinancement}/${row.idfinancementType}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.typeFinancement}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.typeFinancementGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(TypeFinancementApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: TypeFinancementSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.typeFinancementBaseSearch({ TypeFinancementSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Colors, Dialog } from \"@blueprintjs/core\";\nimport { FGMaskInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport * as Yup from \"yup\";\n\nimport { EnveloppeTypeFinancementApi, FcbEnveloppeTypeFinancementDtoFromJSON } from \"../../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\nexport interface IEnveloppeTFDialogProps {\n isOpen: boolean;\n onClose: () => void;\n enveloppeId: number;\n editMode: boolean;\n}\n\nexport const EnveloppeTFDialog: React.FunctionComponent = ({\n isOpen,\n onClose,\n enveloppeId,\n editMode\n}) => {\n const api = useApiService(EnveloppeTypeFinancementApi);\n const { t } = useTl();\n const { id } = useParams<{ id: string }>();\n\n const tfId = React.useMemo(() => +id, [id]);\n const [annee, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [centres, cLoading] = useReferential(a => a.referentialGetCentreGlobal(), true, []);\n\n const getFn = React.useCallback(\n () =>\n +enveloppeId <= 0\n ? FcbEnveloppeTypeFinancementDtoFromJSON({\n idenveloppeTypeFinancement: enveloppeId,\n idfinancementType: tfId,\n heureS1: 0,\n heureS2: 0\n })\n : api.enveloppeTypeFinancementGet({ id: enveloppeId }),\n [api, enveloppeId, tfId]\n );\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: getFn,\n saveApiFn: d => api.enveloppeTypeFinancementSave({ FcbEnveloppeTypeFinancementDto: d }),\n deleteApiFn: d => api.enveloppeTypeFinancementDelete({ id: d.idenveloppeTypeFinancement })\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idanneeScolaire: Yup.string().required(t(ETLCodes.Required)),\n identite: Yup.string()\n .required(t(ETLCodes.Required))\n .notOneOf([\"-1\", \"0\"], t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n onClose()}\n style={{ padding: \"0.5rem\", width: 800, backgroundColor: Colors.WHITE }}\n enforceFocus={false}\n >\n
\n \n \n \n \n \n \n \n \n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router-dom\";\n\nimport {\n EnveloppeTypeFinancementApi,\n EnveloppeTypeFinancementSearch,\n FcbEnveloppeTypeFinancementGridDto\n} from \"../../../../../../api\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { EnveloppeTFDialog } from \"./EnveloppeTFDialog\";\n\nexport interface IEnveloppeTFSearchProps {}\n\nexport const EnveloppeTFSearch: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id } = useParams<{ id: string }>();\n const typeFinancementId = React.useMemo(() => +id, [id]);\n const api = useApiService(EnveloppeTypeFinancementApi);\n\n const [enveloppeIdSelected, setEnveloppeIdSelected] = React.useState(0);\n const [enveloppePopupOpened, setEnveloppePopupOpened] = React.useState(false);\n const [enveloppePopupEdit, setEnveloppePopupEdit] = React.useState(false);\n\n const enveloppeDialogOpen = React.useCallback(() => {\n setEnveloppePopupOpened(true);\n }, []);\n\n const enveloppeDialogClose = React.useCallback(() => {\n setEnveloppeIdSelected(0);\n setEnveloppePopupOpened(false);\n }, []);\n\n const editClick = React.useCallback((row: FcbEnveloppeTypeFinancementGridDto, editMode: boolean) => {\n setEnveloppeIdSelected(row.idenveloppeTypeFinancement);\n setEnveloppePopupEdit(editMode);\n setEnveloppePopupOpened(true);\n }, []);\n\n const onAddItem = React.useCallback(() => {\n setEnveloppeIdSelected(0);\n setEnveloppePopupEdit(true);\n enveloppeDialogOpen();\n }, [enveloppeDialogOpen]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbEnveloppeTypeFinancementGridDto) => (\n \n editClick(row, false)} />\n editClick(row, true)} />\n \n )\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"idanneeScolaire\"\n },\n {\n header: () => t(ETLCodes.EntiteCentre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.HeureS1),\n fieldName: \"heureS1\"\n },\n {\n header: () => t(ETLCodes.HeureS2),\n fieldName: \"heureS2\"\n }\n ],\n [editClick, t]\n );\n\n const apiFactory = useAbortableApiServiceFactory(EnveloppeTypeFinancementApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: EnveloppeTypeFinancementSearch) => {\n sObj.idfinancementType = typeFinancementId;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.enveloppeTypeFinancementBaseSearch({ EnveloppeTypeFinancementSearch: sObj });\n },\n [apiFactory, typeFinancementId]\n );\n\n const getCriteriasFn = React.useCallback(\n () => api.enveloppeTypeFinancementGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const EnvDialog = React.useCallback(\n () => (\n \n ),\n [enveloppeDialogClose, enveloppePopupEdit, enveloppePopupOpened, enveloppeIdSelected]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n annee.displayValue,\n Identite: centre => centre.displayValue\n }}\n />\n \n \n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbTypeFinancementDtoFromJSON, TypeFinancementApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ITypeFinancementDetailPageProps {}\n\nexport const TypeFinancementDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(TypeFinancementApi);\n const { id, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const idTypeFinancement = React.useMemo(() => +id, [id]);\n const editMode = React.useMemo(() => state === \"edit\", [state]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string().required(t(ETLCodes.Required)),\n code: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idTypeFinancement <= 0\n ? FcbTypeFinancementDtoFromJSON({ idTypeFinancement: 0 })\n : api.typeFinancementGet({ id: +idTypeFinancement }),\n saveApiFn: d => api.typeFinancementSave({ FcbTypeFinancementDto: d }),\n onSavedRoute: d => `${ERoutes.typeFinancement}/${d.idfinancementType}/detail/${state}`,\n deleteApiFn: d => api.typeFinancementDelete({ id: d.idfinancementType }),\n onDeletedRoute: () => ERoutes.typeFinancement\n });\n\n return (\n data && (\n <>\n history.push(ERoutes.typeFinancement)}\n onDelete={deleteItem}\n showDeleteButton={+idTypeFinancement > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { TypeFinancementApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { EnveloppeTFSearch } from \"./enveloppeTF/EnveloppeTFSearch\";\nimport { TypeFinancementDetailPage } from \"./TypefinancementDetailPage\";\n\ninterface ITypeFinancementItemPageProps {}\n\nexport const TypeFinancementItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const typeFinancementApi = useApiService(TypeFinancementApi);\n\n const [displayName] = useApiEffect(() => typeFinancementApi.typeFinancementGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.typeFinancement}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n } disabled={id === \"0\"} />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport {\n EBooleanSearchTypes,\n FcbProjetFinancementGridDto,\n ProjetFinancementApi,\n ProjetFinancementSearch\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface IProjetFinancementListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const ProjetFinancementListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ProjetFinancementApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbProjetFinancementGridDto) => (\n \n history.push(`${ERoutes.projetFinancement}/${row.idprojetFinancement}/detail/view`)}\n />\n history.push(`${ERoutes.projetFinancement}/${row.idprojetFinancement}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.projetFinancement}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(\n () => api.projetFinancementGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(ProjetFinancementApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: ProjetFinancementSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.projetFinancementBaseSearch({ ProjetFinancementSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Colors, Dialog } from \"@blueprintjs/core\";\nimport { FGMaskInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { EnveloppeProjetFinancementApi, FcbEnveloppeProjetFinancementDtoFromJSON } from \"../../../../../../api\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../../hooks\";\nimport { useReferential } from \"../../../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../../../locales\";\n\ninterface IEnveloppePFDialogProps {\n isOpen: boolean;\n onClose: () => void;\n enveloppeId: number;\n editMode: boolean;\n}\n\nexport const EnveloppePFDialog: React.FunctionComponent = ({\n isOpen,\n onClose,\n enveloppeId,\n editMode\n}) => {\n const api = useApiService(EnveloppeProjetFinancementApi);\n const { t } = useTl();\n const { id } = useParams<{ id: string }>();\n\n const pfId = React.useMemo(() => +id, [id]);\n\n const [annee, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const [centres, cLoading] = useReferential(a => a.referentialGetCentreGlobal(), true, []);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +enveloppeId <= 0\n ? FcbEnveloppeProjetFinancementDtoFromJSON({\n idenveloppeProjetFinancement: enveloppeId,\n idprojetFinancement: pfId,\n heureS1: 0,\n heureS2: 0\n })\n : api.enveloppeProjetFinancementGet({ id: +enveloppeId }),\n saveApiFn: d => api.enveloppeProjetFinancementSave({ FcbEnveloppeProjetFinancementDto: d }),\n deleteApiFn: d => api.enveloppeProjetFinancementDelete({ id: d.idenveloppeProjetFinancement })\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idanneeScolaire: Yup.string().required(t(ETLCodes.Required)),\n identite: Yup.string()\n .required(t(ETLCodes.Required))\n .notOneOf([\"-1\", \"0\"], t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n onClose()}\n style={{ padding: \"0.5rem\", width: 800, backgroundColor: Colors.WHITE }}\n enforceFocus={false}\n >\n
\n \n \n \n \n \n \n \n \n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\n\nimport {\n EnveloppeProjetFinancementApi,\n EnveloppeProjetFinancementSearch,\n FcbEnveloppeProjetFinancementGridDto\n} from \"../../../../../../api\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../../locales\";\nimport { EnveloppePFDialog } from \"./EnveloppePFDialog\";\n\ninterface IEnveloppePFSearchProps {}\n\nexport const EnveloppePFSearch: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id } = useParams<{ id: string }>();\n const projetFinancementId = React.useMemo(() => +id, [id]);\n const api = useApiService(EnveloppeProjetFinancementApi);\n\n const [enveloppeIdSelected, setEnveloppeIdSelected] = React.useState(0);\n const [enveloppePopupOpened, setEnveloppePopupOpened] = React.useState(false);\n const [enveloppePopupEdit, setEnveloppePopupEdit] = React.useState(false);\n\n const enveloppeDialogOpen = React.useCallback(() => {\n setEnveloppePopupOpened(true);\n }, []);\n\n const enveloppeDialogClose = React.useCallback(() => {\n setEnveloppeIdSelected(0);\n setEnveloppePopupOpened(false);\n }, []);\n\n const editClick = React.useCallback((row: FcbEnveloppeProjetFinancementGridDto, editMode: boolean) => {\n setEnveloppeIdSelected(row.idenveloppeProjetFinancement);\n setEnveloppePopupEdit(editMode);\n setEnveloppePopupOpened(true);\n }, []);\n\n const onAddItem = React.useCallback(() => {\n setEnveloppeIdSelected(0);\n setEnveloppePopupEdit(true);\n enveloppeDialogOpen();\n }, [enveloppeDialogOpen]);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbEnveloppeProjetFinancementGridDto) => (\n \n editClick(row, false)} />\n editClick(row, true)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"idanneeScolaire\"\n },\n {\n header: () => t(ETLCodes.EntiteCentre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.HeureS1),\n fieldName: \"heureS1\"\n },\n {\n header: () => t(ETLCodes.HeureS2),\n fieldName: \"heureS2\"\n }\n ],\n [editClick, t]\n );\n\n const apiFactory = useAbortableApiServiceFactory(EnveloppeProjetFinancementApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: EnveloppeProjetFinancementSearch) => {\n sObj.idprojetFinancement = projetFinancementId;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.enveloppeProjetFinancementBaseSearch({ EnveloppeProjetFinancementSearch: sObj });\n },\n [apiFactory, projetFinancementId]\n );\n\n const getCriteriasFn = React.useCallback(\n () => api.enveloppeProjetFinancementGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const EnvDialog = React.useCallback(\n () => (\n \n ),\n [enveloppeDialogClose, enveloppePopupEdit, enveloppePopupOpened, enveloppeIdSelected]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n <>\n annee.displayValue,\n Identite: centre => centre.displayValue\n }}\n />\n \n \n );\n};\n","import { FGTextInput, FieldGroup } from \"nsitools-react\";\r\nimport * as React from \"react\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport { FcbProjetFinancementDtoFromJSON, ProjetFinancementApi } from \"../../../../../api\";\r\nimport { ERoutes } from \"../../../../../AppRouter\";\r\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../../components\";\r\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\r\nimport { useReferential } from \"../../../../../hooks/useReferential\";\r\nimport { ETLCodes } from \"../../../../../locales\";\r\n\r\ninterface IProjetFinancementDetailPageProps {}\r\n\r\nexport const ProjetFinancementDetailPage: React.FunctionComponent = () => {\r\n const { t } = useTl();\r\n const api = useApiService(ProjetFinancementApi);\r\n const history = useHistory();\r\n const { id, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\r\n\r\n const idProjetFinancement = React.useMemo(() => +id, [id]);\r\n const editMode = React.useMemo(() => state === \"edit\", [state]);\r\n\r\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\r\n getApiFn: () =>\r\n +idProjetFinancement <= 0\r\n ? FcbProjetFinancementDtoFromJSON({ idProjetFinancement: 0 })\r\n : api.projetFinancementGet({ id: +idProjetFinancement }),\r\n saveApiFn: d => api.projetFinancementSave({ FcbProjetFinancementDto: d }),\r\n onSavedRoute: d => `${ERoutes.projetFinancement}/${d.idprojetFinancement}/detail/${state}`,\r\n deleteApiFn: d => api.projetFinancementDelete({ id: d.idprojetFinancement }),\r\n onDeletedRoute: () => ERoutes.projetFinancement\r\n });\r\n\r\n const [idFinancementType, setIdFinacementType] = React.useState(0);\r\n\r\n React.useEffect(() => {\r\n if (data) {\r\n setIdFinacementType(data.idfinancementType);\r\n }\r\n }, [data]);\r\n\r\n const [typeFinancement, fLoading] = useReferential(\r\n a => a.referentialGetTypeFinancement({ currentId: idFinancementType }),\r\n true,\r\n [idFinancementType]\r\n );\r\n\r\n const FormSchema = React.useMemo(() => {\r\n return Yup.object().shape({\r\n libelle: Yup.string().required(t(ETLCodes.Required)),\r\n code: Yup.string().required(t(ETLCodes.Required)),\r\n idfinancementType: Yup.number().required(t(ETLCodes.Required))\r\n });\r\n }, [t]);\r\n\r\n return (\r\n data && (\r\n <>\r\n history.push(ERoutes.projetFinancement)}\r\n onDelete={deleteItem}\r\n showDeleteButton={+idProjetFinancement > 0}\r\n saving={saving}\r\n deleting={deleting}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n );\r\n};\r\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nimport { ProjetFinancementApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { EnveloppePFSearch } from \"./enveloppePF/EnveloppePFSearch\";\nimport { ProjetFinancementDetailPage } from \"./ProjetFinancementDetailPage\";\n\ninterface IProjetFinancementItemPageProps {}\n\nexport const ProjetFinancementItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const projetFinancementApi = useApiService(ProjetFinancementApi);\n\n const [displayName] = useApiEffect(() => projetFinancementApi.projetFinancementGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.projetFinancement}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n } disabled={id === \"0\"} />\n \n \n );\n};\n","import { ButtonContainer, FGTextInput, showError, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport * as Yup from \"yup\";\n\nimport { ExportExcelParameterDto, ExportUtilitaireApi, FieldInfo } from \"../../../../api\";\nimport { DownloadButton, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { exportFile } from \"../../../../utils/b64download\";\n\nexport interface IExportFormProps {\n selected: number;\n}\n\nconst arrayToObject = (array: FieldInfo[], keyField: string, valueField: string) =>\n array.reduce((obj, item) => {\n obj[item[keyField]] = item[valueField];\n return obj;\n }, {});\n\nexport const ExportForm: React.FunctionComponent = ({ selected }) => {\n const { t } = useTl();\n const exportApi = useApiService(ExportUtilitaireApi);\n const [loading, setLoading] = React.useState(false);\n\n const [data, dataLoading] = useApiEffect(() => {\n return exportApi.exportUtilitaireGetExportWithParams({ idExport: selected });\n }, [selected]);\n\n const ExecuteQuery = React.useCallback(\n (c: FieldInfo) => {\n setLoading(true);\n const parameters: ExportExcelParameterDto[] = Object.entries(c).map(([key, value]) => {\n return { key, value };\n });\n exportApi\n .exportUtilitaireExportExcel({\n ExportExcelInfoDto: { parameters: parameters, idExport: selected }\n })\n .then(downloadResult => {\n setLoading(false);\n return exportFile(downloadResult);\n })\n .catch(error => {\n showError(t(ETLCodes.ErrorWhileExporting));\n setLoading(false);\n });\n },\n [exportApi, selected, t]\n );\n\n const FormSchema = React.useMemo(() => {\n const shape: { [key: string]: any } = {};\n if (data?.parameters) {\n data.parameters.forEach(p => {\n shape[p.name] = p.required ? Yup.string().required(t(ETLCodes.Required)) : Yup.string();\n });\n }\n return Yup.object().shape(shape);\n }, [data, t]);\n\n const newData = React.useMemo(() => {\n if (data) {\n return arrayToObject(data.parameters, \"name\", \"value\");\n } else return {};\n }, [data]);\n\n return (\n <>\n \n {data?.parameters.map(\n c =>\n c.name !== \"idUser\" && (\n \n )\n )}\n \n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ExportApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { ExportForm } from \"./ExportForm\";\n\nexport interface IExportUtilitaireItemPageProps {}\n\nexport const ExportUtilitaireItemPage: React.FunctionComponent = () => {\n const { id } = useParams<{ id: string }>();\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ExportApi);\n const [displayName] = useApiEffect(() => api.exportGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.export}/${id}`)}\n selectedTabId=\"detail\"\n renderActiveTabPanelOnly\n >\n } />\n \n \n );\n};\n","import { ButtonContainer, FGMaskInput, FGTextInput, showError, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport * as Yup from \"yup\";\n\nimport { ReportApi } from \"../../../../api\";\nimport { DownloadButton, FGWalterDateMaskInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useManageError, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { exportFile } from \"../../../../utils/b64download\";\n\nexport interface IRapportFormProps {\n selected: string;\n}\n\nexport const RapportForm: React.FunctionComponent = ({ selected }) => {\n const api = useApiService(ReportApi);\n const { t } = useTl();\n const { manageError } = useManageError();\n const [loading, setLoading] = React.useState(false);\n\n const [data, dataLoading] = useApiEffect(() => {\n return api.reportGetReportParameters({ reportName: selected });\n }, [selected]);\n\n const ExecuteQuery = React.useCallback(\n async c => {\n setLoading(true);\n const parameters: { [name: string]: string } = {};\n Object.entries(c).forEach((value, key) => {\n if (value[0] !== \"parameters\") {\n parameters[value[0]] = value[1] as string;\n }\n });\n c.parameters.forEach((p, i) => {\n if (parameters[p.name] || parameters[p.name] === \"0\") {\n c.parameters[i] = { ...c.parameters[i], value: parameters[p.name] };\n } else {\n c.parameters[i] = { ...c.parameters[i], value: null };\n }\n });\n api\n .reportGetViewableReport({\n reportName: selected,\n ReportParametersDto: { parameters: c.parameters }\n })\n .then(file => {\n setLoading(false);\n return exportFile(file);\n })\n .catch(error => {\n manageError(error);\n setLoading(false);\n });\n },\n [api, manageError, selected]\n );\n\n const FormSchema = React.useMemo(() => {\n const shape: { [key: string]: any } = {};\n if (data && data.parameters) {\n for (let i = 0; i < data.parameters.length; i++) {\n let type = null;\n switch (data.parameters[i].dataType) {\n case \"NumberParameter\":\n type = Yup.number();\n break;\n case \"StringParameter\":\n type = Yup.string();\n break;\n case \"DateParameter\":\n type = Yup.date();\n break;\n }\n shape[data.parameters[i].name] = data.parameters[i].required ? type.required(t(ETLCodes.Required)) : type;\n }\n }\n return Yup.object().shape(shape);\n }, [data, t]);\n\n return (\n \n {data?.parameters.map((value, index) => {\n if (value.dataType === \"NumberParameter\") {\n return (\n \n );\n }\n if (value.dataType === \"StringParameter\") {\n return (\n \n );\n }\n if (value.dataType === \"DateParameter\") {\n return (\n \n );\n }\n return <>;\n })}\n \n \n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ReportApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { PageBase } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { RapportForm } from \"./RapportForm\";\n\nexport interface IRapportItemPageProps {}\n\nexport const RapportItemPage: React.FunctionComponent = () => {\n const { name } = useParams<{ name: string }>();\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ReportApi);\n const [displayName] = useApiEffect(() => api.reportGetDisplayName({ name: name }), [name]);\n\n return (\n \n history.push(`${ERoutes.report}/${name}`)}\n selectedTabId=\"detail\"\n renderActiveTabPanelOnly\n >\n } />\n \n \n );\n};\n","import * as React from \"react\";\nimport { PageBase } from \"../../components\";\nimport { Card, Button, Icon, Colors } from \"@blueprintjs/core\";\nimport styled from \"styled-components\";\nimport { ETLCodes } from \"../../locales\";\nimport { useTheme, useTl } from \"../../hooks\";\nimport { useAuth } from \"../../contexts\";\nimport { IconNames } from \"@blueprintjs/icons\";\n\nexport interface IUnauthorizedPageProps {}\n\nconst MainContainer = styled.div`\n flex: 1;\n justify-content: center;\n align-items: center;\n display: flex;\n`;\n\nconst StyledCard = styled(Card)`\n width: 400px;\n height: 350px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-direction: column;\n`;\n\nconst StyledH2 = styled.h2`\n text-align: center;\n`;\n\nexport const UnauthorizedPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { user, logout, userPermissions } = useAuth();\n const { devMode, ifapmeSide } = useTheme();\n const hasAnyPermission = React.useMemo(() => userPermissions?.length > 0, [userPermissions]);\n const userAllowed = React.useMemo(\n () =>\n user &&\n (devMode ||\n (user.ifapmeSide?.includes(\"Hope\") && ifapmeSide === \"hope\") ||\n (user.ifapmeSide?.includes(\"Walter\") && ifapmeSide === \"walter\")),\n [devMode, ifapmeSide, user]\n );\n\n const appName = React.useMemo(() => `${ifapmeSide[0].toUpperCase()}${ifapmeSide.slice(1)}`, [ifapmeSide]);\n\n return (\n \n \n \n \n \n {userAllowed\n ? hasAnyPermission\n ? t(ETLCodes.NotAuthorizedForModule)\n : t(ETLCodes.NotAuthorized)\n : t(ETLCodes.NotAllowed)}\n \n\n

\n {!userAllowed && t(ETLCodes.UserNotMatchingApp, { appName })}\n {t(ETLCodes.ReferToAdminOrRelogin)}\n

\n \n
\n
\n
\n );\n};\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { DoublonsApi, DoublonsGridDto, DoublonsSearchDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, SearchTablePage } from \"../../../../components\";\nimport { useAuth } from \"../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IDoublonsListPageProps {}\n\nexport const DoublonsListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(DoublonsApi);\n const { hasPermission } = useAuth();\n\n const apiFactory = useAbortableApiServiceFactory(DoublonsApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: DoublonsSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.doublonsBaseSearch({ DoublonsSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: DoublonsGridDto) => (\n \n window.open(`#${ERoutes.doublon}/fusion/${row.idpersonne1}-${row.idpersonne2}`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Personne1),\n fieldName: \"idpersonne1\",\n disableSorting: true,\n render: (row: DoublonsGridDto) => `${row.nom1} ${row.prenom1}`\n },\n {\n header: () => t(ETLCodes.Personne2),\n fieldName: \"idpersonne2\",\n disableSorting: true,\n render: (row: DoublonsGridDto) => `${row.nom2} ${row.prenom2}`\n },\n {\n header: () => t(ETLCodes.DateNaissance1),\n fieldName: \"dateNaissance1\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.DateNaissance2),\n fieldName: \"dateNaissance2\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.RegistreNational1),\n fieldName: \"registreNational1\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.RegistreNational2),\n fieldName: \"registreNational2\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.Apprenant),\n fieldName: \"doublonApprenant\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.Representant),\n fieldName: \"doublonRepresentant\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"doublonFormateur\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.ChefEntreprise),\n fieldName: \"doublonChefEntreprise\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.Tuteur),\n fieldName: \"doublonTuteur\",\n disableSorting: true\n },\n {\n header: () => t(ETLCodes.Contact),\n fieldName: \"doublonContact\",\n disableSorting: true\n }\n ],\n [t]\n );\n\n const getCriteria = React.useCallback(async () => {\n let criterias = await api.doublonsGetSearchCriterias({ includeListsValues: true });\n return criterias;\n }, [api]);\n\n const onNew = React.useCallback(() => {\n window.open(`#${ERoutes.doublon}/new`);\n }, []);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useParams } from \"react-router\";\n\nimport { DoublonsStateProvider, DoublonsTabs } from \".\";\nimport { DoublonEditDto, PersonneApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { PageBase } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { nameof } from \"../../../../utils\";\n\nexport const AP_FINAL_KEY = nameof(\"apprenantFinal\");\nexport const CE_FINAL_KEY = nameof(\"chefEntrepriseFinal\");\nexport const CO_FINAL_KEY = nameof(\"contactFinal\");\nexport const FO_FINAL_KEY = nameof(\"formateurFinal\");\nexport const RE_FINAL_KEY = nameof(\"representantFinal\");\nexport const TU_FINAL_KEY = nameof(\"tuteurFinal\");\nexport const PE_FINAL_KEY = nameof(\"personneFinal\");\n\nexport interface IDoublonsItemPageProps {}\n\nexport const DoublonsItemPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id } = useParams<{ id: string }>();\n const idpersonne1 = React.useMemo(() => +id.split(\"-\")[0], [id]);\n const idpersonne2 = React.useMemo(() => +id.split(\"-\")[1], [id]);\n\n const api = useApiService(PersonneApi);\n const fetchDisplayName1 = React.useCallback(() => {\n return api.personneGetDisplayName({ id: idpersonne1 });\n }, [api, idpersonne1]);\n const { data: displayName1 } = useQuery([\"doublons-display-name-1\", idpersonne1], fetchDisplayName1);\n\n const fetchDisplayName2 = React.useCallback(() => {\n return api.personneGetDisplayName({ id: idpersonne2 });\n }, [api, idpersonne2]);\n const { data: displayName2 } = useQuery([\"doublons-display-name-2\", idpersonne2], fetchDisplayName2);\n\n return (\n \n \n \n \n \n );\n};\n","import { ButtonGroup, Classes, Divider, Tab, Tabs } from \"@blueprintjs/core\";\nimport { InlineButtonContainer, Loading, showError, showSuccess } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport {\n DoublonApprenantPage,\n DoublonChefEntreprisePage,\n DoublonContactPage,\n DoublonFormateurPage,\n DoublonPersonnePage,\n DoublonRepresentantPage,\n DoublonTuteurPage\n} from \".\";\nimport { useDoublonsStateContext } from \"../../..\";\nimport { DoublonsApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, FusionButton, HomonymeButton, NextButton, PreviousButton } from \"../../../../components\";\nimport { useDialog } from \"../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\ninterface IStructuredTabs {\n key: string;\n disabled: boolean;\n label: string;\n panel: JSX.Element;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n\n & .${Classes.TABS}.${Classes.VERTICAL} {\n & .${Classes.TAB_PANEL} {\n width: 100%;\n }\n\n & > .${Classes.TAB_LIST}>*:not(:last-child) {\n margin-right: 0 !important;\n }\n }\n`;\n\nconst FirstPanel = styled.div`\n flex: 1;\n`;\n\nexport interface IDoublonsTabsProps {}\n\nexport const DoublonsTabs: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, loading, buildFinals } = useDoublonsStateContext();\n\n const tabsList = React.useMemo(\n () =>\n data && [\n {\n key: \"apprenants\",\n label: t(ETLCodes.Apprenant),\n disabled: data?.apprenants?.length === 0,\n panel: \n },\n {\n key: \"chefsEntreprise\",\n label: t(ETLCodes.ChefsEntreprise),\n disabled: data?.chefEntreprises?.length === 0,\n panel: \n },\n {\n key: \"contacts\",\n label: t(ETLCodes.Contacts),\n disabled: data?.contacts?.length === 0,\n panel: \n },\n {\n key: \"formateurs\",\n label: t(ETLCodes.Formateurs),\n disabled: data?.formateurs?.length === 0,\n panel: \n },\n {\n key: \"representants\",\n label: t(ETLCodes.Representants),\n disabled: data?.representants?.length === 0,\n panel: \n },\n {\n key: \"tuteurs\",\n label: t(ETLCodes.Tuteurs),\n disabled: data?.tuteurs?.length === 0,\n panel: \n },\n {\n key: \"personnes\",\n label: t(ETLCodes.Personnes),\n disabled: false,\n panel: \n }\n ],\n [data, t]\n );\n\n const displayedTabs = React.useMemo(() => tabsList?.filter(t => !t.disabled) ?? [], [tabsList]);\n const firstTab = React.useMemo(() => displayedTabs[0], [displayedTabs]);\n const lastTab = React.useMemo(() => displayedTabs[displayedTabs.length - 1], [displayedTabs]);\n\n const [tab, setTab] = React.useState();\n React.useEffect(() => {\n if (!tab && !!firstTab) {\n setTab(firstTab.key);\n }\n }, [firstTab, tab]);\n\n const nextTab = React.useCallback(() => {\n const currentIndex = displayedTabs.findIndex(t => t.key === tab);\n setTab(displayedTabs[currentIndex + 1].key);\n }, [tab, displayedTabs]);\n\n const previousTab = React.useCallback(() => {\n const currentIndex = displayedTabs.findIndex(t => t.key === tab);\n setTab(displayedTabs[currentIndex - 1].key);\n }, [tab, displayedTabs]);\n\n const api = useApiService(DoublonsApi);\n const history = useHistory();\n const { showDialogPromise } = useDialog();\n const [saving, setSaving] = React.useState(false);\n const homonyme = React.useCallback(async () => {\n const res = await showDialogPromise({\n title: t(ETLCodes.HomonymeConfirmTitle),\n message: t(ETLCodes.HomonymeConfirmMessage)\n });\n if (res === \"yes\") {\n try {\n setSaving(true);\n await api.doublonsHomonyme({ DoublonEditDto: data });\n showSuccess(t(ETLCodes.HomonymeSucess));\n history.push(ERoutes.doublon);\n } catch (e) {\n showError(t(ETLCodes.HomonymeError));\n console.error(e);\n } finally {\n setSaving(false);\n }\n }\n }, [api, data, history, showDialogPromise, t]);\n\n const merge = React.useCallback(async () => {\n const res = await showDialogPromise({\n title: t(ETLCodes.MergeConfirmTitle),\n message: t(ETLCodes.MergeConfirmMessage)\n });\n if (res === \"yes\") {\n try {\n setSaving(true);\n const finalData = buildFinals();\n await api.doublonsFusion({ DoublonEditDto: finalData });\n showSuccess(t(ETLCodes.FusionSuccess));\n history.push(ERoutes.doublon);\n } catch (e) {\n showError(t(ETLCodes.FusionError));\n console.error(e);\n } finally {\n setSaving(false);\n }\n }\n }, [api, buildFinals, history, showDialogPromise, t]);\n\n return (\n \n \n \n setTab(newTabId + \"\")}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n {displayedTabs.map(t => (\n \n ))}\n \n \n \n \n \n {tab !== firstTab?.key ? (\n \n ) : (\n
\n )}\n \n {!!data?.personnes?.[1] &&\n data?.personnes?.[0]?.registreNational !== data?.personnes?.[1]?.registreNational && (\n \n )}\n {tab !== lastTab?.key ? (\n \n ) : (\n \n )}\n \n \n \n );\n};\n","import * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { DoublonEditDto, DoublonsApi } from \"../../../../api\";\nimport { useApiService, useManageError } from \"../../../../hooks\";\nimport set from \"lodash/set\";\nimport get from \"lodash/get\";\nimport isEqual from \"lodash/isEqual\";\nimport omit from \"lodash/omit\";\nimport { format, isDate } from \"date-fns\";\nimport mapValues from \"lodash/mapValues\";\nimport { AP_FINAL_KEY, CE_FINAL_KEY, CO_FINAL_KEY, FO_FINAL_KEY, RE_FINAL_KEY, TU_FINAL_KEY } from \".\";\n\ninterface IDoublonsStateContext {\n data: DoublonEditDto;\n setData: (values: DoublonEditDto) => void;\n getFieldData: (path: string) => any;\n setFieldData: (path: string, value: any) => void;\n isDataSelected: (path: string, currentId: number) => boolean;\n getSelectedValue: (path: string, finalKey: string, valuePath?: string) => any;\n getSelectedIndex: (finalPath: string) => number;\n selectData: (path: string, currentIndex: number) => void;\n selectDataMultiple: (finalPath: string, item: any, subFieldKey: string, subFieldDefaultValue?: any) => void;\n isDataMultipleSelected: (finalPath: string, item: any, subFieldKey?: string) => boolean;\n loading: boolean;\n buildFinals: () => DoublonEditDto;\n}\nconst DoublonsStateContext = React.createContext(null);\n\ninterface IDoublonsStateProviderProps {\n idpersonne1: number;\n idpersonne2: number;\n}\n\nconst mapValuesIterateeSelectionSchema = (d, val) => {\n if (d === null || d === undefined) return val;\n\n if (typeof d === \"object\" && !isDate(d)) return mapValues(d, di => mapValuesIterateeSelectionSchema(di, val));\n\n if (Array.isArray(d)) return [];\n\n return val;\n};\n\nexport const DoublonsStateProvider: React.FunctionComponent = ({\n children,\n idpersonne1,\n idpersonne2\n}) => {\n const api = useApiService(DoublonsApi);\n const { manageError } = useManageError();\n const fetchDoublon = React.useCallback(() => {\n return api.doublonsGetDoublon({ idpersonne1, idpersonne2 });\n }, [api, idpersonne1, idpersonne2]);\n const { data, isFetching, isFetched, error } = useQuery([\"doublon-personne\", idpersonne1, idpersonne2], fetchDoublon);\n\n React.useEffect(() => {\n if (error) {\n manageError(error);\n }\n }, [error, manageError]);\n\n const [formData, setFormData] = React.useState(null);\n React.useEffect(() => {\n if (!!data && isFetched) {\n setFormData(data);\n }\n }, [data, isFetched]);\n\n const setFieldData = React.useCallback(\n (path: string, value: any) => {\n let newData = { ...formData };\n set(newData, path, value);\n setFormData(newData);\n },\n [formData]\n );\n\n const getFieldData = React.useCallback(\n (path: string) => {\n var value = get(formData, path);\n return isDate(value) ? format(value, \"dd-MM-yyyy\") : value;\n },\n [formData]\n );\n\n const [selectionSchema, setSelectionSchema] = React.useState(null);\n React.useEffect(() => {\n if (!!formData && isFetched && !selectionSchema) {\n const initialSchema = {\n apprenantFinal:\n formData.apprenantFinal && mapValues(formData.apprenantFinal, d => mapValuesIterateeSelectionSchema(d, 0)),\n chefEntrepriseFinal:\n formData.chefEntrepriseFinal &&\n mapValues(formData.chefEntrepriseFinal, d => mapValuesIterateeSelectionSchema(d, 0)),\n contactFinal:\n formData.contactFinal && mapValues(formData.contactFinal, d => mapValuesIterateeSelectionSchema(d, 0)),\n formateurFinal:\n formData.formateurFinal && mapValues(formData.formateurFinal, d => mapValuesIterateeSelectionSchema(d, 0)),\n representantFinal:\n formData.representantFinal &&\n mapValues(formData.representantFinal, d => mapValuesIterateeSelectionSchema(d, 0)),\n tuteurFinal:\n formData.tuteurFinal && mapValues(formData.tuteurFinal, d => mapValuesIterateeSelectionSchema(d, 0)),\n personneFinal:\n formData.personneFinal && mapValues(formData.personneFinal, d => mapValuesIterateeSelectionSchema(d, 0))\n };\n setSelectionSchema(initialSchema);\n }\n }, [formData, isFetched, selectionSchema]);\n\n const getSelectedIndex = React.useCallback(\n (finalPath: string) => {\n let selectedId = get(selectionSchema, finalPath);\n if (selectedId === undefined) {\n const parentPath = finalPath.split(\".\");\n parentPath.splice(parentPath.length - 1, 1);\n selectedId = get(selectionSchema, parentPath.join(\".\"));\n }\n return selectedId;\n },\n [selectionSchema]\n );\n\n const isDataSelected = React.useCallback(\n (path: string, index: number) => {\n const selectedId = getSelectedIndex(path);\n return selectedId === index;\n },\n [getSelectedIndex]\n );\n\n const selectData = React.useCallback(\n (path: string, index: number) => {\n const selectedId = get(selectionSchema, path);\n if (selectedId !== index) {\n const newSchema = { ...selectionSchema };\n set(newSchema, path, index);\n setSelectionSchema(newSchema);\n }\n },\n [selectionSchema]\n );\n\n const mapValuesIterateeFinals = React.useCallback((d: any, entities: any[], selected: any, path: string) => {\n if (Array.isArray(d)) return d;\n\n if (typeof d === \"object\" && !isDate(d))\n return mapValues(d, (di, key) => mapValuesIterateeFinals(di, entities, selected[key], `${path}.${key}`));\n\n const selectedIndex = typeof selected === \"object\" ? +selected[Object.keys(selected)[0]] : +selected;\n const entity = entities[selectedIndex];\n return get(entity, path);\n }, []);\n const getSelectedValue = React.useCallback(\n (path: string, finalKey: string, valuePath?: string) => {\n if (!formData) return null;\n const selectedId = get(selectionSchema, path);\n let entities;\n switch (finalKey) {\n case AP_FINAL_KEY:\n entities = formData.apprenants;\n break;\n case CE_FINAL_KEY:\n entities = formData.chefEntreprises;\n break;\n case CO_FINAL_KEY:\n entities = formData.contacts;\n break;\n case FO_FINAL_KEY:\n entities = formData.formateurs;\n break;\n case RE_FINAL_KEY:\n entities = formData.representants;\n break;\n case TU_FINAL_KEY:\n entities = formData.tuteurs;\n break;\n default:\n entities = formData.personnes;\n break;\n }\n const entity = entities[selectedId];\n const value = get(entity, (valuePath ?? path).split(`${finalKey}.`)[1]);\n return isDate(value) ? format(value, \"dd-MM-yyyy\") : value;\n },\n [formData, selectionSchema]\n );\n\n const buildFinals = React.useCallback(() => {\n let newData = {\n ...formData,\n apprenantFinal:\n formData.apprenantFinal &&\n mapValues(formData.apprenantFinal, (d, key) =>\n mapValuesIterateeFinals(d, formData.apprenants, selectionSchema?.apprenantFinal[key], key)\n ),\n chefEntrepriseFinal:\n formData.chefEntrepriseFinal &&\n mapValues(formData.chefEntrepriseFinal, (d, key) =>\n mapValuesIterateeFinals(d, formData.chefEntreprises, selectionSchema?.chefEntrepriseFinal[key], key)\n ),\n contactFinal:\n formData.contactFinal &&\n mapValues(formData.contactFinal, (d, key) =>\n mapValuesIterateeFinals(d, formData.contacts, selectionSchema?.contactFinal[key], key)\n ),\n formateurFinal:\n formData.formateurFinal &&\n mapValues(formData.formateurFinal, (d, key) =>\n mapValuesIterateeFinals(d, formData.formateurs, selectionSchema?.formateurFinal[key], key)\n ),\n representantFinal:\n formData.representantFinal &&\n mapValues(formData.representantFinal, (d, key) =>\n mapValuesIterateeFinals(d, formData.representants, selectionSchema?.representantFinal[key], key)\n ),\n tuteurFinal:\n formData.tuteurFinal &&\n mapValues(formData.tuteurFinal, (d, key) =>\n mapValuesIterateeFinals(d, formData.tuteurs, selectionSchema?.tuteurFinal[key], key)\n ),\n personneFinal:\n formData.personneFinal &&\n mapValues(formData.personneFinal, (d, key) =>\n mapValuesIterateeFinals(d, formData.personnes, selectionSchema?.personneFinal[key], key)\n )\n };\n\n const selectedTels = [\n getSelectedValue(`${AP_FINAL_KEY}.telephoneApprenant.idtelephone`, AP_FINAL_KEY),\n getSelectedValue(`${AP_FINAL_KEY}.gsmApprenant.idtelephone`, AP_FINAL_KEY),\n getSelectedValue(`${RE_FINAL_KEY}.telephoneRepresentant.idtelephone`, RE_FINAL_KEY),\n getSelectedValue(`${RE_FINAL_KEY}.gsmRepresentant.idtelephone`, RE_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.telephoneFormateur.idtelephone`, FO_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.donneesProfessionnelles.telephoneProfFormateur.idtelephone`, FO_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.gsmFormateur.idtelephone`, FO_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.donneesProfessionnelles.gsmProfFormateur.idtelephone`, FO_FINAL_KEY)\n ];\n\n selectedTels.forEach(id => {\n if (!id || newData.personneFinal.telephones.some(t => t.idtelephone === id)) return;\n\n let tel =\n newData.apprenants.find(a => a.telephoneApprenant?.idtelephone === id)?.telephoneApprenant ??\n newData.apprenants.find(a => a.gsmApprenant?.idtelephone === id)?.gsmApprenant ??\n newData.representants.find(a => a.telephoneRepresentant?.idtelephone === id)?.telephoneRepresentant ??\n newData.representants.find(a => a.gsmRepresentant?.idtelephone === id)?.gsmRepresentant ??\n newData.formateurs.find(a => a.telephoneFormateur?.idtelephone === id)?.telephoneFormateur ??\n newData.formateurs.find(a => a.donneesProfessionnelles.telephoneProfFormateur?.idtelephone === id)\n ?.donneesProfessionnelles?.telephoneProfFormateur ??\n newData.formateurs.find(a => a.gsmFormateur?.idtelephone === id)?.gsmFormateur ??\n newData.formateurs.find(a => a.donneesProfessionnelles.gsmProfFormateur?.idtelephone === id)\n ?.donneesProfessionnelles?.gsmProfFormateur;\n newData.personneFinal.telephones.push(tel);\n });\n\n const telsToAdd = [\n ...(data?.chefEntreprises?.flatMap(c => c.siegesSociaux?.map(s => s.telephone)) ?? []),\n ...(data?.chefEntreprises?.flatMap(c => c.siegesSociaux?.map(s => s.gsm)) ?? []),\n ...(data?.contacts?.flatMap(c => c.siegesSociaux?.map(s => s.telephone)) ?? []),\n ...(data?.contacts?.flatMap(c => c.siegesSociaux?.map(s => s.gsm)) ?? []),\n ...(data?.contacts?.flatMap(c => c.lieuxFormation?.map(s => s.telephone)) ?? []),\n ...(data?.contacts?.flatMap(c => c.lieuxFormation?.map(s => s.gsm)) ?? [])\n ];\n newData.personneFinal.telephones.push(...telsToAdd);\n\n const selectedEmails = [\n getSelectedValue(`${AP_FINAL_KEY}.emailApprenant.idemail`, AP_FINAL_KEY),\n getSelectedValue(`${RE_FINAL_KEY}.emailRepresentant.idemail`, RE_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.emailFormateur.idemail`, FO_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.donneesProfessionnelles.emailProfFormateur.idemail`, FO_FINAL_KEY)\n ];\n\n selectedEmails.forEach(id => {\n if (!id || newData.personneFinal.emails.some(t => t.idemail === id)) return;\n\n const email =\n newData.apprenants.find(a => a.emailApprenant?.idemail === id)?.emailApprenant ??\n newData.representants.find(a => a.emailRepresentant?.idemail === id)?.emailRepresentant ??\n newData.formateurs.find(a => a.emailFormateur?.idemail === id)?.emailFormateur ??\n newData.formateurs.find(a => a.donneesProfessionnelles?.emailProfFormateur?.idemail === id)\n ?.donneesProfessionnelles?.emailProfFormateur;\n newData.personneFinal.emails.push(email);\n });\n\n const emailsToAdd = [\n ...(data?.chefEntreprises?.flatMap(c => c.siegesSociaux?.map(s => s.email)) ?? []),\n ...(data?.contacts?.flatMap(c => c.siegesSociaux?.map(s => s.email)) ?? []),\n ...(data?.contacts?.flatMap(c => c.lieuxFormation?.map(s => s.email)) ?? [])\n ];\n newData.personneFinal.emails.push(...emailsToAdd);\n\n return newData;\n }, [\n data?.chefEntreprises,\n data?.contacts,\n formData,\n getSelectedValue,\n mapValuesIterateeFinals,\n selectionSchema?.apprenantFinal,\n selectionSchema?.chefEntrepriseFinal,\n selectionSchema?.contactFinal,\n selectionSchema?.formateurFinal,\n selectionSchema?.personneFinal,\n selectionSchema?.representantFinal,\n selectionSchema?.tuteurFinal\n ]);\n\n const isDataMultipleSelected = React.useCallback(\n (finalPath: string, item: any) => {\n const finalItems: any[] = get(formData, finalPath) ?? [];\n return finalItems.some(i => isEqual(i, item));\n },\n [formData]\n );\n\n const selectDataMultiple = React.useCallback(\n (finalPath: string, item: any, subFieldKey?: string, subFieldDefaultValue?: any) => {\n const finalItems: any[] = get(formData, finalPath) ?? [];\n let newItems = [...finalItems];\n if (subFieldDefaultValue !== undefined) {\n newItems = newItems.map(i => ({ ...i, [subFieldKey]: subFieldDefaultValue }));\n }\n if (finalItems.every(i => !isEqual(omit(i, [subFieldKey]), omit(item, [subFieldKey])))) {\n newItems.push(item);\n setFieldData(finalPath, newItems);\n } else {\n const foundIndex = finalItems.findIndex(i => isEqual(omit(i, [subFieldKey]), omit(item, [subFieldKey])));\n if (!!subFieldKey) {\n newItems[foundIndex][subFieldKey] = item[subFieldKey];\n } else {\n newItems.splice(foundIndex, 1);\n }\n setFieldData(finalPath, newItems);\n }\n },\n [formData, setFieldData]\n );\n\n return (\n \n {children}\n \n );\n};\n\nexport const useDoublonsStateContext = () => React.useContext(DoublonsStateContext);\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport {\n DoublonApprenantDocuments,\n DoublonApprenantParcoursFormation,\n DoublonApprenantPassportDrive,\n DoublonApprenantRepresentants,\n DoublonApprenantSignaletique,\n DoublonApprenantStatutApprenant\n} from \".\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDoublonApprenantPageProps {}\n\nexport const DoublonApprenantPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const [tab, setTab] = React.useState(\"signaletique\");\n\n return (\n setTab(newTabId + \"\")}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n vertical\n >\n } />\n } />\n } />\n } />\n } />\n } />\n \n );\n};\n","import { Button, Callout } from \"@blueprintjs/core\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport {\n AP_FINAL_KEY,\n CarouselComparer,\n DoublonsDataCard,\n DoublonsMultipleDataCard,\n useDoublonsStateContext\n} from \"..\";\nimport { ApprenantDoublonEditDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { nameof } from \"../../../../../utils\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport interface IDoublonApprenantSignaletiqueProps {}\n\nexport const DoublonApprenantSignaletique: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, selectData, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${AP_FINAL_KEY}.idapprenant`) ?? 0, [getSelectedIndex]);\n\n const nbPri = React.useMemo(() => data?.apprenants?.filter(a => !!a.idpri)?.length, [data?.apprenants]);\n const nbPriContratsEnCours = React.useMemo(() => data?.apprenants?.filter(a => !!a.idpricontratEnCours)?.length, [\n data?.apprenants\n ]);\n const priFromApprenant = React.useMemo(() => nbPri === 0 || nbPri === 1 || nbPriContratsEnCours === 0, [\n nbPri,\n nbPriContratsEnCours\n ]);\n\n const nbAri = React.useMemo(() => data?.apprenants?.filter(a => !!a.idari)?.length, [data?.apprenants]);\n const nbAriContratsEnCours = React.useMemo(() => data?.apprenants?.filter(a => !!a.idaricontratEnCours)?.length, [\n data?.apprenants\n ]);\n const ariFromApprenant = React.useMemo(() => nbAri === 0 || nbAri === 1 || nbAriContratsEnCours === 0, [\n nbAri,\n nbAriContratsEnCours\n ]);\n\n const apprenantContainer = React.useCallback(\n (index: number, nb: number) => {\n const apprenant: ApprenantDoublonEditDto = data?.apprenants[index];\n if (!apprenant) return;\n\n return (\n \n {index !== selectedIndex ? (\n selectData(`${AP_FINAL_KEY}.idapprenant`, index)}\n />\n ) : (\n
\n )}\n \n window.open(`#${ERoutes.apprenant}/${apprenant.idapprenant}/signaletique/view`, \"_blank\")\n }\n />\n
\n \n }\n titlePosition=\"center\"\n >\n \n
{t(ETLCodes.NbInscriptions, { nb: apprenant.nbInscriptions })}
\n
{t(ETLCodes.NbContrats, { nb: apprenant.nbContrats })}
\n
{t(ETLCodes.NbSuivis, { nb: apprenant.nbSuivis })}
\n
{t(ETLCodes.NbAbsences, { nb: apprenant.nbAbsences })}
\n
{t(ETLCodes.NbDocuments, { nb: apprenant.nbDocuments })}
\n \n }\n label={t(ETLCodes.Informations)}\n interactive={false}\n />\n (\"idapprenant\")}\n interactive={false}\n forceSelected={index === selectedIndex}\n />\n (\"idapprenant\")}\n interactive={nbPri > 1 && (nbPriContratsEnCours === 0 || nbPriContratsEnCours > 1)}\n forceSelected={\n (nbPri <= 1 || nbPriContratsEnCours === 1) &&\n (priFromApprenant ? !!apprenant.idpri : !!apprenant.idpricontratEnCours)\n }\n />\n (\"idapprenant\")}\n interactive={nbAri > 1 && (nbAriContratsEnCours === 0 || nbAriContratsEnCours > 1)}\n forceSelected={\n (nbAri <= 1 || nbAriContratsEnCours === 1) &&\n (ariFromApprenant ? !!apprenant.idari : !!apprenant.idaricontratEnCours)\n }\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n t(ETLCodes.Remarque)}\n fieldPath={`apprenants[${index}].remarques`}\n finalEntityKey={AP_FINAL_KEY}\n >\n {(r: string) => <>{r}}\n \n t(ETLCodes.RemarqueService)}\n fieldPath={`apprenants[${index}].remarquesService`}\n finalEntityKey={AP_FINAL_KEY}\n >\n {(r: string) => <>{r}}\n \n t(ETLCodes.Interne)}\n fieldPath={`apprenants[${index}].internes`}\n finalEntityKey={AP_FINAL_KEY}\n >\n {(r: string) => <>{r}}\n \n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n \n );\n },\n [\n ariFromApprenant,\n data?.apprenants,\n nbAri,\n nbAriContratsEnCours,\n nbPri,\n nbPriContratsEnCours,\n priFromApprenant,\n selectData,\n selectedIndex,\n t\n ]\n );\n\n return (\n \n {(nbPri === 1 || nbPriContratsEnCours === 1) && (\n \n )}\n {(nbAri === 1 || nbAriContratsEnCours === 1) && (\n \n )}\n \n {data?.apprenants?.length > 1 &&\n data?.apprenants\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => apprenantContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Callout } from \"@blueprintjs/core\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { AP_FINAL_KEY, CarouselComparer, DoublonsMultipleDataCard, useDoublonsStateContext } from \"..\";\nimport { ApprenantDoublonEditDto, ApprenantRepresentantHopeGridDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BooleanColumn, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IDoublonApprenantRepresentantsProps {}\n\nexport const DoublonApprenantRepresentants: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { data, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${AP_FINAL_KEY}.idapprenant`) ?? 0, [getSelectedIndex]);\n\n const apprenantContainer = React.useCallback(\n (index: number, nb: number) => {\n const apprenant: ApprenantDoublonEditDto = data?.apprenants[index];\n if (!apprenant) return;\n\n return (\n window.open(`#${ERoutes.apprenant}/${apprenant.idapprenant}/signaletique/view`, \"_blank\")}\n />\n }\n titlePosition=\"center\"\n >\n r.nom}\n fieldPath={`apprenants[${index}].representants`}\n subFieldProps={{\n key: \"contactUrgence\",\n defaultValue: false,\n valueToSet: true\n }}\n finalEntityKey={AP_FINAL_KEY}\n interactive={(r: ApprenantRepresentantHopeGridDto) => r.type !== \"Institution\"}\n >\n {(r: ApprenantRepresentantHopeGridDto) => (\n \n
\n {t(ETLCodes.Type)}: {tUnsafe(\"Representant_\" + r.type)}\n
\n
\n {t(ETLCodes.LienParente)}: {r.lien}\n
\n
\n {t(ETLCodes.ContactUrgenceApprenant)}: \n
\n
\n )}\n \n \n );\n },\n [data?.apprenants, t, tUnsafe]\n );\n\n return (\n \n \n {t(ETLCodes.DoublonApprenantRepresentantCumules)}\n \n \n {data?.apprenants?.length > 1 &&\n data?.apprenants\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => apprenantContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Callout, NonIdealState } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { AP_FINAL_KEY, CarouselComparer, DoublonsDataCard, useDoublonsStateContext } from \"..\";\nimport { ApprenantDoublonEditDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IDoublonApprenantParcoursFormationProps {}\n\nexport const DoublonApprenantParcoursFormation: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${AP_FINAL_KEY}.idapprenant`) ?? 0, [getSelectedIndex]);\n\n const apprenantContainer = React.useCallback(\n (index: number, nb: number) => {\n const apprenant: ApprenantDoublonEditDto = data?.apprenants[index];\n if (!apprenant) return;\n\n return (\n window.open(`#${ERoutes.apprenant}/${apprenant.idapprenant}/signaletique/view`, \"_blank\")}\n />\n }\n titlePosition=\"center\"\n >\n \n
\n {t(ETLCodes.DateEntree)}: {format(apprenant.currentParcoursFormation.dateEntree, \"dd-MM-yyyy\")}\n
\n
\n {t(ETLCodes.CategorieStatut)}: {apprenant.currentParcoursFormation.catStatutEntree}\n
\n
\n {t(ETLCodes.Statut)}: {apprenant.currentParcoursFormation.statutEntree}\n
\n {!!apprenant.currentParcoursFormation.dateSortie && (\n <>\n
\n {t(ETLCodes.DateSortie)}: {format(apprenant.currentParcoursFormation.dateSortie, \"dd-MM-yyyy\")}\n
\n
\n {t(ETLCodes.MotifSortie)}: {apprenant.currentParcoursFormation.motifSortie}\n
\n
\n {t(ETLCodes.CategorieStatutSortie)}: {apprenant.currentParcoursFormation.catStatutSortie}\n
\n
\n {t(ETLCodes.StatutSortie)}: {apprenant.currentParcoursFormation.statutSortie}\n
\n \n )}\n \n ) : (\n \n )\n }\n label={`${t(ETLCodes.ParcoursFormationActuel)}${\n !!apprenant.currentParcoursFormation?.modificationDate\n ? \" (\" + format(apprenant.currentParcoursFormation.modificationDate, \"dd-MM-yyyy HH:mm:ss\") + \")\"\n : \"\"\n }`}\n interactive={false}\n forceSelected={\n !!apprenant.currentParcoursFormation &&\n data.apprenantFinal.currentParcoursFormation?.idParcoursFormation ===\n apprenant.currentParcoursFormation?.idParcoursFormation\n }\n />\n \n );\n },\n [data.apprenantFinal.currentParcoursFormation?.idParcoursFormation, data?.apprenants, t]\n );\n\n return (\n \n \n {t(ETLCodes.DoublonApprenantParcoursCumules)}\n \n \n {data?.apprenants?.length > 1 &&\n data?.apprenants\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => apprenantContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Callout, NonIdealState } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { AP_FINAL_KEY, CarouselComparer, DoublonsDataCard, useDoublonsStateContext } from \"..\";\nimport { ApprenantDoublonEditDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BooleanColumn, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IDoublonApprenantStatutApprenantProps {}\n\nexport const DoublonApprenantStatutApprenant: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${AP_FINAL_KEY}.idapprenant`) ?? 0, [getSelectedIndex]);\n\n const apprenantContainer = React.useCallback(\n (index: number, nb: number) => {\n const apprenant: ApprenantDoublonEditDto = data?.apprenants[index];\n if (!apprenant) return;\n\n return (\n window.open(`#${ERoutes.apprenant}/${apprenant.idapprenant}/signaletique/view`, \"_blank\")}\n />\n }\n titlePosition=\"center\"\n >\n \n
\n {t(ETLCodes.DateStatut)}: {format(apprenant.currentStatutApprenant.dateStatut, \"dd-MM-yyyy\")}\n
\n
\n {t(ETLCodes.CategorieStatut)}: {apprenant.currentStatutApprenant.categorieStatutSocial}\n
\n
\n {t(ETLCodes.Statut)}: {apprenant.currentStatutApprenant.statutSocial}\n
\n
\n {t(ETLCodes.PostFormation)}: \n
\n \n ) : (\n \n )\n }\n label={`${t(ETLCodes.StatutActuel)}`}\n interactive={!!apprenant.currentStatutApprenant}\n />\n \n );\n },\n [data?.apprenants, t]\n );\n\n return (\n \n \n {t(ETLCodes.DoublonApprenantStatutsCumules)}\n \n \n {data?.apprenants?.length > 1 &&\n data?.apprenants\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => apprenantContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Callout, NonIdealState } from \"@blueprintjs/core\";\nimport { isAfter } from \"date-fns\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { AP_FINAL_KEY, CarouselComparer, DoublonsDataCard, useDoublonsStateContext } from \"..\";\nimport { ApprenantDoublonEditDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { nameof } from \"../../../../../utils\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IDoublonApprenantPassportDriveProps {}\n\nexport const DoublonApprenantPassportDrive: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${AP_FINAL_KEY}.idapprenant`) ?? 0, [getSelectedIndex]);\n\n const apprenantContainer = React.useCallback(\n (index: number, nb: number) => {\n const apprenant: ApprenantDoublonEditDto = data?.apprenants[index];\n if (!apprenant) return;\n\n const isMostRecent =\n !!apprenant.passportDrive &&\n data?.apprenants\n ?.filter(a => a.idapprenant !== apprenant.idapprenant)\n ?.every(\n a => !a.passportDrive || isAfter(apprenant.passportDrive.modificationDate, a.passportDrive.modificationDate)\n );\n\n return (\n window.open(`#${ERoutes.apprenant}/${apprenant.idapprenant}/signaletique/view`, \"_blank\")}\n />\n }\n titlePosition=\"center\"\n >\n {!!apprenant.passportDrive ? (\n <>\n (\"idapprenant\")}\n />\n {apprenant.passportDrive.autoecole}}\n displaySelectedValue={false}\n forceSelected={isMostRecent}\n entityIdKey={nameof(\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n (\"idapprenant\")}\n />\n \n ) : (\n \n )}\n \n );\n },\n [data?.apprenants, t]\n );\n\n return (\n \n \n \n {data?.apprenants?.length > 1 &&\n data?.apprenants\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => apprenantContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Callout } from \"@blueprintjs/core\";\nimport { format, isAfter } from \"date-fns\";\nimport { FieldSet, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { AP_FINAL_KEY, CarouselComparer, DoublonsMultipleDataCard, useDoublonsStateContext } from \"..\";\nimport {\n ApprenantDoublonEditDto,\n ApprenantFichierApi,\n ApprenantFichierGridDto,\n ETypeApprenantFichier\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BooleanColumn, LinkButton, ViewButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { exportFile } from \"../../../../../utils\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IDoublonApprenantDocumentsProps {}\n\nexport const DoublonApprenantDocuments: React.FunctionComponent = props => {\n const { t, tUnsafe } = useTl();\n const { data, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${AP_FINAL_KEY}.idapprenant`) ?? 0, [getSelectedIndex]);\n\n const api = useApiService(ApprenantFichierApi);\n const downloadFichier = React.useCallback(\n async (idapprenantFichier: number) => {\n try {\n const file = await api.apprenantFichierDownloadApprenantFichier({ id: idapprenantFichier });\n await exportFile(file);\n } catch {\n showError(t(ETLCodes.ErrorWhileDownloadingFile));\n }\n },\n [api, t]\n );\n\n const apprenantContainer = React.useCallback(\n (index: number, nb: number) => {\n const apprenant: ApprenantDoublonEditDto = data?.apprenants[index];\n if (!apprenant) return;\n\n const isMostRecent = (dossierScolaire: ApprenantFichierGridDto) =>\n !!dossierScolaire?.uploadDate &&\n data?.apprenants\n ?.filter(a => a.idapprenant !== apprenant.idapprenant)\n ?.every(\n a =>\n a.documentsReglementaires.every(\n d => d.typeApprenantFichierCode !== ETypeApprenantFichier.DOSSIER_SCOLAIRE || !d.uploadDate\n ) ||\n isAfter(\n dossierScolaire.uploadDate,\n a.documentsReglementaires.find(\n d => d.typeApprenantFichierCode === ETypeApprenantFichier.DOSSIER_SCOLAIRE\n )?.uploadDate\n )\n );\n\n return (\n window.open(`#${ERoutes.apprenant}/${apprenant.idapprenant}/signaletique/view`, \"_blank\")}\n />\n }\n titlePosition=\"center\"\n >\n \n r.typeApprenantFichier ?? tUnsafe(`TypeApprenantFichier_${r.typeApprenantFichierCode}`)\n }\n fieldPath={`apprenants[${index}].documentsReglementaires`}\n interactive={() => false}\n finalEntityKey={AP_FINAL_KEY}\n forceSelected={(r: ApprenantFichierGridDto) =>\n (r.typeApprenantFichierCode !== ETypeApprenantFichier.DOSSIER_SCOLAIRE && index === 0) || isMostRecent(r)\n }\n >\n {(r: ApprenantFichierGridDto) => (\n \n
\n {t(ETLCodes.Remis)}: \n
\n {r.remis && (\n
\n {t(ETLCodes.Fichier)}:{\" \"}\n {!!r.idfichier ? (\n downloadFichier(r.idapprenantFichier)}\n rightIcon=\"download\"\n />\n ) : (\n t(ETLCodes.DocumentPhysique)\n )}\n
\n )}\n {!!r.uploadDate && (\n
\n {t(ETLCodes.UploadDate)}: {format(r.uploadDate, \"dd-MM-yyyy\")}\n
\n )}\n {r.remis && (\n
\n {t(ETLCodes.Annee)}: {r.anneeScolaire}\n
\n )}\n {!!r.creationUserName && (\n
\n {t(ETLCodes.UtilisateurUpload)}: {r.creationUserName}\n
\n )}\n
\n )}\n \n \n );\n },\n [data?.apprenants, downloadFichier, t, tUnsafe]\n );\n\n return (\n \n \n {t(ETLCodes.DoublonApprenantDocumentsCumules)}\n \n \n {data?.apprenants?.length > 1 &&\n data?.apprenants\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => apprenantContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { DoublonChefEntrepriseSiegesSociaux } from \".\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDoublonChefEntreprisePageProps {}\n\nexport const DoublonChefEntreprisePage: React.FunctionComponent = props => {\n const { t } = useTl();\n const [tab, setTab] = React.useState(\"siegesSociaux\");\n\n return (\n setTab(newTabId + \"\")}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n vertical\n >\n } />\n \n );\n};\n","import { Button, Callout } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { CarouselComparer, CE_FINAL_KEY, DoublonsMultipleDataCard, useDoublonsStateContext } from \"..\";\nimport { ChefEntrepriseDoublonEditDto, ChefEntrepriseDoublonSiegeSocialDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BooleanColumn, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport interface IDoublonChefEntrepriseSiegesSociauxProps {}\n\nexport const DoublonChefEntrepriseSiegesSociaux: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, selectData, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${CE_FINAL_KEY}.idchefEntreprise`) ?? 0, [\n getSelectedIndex\n ]);\n const chefEntrepriseContainer = React.useCallback(\n (index: number, nb: number) => {\n const chefEntreprise: ChefEntrepriseDoublonEditDto = data?.chefEntreprises[index];\n if (!chefEntreprise) return;\n\n return (\n \n {index !== selectedIndex ? (\n selectData(`${CE_FINAL_KEY}.idchefEntreprise`, index)}\n />\n ) : (\n
\n )}\n \n window.open(`#${ERoutes.chefEntreprise}/${chefEntreprise.idchefEntreprise}/detail/view`, \"_blank\")\n }\n />\n
\n \n }\n titlePosition=\"center\"\n >\n s.denominationSociale}\n fieldPath={`chefEntreprises[${index}].siegesSociaux`}\n interactive={() => false}\n forceSelected={() => false}\n finalEntityKey={CE_FINAL_KEY}\n >\n {(s: ChefEntrepriseDoublonSiegeSocialDto) => (\n \n
\n {t(ETLCodes.NumeroBce)}: {s.numeroBce}\n
\n
\n {t(ETLCodes.Fonction)}: {s.fonction}\n
\n
\n {t(ETLCodes.Telephone)}: {s.telephone?.numero}\n
\n
\n {t(ETLCodes.Gsm)}: {s.gsm?.numero}\n
\n
\n {t(ETLCodes.Email)}: {s.email?.adresseEmail}\n
\n
\n {t(ETLCodes.Remarque)}: {s.remarqueSiege}\n
\n
\n {t(ETLCodes.ChefEntreprisePrincipal)}: \n
\n
\n {t(ETLCodes.SortieEntreprise)}: {s.sortieEntreprise && format(s.sortieEntreprise, \"dd-MM-yyyy\")}\n
\n
\n )}\n \n \n );\n },\n [data?.chefEntreprises, selectData, selectedIndex, t]\n );\n\n return (\n \n \n \n {data?.chefEntreprises?.length > 1 &&\n data?.chefEntreprises\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) =>\n chefEntrepriseContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1))\n )}\n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { DoublonContactLieuxFormation, DoublonContactSiegesSociaux } from \".\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDoublonContactPageProps {}\n\nexport const DoublonContactPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const [tab, setTab] = React.useState(\"siegesSociaux\");\n\n return (\n setTab(newTabId + \"\")}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n vertical\n >\n } />\n } />\n \n );\n};\n","import { Button, Callout } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { CarouselComparer, CO_FINAL_KEY, DoublonsMultipleDataCard, useDoublonsStateContext } from \"..\";\nimport { ContactDoublonEditDto, ContactDoublonSiegeSocialDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BooleanColumn, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport interface IDoublonContactSiegesSociauxProps {}\n\nexport const DoublonContactSiegesSociaux: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, selectData, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${CO_FINAL_KEY}.idcontact`) ?? 0, [getSelectedIndex]);\n const contactContainer = React.useCallback(\n (index: number, nb: number) => {\n const contact: ContactDoublonEditDto = data?.contacts[index];\n if (!contact) return;\n\n return (\n \n {index !== selectedIndex ? (\n selectData(`${CO_FINAL_KEY}.idcontact`, index)}\n />\n ) : (\n
\n )}\n window.open(`#${ERoutes.contacts}/${contact.idcontact}/detail/view`, \"_blank\")}\n />\n
\n \n }\n titlePosition=\"center\"\n >\n s.denominationSociale}\n fieldPath={`contacts[${index}].siegesSociaux`}\n interactive={() => false}\n forceSelected={() => false}\n finalEntityKey={CO_FINAL_KEY}\n >\n {(s: ContactDoublonSiegeSocialDto) => (\n \n
\n {t(ETLCodes.NumeroBce)}: {s.numeroBce}\n
\n
\n {t(ETLCodes.Fonction)}: {s.fonction}\n
\n
\n {t(ETLCodes.Telephone)}: {s.telephone?.numero}\n
\n
\n {t(ETLCodes.Gsm)}: {s.gsm?.numero}\n
\n
\n {t(ETLCodes.Email)}: {s.email?.adresseEmail}\n
\n
\n {t(ETLCodes.Remarque)}: {s.remarqueSiege}\n
\n
\n {t(ETLCodes.PersonneContactPrincipale)}: \n
\n
\n {t(ETLCodes.SortieEntreprise)}: {s.sortieEntreprise && format(s.sortieEntreprise, \"dd-MM-yyyy\")}\n
\n
\n )}\n \n \n );\n },\n [data?.contacts, selectData, selectedIndex, t]\n );\n\n return (\n \n \n \n {data?.contacts?.length > 1 &&\n data?.contacts\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => contactContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Callout } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { CarouselComparer, CO_FINAL_KEY, DoublonsMultipleDataCard, useDoublonsStateContext } from \"..\";\nimport { ContactDoublonEditDto, ContactDoublonLieuFormationDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BooleanColumn, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IDoublonContactLieuxFormationProps {}\n\nexport const DoublonContactLieuxFormation: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${CO_FINAL_KEY}.idcontact`) ?? 0, [getSelectedIndex]);\n\n const contactContainer = React.useCallback(\n (index: number, nb: number) => {\n const contact: ContactDoublonEditDto = data?.contacts[index];\n if (!contact) return;\n\n return (\n window.open(`#${ERoutes.contacts}/${contact.idcontact}/detail/view`, \"_blank\")}\n />\n }\n titlePosition=\"center\"\n >\n l.nom}\n fieldPath={`contacts[${index}].lieuxFormation`}\n interactive={() => false}\n forceSelected={() => false}\n finalEntityKey={CO_FINAL_KEY}\n >\n {(l: ContactDoublonLieuFormationDto) => (\n \n
\n {t(ETLCodes.Enseigne)}: {l.enseigne}\n
\n
\n {t(ETLCodes.Fonction)}: {l.fonction}\n
\n
\n {t(ETLCodes.Telephone)}: {l.telephone?.numero}\n
\n
\n {t(ETLCodes.Gsm)}: {l.gsm?.numero}\n
\n
\n {t(ETLCodes.Email)}: {l.email?.adresseEmail}\n
\n
\n {t(ETLCodes.Remarque)}: {l.remarqueLieu}\n
\n
\n {t(ETLCodes.PersonneContactPrincipale)}: \n
\n
\n {t(ETLCodes.SortieEntreprise)}: {l.sortieEntreprise && format(l.sortieEntreprise, \"dd-MM-yyyy\")}\n
\n
\n )}\n \n \n );\n },\n [data?.contacts, t]\n );\n\n return (\n \n \n \n {data?.contacts?.length > 1 &&\n data?.contacts\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => contactContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { DoublonFormateurAdministratif, DoublonFormateurProfessionnel, DoublonFormateurSignaletique } from \".\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDoublonFormateurPageProps {}\n\nexport const DoublonFormateurPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const [tab, setTab] = React.useState(\"signaletique\");\n\n return (\n setTab(newTabId + \"\")}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n vertical\n >\n } />\n } />\n } />\n \n );\n};\n","import { Button } from \"@blueprintjs/core\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { FO_FINAL_KEY, CarouselComparer, DoublonsDataCard, useDoublonsStateContext } from \"..\";\nimport { FormateurDoublonEditDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { nameof } from \"../../../../../utils\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport interface IDoublonFormateurSignaletiqueProps {}\n\nexport const DoublonFormateurSignaletique: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, selectData, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${FO_FINAL_KEY}.idformateur`) ?? 0, [getSelectedIndex]);\n const formateurContainer = React.useCallback(\n (index: number, nb: number) => {\n const formateur: FormateurDoublonEditDto = data?.formateurs[index];\n if (!formateur) return;\n\n return (\n \n {index !== selectedIndex ? (\n selectData(`${FO_FINAL_KEY}.idformateur`, index)}\n />\n ) : (\n
\n )}\n \n window.open(`#${ERoutes.formateur}/${formateur.idformateur}/signaletique/view`, \"_blank\")\n }\n />\n
\n \n }\n titlePosition=\"center\"\n >\n \n
{t(ETLCodes.NbLocalisations, { nb: formateur.nbLocalisations })}
\n
{t(ETLCodes.NbAgrements, { nb: formateur.nbAgrements })}
\n
{t(ETLCodes.NbSuivis, { nb: formateur.nbSuivis })}
\n
{t(ETLCodes.NbDoublonRemplacements, { nb: formateur.nbRemplacements })}
\n \n }\n label={t(ETLCodes.Informations)}\n interactive={false}\n />\n (\"idformateur\")}\n interactive={false}\n forceSelected={index === selectedIndex}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n \n );\n },\n [data?.formateurs, selectData, selectedIndex, t]\n );\n\n return (\n \n \n {data?.formateurs?.length > 1 &&\n data?.formateurs\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => formateurContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { CarouselComparer, DoublonsDataCard, FO_FINAL_KEY, useDoublonsStateContext } from \"..\";\nimport { FormateurDoublonEditDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { nameof } from \"../../../../../utils\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IDoublonFormateurAdministratifProps {}\n\nexport const DoublonFormateurAdministratif: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${FO_FINAL_KEY}.idformateur`) ?? 0, [getSelectedIndex]);\n\n const formateurContainer = React.useCallback(\n (index: number, nb: number) => {\n const formateur: FormateurDoublonEditDto = data?.formateurs[index];\n if (!formateur) return;\n\n return (\n window.open(`#${ERoutes.formateur}/${formateur.idformateur}/signaletique/view`, \"_blank\")}\n />\n }\n titlePosition=\"center\"\n >\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n \n );\n },\n [data?.formateurs, t]\n );\n\n return (\n \n \n {data?.formateurs?.length > 1 &&\n data?.formateurs\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => formateurContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { format } from \"date-fns\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport {\n CarouselComparer,\n DoublonsDataCard,\n DoublonsMultipleDataCard,\n FO_FINAL_KEY,\n useDoublonsStateContext\n} from \"..\";\nimport {\n FcbFormateurDiplomeDto,\n FcbFormateurProfessionDto,\n FcbFormateurTitreDto,\n FormateurDoublonEditDto\n} from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { nameof } from \"../../../../../utils\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IDoublonFormateurProfessionnelProps {}\n\nexport const DoublonFormateurProfessionnel: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${FO_FINAL_KEY}.idformateur`) ?? 0, [getSelectedIndex]);\n\n const formateurContainer = React.useCallback(\n (index: number, nb: number) => {\n const formateur: FormateurDoublonEditDto = data?.formateurs[index];\n if (!formateur) return;\n\n return (\n window.open(`#${ERoutes.formateur}/${formateur.idformateur}/signaletique/view`, \"_blank\")}\n />\n }\n titlePosition=\"center\"\n >\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n (\"idformateur\")}\n />\n f.libelle}\n fieldPath={`formateurs[${index}].donneesProfessionnelles.professions`}\n finalEntityKey={FO_FINAL_KEY}\n interactive={() => false}\n forceSelected={() => false}\n >\n {(f: FcbFormateurProfessionDto) => (\n \n {t(ETLCodes.Date)}: {f.date && format(f.date, \"dd-MM-yyyy\")}\n \n )}\n \n f.libelle}\n fieldPath={`formateurs[${index}].donneesProfessionnelles.titres`}\n finalEntityKey={FO_FINAL_KEY}\n interactive={() => false}\n forceSelected={() => false}\n >\n {(f: FcbFormateurTitreDto) => (\n \n {t(ETLCodes.Date)}: {f.date && format(f.date, \"dd-MM-yyyy\")}\n \n )}\n \n f.libelle}\n fieldPath={`formateurs[${index}].donneesProfessionnelles.diplomes`}\n finalEntityKey={FO_FINAL_KEY}\n interactive={() => false}\n forceSelected={() => false}\n >\n {(f: FcbFormateurDiplomeDto) => (\n \n
\n {t(ETLCodes.Date)}: {f.date && format(f.date, \"dd-MM-yyyy\")}\n
\n
\n {t(ETLCodes.Type)}: {f.type}\n
\n
\n {t(ETLCodes.URL)}: {f.url}\n
\n
\n )}\n \n \n );\n },\n [data?.formateurs, t]\n );\n\n return (\n \n \n {data?.formateurs\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => formateurContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Button } from \"@blueprintjs/core\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useParams } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport {\n CarouselComparer,\n DoublonsDataCard,\n DoublonsMultipleDataCard,\n FO_FINAL_KEY,\n PE_FINAL_KEY,\n RE_FINAL_KEY,\n useDoublonsStateContext\n} from \"..\";\nimport { AP_FINAL_KEY } from \"../../..\";\nimport { CompteBancaireDto, EmailDto, PersonneDoublonEditDto, TelephoneDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { AdresseInfos, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { nameof } from \"../../../../../utils\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport interface IDoublonPersonnePageProps {}\n\nexport const DoublonPersonnePage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, getSelectedValue, selectData, getSelectedIndex, isDataMultipleSelected } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${PE_FINAL_KEY}.idpersonne`) ?? 0, [getSelectedIndex]);\n const { id } = useParams<{ id: string }>();\n const idpersonne1 = React.useMemo(() => +id.split(\"-\")[0], [id]);\n const idpersonne2 = React.useMemo(() => +id.split(\"-\")[1], [id]);\n const alreadyManaged = React.useMemo(() => idpersonne1 === idpersonne2, [idpersonne1, idpersonne2]);\n\n const selectedTels = React.useMemo(\n () => [\n getSelectedValue(`${AP_FINAL_KEY}.telephoneApprenant.idtelephone`, AP_FINAL_KEY),\n getSelectedValue(`${AP_FINAL_KEY}.gsmApprenant.idtelephone`, AP_FINAL_KEY),\n getSelectedValue(`${RE_FINAL_KEY}.telephoneRepresentant.idtelephone`, RE_FINAL_KEY),\n getSelectedValue(`${RE_FINAL_KEY}.gsmRepresentant.idtelephone`, RE_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.telephoneFormateur.idtelephone`, FO_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.telephoneProfFormateur.donneesProfessionnelles.idtelephone`, FO_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.gsmFormateur.idtelephone`, FO_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.gsmProfFormateur.donneesProfessionnelles.idtelephone`, FO_FINAL_KEY),\n ...(data?.chefEntreprises?.flatMap(c => c.siegesSociaux?.map(s => s.telephone?.idtelephone)) ?? []),\n ...(data?.chefEntreprises?.flatMap(c => c.siegesSociaux?.map(s => s.gsm?.idtelephone)) ?? []),\n ...(data?.contacts?.flatMap(c => c.siegesSociaux?.map(s => s.telephone?.idtelephone)) ?? []),\n ...(data?.contacts?.flatMap(c => c.siegesSociaux?.map(s => s.gsm?.idtelephone)) ?? []),\n ...(data?.contacts?.flatMap(c => c.lieuxFormation?.map(s => s.telephone?.idtelephone)) ?? []),\n ...(data?.contacts?.flatMap(c => c.lieuxFormation?.map(s => s.gsm?.idtelephone)) ?? [])\n ],\n [data?.chefEntreprises, data?.contacts, getSelectedValue]\n );\n\n const selectedEmails = React.useMemo(\n () => [\n getSelectedValue(`${AP_FINAL_KEY}.emailApprenant.idemail`, AP_FINAL_KEY),\n getSelectedValue(`${RE_FINAL_KEY}.emailRepresentant.idemail`, RE_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.emailFormateur.idemail`, FO_FINAL_KEY),\n getSelectedValue(`${FO_FINAL_KEY}.emailProfFormateur.donneesProfessionnelles.idemail`, FO_FINAL_KEY),\n ...(data?.chefEntreprises?.flatMap(c => c.siegesSociaux?.map(s => s.email?.idemail)) ?? []),\n ...(data?.contacts?.flatMap(c => c.siegesSociaux?.map(s => s.email?.idemail)) ?? []),\n ...(data?.contacts?.flatMap(c => c.lieuxFormation?.map(s => s.email?.idemail)) ?? [])\n ],\n [data?.chefEntreprises, data?.contacts, getSelectedValue]\n );\n\n const personneContainer = React.useCallback(\n (index: number, nb: number) => {\n const personne: PersonneDoublonEditDto = data.personnes[index];\n if (!personne) return;\n\n return (\n \n {index !== selectedIndex ? (\n selectData(`${PE_FINAL_KEY}.idpersonne`, index)}\n />\n ) : (\n
\n )}\n window.open(`#${ERoutes.personne}/${personne.idpersonne}/signaletique/view`, \"_blank\")}\n />\n
\n \n }\n titlePosition=\"center\"\n >\n \n
{t(ETLCodes.NbAcquis, { nb: personne.nbAcquis })}
\n \n }\n label={t(ETLCodes.Informations)}\n interactive={false}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n (\"idpersonne\")}\n />\n t(ETLCodes.Remarque)}\n fieldPath={`personnes[${index}].remarques`}\n finalEntityKey={!alreadyManaged && PE_FINAL_KEY}\n interactive={() => !alreadyManaged}\n >\n {(r: string) => <>{r}}\n \n (val ? : <>{\"(\" + t(ETLCodes.Aucun) + \")\"})}\n entityIdKey={nameof(\"idpersonne\")}\n extValue={\n \n {personne.adresseDomicile ? : t(ETLCodes.Aucun)}\n \n }\n />\n (val ? : <>{\"(\" + t(ETLCodes.Aucun) + \")\"})}\n entityIdKey={nameof(\"idpersonne\")}\n extValue={\n \n {personne.adresseCourrier ? : t(ETLCodes.Aucun)}\n \n }\n />\n (val ? : <>{\"(\" + t(ETLCodes.Aucun) + \")\"})}\n entityIdKey={nameof(\"idpersonne\")}\n extValue={\n \n {personne.adresseAutre ? : t(ETLCodes.Aucun)}\n \n }\n />\n {/* <>({val ? `${val.iban} - ${val.bic}` : t(ETLCodes.Aucun)})}\n entityIdKey={nameof(\"idpersonne\")}\n extValue={\n \n {personne.compteBancaire ? (\n <>\n
{personne.compteBancaire.iban}
\n
{personne.compteBancaire.bic}
\n \n ) : (\n t(ETLCodes.Aucun)\n )}\n
\n }\n /> */}\n t.bic}\n fieldPath={`personnes[${index}].comptesBancaires`}\n finalEntityKey={!alreadyManaged && PE_FINAL_KEY}\n interactive={(t: CompteBancaireDto) => false}\n forceSelected={(t: CompteBancaireDto) => true}\n >\n {(t: CompteBancaireDto) => {t.iban}}\n \n t.typeTelephone}\n fieldPath={`personnes[${index}].telephones`}\n finalEntityKey={!alreadyManaged && PE_FINAL_KEY}\n interactive={(t: TelephoneDto) => !alreadyManaged && !selectedTels.includes(t.idtelephone)}\n forceSelected={(t: TelephoneDto) =>\n alreadyManaged ||\n selectedTels.includes(t.idtelephone) ||\n isDataMultipleSelected(`${PE_FINAL_KEY}.telephones`, t)\n }\n >\n {(t: TelephoneDto) => {t.numero}}\n \n e.typeEmail}\n fieldPath={`personnes[${index}].emails`}\n finalEntityKey={!alreadyManaged && PE_FINAL_KEY}\n interactive={(e: EmailDto) => !alreadyManaged && !selectedEmails.includes(e.idemail)}\n forceSelected={(e: EmailDto) =>\n alreadyManaged ||\n selectedEmails.includes(e.idemail) ||\n isDataMultipleSelected(`${PE_FINAL_KEY}.emails`, e)\n }\n >\n {(e: EmailDto) => {e.adresseEmail}}\n \n \n );\n },\n [alreadyManaged, data.personnes, isDataMultipleSelected, selectData, selectedEmails, selectedIndex, selectedTels, t]\n );\n\n return (\n \n \n {data?.personnes?.length > 1 &&\n data?.personnes\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => personneContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { DoublonRepresentantSignaletique } from \".\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDoublonRepresentantPageProps {}\n\nexport const DoublonRepresentantPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const [tab, setTab] = React.useState(\"signaletique\");\n\n return (\n setTab(newTabId + \"\")}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n vertical\n >\n } />\n \n );\n};\n","import { Button } from \"@blueprintjs/core\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { CarouselComparer, DoublonsDataCard, RE_FINAL_KEY, useDoublonsStateContext } from \"..\";\nimport { RepresentantDoublonEditDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { nameof } from \"../../../../../utils\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport interface IDoublonRepresentantSignaletiqueProps {}\n\nexport const DoublonRepresentantSignaletique: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, selectData, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${RE_FINAL_KEY}.idrepresentant`) ?? 0, [\n getSelectedIndex\n ]);\n const representantContainer = React.useCallback(\n (index: number, nb: number) => {\n const representant: RepresentantDoublonEditDto = data?.representants[index];\n if (!representant) return;\n\n return (\n \n {index !== selectedIndex ? (\n selectData(`${RE_FINAL_KEY}.idrepresentant`, index)}\n />\n ) : (\n
\n )}\n \n window.open(`#${ERoutes.representant}/${representant.idrepresentant}/detail/view`, \"_blank\")\n }\n />\n
\n \n }\n titlePosition=\"center\"\n >\n (\"idrepresentant\")}\n />\n (\"idrepresentant\")}\n />\n (\"idrepresentant\")}\n />\n (\"idrepresentant\")}\n />\n \n );\n },\n [data?.representants, selectData, selectedIndex, t]\n );\n\n return (\n \n \n {data?.representants?.length > 1 &&\n data?.representants\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => representantContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { DoublonTuteurLieuxFormation, DoublonTuteurSignaletique } from \".\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IDoublonTuteurPageProps {}\n\nexport const DoublonTuteurPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const [tab, setTab] = React.useState(\"signaletique\");\n\n return (\n setTab(newTabId + \"\")}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n vertical\n >\n } />\n } />\n \n );\n};\n","import { Button, Callout } from \"@blueprintjs/core\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport {\n TU_FINAL_KEY,\n CarouselComparer,\n DoublonsDataCard,\n useDoublonsStateContext,\n DoublonsMultipleDataCard\n} from \"..\";\nimport { ReferentialItemDto, TuteurDoublonEditDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport interface IDoublonTuteurSignaletiqueProps {}\n\nexport const DoublonTuteurSignaletique: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, selectData, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${TU_FINAL_KEY}.idtuteur`) ?? 0, [getSelectedIndex]);\n const tuteurContainer = React.useCallback(\n (index: number, nb: number) => {\n const tuteur: TuteurDoublonEditDto = data?.tuteurs[index];\n if (!tuteur) return;\n\n return (\n \n {index !== selectedIndex ? (\n selectData(`${TU_FINAL_KEY}.idtuteur`, index)}\n />\n ) : (\n
\n )}\n window.open(`#${ERoutes.tuteur}/${tuteur.idtuteur}/detail/view`, \"_blank\")}\n />\n
\n \n }\n titlePosition=\"center\"\n >\n \n
{t(ETLCodes.NbContrats, { nb: tuteur.nbContrats })}
\n \n }\n label={t(ETLCodes.Informations)}\n interactive={false}\n />\n false}\n forceSelected={() => false}\n >\n {(t: ReferentialItemDto) => <>{t.displayValue}}\n \n \n );\n },\n [data?.tuteurs, selectData, selectedIndex, t]\n );\n\n return (\n \n \n \n {data?.tuteurs?.length > 1 &&\n data?.tuteurs\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => tuteurContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Callout } from \"@blueprintjs/core\";\nimport { format } from \"date-fns\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { CarouselComparer, DoublonsMultipleDataCard, TU_FINAL_KEY, useDoublonsStateContext } from \"..\";\nimport { TuteurDoublonEditDto, TuteurDoublonLieuFormationDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BooleanColumn, ViewButton } from \"../../../../../components\";\nimport { useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nconst Container = styled.div`\n height: 70vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n`;\n\nconst InformationContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport interface IDoublonTuteurLieuxFormationProps {}\n\nexport const DoublonTuteurLieuxFormation: React.FunctionComponent = props => {\n const { t } = useTl();\n const { data, getSelectedIndex } = useDoublonsStateContext();\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${TU_FINAL_KEY}.idtuteur`) ?? 0, [getSelectedIndex]);\n\n const tuteurContainer = React.useCallback(\n (index: number, nb: number) => {\n const tuteur: TuteurDoublonEditDto = data?.tuteurs[index];\n if (!tuteur) return;\n\n return (\n window.open(`#${ERoutes.tuteur}/${tuteur.idtuteur}/detail/view`, \"_blank\")}\n />\n }\n titlePosition=\"center\"\n >\n l.nom}\n fieldPath={`tuteurs[${index}].lieuxFormation`}\n interactive={() => false}\n forceSelected={() => false}\n finalEntityKey={TU_FINAL_KEY}\n >\n {(l: TuteurDoublonLieuFormationDto) => (\n \n
\n {t(ETLCodes.Enseigne)}: {l.enseigne}\n
\n
\n {t(ETLCodes.Fonction)}: {l.fonction}\n
\n
\n {t(ETLCodes.CapaciteFormative)}: {l.capaciteFormative}\n
\n
\n {t(ETLCodes.TuteurPrincipal)}: \n
\n
\n {t(ETLCodes.SortieEntreprise)}: {l.sortieEntreprise && format(l.sortieEntreprise, \"dd-MM-yyyy\")}\n
\n
\n )}\n \n \n );\n },\n [data?.tuteurs, t]\n );\n\n return (\n \n \n \n {data?.tuteurs?.length > 1 &&\n data?.tuteurs\n ?.filter((a, i) => i !== selectedIndex)\n ?.map((a, i) => tuteurContainer(i + (i >= selectedIndex ? 1 : 0), i + (i >= selectedIndex ? 2 : 1)))}\n \n \n );\n};\n","import { Colors } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { Carousel } from \"../../../../components\";\n\nconst Container = styled.div`\n display: flex;\n flex: 1;\n`;\n\nconst LeftPanel = styled.div`\n flex: 1;\n padding: 1rem 3rem;\n\n .single-panel {\n border-right: solid 1px ${Colors.LIGHT_GRAY3};\n }\n`;\n\nconst Empty = styled.div`\n flex: 0.5;\n`;\n\nexport interface ICarouselComparerProps {\n leftElement: JSX.Element;\n}\n\nexport const CarouselComparer: React.FunctionComponent = ({ leftElement, children }) => {\n return (\n \n {!children && }\n {leftElement}\n {!!children ? {children} : }\n \n );\n};\n","import { Card, Classes, Colors } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { useDoublonsStateContext } from \".\";\nimport { BooleanColumn } from \"../../../../components\";\nimport { useTheme, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst StyledCard = styled(Card)<{ bgColor: string; txtColor: string }>`\n margin: 0 0.5rem;\n display: flex;\n flex-direction: column;\n position: relative;\n margin-bottom: 0.5rem;\n background-color: ${props => props.bgColor};\n color: ${props => props.txtColor};\n transition: all 90ms linear;\n`;\n\nconst LabelContainer = styled.div`\n position: absolute;\n top: 5px;\n left: 5px;\n font-weight: bold;\n`;\n\nconst ValueContainer = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n\n & .value-striked {\n text-decoration: line-through;\n }\n`;\n\nconst ContentContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nconst SelectedValue = styled.div<{ primaryColor: string }>`\n color: ${props => props.primaryColor};\n font-weight: bold;\n margin-left: 0.5rem;\n`;\n\nexport interface IDoublonsDataCardProps {\n fieldPath?: string;\n valuePath?: string;\n extValue?: JSX.Element;\n label: string;\n interactive?: boolean;\n forceSelected?: boolean;\n displaySelectedValue?: boolean;\n formatSelectedValue?: (value: any) => JSX.Element;\n finalEntityKey?: string;\n entityIdKey?: string;\n}\n\nexport const DoublonsDataCard: React.FunctionComponent = ({\n fieldPath,\n valuePath,\n label,\n extValue,\n interactive = true,\n forceSelected,\n finalEntityKey,\n entityIdKey,\n displaySelectedValue = true,\n formatSelectedValue\n}) => {\n const { t } = useTl();\n const { theme } = useTheme();\n const { getFieldData, isDataSelected, selectData, getSelectedValue, getSelectedIndex } = useDoublonsStateContext();\n const value = React.useMemo(() => extValue ?? getFieldData(valuePath ?? fieldPath), [\n extValue,\n fieldPath,\n getFieldData,\n valuePath\n ]);\n\n const finalPath = React.useMemo(() => fieldPath && fieldPath.replace(/^[^\\]]*\\]/gm, finalEntityKey), [\n fieldPath,\n finalEntityKey\n ]);\n const entityIndex = React.useMemo(() => fieldPath && +fieldPath.match(/(?<=\\[)[^\\]]*(?=\\])/gm)[0], [fieldPath]);\n\n const isSelected = React.useMemo(() => forceSelected || (!!finalPath && isDataSelected(finalPath, entityIndex)), [\n entityIndex,\n finalPath,\n forceSelected,\n isDataSelected\n ]);\n\n const onSelect = React.useCallback(() => {\n if (!finalPath) return;\n selectData(finalPath, entityIndex);\n }, [entityIndex, finalPath, selectData]);\n\n const finalValuePath = React.useMemo(\n () => (valuePath ? valuePath.replace(/^[^\\]]*\\]/gm, finalEntityKey) : finalPath),\n [valuePath, finalEntityKey, finalPath]\n );\n\n const selectedIndex = React.useMemo(() => getSelectedIndex(`${finalEntityKey}.${entityIdKey}`) ?? 0, [\n entityIdKey,\n finalEntityKey,\n getSelectedIndex\n ]);\n const firstNotSelected = React.useMemo(\n () => displaySelectedValue && !isSelected && entityIndex === selectedIndex && !!(finalValuePath ?? finalPath),\n [displaySelectedValue, entityIndex, finalPath, finalValuePath, isSelected, selectedIndex]\n );\n\n const getFormattedValue = React.useCallback(\n (val: any, muted?: boolean) => {\n return val === null || val === undefined ? (\n t(ETLCodes.Aucun)\n ) : typeof val === \"boolean\" ? (\n \n ) : (\n val\n );\n },\n [t]\n );\n\n return (\n \n {label}\n \n \n \n {getFormattedValue(value, firstNotSelected)}\n \n \n {firstNotSelected && (\n \n {!!formatSelectedValue ? (\n formatSelectedValue(getSelectedValue(finalPath, finalEntityKey, finalValuePath))\n ) : (\n <>({getFormattedValue(getSelectedValue(finalPath, finalEntityKey, finalValuePath))})\n )}\n \n )}\n \n \n );\n};\n","import { Card, Colors, NonIdealState } from \"@blueprintjs/core\";\nimport { FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { useDoublonsStateContext } from \".\";\nimport { useTheme, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst StyledCard = styled(Card)<{ bgColor: string; txtColor: string }>`\n margin: 0 0.5rem;\n display: flex;\n flex-direction: column;\n position: relative;\n margin-bottom: 0.5rem;\n background-color: ${props => props.bgColor};\n color: ${props => props.txtColor};\n transition: all 90ms linear;\n`;\n\nconst LabelContainer = styled.div`\n position: absolute;\n top: 5px;\n left: 5px;\n font-weight: bold;\n`;\n\nconst ContentContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport interface IDoublonsMultipleDataCardProps {\n title?: string;\n fieldPath: string;\n interactive?: (item: T) => boolean;\n subFieldProps?: {\n key: string;\n defaultValue: any;\n valueToSet: any;\n };\n finalEntityKey: string;\n children: (item: T) => JSX.Element;\n labelPredicate?: (item: T) => string;\n forceSelected?: (item: T) => boolean;\n}\n\nexport function DoublonsMultipleDataCard({\n title,\n fieldPath,\n interactive = () => true,\n forceSelected,\n finalEntityKey,\n children,\n labelPredicate = () => \"\",\n subFieldProps\n}: React.PropsWithChildren>) {\n const { t } = useTl();\n const { theme } = useTheme();\n const { isDataMultipleSelected, selectDataMultiple, getFieldData } = useDoublonsStateContext();\n\n const items = React.useMemo(() => getFieldData(fieldPath), [fieldPath, getFieldData]);\n const finalPath = React.useMemo(() => fieldPath.replace(/^[^\\]]*\\]/gm, finalEntityKey), [fieldPath, finalEntityKey]);\n\n const onSelect = React.useCallback(\n (item: T) => {\n if (!finalPath) return;\n const newItem = !!subFieldProps ? { ...item, [subFieldProps.key]: subFieldProps.valueToSet } : item;\n selectDataMultiple(finalPath, newItem, subFieldProps?.key, subFieldProps?.defaultValue);\n },\n [finalPath, selectDataMultiple, subFieldProps]\n );\n\n return (\n \n {!!title &&
}\n {items?.length === 0 ? (\n \n ) : (\n items.map((item, idx) => {\n const selected = !!forceSelected\n ? forceSelected(item)\n : isDataMultipleSelected(\n finalPath,\n !!subFieldProps ? { ...item, [subFieldProps.key]: subFieldProps.valueToSet } : item\n );\n return (\n onSelect(item) : null}\n className={selected && \"doublon-card-selected\"}\n bgColor={selected ? `${theme.primaryColor}10` : Colors.WHITE}\n txtColor={selected ? `${theme.primaryColor}` : null}\n key={idx}\n >\n {labelPredicate && {labelPredicate(item)}}\n {children(item)}\n \n );\n })\n )}\n \n );\n}\n","import { Colors } from \"@blueprintjs/colors\";\nimport { IDataTableColumn, showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { css } from \"styled-components\";\n\nimport { DoublonsApi, DoublonsPersonneSearchDto, PersonneGridDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { SearchTablePage, SelectButton, UnordoredListColumn } from \"../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTheme, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IDoublonsNewPageProps {}\n\nexport const DoublonsNewPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(DoublonsApi);\n\n const [selectedIds, setSelectedIds] = React.useState<{ idpersonne1: number; idpersonne2: number }>({\n idpersonne1: null,\n idpersonne2: null\n });\n\n const apiFactory = useAbortableApiServiceFactory(DoublonsApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: DoublonsPersonneSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.doublonsSearchPersonne({ DoublonsPersonneSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.Prenom2),\n fieldName: \"prenom2\"\n },\n {\n header: () => t(ETLCodes.Genre),\n fieldName: \"codesexe\"\n },\n {\n header: () => t(ETLCodes.Nationalite),\n fieldName: \"nationalite\"\n },\n {\n header: () => t(ETLCodes.RegistreNational),\n fieldName: \"registreNational\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.DateDeces),\n fieldName: \"dateDeces\"\n },\n {\n header: () => t(ETLCodes.Forme),\n fieldName: \"forme\",\n render: (row: PersonneGridDto) => (\n \n )\n }\n ],\n [t]\n );\n\n const getCriteria = React.useCallback(async () => {\n let criterias = await api.doublonsGetSearchPersonneCriterias();\n return criterias;\n }, [api]);\n\n const onRowClick = React.useCallback(\n (row: PersonneGridDto) => {\n if (row.isConseillePedagogique || row.isDelegueTutelle || row.isUser) {\n showError(t(ETLCodes.RoleNonAutorise));\n return;\n }\n\n if (selectedIds.idpersonne1 === row.idpersonne) {\n setSelectedIds(prev => ({ ...prev, idpersonne1: null }));\n return;\n }\n\n if (selectedIds.idpersonne2 === row.idpersonne) {\n setSelectedIds(prev => ({ ...prev, idpersonne2: null }));\n return;\n }\n\n if (!!selectedIds.idpersonne1 && !!selectedIds.idpersonne2) {\n showError(t(ETLCodes.VeuillezDeselectionnerAutreLigne));\n return;\n }\n\n setSelectedIds(prev =>\n !prev.idpersonne1 ? { ...prev, idpersonne1: row.idpersonne } : { ...prev, idpersonne2: row.idpersonne }\n );\n },\n [selectedIds, t]\n );\n\n const { theme } = useTheme();\n const customizeRowStyleCallback = React.useCallback(\n (item: PersonneGridDto) => {\n const isSelected = selectedIds.idpersonne1 === item.idpersonne || selectedIds.idpersonne2 === item.idpersonne;\n\n return css`\n & * {\n color: ${isSelected ? Colors.WHITE : Colors.BLACK} !important;\n }\n\n & & > td {\n background-color: ${isSelected ? theme.primaryColor : \"initial\"} !important;\n }\n\n background-color: ${isSelected ? theme.primaryColor : \"transparent\"} !important;\n `;\n },\n [selectedIds.idpersonne1, selectedIds.idpersonne2, theme.primaryColor]\n );\n\n const rightElement = React.useMemo(\n () => (\n history.push(`${ERoutes.doublon}/fusion/${selectedIds.idpersonne1}-${selectedIds.idpersonne2}`)}\n />\n ),\n [history, selectedIds.idpersonne1, selectedIds.idpersonne2]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../hooks\";\nimport { useHistory } from \"react-router\";\nimport { ViewButton, EditButton, SearchTablePage } from \"../../../../components\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport { ExportApi, FcbRechercheexportDto, RechercheexportSearch } from \"../../../../api\";\nimport { Checkbox } from \"@blueprintjs/core\";\nimport { css } from \"styled-components\";\n\nexport interface IExportListPageProps {}\n\nexport const ExportListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ExportApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheexportDto) => (\n \n history.push(`${ERoutes.exportation}/${row.idexport}/detail/view`)}\n />\n history.push(`${ERoutes.exportation}/${row.idexport}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"type\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Actif),\n fieldName: \"ActifComputed\",\n alignment: \"center\",\n render: (row: FcbRechercheexportDto) => \n },\n {\n header: () => t(ETLCodes.Module),\n fieldName: \"module\",\n customizeCellStyle: () =>\n css`\n white-space: pre;\n `\n },\n {\n header: () => t(ETLCodes.Centres),\n fieldName: \"centre\",\n customizeCellStyle: () =>\n css`\n white-space: pre;\n `\n },\n {\n header: () => t(ETLCodes.Acces),\n fieldName: \"acces\",\n customizeCellStyle: () =>\n css`\n white-space: pre;\n `\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.exportation}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.exportGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(ExportApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: RechercheexportSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.exportBaseSearch({ RechercheexportSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","export function containsWord(str: string, word: string) {\n return str.match(new RegExp(\"\\\\b\" + word + \"\\\\b\")) !== null;\n}\n","import { FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\nimport { containsWord } from \"../../../../utils/containsWord\";\n\nimport { ExportApi, FcbExportDtoFromJSON } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IExportDetailPageProps {\n idExport: number;\n editMode: boolean;\n}\n\nexport const ExportDetailPage: React.FunctionComponent = ({ idExport, editMode }) => {\n const { t } = useTl();\n const api = useApiService(ExportApi);\n const history = useHistory();\n const IsQueryAuthorized = React.useCallback((query: string = \"\") => {\n return (\n !containsWord(query.toUpperCase(), \"DROP\") &&\n !containsWord(query.toUpperCase(), \"UPDATE\") &&\n !containsWord(query.toUpperCase(), \"INSERT\")\n );\n }, []);\n\n const [type, tloading] = useReferential(a => a.referentialGetExportType(), true, []);\n const { data, loading, deleteItem, deleting, saveItem, saving, saveError } = useCrudApi({\n getApiFn: () =>\n idExport <= 0 ? FcbExportDtoFromJSON({ idExport: 0, actif: false }) : api.exportGet({ id: idExport }),\n saveApiFn: d => api.exportSave({ FcbExportDto: { ...d, iddb: 1 } }),\n onSavedRoute: d => `${ERoutes.exportation}/${d.idexport}/detail/edit`,\n deleteApiFn: d => api.exportDelete({ id: d.idexport }),\n onDeletedRoute: () => ERoutes.exportation\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n nom: Yup.string().required(t(ETLCodes.Required)),\n idtype: Yup.string().required(t(ETLCodes.Required)),\n actif: Yup.string().required(t(ETLCodes.Required)),\n query: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"query-authorized\", t(ETLCodes.RequeteNonAutorisee), async value => {\n return IsQueryAuthorized(value);\n })\n });\n }, [IsQueryAuthorized, t]);\n\n return (\n data && (\n {\n saveItem(toSave);\n }}\n editMode={editMode}\n loading={loading}\n validationSchema={FormSchema}\n onCancel={() => history.push(ERoutes.exportation)}\n onDelete={deleteItem}\n showDeleteButton={idExport > 0}\n saving={saving}\n deleting={deleting}\n validationErrors={saveError?.validationErrors}\n enableDirtyCheck={false}\n >\n \n \n \n \n \n \n \n \n )\n );\n};\n","import * as React from \"react\";\nimport { FieldSet, DataTable, useGridState, IDataTableColumn } from \"nsitools-react\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useTl, useApiService } from \"../../../../../hooks\";\nimport { FcbExportAccesPermissionDto, ExportApi } from \"../../../../../api\";\nimport { Checkbox } from \"@blueprintjs/core\";\n\nexport interface IExportAccesPermissionsGridProps {\n idExport: number;\n acces: FcbExportAccesPermissionDto[];\n loading: boolean;\n}\n\nexport const ExportAccesPermissionsGrid: React.FunctionComponent = ({\n idExport,\n acces = [],\n loading\n}) => {\n const { t } = useTl();\n const api = useApiService(ExportApi);\n\n const [loadingCheckboxes, setLoadingCheckboxes] = React.useState(false);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n setData(acces);\n }, [acces, setData]);\n\n const toggleSelection = React.useCallback(\n async (row: FcbExportAccesPermissionDto) => {\n setLoadingCheckboxes(true);\n row.selected = !row.selected;\n row.idexport = idExport;\n let nextData = [...acces];\n setData(nextData);\n try {\n await api.exportSaveAccesPermissions({ FcbExportAccesPermissionDto: row });\n setLoadingCheckboxes(false);\n } catch (e) {\n setLoadingCheckboxes(false);\n throw e;\n }\n },\n [acces, api, idExport, setData]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n render: (item: FcbExportAccesPermissionDto) => (\n {\n toggleSelection(item);\n }}\n disabled={loadingCheckboxes}\n />\n )\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n }\n ],\n [loadingCheckboxes, t, toggleSelection]\n );\n\n return (\n
\n \n
\n );\n};\n","import * as React from \"react\";\nimport { FieldSet, DataTable, useGridState, IDataTableColumn } from \"nsitools-react\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useTl, useApiService } from \"../../../../../hooks\";\nimport { FcbExportCentrePermissionDto, ExportApi } from \"../../../../../api\";\nimport { Checkbox } from \"@blueprintjs/core\";\n\nexport interface IExportCentrePermissionsGridProps {\n idExport: number;\n centres: FcbExportCentrePermissionDto[];\n loading: boolean;\n}\n\nexport const ExportCentrePermissionsGrid: React.FunctionComponent = ({\n idExport,\n centres = [],\n loading\n}) => {\n const { t } = useTl();\n const api = useApiService(ExportApi);\n\n const [loadingCheckboxes ,setLoadingCheckboxes ] = React.useState(false);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n setData(centres);\n }, [centres, setData]);\n\n const toggleSelection = React.useCallback(\n async (row: FcbExportCentrePermissionDto) => {\n setLoadingCheckboxes(true);\n row.selected = !row.selected;\n row.idexport = idExport;\n let nextData = [...centres];\n setData(nextData);\n try {\n await api.exportSaveCentrePermissions({ FcbExportCentrePermissionDto: row });\n setLoadingCheckboxes(false);\n } catch(e) {\n setLoadingCheckboxes(false);\n throw e;\n }\n },\n [api, centres, idExport, setData]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n render: (item: FcbExportCentrePermissionDto) => (\n ( {\n toggleSelection(item);\n }}\n disabled={loadingCheckboxes}\n />)\n )\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"nom\"\n }\n ],\n [loadingCheckboxes, t, toggleSelection]\n );\n\n return (\n
\n \n
\n );\n};\n","import * as React from \"react\";\nimport { FieldSet, DataTable, useGridState, IDataTableColumn } from \"nsitools-react\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useTl, useApiService } from \"../../../../../hooks\";\nimport { FcbExportModulePermissionDto, ExportApi } from \"../../../../../api\";\nimport { Checkbox } from \"@blueprintjs/core\";\n\nexport interface IExportModulePermissionsGridProps {\n idExport: number;\n modules: FcbExportModulePermissionDto[];\n loading: boolean;\n}\n\nexport const ExportModulePermissionsGrid: React.FunctionComponent = ({\n idExport,\n modules = [],\n loading\n}) => {\n const { t } = useTl();\n const api = useApiService(ExportApi);\n\n const [loadingCheckboxes, setLoadingCheckboxes] = React.useState(false);\n\n const tableState = useGridState({\n serverMode: false,\n enablePagination: false,\n enableFilter: false\n });\n\n const { setData } = tableState;\n\n React.useEffect(() => {\n setData(modules);\n }, [modules, setData]);\n\n const toggleSelection = React.useCallback(\n async (row: FcbExportModulePermissionDto) => {\n setLoadingCheckboxes(true);\n row.selected = !row.selected;\n row.idexport = idExport;\n let nextData = [...modules];\n setData(nextData);\n try {\n await api.exportSaveModulePermissions({ FcbExportModulePermissionDto: row });\n setLoadingCheckboxes(false);\n } catch (e) {\n setLoadingCheckboxes(false);\n throw e;\n }\n },\n [api, idExport, modules, setData]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n render: (item: FcbExportModulePermissionDto) => (\n {\n toggleSelection(item);\n }}\n disabled={loadingCheckboxes}\n />\n )\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"nom\"\n }\n ],\n [loadingCheckboxes, t, toggleSelection]\n );\n\n return (\n
\n \n
\n );\n};\n","import * as React from \"react\";\nimport { useApiService } from \"../../../../../hooks\";\nimport { ExportApi } from \"../../../../../api\";\nimport { useApiEffect } from \"nsitools-react\";\nimport { ExportAccesPermissionsGrid } from \"./ExportAccesPermissionsGrid\";\nimport { ExportCentrePermissionsGrid } from \"./ExportCentrePermissionsGrid\";\nimport { ExportModulePermissionsGrid } from \"./ExportModulePermissionsGrid\";\n\nexport interface IExportPermissionsPageProps {\n idExport: number;\n}\n\nexport const ExportPermissionsPage: React.FunctionComponent = ({ idExport }) => {\n const api = useApiService(ExportApi);\n\n const [data, loading] = useApiEffect(\n React.useCallback(() => {\n return api.exportGetPermissions({ id: idExport });\n }, [api, idExport])\n );\n return (\n <>\n \n \n \n \n );\n};\n","import { Tab, Tabs } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ExportApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { ExportDetailPage } from \"./ExportDetailPage\";\nimport { ExportPermissionsPage } from \"./permissions/ExportPermissionsPage\";\n\nexport interface IExportItemPageProps {}\n\nexport const ExportItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(ExportApi);\n\n const [displayName] = useApiEffect(() => api.exportGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.exportation}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n }\n disabled={+id === 0}\n />\n \n \n );\n};\n","import { Checkbox } from \"@blueprintjs/core\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { FcbUserGridDto, UserSearch, UtilisateurApi, EBooleanSearchTypes } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../components\";\nimport { useTl } from \"../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { useHistory } from \"react-router\";\n\nexport interface IUtilisateurListPageProps {}\n\nexport const UtilisateurListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(UtilisateurApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbUserGridDto) => (\n \n history.push(`${ERoutes.users}/${row.iduser}/detail/view`)} />\n history.push(`${ERoutes.users}/${row.iduser}/detail/edit`)} />\n \n )\n },\n { header: () => t(ETLCodes.IdUser), fieldName: \"iduser\" },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.Identifiant),\n fieldName: \"login\"\n },\n {\n header: () => t(ETLCodes.Connecte),\n fieldName: \"connecte\",\n alignment: \"center\",\n render: (row: FcbUserGridDto) => \n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.users}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.utilisateurGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(UtilisateurApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: UserSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.utilisateurBaseSearch({ UserSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import React from \"react\";\nimport { useApiService, useSystemInfo, useTl } from \"../../../../hooks\";\nimport { UserDto, UsersApi } from \"../../../../api\";\nimport { useAuth, useDialog } from \"../../../../contexts\";\nimport { Button } from \"@blueprintjs/core\";\nimport { useHistory } from \"react-router\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface ImpersonateButtonProps {\n user?: UserDto;\n}\n\nexport const ImpersonateButton: React.FC = ({ user }) => {\n const userApi = useApiService(UsersApi);\n const { reloadUser, user: userProfile } = useAuth();\n const history = useHistory();\n const { t } = useTl();\n const { ifapmeSide } = useSystemInfo();\n const { showDialogPromise } = useDialog();\n\n const [isLoading, setIsLoading] = React.useState(false);\n const onClick = React.useCallback(async () => {\n const res = await showDialogPromise({\n message: t(ETLCodes.AreYouSureYouWantToImpersonateThisUser, { userName: user.prenom + \" \" + user.nom }),\n title: t(ETLCodes.Impersonate)\n });\n if (res !== \"yes\") return;\n\n setIsLoading(true);\n await userApi.usersImpersonate({ userId: user.iduser });\n await reloadUser();\n setIsLoading(false);\n history.replace(ERoutes.home);\n }, [history, reloadUser, showDialogPromise, t, userApi, user]);\n\n const canImpersonate = React.useMemo(() => {\n return userProfile.iduser !== user.iduser && user.ifapmeSide.toUpperCase().includes(ifapmeSide.toUpperCase());\n }, [ifapmeSide, user.iduser, user.ifapmeSide, userProfile.iduser]);\n\n if (!user || !canImpersonate) return null;\n\n return (\n \n );\n};\n\nexport default ImpersonateButton;\n","import { Classes, Radio, RadioGroup } from \"@blueprintjs/core\";\nimport { FieldArray, FormikProps, getIn } from \"formik\";\nimport {\n FGCustomInput,\n FGCustomPanel,\n FGEmpty,\n FGListen,\n FGMultiSuggestInput,\n FGTextInput,\n FieldGroup,\n FieldSet,\n IFGContext\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { UserDto, UserDtoFromJSON, UtilisateurApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterCheckboxInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport FGCopyTextInput from \"../../../../components/formGenerator/FGCopyTextInput\";\nimport { useApiService, useCrudApi, useTheme, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { phoneRegex } from \"../../../../utils/phoneRegex\";\nimport ImpersonateButton from \"./ImpersonateButton\";\n\nconst StyledList = styled.div`\n margin-top: 1em;\n\n .${Classes.LABEL} {\n min-width: 350px;\n }\n`;\nexport interface IUtilisateurDetailPageProps {}\n\nexport const UtilisateurDetailPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, state } = useParams<{ id: string; tab: string; state: string }>();\n const idUtilisateur = React.useMemo(() => +id, [id]);\n const { theme } = useTheme();\n const api = useApiService(UtilisateurApi);\n const history = useHistory();\n const { ifapmeSide } = useTheme();\n\n const [passwordChange, setpasswordChange] = React.useState();\n\n const formikRef = React.useRef>();\n\n const { data, loading, saveItem, saving, deleteItem, deleting } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () =>\n idUtilisateur <= 0\n ? UserDtoFromJSON({\n iduser: 0,\n ifapmeSide: ifapmeSide === \"hope\" ? \"Hope\" : \"Walter\",\n idtype: null,\n passwordChange: true,\n pwdconfirm: null,\n validationDirection: false,\n actif: true,\n centreUsers: []\n })\n : api.utilisateurGetUser({ idUser: idUtilisateur }),\n saveApiFn: (d: UserDto) => api.utilisateurSave({ UserDto: { ...d, passwordChange: passwordChange } }),\n deleteApiFn: d => api.utilisateurDelete({ id: d.iduser }),\n onDeletedRoute: () => ERoutes.users,\n onSavedRoute: d => `${ERoutes.users}/${d.iduser}/detail/edit`\n }),\n [api, idUtilisateur, ifapmeSide, passwordChange]\n )\n );\n\n const idpersonne = React.useMemo(() => data?.idpersonne ?? 0, [data?.idpersonne]);\n const [personneTelephones, personneTelephonesLoading] = useReferential(\n a => a.referentialGetTelephonesPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n const [personneGsms, personneGsmsLoading] = useReferential(a => a.referentialGetGsmsPersonne({ idpersonne }), false, [\n idpersonne\n ]);\n\n const [personneEmails, personneEmailsLoading] = useReferential(\n a => a.referentialGetEmailsPersonne({ idpersonne }),\n false,\n [idpersonne]\n );\n\n const [levels, lloading] = useReferential(apiL => apiL.referentialGetBothAccessLevels(), true);\n const [walterLevels, wloading] = useReferential(apiL => apiL.referentialGetWalterAccessLevels(), true);\n const [hopeLevels, hloading] = useReferential(apiL => apiL.referentialGetHopeAccessLevels(), true);\n const [types, tloading] = useReferential(apiT => apiT.referentialGetAccessLevelsTypes(), true);\n\n const [formateurs, floading] = useReferential(apiC => apiC.referentialGetFormateur(), false, []);\n const [conseillers, cloading] = useReferential(apiC => apiC.referentialGetConseillersPedagogiques(), false, []);\n const [directions, dloading] = useReferential(apiC => apiC.referentialGetDirectionTerritoriale(), true, []);\n const [departements, deLoading] = useReferential(apiC => apiC.referentialGetDepartements(), true, []);\n const [postes, pLoading] = useReferential(apiC => apiC.referentialGetPostes(), true, []);\n const [sexe, sLoading] = useReferential(a => a.referentialGetSexe());\n const [societesExternes, seLoading] = useReferential(apiC => apiC.referentialGetSocietesExternes(), true, []);\n\n React.useEffect(() => {\n if (!!data) {\n setpasswordChange(data.passwordChange);\n }\n }, [data]);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n nom: Yup.string().required(t(ETLCodes.Required)),\n prenom: Yup.string().required(t(ETLCodes.Required)),\n codesexe: Yup.string().required(t(ETLCodes.Required)),\n telephone: Yup.object().test(\"tel-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (this.parent.idapprenant > 0 || !value?.numero) return true;\n const numero = value?.numero as string;\n return !!numero.match(phoneRegex);\n }),\n gsmApprenant: Yup.object().test(\"gsm-valid\", t(ETLCodes.ErrorPhoneRegex), function(value) {\n if (this.parent.idapprenant > 0 || !value?.numero) return true;\n const numero = value?.numero as string;\n return !!numero.match(phoneRegex);\n }),\n email: Yup.object().when(\"idapprenant\", {\n is: idapprenant => idapprenant <= 0,\n then: Yup.object().shape({\n adresseEmail: Yup.string().email(t(ETLCodes.InvalidEmail))\n })\n }),\n login: Yup.string().nullable(),\n azureEmail: Yup.string().email(),\n idlevel: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n pwd: Yup.string().test(\"match\", t(ETLCodes.PasswordMustMatch), function(value) {\n return !this.parent.pwdconfirm || this.parent.pwdconfirm === value;\n }),\n pwdconfirm: Yup.string().test(\"match\", t(ETLCodes.PasswordMustMatch), function(value) {\n return !this.parent.pwd || this.parent.pwd === value;\n })\n });\n }, [t]);\n\n const [previousIdtype, setPreviousIdtype] = React.useState(data?.idtype);\n React.useEffect(() => {\n if (data?.idtype) setPreviousIdtype(data?.idtype);\n }, [data?.idtype]);\n\n const isRiAriCop = React.useCallback(\n idlevel => {\n return (\n !!hopeLevels && hopeLevels.filter(l => [\"RI\", \"ARI\", \"COP\"].includes(l.label)).some(l => +l.value === +idlevel)\n );\n },\n [hopeLevels]\n );\n\n const formateurIdType = React.useMemo(() => +types?.find(l => l.label === \"Formateur\")?.value, [types]);\n\n const getShowTypeWarning = React.useCallback(\n (ctx: IFGContext) => {\n if (!ctx?.formik?.values?.idtype) return;\n if (!!ctx?.formik?.values?.idformateur && +ctx?.formik?.values?.idtype !== formateurIdType) {\n return {t(ETLCodes.UserIsFormateurWarning)};\n }\n if (!ctx?.formik?.values?.idformateur && +ctx?.formik?.values?.idtype === formateurIdType) {\n return {t(ETLCodes.UserIsNotFormateurWarning)};\n }\n },\n [formateurIdType, t, theme.warningColor]\n );\n\n const isFullCreation = React.useMemo(() => idUtilisateur <= 0 && !idpersonne, [idUtilisateur, idpersonne]);\n\n return (\n history.push(ERoutes.users)}\n saving={saving}\n onDelete={deleteItem}\n deleting={deleting}\n showDeleteButton={idUtilisateur > 0}\n formikInnerRef={f => {\n formikRef.current = f;\n }}\n minLabelWidth={350}\n >\n {\n if ((!value || value !== formik.initialValues.idlevel) && formik?.touched[\"idlevel\"]) {\n formik.setFieldValue(\"idsSocieteExterne\", []);\n }\n }}\n />\n {\n if (!value && (value ?? null) !== (previousIdtype ?? null)) {\n formik.setFieldValue(\"idconseillerPedagogique\", null);\n formik.setFieldValue(\"iddirectionTerritoriale\", null);\n formik.setFieldValue(\"idformateur\", null);\n setPreviousIdtype(value);\n }\n }}\n />\n\n }\n >\n \n \n \n \n {isFullCreation ? (\n \n ) : (\n \n )}\n {isFullCreation ? (\n \n ) : (\n \n )}\n {isFullCreation ? (\n \n ) : (\n \n )}\n \n \n \n \n \n\n \n \n \n \n \n {\n if (formik.touched?.ifapmeSide) formik.setFieldValue(\"idlevel\", null);\n }}\n />\n \n {ctx => (\n {\n ctx.formik.setFieldValue(\"ifapmeSide\", e.currentTarget.value);\n ctx.formik.setFieldTouched(\"ifapmeSide\");\n }}\n disabled={!ctx?.editMode}\n >\n \n \n \n \n )}\n \n \n {ctx => (\n <>\n {ctx?.formik?.values?.ifapmeSide === \"Hope|Walter\" ? (\n \n ) : ctx?.formik?.values?.ifapmeSide === \"Walter\" ? (\n \n ) : (\n \n )}\n \n )}\n \n \n {ctx => (\n <>\n {ctx?.formik?.values?.ifapmeSide?.includes(\"Walter\") && (\n \n )}\n \n )}\n \n\n ctx?.formik?.values?.ifapmeSide?.includes(\"Walter\")}\n />\n \n ctx?.formik?.values?.ifapmeSide?.includes(\"Hope\") && isRiAriCop(ctx?.formik?.values?.idlevel)\n }\n />\n \n \n \n ctx?.formik?.values?.ifapmeSide?.includes(\"Walter\")}\n />\n \n {ctx => (\n <>\n {ctx?.formik?.values?.idtype === 1 && (\n \n )}\n {ctx?.formik?.values?.idtype === 2 && (\n \n )}\n {ctx?.formik?.values?.idtype === 3 && (\n \n )}\n \n )}\n \n \n \n \n {ctx => (\n <>\n {ctx?.formik?.values?.ifapmeSide?.includes(\"Walter\") && (\n \n {({ formik: values }) => (\n {\n const data = (values.values as UserDto).centreUsers;\n return (\n \n \n
\n {data?.map((d, index) => (\n \n ))}\n
\n
\n
\n );\n }}\n >\n )}\n
\n )}\n \n )}\n
\n
\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { UtilisateurCentresLiesSwitch, UtilisateurServicesLiesSwitch } from \"..\";\nimport { UsersApi, UtilisateurApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { UtilisateurDetailPage } from \"./UtilisateurDetailPage\";\n\nexport interface IUtilisateurItemPageProps {}\n\nexport const UtilisateurItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n const api = useApiService(UtilisateurApi);\n const userApi = useApiService(UsersApi);\n\n const [displayName] = useApiEffect(() => api.utilisateurGetDisplayName({ id: +id }), [id]);\n const [profile] = useApiEffect(() => userApi.usersGetProfile({ userId: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.users}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n {!!profile && profile.ifapmeSide?.includes(\"Walter\") && (\n } disabled={+id <= 0} />\n )}\n {!!profile && profile.ifapmeSide?.includes(\"Hope\") && (\n }\n disabled={+id <= 0}\n />\n )}\n \n \n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { UsersCentresLiesApi, UsersCentresLiesSearch } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IUtilisateurCentresLiesPageProps {}\n\nexport const UtilisateurCentresLiesPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(UsersCentresLiesApi);\n const { id, state } = useParams<{ id: string; tab: string; state: string }>();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: UsersCentresLiesSearch) => {\n sObj.idUser = +id;\n return api.usersCentresLiesBaseSearch({ UsersCentresLiesSearch: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n }\n ],\n [t]\n );\n\n return (\n history.push(`${ERoutes.users}/${id}/centres/${state}/selector`)}\n intent={Intent.PRIMARY}\n text={t(ETLCodes.Modify)}\n />\n }\n >\n \n
\n );\n};\n","import { IDataTableColumn, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport { CentreApi, UsersCentresLiesApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IUtilisateurCentresLiesSelectorProps {}\n\nexport const UtilisateurCentresLiesSelector: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const cApi = useApiService(CentreApi);\n const mApi = useApiService(UsersCentresLiesApi);\n const { id, state } = useParams<{ id: string; tab: string; state: string }>();\n const dialogContext = useDialog();\n\n const [data, loading] = useApiEffect(() => mApi.usersCentresLiesGetCentres({ idUser: +id }));\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"nom\",\n header: () => t(ETLCodes.Nom)\n }\n ];\n }, [t]);\n\n return (\n !loading && (\n cApi.centreSearchCentreIds({ CentreSearch: sObj })}\n getCriteriasFunction={() => cApi.centreGetSearchCriterias({ includeListsValues: true })}\n searchFunction={sObj => cApi.centreBaseSearch({ CentreSearch: sObj })}\n onSave={async newIds => {\n await mApi.usersCentresLiesSaveCentres({\n FcbUsersCentresLiesDto: { idUser: +id, idsCentres: newIds }\n });\n\n history.push(`${ERoutes.users}/${id}/centres/${state}`);\n }}\n onCancel={() => history.push(`${ERoutes.users}/${id}/centres/${state}`)}\n overrideListValues={{ Idstade: i => i.displayValue }}\n dialogContext={dialogContext}\n sortKeys={{ nom: \"ASC\" }}\n />\n )\n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\nimport { ERoutes } from \"../../../../../AppRouter\";\n\nimport { UtilisateurCentresLiesPage } from \"./UtilisateurCentresLiesPage\";\nimport { UtilisateurCentresLiesSelector } from \"./UtilisateurCentresLiesSelector\";\n\nexport interface IUtilisateurCentresLiesSwitchProps {}\n\nexport const UtilisateurCentresLiesSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { IDataTableColumn, useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ServiceTutelleApi, UsersServicesLiesApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { WSelector } from \"../../../../../components/selector/WSelector\";\nimport { useDialog } from \"../../../../../contexts\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IUtilisateurServicesLiesSelectorProps {}\n\nexport const UtilisateurServicesLiesSelector: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const sApi = useApiService(ServiceTutelleApi);\n const mApi = useApiService(UsersServicesLiesApi);\n const { id, state } = useParams<{ id: string; tab: string; state: string }>();\n const dialogContext = useDialog();\n\n const [data, loading] = useApiEffect(() => mApi.usersServicesLiesGetUserServices({ idUser: +id }));\n\n const columns = React.useMemo(() => {\n return [\n {\n fieldName: \"nom\",\n header: () => t(ETLCodes.Nom)\n }\n ];\n }, [t]);\n\n return (\n !loading && (\n \n sApi.serviceTutelleSearchServiceTutelleIds({ ServiceTutelleSearch: { ...sObj, actifManual: true } })\n }\n getCriteriasFunction={() => sApi.serviceTutelleGetSearchCriterias({ includeListsValues: true })}\n searchFunction={sObj => sApi.serviceTutelleBaseSearch({ ServiceTutelleSearch: { ...sObj, actifManual: true } })}\n onSave={async newIds => {\n await mApi.usersServicesLiesSaveServices({\n UsersServicesLiesDto: { idUser: +id, idsServiceTutelles: newIds }\n });\n\n history.push(`${ERoutes.users}/${id}/services/${state}`);\n }}\n onCancel={() => history.push(`${ERoutes.users}/${id}/services/${state}`)}\n dialogContext={dialogContext}\n sortKeys={{ nom: \"ASC\" }}\n />\n )\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { DataTable, FieldSet, IDataTableColumn, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { UsersServicesLiesApi, UsersServicesLiesSearchDto, UtilisateurApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { useQuery } from \"react-query\";\n\nexport interface IUtilisateurServicesLiesPageProps {}\n\nexport const UtilisateurServicesLiesPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(UsersServicesLiesApi);\n const { id, state } = useParams<{ id: string; tab: string; state: string }>();\n\n const uApi = useApiService(UtilisateurApi);\n\n const fetchIsUserCalc = React.useCallback(async () => {\n if (+id <= 0) return false;\n return (await uApi.utilisateurIsCalc({ iduser: +id }))?.value;\n }, [id, uApi]);\n\n const { data: isUserCalc, isLoading: calcLoading } = useQuery([\"user-is-calc\", id], fetchIsUserCalc, {\n enabled: true\n });\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { nom: \"ASC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: UsersServicesLiesSearchDto) => {\n sObj.idUser = +id;\n return api.usersServicesLiesBaseSearch({ UsersServicesLiesSearchDto: sObj });\n },\n [api, id]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n }\n ],\n [t]\n );\n\n return (\n history.push(`${ERoutes.users}/${id}/services/${state}/selector`)}\n intent={Intent.PRIMARY}\n text={t(ETLCodes.Modify)}\n />\n )\n }\n >\n \n \n );\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router\";\n\nimport { UtilisateurServicesLiesPage } from \"./UtilisateurServicessLiesPage\";\nimport { UtilisateurServicesLiesSelector } from \"./UtilisateurServicesLiesSelector\";\nimport { ERoutes } from \"../../../../../AppRouter\";\n\nexport interface IUtilisateurServicesLiesSwitchProps {}\n\nexport const UtilisateurServicesLiesSwitch: React.FunctionComponent = () => {\n return (\n \n \n \n \n );\n};\n","import { FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { ERoutes } from \"../../../AppRouter\";\nimport { FGWalterSelectInput, PageBase, SmallFormGenerator } from \"../../../components\";\nimport { useTl } from \"../../../hooks\";\nimport { useReferential } from \"../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../locales\";\n\nexport interface IKitSurviePageProps {}\n\nexport const KitSurviePage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const [centre, centreLoading] = useReferential(a => a.referentialGetCentre(), false, []);\n return (\n \n {}}\n editMode={true}\n loading={false}\n onCancel={() => history.push(ERoutes.kitSurvie)}\n onDelete={() => {}}\n showDeleteButton={false}\n saving={false}\n deleting={false}\n hideButtons={true}\n >\n \n \n \n \n \n );\n};\n","import { Radio } from \"@blueprintjs/core\";\nimport { DataTable, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { FcbGestionDroitsGridDto, GestionDroitsApi, GestionDroitsSearch } from \"../../../api\";\nimport { useApiService, useTl } from \"../../../hooks\";\nimport { ETLCodes } from \"../../../locales\";\n\nexport interface IGestionDroitsGridProps {\n idaccesLevel: number;\n}\n\nexport const GestionDroitsGrid: React.FunctionComponent = ({ idaccesLevel }) => {\n const { t, tUnsafe } = useTl();\n const api = useApiService(GestionDroitsApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: true,\n availablePageSizes: [5, 15, 25],\n pageSize: 25,\n sortKeys: { module: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: GestionDroitsSearch) => {\n sObj.idaccesLevel = idaccesLevel;\n return api.gestionDroitsBaseSearch({ GestionDroitsSearch: sObj });\n },\n [api, idaccesLevel]\n );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: false\n });\n const { setData, data } = tableState;\n\n React.useEffect(() => {\n if (idaccesLevel) {\n search();\n }\n }, [idaccesLevel, search]);\n\n const changePermission = React.useCallback(\n (value: string, row: FcbGestionDroitsGridDto) => {\n const dataToSet = [...data];\n const index = dataToSet.findIndex(d => d.idaction === row.idaction && d.idaccesLevel === row.idaccesLevel);\n dataToSet[index][\"permissions\"] = value;\n dataToSet[index][\"idaccesLevel\"] = idaccesLevel;\n setData(dataToSet);\n api.gestionDroitsSavePermission({ FcbGestionDroitsGridDto: dataToSet[index] });\n },\n [api, data, idaccesLevel, setData]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n header: () => t(ETLCodes.Module),\n fieldName: \"module\",\n autoFitContent: true,\n render: (row: FcbGestionDroitsGridDto) => tUnsafe(\"ActionCode_\" + row.module)\n },\n {\n computed: true,\n header: () => t(ETLCodes.Tab),\n fieldName: \"tab\",\n autoFitContent: true,\n render: (row: FcbGestionDroitsGridDto) => (!!row.tab ? tUnsafe(\"ActionCode_\" + row.tab) : \"\")\n },\n {\n computed: true,\n header: () => t(ETLCodes.Aucun),\n fieldName: \"permissionNone\",\n autoFitContent: true,\n alignment: \"center\" as any,\n render: (row: FcbGestionDroitsGridDto) => (\n changePermission(null, row)} />\n )\n },\n {\n computed: true,\n header: () => t(ETLCodes.Lecture),\n fieldName: \"permissionR\",\n autoFitContent: true,\n alignment: \"center\" as any,\n render: (row: FcbGestionDroitsGridDto) => (\n changePermission(\"R\", row)} />\n )\n },\n {\n computed: true,\n header: () => t(ETLCodes.Lecture_Ecriture),\n fieldName: \"permissionRW\",\n autoFitContent: true,\n alignment: \"center\" as any,\n render: (row: FcbGestionDroitsGridDto) => (\n changePermission(\"RW\", row)} />\n )\n },\n {\n computed: true,\n header: () => t(ETLCodes.Lecture_Ecriture_Suppression),\n fieldName: \"permissionRWD\",\n autoFitContent: true,\n alignment: \"center\" as any,\n render: (row: FcbGestionDroitsGridDto) => (\n changePermission(\"RWD\", row)} />\n )\n }\n ],\n [changePermission, t, tUnsafe]\n );\n\n return (\n <>\n \n \n );\n};\n","import { FGCustomPanel, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport * as Yup from \"yup\";\n\nimport { FcbGestionDroitsGridDtoFromJSON, GestionDroitsApi } from \"../../../api\";\nimport { ERoutes } from \"../../../AppRouter\";\nimport { FGWalterSelectInput, PageBase, SmallFormGenerator } from \"../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../hooks\";\nimport { useReferential } from \"../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../locales\";\nimport { GestionDroitsGrid } from \"./GestionDroitsGrid\";\n\nexport interface IGestionDroitsListPageProps {}\n\nexport const GestionDroitsListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const api = useApiService(GestionDroitsApi);\n const [accesLevels, alLoading] = useReferential(a => a.referentialGetAccesLevelList(), true, [], true);\n\n const { data, saving, saveItem } = useCrudApi({\n getApiFn: () => {\n return FcbGestionDroitsGridDtoFromJSON({\n idaccesLevel: accesLevels && accesLevels.length > 0 ? +accesLevels[0].value : null\n });\n },\n saveApiFn: d => api.gestionDroitsSavePermission({ FcbGestionDroitsGridDto: d }),\n onSavedRoute: () => `${ERoutes.gestionDroits}`,\n deleteApiFn: () => {},\n getDeps: [accesLevels]\n });\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idaccesLevel: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n \n
\n {data && (\n \n \n \n \n \n \n {ctx => {\n return ;\n }}\n \n \n \n )}\n
\n
\n );\n};\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ERapportHopeType, RapportHopeApi, RapportHopeGridDto, RapportHopeSearchDto } from \"../../../api\";\nimport { ERoutes } from \"../../../AppRouter\";\nimport { BooleanColumn, PrintButton, SearchTablePage } from \"../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../hooks\";\nimport { ETLCodes } from \"../../../locales\";\n\nexport interface IPublipostageListPageProps {}\n\nexport const PublipostageListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(RapportHopeApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: RapportHopeGridDto) => (\n \n window.open(`#${ERoutes.SSRSReports}/${row.idrapportHope}`, \"_blank\")}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Categorie),\n fieldName: \"categorie\"\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Actif),\n fieldName: \"actif\",\n alignment: \"center\",\n render: (row: RapportHopeGridDto) => \n }\n ],\n [t]\n );\n\n const apiFactory = useAbortableApiServiceFactory(RapportHopeApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: RapportHopeSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.rapportHopeBaseSearch({ RapportHopeSearchDto: { ...sObj, type: ERapportHopeType.PUBLI } });\n },\n [apiFactory]\n );\n const criteriasFn = React.useCallback(async () => {\n var criterias = await api.rapportHopeGetSearchCriterias({ includeListsValues: true });\n return criterias.filter(c => c.criteria !== \"Actif\" && c.criteria !== \"IdrapportHopeType\" && c.criteria !== \"Path\");\n }, [api]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ERapportHopeType, RapportHopeApi, RapportHopeGridDto, RapportHopeSearchDto } from \"../../../api\";\nimport { ERoutes } from \"../../../AppRouter\";\nimport { BooleanColumn, PrintButton, SearchTablePage } from \"../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../hooks\";\nimport { ETLCodes } from \"../../../locales\";\n\nexport interface IExportHopeListPageProps {}\n\nexport const ExportHopeListPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(RapportHopeApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: RapportHopeGridDto) => (\n \n window.open(`#${ERoutes.SSRSReports}/${row.idrapportHope}`, \"_blank\")}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Categorie),\n fieldName: \"categorie\"\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Actif),\n fieldName: \"actif\",\n alignment: \"center\",\n render: (row: RapportHopeGridDto) => \n }\n ],\n [t]\n );\n\n const apiFactory = useAbortableApiServiceFactory(RapportHopeApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: RapportHopeSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.rapportHopeBaseSearch({ RapportHopeSearchDto: { ...sObj, type: ERapportHopeType.EXPORT } });\n },\n [apiFactory]\n );\n const criteriasFn = React.useCallback(async () => {\n var criterias = await api.rapportHopeGetSearchCriterias({ includeListsValues: true });\n return criterias.filter(c => c.criteria !== \"Actif\" && c.criteria !== \"IdrapportHopeType\" && c.criteria !== \"Path\");\n }, [api]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Button, Checkbox, Colors, Icon, IconName, Menu, Spinner } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { MenuItem2, Popover2 } from \"@blueprintjs/popover2\";\nimport { format } from \"date-fns\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport {\n EBooleanSearchTypes,\n EPrintingQueueStatus,\n PrintingQueueApi,\n PrintingQueueGridDto,\n PrintingQueueSearchDto\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { DeleteButton, DownloadButton, SearchTablePage } from \"../../../../components\";\nimport { useEventsContext, usePrintingQueueContext } from \"../../../../contexts\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { toCleanUtc } from \"../../../../utils\";\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nexport interface IPrintingHistoryProps {}\n\nexport const PrintingHistory: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(PrintingQueueApi);\n const {\n deleteFromQueue,\n cancelQueue,\n rowCancelling,\n rowDeleting,\n refreshQueue,\n downloadFile,\n rowDownloading,\n massDownload,\n massDownloading,\n rowRetrying,\n showPrinting,\n rowShowing,\n massMask,\n massDelete\n } = usePrintingQueueContext();\n const { dispatchEvent } = useEventsContext();\n const [selectedFichierIds, setSelectedFichierIds] = React.useState([]);\n const [selectedIds, setSelectedIds] = React.useState([]);\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const lastSearchObject = React.useRef();\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n api\n .printingQueueSearchIds({\n PrintingQueueSearchDto: { ...lastSearchObject?.current, forceSkip: 0, forceTake: 0 }\n })\n .then(allIds => {\n if (allIds.idsprintingQueue.length === selectedIds.length) {\n setSelectedIds([]);\n setNbReturnedIds(0);\n } else {\n setSelectedIds(allIds.idsprintingQueue);\n setNbReturnedIds(allIds.idsprintingQueue.length);\n }\n if (allIds.idsfichier.length === selectedFichierIds.length) {\n setSelectedFichierIds([]);\n } else {\n setSelectedFichierIds(allIds.idsfichier);\n }\n setSelectAllLoading(false);\n });\n }, [api, selectedFichierIds.length, selectedIds.length]);\n\n const toggleSelection = React.useCallback(\n (item: PrintingQueueGridDto) => {\n if (!selectedIds.includes(item.idprintingQueue)) {\n setSelectedIds(ids => [...ids, item.idprintingQueue]);\n } else {\n setSelectedIds(ids => ids.filter(id => id !== item.idprintingQueue));\n }\n if (!selectedFichierIds.includes(item.idfichier)) {\n setSelectedFichierIds(ids => [...ids, item.idfichier]);\n } else {\n setSelectedFichierIds(ids => ids.filter(id => id !== item.idfichier));\n }\n },\n [selectedFichierIds, selectedIds]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIds.length} onChange={selectAll} />\n ),\n render: (item: PrintingQueueGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: PrintingQueueGridDto) => (\n \n {row.status === EPrintingQueueStatus.DONE && !!row.idfichier && (\n downloadFile(row.idprintingQueue, row.idfichier)}\n loading={\n rowCancelling === row.idprintingQueue ||\n rowDeleting === row.idprintingQueue ||\n rowDownloading === row.idprintingQueue ||\n rowRetrying === row.idprintingQueue ||\n rowShowing === row.idprintingQueue\n }\n />\n )}\n {(row.status === EPrintingQueueStatus.ERROR || row.status === EPrintingQueueStatus.WAITING) && (\n {\n await deleteFromQueue(row.idprintingQueue);\n refreshQueue();\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }}\n loading={\n rowCancelling === row.idprintingQueue ||\n rowDeleting === row.idprintingQueue ||\n rowDownloading === row.idprintingQueue ||\n rowRetrying === row.idprintingQueue ||\n rowShowing === row.idprintingQueue\n }\n />\n )}\n {row.status === EPrintingQueueStatus.GENERATING && (\n {\n e.stopPropagation();\n await cancelQueue(row.idprintingQueue);\n refreshQueue();\n }}\n />\n )}\n {row.status === EPrintingQueueStatus.DONE && (\n {\n if (row.hidden) await showPrinting(row.idprintingQueue);\n else await deleteFromQueue(row.idprintingQueue);\n refreshQueue();\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }}\n />\n )}\n \n )\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"status\",\n alignment: \"center\",\n autoFitContent: true,\n render: (row: PrintingQueueGridDto) => {\n let icon: IconName;\n let color;\n switch (row.status) {\n case \"WAITING\":\n icon = \"time\";\n color = Colors.ORANGE3;\n break;\n case \"GENERATING\":\n icon = \"refresh\";\n color = Colors.BLUE3;\n break;\n case \"DONE\":\n icon = \"tick-circle\";\n color = Colors.GREEN3;\n break;\n case \"CANCELLED\":\n icon = \"remove\";\n color = Colors.GRAY3;\n break;\n default:\n icon = \"cross-circle\";\n color = Colors.RED3;\n break;\n }\n return ;\n }\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"displayName\"\n },\n {\n header: () => t(ETLCodes.Rapport),\n fieldName: \"nomRapport\"\n },\n {\n header: () => t(ETLCodes.CreatedOn),\n fieldName: \"creationDate\",\n render: (row: PrintingQueueGridDto) => format(toCleanUtc(row.creationDate), \"dd/MM/yyyy HH:mm:ss\")\n }\n ],\n [\n cancelQueue,\n deleteFromQueue,\n dispatchEvent,\n downloadFile,\n nbReturnedIds,\n refreshQueue,\n rowCancelling,\n rowDeleting,\n rowDownloading,\n rowRetrying,\n rowShowing,\n selectAll,\n selectAllLoading,\n selectedIds,\n showPrinting,\n t,\n toggleSelection\n ]\n );\n\n const apiFactory = useAbortableApiServiceFactory(PrintingQueueApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: PrintingQueueSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n if (JSON.stringify(sObj) !== JSON.stringify(lastSearchObject?.current)) {\n lastSearchObject.current = sObj;\n }\n return abortableApi.printingQueueBaseSearch({\n PrintingQueueSearchDto: sObj\n });\n },\n [apiFactory]\n );\n const criteriasFn = React.useCallback(\n async () => await api.printingQueueGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n const globalActions = React.useMemo(\n () => (\n \n \n {\n e.stopPropagation();\n await massDownload(selectedFichierIds);\n }}\n />\n {\n e.stopPropagation();\n await massDelete(selectedIds);\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }}\n />\n {\n e.stopPropagation();\n await massMask(selectedIds);\n dispatchEvent(\"SEARCH_TABLE_REFRESH\");\n }}\n />\n \n \n }\n >\n \n \n ),\n [dispatchEvent, massDelete, massDownload, massDownloading, massMask, selectedFichierIds, selectedIds, t]\n );\n\n return (\n \n );\n};\n\nexport default PrintingHistory;\n","import { Alignment, Button, Classes, Intent, Menu, MenuItem, Navbar, Popover } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { saveAs } from \"file-saver\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { PrintingQueue } from \".\";\n\nimport { baseUrl } from \"../apiConfig\";\nimport { ERoutes } from \"../AppRouter\";\nimport assets from \"../assets\";\nimport { useBeIdCardContext, useBreadcrumbs, useGlobalData } from \"../contexts\";\nimport { useAuth } from \"../contexts/AuthContext\";\nimport { useTheme, useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\nimport { SiteTheme } from \"../theme\";\nimport { AppBreadcrumb } from \"./AppBreadcrumb\";\n\ninterface IHeaderProps {\n showMenuIcon: boolean;\n toggleLeftMenu?: () => void;\n toggleExportMenu?: () => void;\n toggleReportMenu?: () => void;\n isDark?: boolean;\n onDarkSwitchChange?: (e: boolean) => void;\n}\n\nconst NavBarStyled = styled(Navbar)<{ theme: SiteTheme }>`\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.headerLeftColor},\n ${({ theme }) => theme.headerLeftColor} 25%,\n rgba(255, 255, 255, 0.5),\n white 85%,\n ${({ theme }) => theme.headerRightColor} 90%\n ),\n url(${assets.images.headerImage}) !important;\n background-position: 0% 35%;\n height: 75px !important;\n\n & > .${Classes.NAVBAR_GROUP} {\n height: 75px;\n }\n\n & .${Classes.ICON} {\n ${props => (props.theme.siteTheme === \"hope\" ? \"color: white !important\" : \"\")}\n }\n\n & .impersonatorText {\n font-size: smaller;\n font-style: italic;\n }\n`;\n\nconst IfapmeImage = styled.img`\n height: 75px;\n`;\n\nconst ButtonsLogo = styled.img`\n height: 30px;\n margin-right: 10px;\n cursor: pointer;\n`;\n\nconst WalterImage = styled.img<{ color: string }>`\n &.walter {\n margin-top: 16px;\n height: 80px;\n }\n\n &.hope {\n height: 50px;\n filter: drop-shadow(1px 1px 3px #cecece);\n }\n`;\n\nconst PopoverContent = styled.div`\n padding: 0.5rem;\n`;\n\nexport const Header: React.FC = props => {\n const history = useHistory();\n const { logout, user } = useAuth();\n const { t } = useTl();\n const { theme, ifapmeSide } = useTheme();\n const { arWalterManuelUrl, arHopeManuelUrl, manuelUrl, priseEnMainUrl } = useGlobalData();\n\n const { breadcrumbs } = useBreadcrumbs();\n const { connected, newVersionAvailable } = useBeIdCardContext();\n\n const downloadBeIdSetup = React.useCallback(() => {\n const l = baseUrl + \"/api/carteIdentite/downloadBeid\";\n saveAs(l);\n }, []);\n\n const userFullName = React.useMemo(() => {\n if (!user) return \"\";\n return user.prenom + \" \" + user.nom;\n }, [user]);\n\n const impersonatorUser = React.useMemo(() => {\n if (!user?.impersonator) return null;\n return user.impersonator.prenom + \" \" + user.impersonator.nom;\n }, [user?.impersonator]);\n\n return (\n
\n \n \n {props.toggleLeftMenu && props.showMenuIcon && (\n <>\n
\n }\n interactionKind=\"hover\"\n >\n \n \n )}\n {/* {t(ETLCodes.ExportExcel)}
}\n interactionKind=\"hover\"\n > */}\n {props.toggleExportMenu && (\n \n )}\n {/* */}\n {/* {t(ETLCodes.AllReports)}
}\n interactionKind=\"hover\"\n > */}\n {props.toggleReportMenu && (\n \n )}\n {/* {devMode && } */}\n {/* */}\n \n {(!!manuelUrl || !!priseEnMainUrl) && ifapmeSide === \"hope\" && (\n \n \n window.open(manuelUrl, \"_blank\")}\n disabled={!manuelUrl}\n icon=\"download\"\n />\n window.open(priseEnMainUrl, \"_blank\")}\n disabled={!priseEnMainUrl}\n icon=\"download\"\n />\n window.open(arHopeManuelUrl, \"_blank\")}\n disabled={!arHopeManuelUrl}\n icon=\"download\"\n />\n \n \n }\n interactionKind=\"hover\"\n >\n {\n e.stopPropagation();\n }}\n />\n \n )}\n {ifapmeSide === \"walter\" && (\n \n \n window.open(arWalterManuelUrl, \"_blank\")}\n disabled={!arWalterManuelUrl}\n icon=\"download\"\n />\n \n \n }\n interactionKind=\"hover\"\n >\n {\n e.stopPropagation();\n }}\n />\n \n )}\n \n logout()}>\n \n }\n >\n \n
{userFullName}
\n {impersonatorUser && (\n
\n ({t(ETLCodes.OnBehalfOf)} {impersonatorUser})\n
\n )}\n
\n }\n minimal={true}\n >\n \n \n \n
\n );\n};\n","export * from \"./Header\";\nexport * from \"./NavigationMenu\";\nexport * from \"./PageBase\";\nexport * from \"./SmallFormGenerator\";\nexport * from \"./AppBreadcrumb\";\nexport * from \"./DialogRoot\";\nexport * from \"./applicationButtons\";\nexport * from \"./searchTablePage\";\nexport * from \"./BackTab\";\nexport * from \"./NumberShower\";\nexport * from \"./LocaliteSelect\";\nexport * from \"./CommuneSelect\";\nexport * from \"./NationaliteSelect\";\nexport * from \"./TimeDisplay\";\nexport * from \"./formGenerator\";\nexport * from \"./PhotoModifier\";\nexport * from \"./BeIdCard\";\nexport * from \"./CardAttribute\";\nexport * from \"./personTooltip\";\nexport * from \"./ModulesEnum\";\nexport * from \"./tableInput\";\nexport * from \"./ExportMenu\";\nexport * from \"./RapportMenu\";\nexport * from \"./StyledError\";\nexport * from \"./ProtectedTabs\";\nexport * from \"./TableEditors\";\nexport * from \"./spreadsheet\";\nexport * from \"./ProgressBarDialog\";\nexport * from \"./FooterIfapme\";\nexport * from \"./AppTheme\";\nexport * from \"./ModifiedBy\";\nexport * from \"./customColumns\";\nexport * from \"./CustomBulletList\";\nexport * from \"./StillInDev\";\nexport * from \"./ErrorText\";\nexport * from \"./WarningText\";\nexport * from \"./CodePostalSuggest\";\nexport * from \"./adresseDoublons\";\nexport * from \"./CustomStateDisplay\";\nexport * from \"./LoadingDots\";\nexport * from \"./RapportHopeViewer\";\nexport * from \"./GenericProgressLoading\";\nexport * from \"./PdfViewer\";\nexport * from \"./parcoursFormation\";\nexport * from \"./carousel\";\nexport * from \"./selects\";\nexport * from \"./PrintingQueue\";\nexport * from \"./StartupDialog\";\n","export * from \"./NavigationMenu\";\nexport * from \"./INavigationItem\";\n","import { Card, IBreadcrumbProps } from \"@blueprintjs/core\";\nimport { ErrorBoundary, Loading } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { ERoutes } from \"../AppRouter\";\nimport { useBreadcrumbs } from \"../contexts\";\n\nexport interface ICustomBreadcrumbProps extends Omit {\n route?: string | ERoutes;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n width: 100%;\n height: 100%;\n align-self: stretch;\n padding: 0.5em;\n overflow: auto;\n`;\n\ninterface IPageBase {\n breadCrumbs?: ICustomBreadcrumbProps[];\n isLoading?: boolean;\n withCard?: boolean;\n fullHeight?: boolean;\n}\nexport const PageBase: React.FunctionComponent = ({\n breadCrumbs,\n children,\n isLoading = false,\n withCard = true,\n fullHeight = false\n}) => {\n const { setBaseBreadcrumb, setDetailsBreadcrumb } = useBreadcrumbs();\n\n const history = useHistory();\n\n React.useEffect(() => {\n setDetailsBreadcrumb([]);\n }, [setDetailsBreadcrumb]);\n\n React.useEffect(() => {\n if (breadCrumbs) {\n const nextBr: IBreadcrumbProps[] = breadCrumbs.map(br =>\n br.route\n ? {\n ...br,\n onClick: () => {\n if (br.route) {\n history.push(br.route);\n }\n }\n }\n : { ...br }\n );\n\n setBaseBreadcrumb(nextBr);\n }\n }, [breadCrumbs, history, setBaseBreadcrumb]);\n\n const Wrapper = React.useMemo(() => {\n if (withCard)\n return (props: any) => (\n \n {props.children}\n \n );\n else return (props: any) => <>{props.children};\n }, [fullHeight, withCard]);\n\n return (\n \n \n \n {children}\n \n \n \n );\n};\n","import * as React from \"react\";\nimport { Dialog, Classes, Button } from \"@blueprintjs/core\";\nimport { useTl } from \"../hooks/useTl\";\nimport { ETLCodes } from \"../locales/ETLCodes\";\nimport { useDialog, DialogResultButtonType } from \"../contexts\";\n\nexport const DialogRoot: React.FunctionComponent = () => {\n const { dialogData, hideDialog } = useDialog();\n\n const isShown = React.useMemo(() => {\n return !!dialogData;\n }, [dialogData]);\n\n const message = dialogData ? dialogData.message : \"\";\n const title = dialogData ? dialogData.title || \"Confirm\" : \"\";\n\n const { t } = useTl();\n\n const finalButtons = React.useMemo(() => {\n if (dialogData && dialogData.buttons) return dialogData.buttons;\n return [\n {\n intent: \"danger\",\n text: t(ETLCodes.General_No),\n resultType: \"no\"\n },\n {\n intent: \"success\",\n text: t(ETLCodes.General_Yes),\n resultType: \"yes\"\n }\n ];\n }, [dialogData, t]);\n\n return (\n {\n hideDialog(\"cancel\");\n }}\n style={{ zIndex: 99999 }}\n portalClassName=\"alert-dialog\"\n enforceFocus={false}\n >\n
\n

{message}

\n
\n
\n
\n {finalButtons.map((bt, i) => {\n const { resultType, ...btProps } = bt;\n return ;\n })}\n
\n
\n \n );\n};\n","import * as React from \"react\";\nimport { ITabProps, Tab, Button } from \"@blueprintjs/core\";\nimport { ERoutes } from \"../AppRouter\";\nimport { useHistory } from \"react-router\";\n\ninterface IBackTabProps extends Omit {\n title: string;\n backRoute: ERoutes | string;\n}\n\nexport const BackTab: React.FunctionComponent = ({ title, backRoute, ...tabProps }) => {\n const history = useHistory();\n\n const onButtonClick = React.useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n history.push(backRoute);\n },\n [backRoute, history]\n );\n\n return (\n \n
\n \n    \n
\n {title}\n
\n }\n {...tabProps}\n >\n );\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\n\ninterface INumberShowerProps {\n ETLCode: ETLCodes;\n text: string;\n}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nconst ETLCodeContainer = styled.div`\n font-weight: bold;\n`;\n\nexport const NumberShower: React.FunctionComponent = ({ ETLCode, text }) => {\n const { t } = useTl();\n\n return (\n \n {t(ETLCode)}:  \n {text}\n \n );\n};\n","import { useDebounce, useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Tooltip } from \"@blueprintjs/core\";\n\nimport { FGWalterSelectInput } from \".\";\nimport { useTl } from \"../hooks\";\nimport { useReferential } from \"../hooks/useReferential\";\nimport { ETLCodes } from \"../locales\";\nimport { getIn } from \"formik\";\n\ninterface ICommuneSelectProps {\n codePays?: string;\n codePostal: string;\n name: string;\n enableAutoSelect?: boolean;\n labelStyles?: React.CSSProperties;\n disabled?: boolean;\n readonly?: boolean;\n}\n\nconst StyledTooltip = styled(Tooltip)`\n display: flex;\n & > * {\n flex: 1;\n }\n`;\n\nexport const CommuneSelect: React.FunctionComponent = ({\n codePays = \"BE\",\n codePostal,\n name,\n enableAutoSelect = true,\n disabled,\n readonly\n}) => {\n const { t } = useTl();\n\n const debouncedCodePays = useDebounce(codePays, 500);\n const debouncedCodePostal = useDebounce(codePostal, 500);\n const [data, loading] = useReferential(\n a => a.referentialGetCommuneFromCodePostal({ codePays: debouncedCodePays, codePostal: debouncedCodePostal }),\n false,\n [debouncedCodePostal]\n );\n const { formik } = useFGContext();\n\n React.useEffect(() => {\n if (\n !!codePostal &&\n enableAutoSelect &&\n data?.length === 1 &&\n getIn(formik?.values, name) !== data[0].value &&\n !!formik.touched[name]\n ) {\n formik.setFieldValue(name, data[0].value);\n }\n }, [codePostal, data, enableAutoSelect, formik, name]);\n\n return (\n \n \n \n );\n};\n","import { getIn } from \"formik\";\nimport { useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { FGWalterSelectInput } from \".\";\nimport { useTl } from \"../hooks\";\nimport { useReferential } from \"../hooks/useReferential\";\nimport { ETLCodes } from \"../locales\";\n\ninterface INationaliteSelectProps {\n name: string;\n readonly?: boolean;\n codeSexeFieldName?: string;\n}\n\nexport const NationaliteSelect: React.FunctionComponent = ({\n name,\n readonly,\n codeSexeFieldName\n}) => {\n const { t } = useTl();\n const ctx = useFGContext();\n const { formik } = ctx;\n const currentCodeSexe = React.useMemo(() => {\n if (!codeSexeFieldName) return null;\n return getIn(formik.values, codeSexeFieldName);\n }, [codeSexeFieldName, formik.values]);\n\n const [nationalite, nLoading] = useReferential(\n a => {\n return a.referentialGetNationalite({ codeSexe: currentCodeSexe });\n },\n false,\n [currentCodeSexe]\n );\n\n return (\n \n );\n};\n","import * as React from \"react\";\n\nexport interface ITimeDisplayProps {\n time: string;\n}\n\nexport const TimeDisplay: React.FunctionComponent = ({ time }) => {\n const timeParsed = React.useMemo(() => {\n const parts = time.split(\":\");\n if (parts.length === 3) {\n return parts[0] + \":\" + parts[1];\n } else {\n return time;\n }\n }, [time]);\n return <>{timeParsed};\n};\n","import * as React from \"react\";\nimport ReactCrop, { Crop } from \"react-image-crop\";\nimport { CancelButton, SaveButton } from \"./\";\n\nimport \"react-image-crop/dist/ReactCrop.css\";\nimport { ETLCodes } from \"../locales\";\nimport { useTl } from \"../hooks\";\nimport { InlineButtonContainer, ButtonsBloc } from \"nsitools-react\";\nimport { Classes, FileInput } from \"@blueprintjs/core\";\ninterface IPhotoModifierProps {\n photo?: string | ArrayBuffer;\n onSave?: (newPhoto: any) => void;\n onCancel?: () => void;\n}\n\nexport const PhotoModifier: React.FunctionComponent = ({ photo, onSave, onCancel }) => {\n const { t } = useTl();\n const [crop, setCrop] = React.useState({\n unit: \"px\",\n aspect: 120 / 180\n });\n\n const [src, setSrc] = React.useState(photo ? `data:image/png;base64,${photo}` : null);\n const [croppedImageB64, setCroppedImageB64] = React.useState();\n const [croppedImageUrl, setCroppedImageUrl] = React.useState();\n const [imageRef, setImageRef] = React.useState();\n\n const onSelectFile = React.useCallback((e: React.ChangeEvent) => {\n if (e.target.files && e.target.files.length > 0) {\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => {\n setSrc(reader.result);\n setCroppedImageB64(reader.result.toString());\n });\n reader.readAsDataURL(e.target.files[0]);\n }\n }, []);\n\n const getCroppedImg = (image, item, fileName) => {\n const canvas = document.createElement(\"canvas\");\n const scaleX = image.naturalWidth / image.width;\n const scaleY = image.naturalHeight / image.height;\n canvas.width = item.width;\n canvas.height = item.height;\n const ctx = canvas.getContext(\"2d\");\n\n ctx.drawImage(\n image,\n crop.x * scaleX,\n crop.y * scaleY,\n crop.width * scaleX,\n crop.height * scaleY,\n 0,\n 0,\n crop.width,\n crop.height\n );\n\n return new Promise((resolve, reject) => {\n canvas.toBlob(blob => {\n if (!blob) {\n console.error(\"Canvas is empty\");\n return;\n }\n resolve(blob);\n }, \"image/jpeg\");\n });\n };\n\n const makeClientCrop = async (item: Crop) => {\n if (imageRef && item.width && item.height) {\n const newCroppedImageUrl = await getCroppedImg(imageRef, crop, \"newFile.jpeg\");\n setCroppedImageUrl(newCroppedImageUrl);\n }\n };\n\n React.useEffect(() => {\n if (croppedImageUrl) {\n var reader = new FileReader();\n reader.readAsDataURL(croppedImageUrl);\n reader.onloadend = function() {\n setCroppedImageB64(reader.result.toString());\n };\n }\n }, [croppedImageUrl]);\n\n const savePhoto = React.useCallback(() => {\n if (croppedImageB64) {\n return onSave(croppedImageB64.split(\",\")[1]);\n } else {\n return onSave(photo);\n }\n }, [croppedImageB64, onSave, photo]);\n const [fileInputProps] = React.useState({ accept: \"image/*\" });\n return (\n <>\n
\n {src && (\n setCrop(item)}\n onImageLoaded={image => setImageRef(image)}\n crop={crop}\n keepSelection={true}\n onComplete={item => {\n makeClientCrop(item);\n }}\n />\n )}\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n );\n};\n","import { Button, Card, Divider, Intent } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { Col, Grid, Row } from \"react-flexbox-grid\";\nimport styled from \"styled-components\";\n\nimport { CardAttribute } from \".\";\nimport { CardData } from \"../contexts\";\nimport { useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\n\nexport interface IBeIdCardProps {\n card: CardData;\n}\n\nconst PhotoImage = styled.img`\n object-fit: fill;\n width: 120px;\n border-radius: 10px;\n border: 1px solid lightgray;\n`;\n\nconst InfoSection = styled.div``;\n\nconst RowContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n`;\n\nconst MyCard = styled(Card)`\n padding: 5px;\n background-color: #d9ffd9;\n display: flex;\n flex-direction: row;\n`;\n\nexport const BeIdCard: React.FunctionComponent = ({ card }) => {\n const { t } = useTl();\n if (!card) return null;\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n {data?.results.map(d => (\n onMenuClick(d)}>\n ))}\n \n \n \n );\n};\n","import { Classes, Colors, Menu, MenuDivider, MenuItem } from \"@blueprintjs/core\";\nimport groupBy from \"lodash/groupBy\";\nimport { Loading } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useLocation } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport {\n FcbRapportGridDto,\n RapportHopeApi,\n RapportHopeGridDto,\n RapportHopeSearchDtoFromJSON,\n RapportSearchFromJSON,\n ReportApi\n} from \"../api\";\nimport { ERoutes } from \"../AppRouter\";\nimport { useGlobalData } from \"../contexts\";\nimport { useApiService, useTabMessage, useTheme, useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\nimport { nameof } from \"../utils\";\nimport { Guid } from \"../utils/guid\";\n\nconst StyledContainer = styled.div<{ backgroundColor: string }>`\n display: flex;\n flex-direction: column;\n align-items: stretch;\n min-width: 250px;\n height: auto;\n background-color: ${props => props.backgroundColor};\n & .${Classes.MENU} {\n padding: 0 !important;\n }\n width: initial !important;\n color: ${Colors.WHITE};\n overflow: auto;\n max-height: 92.3vh;\n`;\n\nconst TitleContainer = styled.div<{ backgroundColor: string }>`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n background-color: ${props => props.backgroundColor};\n align-items: center;\n`;\n\nexport interface IRapportMenuProps {\n toggleRapportMenu?: (open: boolean) => void;\n}\n\nexport const RapportMenu: React.FunctionComponent = ({ toggleRapportMenu }) => {\n const { t } = useTl();\n const reportApi = useApiService(ReportApi);\n const rapportHopeApi = useApiService(RapportHopeApi);\n const { currentModuleId } = useGlobalData();\n const { theme } = useTheme();\n const identifier = React.useMemo(() => Guid.newGuid(), []);\n const { openTabThenSendMessage } = useTabMessage(identifier);\n\n const { pathname } = useLocation();\n const [lastRoute, setLastRoute] = React.useState(pathname.split(\"/\")[1]);\n\n const id = React.useMemo(() => (pathname.split(\"/\").length > 2 ? pathname.split(\"/\")[2] : null), [pathname]);\n\n React.useEffect(() => {\n const splitted = pathname.split(\"/\");\n if (!(splitted.length > 1)) return;\n\n const currentRoute = splitted[1];\n if (currentRoute !== lastRoute && lastRoute) {\n toggleRapportMenu(false);\n }\n setLastRoute(currentRoute);\n }, [lastRoute, pathname, toggleRapportMenu]);\n\n const fetchRapportWalter = React.useCallback(() => {\n if (!currentModuleId) return;\n return reportApi.reportBaseSearch({\n RapportSearch: RapportSearchFromJSON({\n moduleId: +currentModuleId,\n isActif: true\n })\n });\n }, [reportApi, currentModuleId]);\n\n const { data: dataWalter, isFetching: loadingWalter } = useQuery(\n [\"rapports-walter\", currentModuleId],\n fetchRapportWalter,\n { cacheTime: 0 }\n );\n\n const fetchRapportHope = React.useCallback(() => {\n if (!currentModuleId || !id) return;\n return rapportHopeApi.rapportHopeBaseSearch({\n RapportHopeSearchDto: RapportHopeSearchDtoFromJSON({\n idmodule: +currentModuleId\n })\n });\n }, [currentModuleId, id, rapportHopeApi]);\n\n const { data: dataHope, isFetching: loadingHope } = useQuery(\n [\"rapports-hope\", currentModuleId, id],\n fetchRapportHope,\n {\n cacheTime: 0\n }\n );\n\n const hopeItems = React.useMemo(\n () =>\n groupBy(\n dataHope?.results\n ?.reduce((acc, element) => {\n if (!element.categorie || element.categorie === \"\") {\n return [element, ...acc];\n }\n return [...acc, element];\n }, [])\n ?.map(r => ({\n ...r,\n categorie: !r.categorie || r.categorie === \"\" ? t(ETLCodes.Global) : r.categorie\n })) ?? [],\n nameof(\"categorie\")\n ),\n [dataHope?.results, t]\n );\n\n const onMenuClickWalter = React.useCallback((dto: FcbRapportGridDto) => {\n window.open(`/#${ERoutes.report}/${dto.rapportId}`, \"_blank\");\n }, []);\n\n const onMenuClickHope = React.useCallback(\n (dto: RapportHopeGridDto) => {\n openTabThenSendMessage(`/#${ERoutes.SSRSReports}/${dto.idrapportHope}`, [id]);\n },\n [id, openTabThenSendMessage]\n );\n\n return (\n \n \n <>\n {dataWalter?.results?.length > 0 && (\n \n \n
\n
{t(ETLCodes.RapportsCentres)}
\n
\n
\n \n )}\n \n {dataWalter?.results.map(d => (\n onMenuClickWalter(d)} />\n ))}\n \n {dataHope?.results?.length > 0 && (\n \n \n
\n
{t(ETLCodes.RapportsServices)}
\n
\n
\n \n )}\n \n {Object.entries(hopeItems).map(([key, d], i) => (\n <>\n \n {d.map((r: any) => (\n onMenuClickHope(r)} />\n ))}\n \n ))}\n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\n\nconst StyledMessage = styled.div`\n display: flex;\n justify-content: flex-end;\n color: red;\n margin-top: 1rem;\n`;\n\nexport interface IStyledErrorProps {\n show: boolean;\n message: string;\n}\n\nexport const StyledError: React.FunctionComponent = ({ show, message }) => {\n return <>{show && {message}};\n};\n","export * from \"./JExcel\";\n","export * from \"./JExcelInterfaces\";\nexport * from \"./JExcelSpreadSheet\";\nexport * from \"./JExcelUtils\";\n","import \"jspreadsheet-ce/dist/jspreadsheet.css\";\nimport \"jsuites/dist/jsuites.css\";\n\nimport * as React from \"react\";\nimport jspreadsheet from \"jspreadsheet-ce\";\n\nimport { IJExcelProps, JExcelOptions } from \"..\";\nimport { Changes } from \"./JExcelInterfaces\";\nimport { colName } from \"./JExcelUtils\";\n\nexport function JExcel(props: React.PropsWithChildren>) {\n const {\n columns = [],\n data = [],\n allowInsertColumn = false,\n allowInsertRow = false,\n allowDeleteRow = false,\n allowDeleteColumn = false,\n columnDrag = false,\n nestedHeaders = [],\n rowResize = false,\n freezeColumns = 0,\n tableOverflow = false,\n filters = false,\n pagination = null,\n updateTable = () => {},\n onChange = () => {},\n tableHeight,\n tableWidth,\n setJexcelInstance: setJexcelInstanceFromProps\n } = props;\n\n const [change, setChange] = React.useState(null);\n\n const mapDataToColumnsData = React.useCallback(\n (data: Array) => {\n return data.map(d => {\n const fields = columns.map(c => c.name);\n let mapped: any = {};\n fields.forEach(f => (mapped[f] = d[f]));\n return mapped;\n });\n },\n [columns]\n );\n\n const style = React.useMemo(() => {\n const mappedStyle: any = {};\n\n data.forEach((d, i) =>\n columns.forEach((c, j) => {\n if (c.dynamicStyle && c.dynamicStyle(d)) {\n mappedStyle[`${colName(j)}${i + 1}`] = c.dynamicStyle(d);\n }\n })\n );\n\n return mappedStyle;\n }, [columns, data]);\n\n const [jexcelInstance, setJexcelInstance] = React.useState(null);\n\n const onChangeCallback = React.useCallback((instance: any, cell: any, x: any, y: any, value: any) => {\n setChange({ row: x, col: y, value });\n }, []);\n\n React.useEffect(() => {\n if (jexcelInstance) {\n setJexcelInstanceFromProps(jexcelInstance);\n }\n }, [jexcelInstance, setJexcelInstanceFromProps]);\n\n const options = React.useMemo(() => {\n return {\n columns: columns.map(c => {\n return {\n ...c,\n source: c.source?.map(s => {\n return { id: s.value, name: s.label };\n })\n };\n }),\n data: mapDataToColumnsData(data),\n style,\n allowInsertColumn,\n allowInsertRow,\n columnDrag,\n nestedHeaders,\n rowResize,\n freezeColumns,\n tableOverflow,\n tableHeight,\n tableWidth,\n allowDeleteRow,\n allowDeleteColumn,\n filters,\n pagination,\n onchange: onChangeCallback,\n updateTable\n };\n }, [\n columns,\n style,\n mapDataToColumnsData,\n data,\n allowInsertColumn,\n allowInsertRow,\n columnDrag,\n nestedHeaders,\n rowResize,\n freezeColumns,\n tableOverflow,\n tableHeight,\n tableWidth,\n allowDeleteRow,\n allowDeleteColumn,\n filters,\n pagination,\n onChangeCallback,\n updateTable\n ]);\n\n const divRef = React.useRef();\n\n React.useEffect(() => {\n if (!jexcelInstance) {\n const instance = jspreadsheet(divRef.current, options as any);\n setJexcelInstance(instance);\n return () => {\n //dispose of instance\n //instance\n };\n }\n }, [options, jexcelInstance]);\n\n React.useEffect(() => {\n if (jexcelInstance && change) {\n onChange(change);\n }\n }, [change, jexcelInstance, onChange]);\n\n return
;\n}\n","import { Button, Classes, Dialog, Intent, ProgressBar } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\n\nconst DialogStyled = styled(Dialog)`\n width: 700px;\n background: white;\n`;\n\nconst TextContainer = styled.div`\n display: flex;\n justify-content: space-between;\n padding-bottom: 0.5rem;\n`;\n\nexport interface IProgressBarDialogProps {\n isOpen: boolean;\n title: string;\n currentValue: number;\n total: number;\n autoClose?: boolean;\n closeFromInside?: () => void;\n}\n\nexport const ProgressBarDialog: React.FunctionComponent = ({\n isOpen,\n title,\n currentValue = 0,\n total = 0,\n autoClose = true,\n closeFromInside = () => {}\n}) => {\n const { t } = useTl();\n\n const effectiveValue = React.useMemo(() => currentValue / total, [currentValue, total]);\n const effectiveIndex = React.useMemo(() => (currentValue < total ? currentValue + 1 : total), [currentValue, total]);\n\n return (\n \n
\n \n
{`${t(ETLCodes.Apprenant)} ${effectiveIndex} ${t(ETLCodes.Sur)} ${total}`}
\n
{(effectiveValue * 100).toFixed(1)} %
\n
\n \n
\n {!autoClose && (\n
\n
\n closeFromInside()}\n />\n
\n
\n )}\n
\n );\n};\n","import * as React from \"react\";\nimport { Footer } from \"nsitools-react\";\nimport { useAppVersion } from \"../hooks\";\n\nexport interface IFooterIfapmeProps {}\n\nexport const FooterIfapme: React.FunctionComponent = () => {\n const { appVersion } = useAppVersion();\n\n return
;\n};\n","import * as React from \"react\";\n\nimport { useTheme } from \"../hooks\";\n\nexport interface IAppThemeProps {}\n\nexport const AppTheme: React.FunctionComponent = props => {\n const { theme } = useTheme();\n React.useEffect(() => {\n const head = document.head;\n const link = document.createElement(\"link\");\n\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n switch (theme.siteTheme) {\n case \"walter\":\n link.href = \"./BlueprintWalter.css\";\n break;\n case \"test-walter\":\n link.href = \"./BlueprintWalterTest.css\";\n break;\n case \"hope\":\n link.href = \"./BlueprintHope.css\";\n break;\n case \"test-hope\":\n link.href = \"./BlueprintHopeTest.css\";\n break;\n default:\n link.href = \"./BlueprintWalter.css\";\n break;\n }\n\n // Insert Blueprint Custom CSS BEFORE App CSS for it to work\n const appStyle = head.querySelector('[data-styled=\"active\"]');\n head.insertBefore(link, appStyle);\n\n return () => {\n head.removeChild(link);\n };\n }, [theme]);\n return null;\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport {} from \"@blueprintjs/core\";\nimport { ETLCodes } from \"../locales\";\nimport { format, addMinutes } from \"date-fns\";\nimport { useTl } from \"../hooks\";\n\nexport interface IModifedByDataObject {\n modificationUser?: string | undefined;\n modificationDate?: Date;\n creationDate?: Date;\n}\n\nexport interface ModifiedByProps {\n data?: IModifedByDataObject;\n}\n\nconst Container = styled.div`\n display: flex;\n justify-content: flex-end;\n align-self: center;\n flex: 1;\n margin-bottom: 1rem;\n\n & > span {\n font-style: italic;\n }\n`;\n\nexport const ModifiedBy: React.FunctionComponent = ({ data }) => {\n const { t } = useTl();\n if (data?.modificationUser && data?.modificationDate) {\n return (\n \n \n {t(ETLCodes.ModifiedOn)} \n {format(addMinutes(data?.modificationDate, data?.modificationDate.getTimezoneOffset()), \"dd/MM/yyyy\")}\n  {t(ETLCodes.At)} \n {format(addMinutes(data?.modificationDate, data?.modificationDate.getTimezoneOffset()), \"HH:mm\")}\n  {t(ETLCodes.By)} {data?.modificationUser}\n \n \n );\n }\n return null;\n};\n","import { Icon, Spinner } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n & > .title {\n font-weight: bold;\n color: black;\n }\n`;\n\nconst Item = styled.div<{ color: string }>`\n color: ${props => props.color};\n`;\n\nexport interface BulletItem {\n text: string;\n color?: string;\n hideBullet?: boolean;\n}\n\nexport interface ICustomBulletListProps {\n items: BulletItem[];\n title?: string;\n loading?: boolean;\n}\n\nexport const CustomBulletList: React.FunctionComponent = ({ items, title, loading }) => {\n return (\n \n {!!title && {title}}\n {loading ? (\n \n ) : (\n items.map(i => (\n \n {!i.hideBullet && }\n {i.text}\n \n ))\n )}\n \n );\n};\n","import { NonIdealState } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\n\nexport interface IStillInDevProps {}\n\nexport const StillInDev: React.FunctionComponent = props => {\n const { t } = useTl();\n return ;\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { useTheme } from \"../hooks\";\n\nconst StyledSpan = styled.span<{ color: string, fontSize: number }>`\n display: flex;\n color: ${props => props.color};\n ${props => props.fontSize && (\"font-size: \" + props.fontSize + \"pt !important\")};\n`;\n\nexport interface IErrorTextProps {\n text: string;\n fontSize?: number;\n}\n\nexport const ErrorText: React.FunctionComponent = ({ text, fontSize }) => {\n const { theme } = useTheme();\n\n return {text};\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { useTheme } from \"../hooks\";\n\nconst StyledSpan = styled.span<{ color: string }>`\n display: flex;\n color: ${props => props.color};\n`;\n\nexport interface IWarningTextProps {\n text: string;\n}\n\nexport const WarningText: React.FunctionComponent = ({ text }) => {\n const { theme } = useTheme();\n\n return {text};\n};\n","import { FGSuggestTextInput } from 'nsitools-react';\nimport * as React from 'react';\n\nimport { ReferentialItemDto } from '../api';\nimport { useTl } from '../hooks';\nimport { ETLCodes } from '../locales';\n\nexport interface ICodePostalSuggestProps {\n name: string;\n codesPostaux: ReferentialItemDto[];\n cpLoading: boolean;\n idcp: number;\n}\n\nexport const CodePostalSuggest: React.FunctionComponent = ({ name, codesPostaux, cpLoading }) => {\n const { t } = useTl();\n // NOT USED FOR NOW\n\n const mappedCps = React.useMemo(() => codesPostaux?.map(c => c.displayValue) ?? [], [codesPostaux]);\n\n return ();\n};","import { Classes, Colors, Icon } from '@blueprintjs/core';\nimport { IconName } from '@blueprintjs/icons';\nimport * as React from \"react\";\nimport styled from 'styled-components';\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 2rem;\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & h4 {\n color: ${Colors.GRAY1};\n }\n`;\n\nexport interface ICustomStateDisplayProps {\n title?: string;\n description?: string;\n icon?: IconName;\n iconSize?: number;\n iconColor?: string;\n}\n\nexport const CustomStateDisplay: React.FunctionComponent = ({ title, description, icon, iconColor, iconSize }) => {\n return (\n \n \n {icon && }\n {title &&

{title}

}\n {description &&
{description}
}\n
\n
\n );\n};","import * as React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { useTheme } from \"../hooks\";\n\nconst Container = styled.div<{ size: number }>`\n width: ${({ size }) => size * 4}px;\n padding: ${({ size }) => size + size / 2}px;\n`;\n\nconst DotFlashingAnimation = keyframes`\n 0% {\n opacity: 1;\n }\n \n 100% {\n opacity: 0.3;\n }\n`;\n\nconst FlashingDots = styled.div<{ color: string; size: number }>`\n position: relative;\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n border-radius: ${({ size }) => size / 2}px;\n background-color: ${({ color }) => color};\n color: ${({ color }) => color};\n animation: ${DotFlashingAnimation} 1s infinite linear alternate;\n animation-delay: 0.5s;\n\n &::before,\n ::after {\n content: \"\";\n display: inline-block;\n position: absolute;\n top: 0;\n }\n &::before {\n left: -${({ size }) => size + size / 2}px;\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n border-radius: ${({ size }) => size / 2}px;\n background-color: ${({ color }) => color};\n color: ${({ color }) => color};\n animation: ${DotFlashingAnimation} 1s infinite linear alternate;\n animation-delay: 0s;\n }\n &::after {\n left: ${({ size }) => size + size / 2}px;\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n border-radius: ${({ size }) => size / 2}px;\n background-color: ${({ color }) => color};\n color: ${({ color }) => color};\n animation: ${DotFlashingAnimation} 1s infinite linear alternate;\n animation-delay: 1s;\n }\n`;\n\nexport interface ILoadingDotsProps {\n colorScheme?: \"primary\" | \"white\";\n size?: number;\n}\n\nexport const LoadingDots: React.FunctionComponent = ({ colorScheme = \"primary\", size = 10 }) => {\n const { theme } = useTheme();\n\n const mainColor = React.useMemo(() => {\n switch (colorScheme) {\n case \"primary\":\n return theme.primaryColor;\n case \"white\":\n return theme.highlightColor;\n }\n }, [colorScheme, theme.highlightColor, theme.primaryColor]);\n\n return (\n \n \n \n );\n};\n","import { Button, ButtonGroup, Divider } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { add, format, isValid } from \"date-fns\";\nimport { saveAs } from \"file-saver\";\nimport JSZip from \"jszip\";\nimport {\n DropDownButton,\n FGCustomPanel,\n FGMultiSuggestInput,\n FGNumberInput,\n FGTextInput,\n FieldGroup,\n showError,\n useDebounce,\n useFGFormik\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useLocation, useParams } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport {\n FGReadOnlyInput,\n FGWalterCheckboxInput,\n FGWalterDateMaskInput,\n FGWalterSelectInput,\n GenericProgressLoading,\n LoadingDots,\n PageBase,\n PdfViewer,\n SmallFormGenerator\n} from \".\";\nimport {\n ERapportHopeParameterType,\n ERapportHopeType,\n FileDownloadDto,\n RapportHopeApi,\n RapportHopeForViewDto,\n RapportHopeParameterDataDto,\n RapportHopeParameterDto\n} from \"../api\";\nimport { useApiService, useTabMessage, useTl } from \"../hooks\";\nimport { useReferential } from \"../hooks/useReferential\";\nimport { ETLCodes } from \"../locales\";\nimport { b64toBlob, exportFile } from \"../utils\";\nimport { usePrevious } from \"ahooks\";\nimport isEqual from \"lodash/isEqual\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst LoadingContainer = styled.div`\n padding: 0.4rem 0 0 0.6rem;\n`;\n\nconst PDFContainer = styled.div``;\n\nexport interface IRapportHopeViewerProps {}\n\nfunction parseEventualDate(value: string): any {\n if (!!value) {\n const date = new Date(value);\n if (isValid(date)) {\n return date;\n }\n }\n return value;\n}\n\nexport const RapportHopeViewer: React.FunctionComponent = props => {\n const { t } = useTl();\n const api = useApiService(RapportHopeApi);\n const { search } = useLocation();\n const { id } = useParams<{ id: string }>();\n const idrapportHope = React.useMemo(() => +id, [id]);\n const cfs = React.useMemo(() => new URLSearchParams(search).get(\"cfs\"), [search]);\n const { messageValue: entityIds } = useTabMessage(cfs);\n const [generating, setGenerating] = React.useState(false);\n const [generatedReport, setGeneratedReport] = React.useState(null);\n const file = React.useMemo(() => (generatedReport ? b64toBlob(generatedReport) : null), [generatedReport]);\n const [currentEntityIndex, setCurrentEntityIndex] = React.useState(null);\n const [updatedFormData, setUpdatedFormData] = React.useState(null);\n\n const [initialValues, setInitialValues] = React.useState(null);\n\n const { data: initialFormData, isFetching } = useQuery(\n [\"rapport-hope-view\", idrapportHope],\n () =>\n api.rapportHopeGetForView({\n GetRapportHopeForViewQuery: {\n idrapportHope,\n currentParameterValues: []\n }\n }),\n {\n enabled: !!idrapportHope,\n retry: false\n }\n );\n\n React.useEffect(() => {\n if (initialFormData && !initialValues) {\n let newData: any = {};\n\n initialFormData.parameters.forEach(p => {\n if (p.name === \"userId\" || p.name === \"entityId\" || p.name === \"anepasutiliser\") return;\n\n const isDateField = p.type === ERapportHopeParameterType.DateTime;\n if (p.isMultiValue) {\n newData[p.name] = p.defaultValues?.map(v => (isDateField ? parseEventualDate(v) : v));\n } else {\n if (!!p.defaultValues && p.defaultValues.length > 0) {\n const v = p.defaultValues.at(0);\n newData[p.name] = isDateField ? parseEventualDate(v) : v;\n }\n }\n });\n\n setInitialValues(newData);\n }\n }, [initialFormData, initialValues]);\n\n const [firstLoading, setFirstLoading] = React.useState(false);\n React.useEffect(() => {\n if (!firstLoading && !!initialFormData && !isFetching) {\n setFirstLoading(true);\n }\n }, [initialFormData, firstLoading, isFetching]);\n\n const FormSchema = React.useMemo(() => {\n const shape: { [key: string]: any } = {};\n if (initialFormData && initialFormData.parameters) {\n for (let i = 0; i < initialFormData.parameters.length; i++) {\n if (\n initialFormData.parameters[i].name === \"userId\" ||\n initialFormData.parameters[i].name === \"entityId\" ||\n initialFormData.parameters[i].name === \"anepasutiliser\"\n )\n continue;\n\n let type = null;\n switch (initialFormData.parameters[i].type) {\n case ERapportHopeParameterType.Integer:\n case ERapportHopeParameterType.Float:\n type = initialFormData.parameters[i].isMultiValue ? Yup.array().of(Yup.number()) : Yup.number();\n break;\n case ERapportHopeParameterType.String:\n type = initialFormData.parameters[i].isMultiValue ? Yup.array().of(Yup.string()) : Yup.string();\n break;\n case ERapportHopeParameterType.DateTime:\n type = Yup.date();\n break;\n case ERapportHopeParameterType.Boolean:\n type = Yup.boolean();\n break;\n }\n\n if (!!type) {\n shape[initialFormData.parameters[i].name] =\n initialFormData.parameters[i]?.isOptional || initialFormData.parameters[i]?.isNullable\n ? type.nullable()\n : type.nullable().required(t(ETLCodes.Required));\n }\n }\n }\n return Yup.object().shape(shape);\n }, [initialFormData, t]);\n\n const formDataParameters = React.useMemo(\n () => updatedFormData?.parameters || initialFormData?.parameters || ([] as RapportHopeParameterDto[]),\n [initialFormData, updatedFormData]\n );\n const buildParameters = React.useCallback(\n (values: any, entityId?: string) => {\n if (!!!initialFormData?.parameters || !!!values) return [];\n return initialFormData?.parameters?.map(p => {\n if (p.name === \"entityId\" && entityId) {\n return {\n name: p.name,\n value: entityId\n };\n }\n\n let valueFromObject = values[p.name];\n let isMultiValue = Array.isArray(valueFromObject);\n\n let finalValues = isMultiValue ? valueFromObject : null;\n let finalValue = isMultiValue ? null : valueFromObject;\n\n if (p.type === ERapportHopeParameterType.DateTime) {\n let dtFormatReport = \"yyyy-MM-dd\";\n\n // Convert to date representation\n if (isMultiValue) {\n finalValues = valueFromObject\n .filter(d => !!d && isValid(new Date(d)))\n .map(v => {\n const date = new Date(v);\n return format(date, dtFormatReport);\n });\n } else if (!!valueFromObject) {\n const date = new Date(valueFromObject);\n finalValue = isValid(date) ? format(date, dtFormatReport) : null;\n }\n }\n\n if (p.isOptional && !p.isNullable) {\n finalValues = isMultiValue ? finalValues?.map(d => (d === null || d === undefined ? \"\" : d)) : null;\n finalValue = isMultiValue ? null : finalValue ?? \"\";\n } else if (!p.isOptional && p.isNullable) {\n finalValues = isMultiValue ? finalValues?.map(d => (d === null || d === undefined ? \"\" : d)) : null;\n finalValue = isMultiValue ? null : finalValue ?? null;\n }\n\n return {\n name: p.name,\n value: finalValue,\n values: finalValues\n } as RapportHopeParameterDataDto;\n });\n },\n [initialFormData]\n );\n\n const generateRapport = React.useCallback(\n async (formValues: any, fileFormat: string, download: boolean = true) => {\n try {\n const jszip = new JSZip();\n\n setGenerating(true);\n\n let toDownload: FileDownloadDto = null;\n\n if (entityIds?.length > 1 && download) {\n for (let i = 0; i < entityIds.length; i++) {\n setCurrentEntityIndex(i + 1);\n const entityId = entityIds[i];\n const parametersToSend = buildParameters(formValues, entityId);\n\n const currentReport = await api.rapportHopeGenerate({\n GenerateRapportHopeCommand: {\n format: fileFormat,\n parameters: parametersToSend,\n reportName: initialFormData.path\n }\n });\n\n const filename = `${currentReport.fileName}_${entityId}.${currentReport.extension}`;\n jszip.file(filename, b64toBlob({ base64Content: currentReport.contentBase64 }), { binary: true });\n }\n jszip.generateAsync({ type: \"blob\" }).then(function(content) {\n saveAs(content, `Rapports_${initialFormData.nom}.zip`);\n });\n } else if (entityIds?.length === 1) {\n const parametersToSend = buildParameters(formValues, entityIds[0]);\n\n const report = await api.rapportHopeGenerate({\n GenerateRapportHopeCommand: {\n format: fileFormat,\n parameters: parametersToSend,\n reportName: initialFormData.path\n }\n });\n toDownload = {\n base64Content: report.contentBase64,\n fileName: report.fileName + \".\" + report.extension\n };\n } else if (!download && entityIds?.length > 1) {\n const parametersToSend = buildParameters(formValues, entityIds[0]);\n const report = await api.rapportHopeGenerateMultiple({\n GenerateMultipleRapportHopeCommand: {\n format: fileFormat,\n reportName: initialFormData.path,\n entityIds,\n parameters: parametersToSend\n }\n });\n const currentDate =\n initialFormData?.type === ERapportHopeType.EXPORT ? \"_\" + format(new Date(), \"yyyy-MM-dd_HH-mm-ss\") : \"\";\n toDownload = {\n base64Content: report.contentBase64,\n fileName: report.fileName + currentDate + \".\" + report.extension\n };\n } else {\n const parametersToSend = buildParameters(formValues);\n const report = await api.rapportHopeGenerate({\n GenerateRapportHopeCommand: {\n format: fileFormat,\n reportName: initialFormData.path,\n parameters: parametersToSend\n }\n });\n const currentDate =\n initialFormData?.type === ERapportHopeType.EXPORT ? \"_\" + format(new Date(), \"yyyy-MM-dd_HH-mm-ss\") : \"\";\n toDownload = {\n base64Content: report.contentBase64,\n fileName: report.fileName + currentDate + \".\" + report.extension\n };\n }\n\n if (fileFormat === \"PDF\" && !!toDownload && !download) {\n setGeneratedReport(toDownload);\n }\n if (download && !!toDownload) {\n exportFile(toDownload);\n }\n } catch (e) {\n console.error(e);\n showError(t(ETLCodes.ErrorWhileExporting));\n } finally {\n setGenerating(false);\n setCurrentEntityIndex(null);\n }\n },\n [api, buildParameters, entityIds, initialFormData, t]\n );\n const formik = useFGFormik({\n initialValues: initialValues ?? {},\n validationSchema: FormSchema,\n onSubmit: d => generateRapport(d, \"PDF\", false)\n });\n\n const [formats, fLoading] = useReferential(a => a.referentialGetSSRSReportFormats(), false);\n\n const [firstTime, setFirstTime] = React.useState(true);\n React.useEffect(() => {\n if (\n initialFormData?.parameters?.filter(\n p => p.name !== \"entityId\" && p.name !== \"userId\" && p.name !== \"anepasutiliser\"\n )?.length === 0 &&\n firstTime\n ) {\n formik.submitForm();\n setFirstTime(false);\n }\n }, [initialFormData?.parameters, formik, file, firstTime]);\n\n const [isUpdatingParameters, setIsUpdatingParameters] = React.useState(false);\n const refreshParametersData = React.useCallback(\n async (parameters: RapportHopeParameterDataDto[]) => {\n setIsUpdatingParameters(true);\n try {\n const data = await api.rapportHopeGetForView({\n GetRapportHopeForViewQuery: {\n idrapportHope,\n currentParameterValues: parameters\n }\n });\n setUpdatedFormData(data);\n } catch (error) {\n } finally {\n setIsUpdatingParameters(false);\n }\n },\n [api, idrapportHope]\n );\n\n const debouncedFormikValues = useDebounce(formik.values, 1500);\n const previousValues = usePrevious(debouncedFormikValues);\n\n React.useEffect(() => {\n const sourceStringified = JSON.stringify(debouncedFormikValues);\n const destStringified = JSON.stringify(previousValues);\n if (debouncedFormikValues && sourceStringified !== destStringified && !isFetching) {\n let newValues = buildParameters(debouncedFormikValues);\n\n if (entityIds?.length > 0) {\n newValues = newValues.filter(v => v.name !== \"entityId\");\n newValues.push({\n name: \"entityId\",\n value: entityIds[0]\n });\n }\n refreshParametersData(newValues);\n }\n }, [\n api,\n buildParameters,\n debouncedFormikValues,\n entityIds,\n idrapportHope,\n isFetching,\n previousValues,\n refreshParametersData\n ]);\n\n const hasDependencies = React.useCallback(\n (dependencies: string[]) => {\n if (!dependencies || dependencies.length === 0 || !formik.values) return false;\n\n let hasEmptyDeps = false;\n for (let dep of dependencies.filter(d => d !== \"entityId\" && d !== \"userId\" && d !== \"anepasutiliser\")) {\n const dependencyParameter = formDataParameters.find(d => d.name === dep);\n\n const val = formik.values?.hasOwnProperty(dep) ? formik.values[dep] : null;\n const hasAValidValue = !!val && (!Array.isArray(val) || val.length > 0);\n if (\n hasAValidValue ||\n dependencyParameter.isOptional ||\n (!dependencyParameter.isOptional && dependencyParameter.isNullable)\n ) {\n hasEmptyDeps = false;\n } else {\n hasEmptyDeps = true;\n break;\n }\n }\n\n return hasEmptyDeps;\n },\n [formik.values, formDataParameters]\n );\n\n const [prevFormDataParameters, setPrevFormDataParameters] = React.useState();\n React.useEffect(() => {\n if (!!formDataParameters && !isEqual(formDataParameters, prevFormDataParameters)) {\n setPrevFormDataParameters(formDataParameters);\n formDataParameters.forEach(p => {\n if (p.name === \"userId\" || p.name === \"entityId\" || p.name === \"anepasutiliser\" || formik.touched[p.name])\n return;\n\n const isDateField = p.type === ERapportHopeParameterType.DateTime;\n if (p.isMultiValue) {\n formik.setFieldValue(\n p.name,\n p.defaultValues?.map(v => (isDateField ? parseEventualDate(v) : v))\n );\n } else {\n if (!!p.defaultValues && p.defaultValues.length > 0) {\n const v = p.defaultValues.at(0);\n formik.setFieldValue(p.name, isDateField ? parseEventualDate(v) : v);\n }\n }\n });\n }\n }, [formDataParameters, formik, prevFormDataParameters]);\n\n return (\n \n \n \n : initialFormData?.nom\n }}\n >\n {formDataParameters\n .filter(p => p.name !== \"entityId\" && p.name !== \"userId\" && p.name !== \"anepasutiliser\" && !!p.label)\n .map((value, index) => {\n const type = value.type;\n const validValues = value.validValues;\n const isDisabled = hasDependencies(value.dependencies);\n const isSelectLoading = isUpdatingParameters && !formik.values?.[value.name];\n const labelStyle = value.isOptional || value.isNullable ? {} : { color: \"red\" };\n\n if (!!validValues) {\n if (value.isMultiValue) {\n return (\n \n );\n } else {\n if (isSelectLoading) {\n return (\n \n \n \n }\n />\n );\n }\n return (\n \n );\n }\n }\n\n if (type === ERapportHopeParameterType.Integer || type === ERapportHopeParameterType.Float) {\n return (\n \n );\n }\n if (type === ERapportHopeParameterType.String) {\n return (\n \n );\n }\n if (type === ERapportHopeParameterType.DateTime) {\n return (\n \n );\n }\n if (type === ERapportHopeParameterType.Boolean) {\n return (\n \n );\n }\n return <>;\n })}\n \n\n
\n \n {ctx => (\n \n \n\n ({\n text: f.label,\n intent: \"primary\",\n onClick: () => generateRapport(ctx.formik.values, f.value as string)\n })) ?? []\n }\n />\n \n )}\n \n
\n \n {!!file && (\n \n \n \n \n )}\n {!!generating && currentEntityIndex !== null && entityIds?.length > 1 && (\n \n )}\n
\n
\n );\n};\n","import { Classes, Dialog, ProgressBar } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 500px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IGenericProgressLoadingProps {\n maxValue: number;\n currentValue: number;\n loading: boolean;\n}\n\nexport const GenericProgressLoading: React.FunctionComponent = ({\n loading,\n currentValue,\n maxValue\n}) => {\n const { t } = useTl();\n\n const computedValue = React.useMemo(() => currentValue / maxValue, [currentValue, maxValue]);\n\n return (\n \n
\n \n
\n \n );\n};\n","import {\n Button,\n ButtonGroup,\n Checkbox,\n Classes,\n Colors,\n Icon,\n IconName,\n Menu,\n MenuDivider,\n NonIdealState\n} from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { MenuItem2, Popover2 } from \"@blueprintjs/popover2\";\nimport { faFileCircleXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { format } from \"date-fns\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { LinkButton, SelectAllButton } from \".\";\nimport { EPrintingQueueStatus, PrintingQueueDto } from \"../api\";\nimport { ERoutes } from \"../AppRouter\";\nimport assets from \"../assets\";\nimport { usePrintingQueueContext } from \"../contexts\";\nimport { useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\nimport { toCleanUtc } from \"../utils\";\n\nconst ButtonsLogo = styled.img`\n height: 30px;\n margin-right: 10px;\n cursor: pointer;\n`;\n\nconst PopoverContent = styled.div`\n max-height: 510px;\n overflow-y: auto;\n\n & .no-padding {\n padding: 0px !important;\n }\n\n & .${Classes.NON_IDEAL_STATE} {\n padding: 1rem;\n }\n\n & .non-interactive:active {\n background-color: rgba(143, 153, 168, 0.15) !important;\n }\n\n & .non-interactive:hover {\n cursor: default !important;\n }\n\n & .non-interactive:focus {\n outline: none !important;\n }\n\n &::-webkit-scrollbar {\n width: 5px;\n }\n\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 10px;\n }\n &::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 10px;\n }\n\n & .show-on-hover {\n visibility: hidden;\n }\n\n & .non-interactive:hover .show-on-hover {\n visibility: visible;\n }\n\n & ${Classes.BUTTON}:focus {\n outline: none !important;\n }\n`;\n\nconst MenuItemTextContainer = styled.div`\n display: flex;\n flex-direction: column;\n\n & .menu-item-title {\n width: 300px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n font-weight: bold;\n }\n\n & > .${Classes.TEXT_MUTED} {\n font-size: 9pt;\n }\n`;\n\nconst MenuItemTitleContainer = styled.div`\n display: flex;\n`;\n\nconst ButtonNoFocus = styled(Button)`\n &:focus {\n outline: none !important;\n }\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding-top: 5px;\n`;\n\nconst SwitchContainer = styled.div`\n display: flex;\n justify-content: space-between;\n gap: 0.5rem;\n & > div {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n`;\n\nexport interface IPrintingQueueProps {}\n\nexport const PrintingQueue: React.FunctionComponent = props => {\n const { t } = useTl();\n const {\n queuePrintings,\n deleteFromQueue,\n cancelQueue,\n rowCancelling,\n rowDeleting,\n refreshQueue,\n isQueueForcedOpen,\n setIsQueueForcedOpen,\n downloadFile,\n rowDownloading,\n massDownload,\n massDownloading,\n retryPrinting,\n rowRetrying,\n showPrinting,\n rowShowing,\n massMask,\n massDelete\n } = usePrintingQueueContext();\n\n const [isOpen, setIsOpen] = React.useState(false);\n React.useEffect(() => {\n if (isQueueForcedOpen && !isOpen) {\n setIsOpen(true);\n setIsQueueForcedOpen(false);\n }\n }, [isOpen, isQueueForcedOpen, setIsQueueForcedOpen]);\n\n const buttonSrc = React.useMemo(() => {\n if (!queuePrintings?.length) return assets.images.printingQueue;\n\n if (queuePrintings.some(p => p.status === EPrintingQueueStatus.GENERATING))\n return assets.images.printingQueueLoading;\n if (queuePrintings.some(p => p.status === EPrintingQueueStatus.ERROR)) return assets.images.printingQueueError;\n if (queuePrintings.some(p => p.status === EPrintingQueueStatus.DONE)) return assets.images.printingQueueDone;\n\n return assets.images.printingQueue;\n }, [queuePrintings]);\n\n const [selectedFichierIDs, setSelectedFichierIDs] = React.useState([]);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const toggleSelection = React.useCallback(\n (item: PrintingQueueDto) => {\n if (!selectedFichierIDs.includes(item.idfichier)) {\n setSelectedFichierIDs(ids => [...ids, item.idfichier]);\n } else {\n setSelectedFichierIDs(ids => ids.filter(id => id !== item.idfichier));\n }\n if (!selectedIDs.includes(item.idprintingQueue)) {\n setSelectedIDs(ids => [...ids, item.idprintingQueue]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idprintingQueue));\n }\n },\n [selectedFichierIDs, selectedIDs]\n );\n\n const selectAll = React.useCallback(() => {\n setSelectedFichierIDs(prev => (prev.length > 0 ? [] : queuePrintings.map(p => p.idfichier)));\n setSelectedIDs(prev => (prev.length > 0 ? [] : queuePrintings.map(p => p.idprintingQueue)));\n }, [queuePrintings]);\n\n return (\n setIsOpen(false)}\n content={\n \n \n \n \n
\n {t(ETLCodes.DerniersAvisDeResultatsImprimes)}\n {\n e.stopPropagation();\n window.open(`#${ERoutes.printingHistory}`, \"_blank\");\n }}\n />\n
\n
\n \n selectAll()}\n text={t(selectedFichierIDs.length > 0 ? ETLCodes.DeselectAll : ETLCodes.SelectAll)}\n outlined\n />\n \n \n {\n e.stopPropagation();\n await massDownload(selectedFichierIDs);\n setSelectedFichierIDs([]);\n setSelectedIDs([]);\n }}\n />\n {\n e.stopPropagation();\n await massDelete(selectedIDs);\n setSelectedFichierIDs([]);\n setSelectedIDs([]);\n }}\n />\n {\n e.stopPropagation();\n await massMask(selectedIDs);\n setSelectedFichierIDs([]);\n setSelectedIDs([]);\n }}\n />\n \n \n }\n >\n \n \n \n \n }\n />\n {queuePrintings?.length > 0 ? (\n queuePrintings.map(p => {\n let icon: IconName;\n let color;\n switch (p.status) {\n case \"WAITING\":\n icon = \"time\";\n color = Colors.ORANGE3;\n break;\n case \"GENERATING\":\n icon = \"refresh\";\n color = Colors.BLUE3;\n break;\n case \"DONE\":\n icon = \"tick-circle\";\n color = Colors.GREEN3;\n break;\n case \"CANCELLED\":\n icon = \"remove\";\n color = Colors.GRAY3;\n break;\n default:\n icon = \"cross-circle\";\n color = Colors.RED3;\n break;\n }\n\n let from;\n switch (p.printingType) {\n case \"CRYSTAL\":\n from = t(ETLCodes.RapportWalter);\n break;\n case \"SSRS\":\n from = t(ETLCodes.RapportHope);\n break;\n case \"EXCEL\":\n from = t(ETLCodes.ExportWalter);\n break;\n }\n\n const date = format(toCleanUtc(p.creationDate), \"dd/MM/yyyy HH:mm:ss\");\n\n return (\n e.stopPropagation()}\n icon={}\n className=\"non-interactive\"\n text={\n \n \n {\n toggleSelection(p);\n }}\n />\n {p.displayName}\n \n \n {from} • {date}\n \n \n }\n labelElement={\n <>\n {p.status === EPrintingQueueStatus.CANCELLED && (\n {\n e.stopPropagation();\n await retryPrinting(p.idprintingQueue);\n refreshQueue();\n }}\n />\n )}\n {(p.status === EPrintingQueueStatus.WAITING ||\n p.status === EPrintingQueueStatus.CANCELLED ||\n p.status === EPrintingQueueStatus.ERROR) && (\n {\n e.stopPropagation();\n await deleteFromQueue(p.idprintingQueue);\n refreshQueue();\n }}\n />\n )}\n {p.status === EPrintingQueueStatus.GENERATING && (\n {\n e.stopPropagation();\n await cancelQueue(p.idprintingQueue);\n refreshQueue();\n }}\n />\n )}\n {p.status === EPrintingQueueStatus.DONE && (\n {\n e.stopPropagation();\n if (p.hidden) await showPrinting(p.idprintingQueue);\n else await deleteFromQueue(p.idprintingQueue);\n refreshQueue();\n }}\n />\n )}\n {p.status === EPrintingQueueStatus.DONE && !!p.idfichier && (\n {\n e.stopPropagation();\n await downloadFile(p.idprintingQueue, p.idfichier);\n }}\n />\n )}\n \n }\n />\n );\n })\n ) : (\n }\n title={t(ETLCodes.NoPrintingsToday)}\n />\n )}\n
\n
\n }\n >\n setIsOpen(true)} />\n \n );\n};\n\nexport default PrintingQueue;\n","import { Button, Classes, Dialog } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { UsersApi } from \"../api\";\nimport { useAuth, useGlobalData } from \"../contexts\";\nimport { useApiService, useManageError, useTheme, useTl } from \"../hooks\";\nimport { ETLCodes } from \"../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IStartupDialogProps {\n onClosed: () => void;\n isDialogOpen: boolean;\n}\n\nexport const StartupDialog: React.FunctionComponent = ({ isDialogOpen, onClosed }) => {\n const { t } = useTl();\n const { ifapmeSide } = useTheme();\n const { user } = useAuth();\n const { manageError } = useManageError();\n const { walterStartupPopupText, hopeStartupPopupText } = useGlobalData();\n const api = useApiService(UsersApi);\n\n const [saving, setSaving] = React.useState(false);\n const onAcknowledged = React.useCallback(async () => {\n try {\n setSaving(true);\n await api.usersDisableStartupPopup({ iduser: user.iduser });\n } catch (e) {\n manageError(e);\n } finally {\n setSaving(false);\n onClosed();\n }\n }, [api, manageError, onClosed, user.iduser]);\n\n const [time, setTime] = React.useState(10);\n\n React.useEffect(() => {\n let timer = setInterval(() => {\n setTime(time => {\n if (time === 0) {\n clearInterval(timer);\n return 0;\n } else return time - 1;\n });\n }, 1000);\n }, []);\n\n const buttonText = React.useMemo(() => t(ETLCodes.Acknowledged) + (time > 0 ? ` (${time})` : \"\"), [t, time]);\n\n return (\n \n
\n {ifapmeSide === \"walter\" ? walterStartupPopupText : hopeStartupPopupText}\n
\n
\n
\n
\n
\n \n );\n};\n\nexport default StartupDialog;\n","import { Icon, IOptionProps } from \"@blueprintjs/core\";\nimport { showError } from \"nsitools-react\";\nimport * as React from \"react\";\nimport Select from \"react-select\";\n\nimport { BulletinApprenantTypeApi } from \"../../api\";\nimport { useApiService, useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales\";\n\nexport interface ITableSelectEditorProps {\n initialValue: number;\n idBulletinInscriptionMatiere: number;\n secondeSess: boolean;\n editable?: boolean;\n delibs: {\n props: IOptionProps[];\n loading: boolean;\n };\n disabled?: boolean;\n}\n\nconst DropdownIndicator: React.FunctionComponent = () => {\n return ;\n};\n\nexport const TableSelectEditor: React.FunctionComponent = ({\n initialValue,\n idBulletinInscriptionMatiere,\n secondeSess,\n editable = true,\n delibs,\n disabled = false\n}) => {\n const { t } = useTl();\n\n const api = useApiService(BulletinApprenantTypeApi);\n\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState();\n\n React.useEffect(() => {\n setCurrentValue(initialValue);\n setEditedValue(initialValue);\n }, [initialValue]);\n\n const [loading, setLoading] = React.useState();\n\n const finalItems = React.useMemo(() => delibs?.props?.map(i => ({ value: i.value || \"\", label: i.label || \" \" })), [\n delibs\n ]);\n\n const finalValue = React.useMemo(() => {\n const value = editedValue;\n const found = finalItems?.find(d => \"\" + d.value === \"\" + value);\n return found;\n }, [editedValue, finalItems]);\n\n const saveValue = React.useCallback(\n async finalVal => {\n if (finalVal !== currentValue) {\n try {\n setLoading(true);\n await api.bulletinApprenantTypeSaveBulletinDeliberationType({\n idDeliberationType: finalVal,\n idBulletinInscriptionMatiere,\n secondeSess\n });\n setCurrentValue(finalVal);\n } catch (Error) {\n showError(`Unable to save`);\n setEditedValue(currentValue);\n }\n setLoading(false);\n }\n },\n [api, currentValue, idBulletinInscriptionMatiere, secondeSess]\n );\n\n const handleChange = React.useCallback(\n async (value: any, details?: any) => {\n let finalVal = null;\n if (!value?.value || details?.action === \"clear\") {\n finalVal = undefined;\n } else {\n finalVal = value.value;\n }\n setEditedValue(finalVal);\n await saveValue(finalVal);\n },\n [saveValue]\n );\n\n return (\n {\n let final = {\n ...base,\n minHeight: \"28px\"\n };\n return final;\n },\n input: base => ({ ...base, margin: \"1px 2px\" }),\n clearIndicator: base => ({ ...base, padding: \"4px\", cursor: \"pointer\" }),\n menu: base => ({ ...base, zIndex: 9999 }),\n menuPortal: base => ({ ...base, zIndex: 9999 })\n }}\n isLoading={delibs?.loading || loading}\n options={finalItems}\n components={{ DropdownIndicator }}\n onChange={handleChange}\n menuPortalTarget={document.body}\n menuPlacement=\"auto\"\n value={finalValue}\n loadingMessage={() => t(ETLCodes.FGSelectInput_Loading)}\n noOptionsMessage={() => t(ETLCodes.FGSelectInput_NoOptions)}\n placeholder={t(ETLCodes.FGSelectInput_SelectAnItem)}\n isDisabled={!editable || disabled}\n />\n );\n};\n","import { Classes, Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport Cleave from \"cleave.js/react\";\nimport moment from \"moment\";\nimport { showError } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { BulletinApprenantTypeApi } from \"../../api\";\nimport { useApiService } from \"../../hooks\";\n\nexport interface ITableDateEditorProps {\n initialValue?: Date;\n idBulletinInscriptionMatiere: number;\n disabled?: boolean;\n}\n\nexport const TableDateEditor: React.FunctionComponent = ({\n initialValue,\n idBulletinInscriptionMatiere,\n disabled = false\n}) => {\n const api = useApiService(BulletinApprenantTypeApi);\n\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState();\n\n React.useEffect(() => {\n setCurrentValue(initialValue ? moment(initialValue).format(\"DDMMYYYY\") : \"\");\n setEditedValue(initialValue ? moment(initialValue).format(\"DDMMYYYY\") : \"\");\n }, [initialValue]);\n\n const onBlur = React.useCallback(async () => {\n if (editedValue !== currentValue) {\n try {\n await api.bulletinApprenantTypeSaveBulletinDate2Sess({\n idBulletinInscriptionMatiere,\n date2Sess:\n editedValue === \"\"\n ? undefined\n : moment(editedValue, \"DDMMYYYY\")\n .utc(true)\n .toDate()\n });\n setCurrentValue(editedValue);\n } catch (Error) {\n showError(`Unable to save`);\n setEditedValue(currentValue);\n }\n }\n }, [api, currentValue, editedValue, idBulletinInscriptionMatiere]);\n\n const input = React.useRef();\n\n return (\n
\n setEditedValue(e.target.rawValue)}\n autoComplete=\"new-password\"\n onBlur={onBlur}\n onClick={() => input.current.select()}\n value={editedValue}\n placeholder={\"\"}\n options={{ date: true, delimiter: \"/\", datePattern: [\"d\", \"m\", \"Y\"] }}\n className={`${Classes.INPUT}`}\n htmlRef={hRef => (input.current = hRef)}\n disabled={disabled}\n />\n \n
\n );\n};\n","import { Classes, Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport Cleave from \"cleave.js/react\";\nimport moment from \"moment\";\nimport { showError } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { BulletinApprenantTypeApi } from \"../../api\";\nimport { useApiService } from \"../../hooks\";\n\nexport interface ITableDateEditorTotalProps {\n initialValue?: Date;\n idBulletinApprenant: number;\n}\n\nexport const TableDateEditorTotal: React.FunctionComponent = ({\n initialValue,\n idBulletinApprenant\n}) => {\n const api = useApiService(BulletinApprenantTypeApi);\n\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState();\n\n React.useEffect(() => {\n setCurrentValue(initialValue ? moment(initialValue).format(\"DDMMYYYY\") : \"\");\n setEditedValue(initialValue ? moment(initialValue).format(\"DDMMYYYY\") : \"\");\n }, [initialValue]);\n\n const onBlur = React.useCallback(async () => {\n if (editedValue !== currentValue) {\n try {\n await api.bulletinApprenantTypeSaveBulletinTotalDate({\n idbulletinApprenant: idBulletinApprenant,\n date: moment(editedValue, \"DDMMYYYY\")\n .utc(true)\n .toDate()\n });\n setCurrentValue(editedValue);\n } catch (Error) {\n showError(`Unable to save`);\n setEditedValue(currentValue);\n }\n }\n }, [api, currentValue, editedValue, idBulletinApprenant]);\n\n const input = React.useRef();\n\n return (\n
\n setEditedValue(e.target.rawValue)}\n autoComplete=\"new-password\"\n onBlur={onBlur}\n onClick={() => input.current.select()}\n value={editedValue}\n placeholder={\"\"}\n options={{ date: true, delimiter: \"/\", datePattern: [\"d\", \"m\", \"Y\"] }}\n className={`${Classes.INPUT}`}\n htmlRef={hRef => (input.current = hRef)}\n />\n \n
\n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService } from \"../../hooks\";\nimport { Icon } from \"@blueprintjs/core\";\nimport { BulletinApprenantTypeApi } from \"../../api\";\nimport { useReferential } from \"../../hooks/useReferential\";\nimport { showError } from \"nsitools-react\";\nimport { ETLCodes } from \"../../locales\";\nimport Select from \"react-select\";\n\nexport interface ITableSelectEditorTotalProps {\n initialValue: number;\n idBulletinApprenant: number;\n}\n\nconst DropdownIndicator: React.FunctionComponent = () => {\n return ;\n};\n\nexport const TableSelectEditorTotal: React.FunctionComponent = ({\n initialValue,\n idBulletinApprenant\n}) => {\n const { t } = useTl();\n\n const api = useApiService(BulletinApprenantTypeApi);\n const [grades, gloading] = useReferential(a => a.referentialGetGrade(), true);\n\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState();\n\n React.useEffect(() => {\n setCurrentValue(initialValue);\n setEditedValue(initialValue);\n }, [initialValue]);\n\n const [loading, setLoading] = React.useState();\n const onBlur = React.useCallback(\n async (e: any) => {\n if (editedValue !== currentValue) {\n try {\n setLoading(true);\n await api.bulletinApprenantTypeSaveBulletinTotalGrade({\n idgrade: editedValue,\n idbulletinApprenant: idBulletinApprenant\n });\n setCurrentValue(editedValue);\n } catch (Error) {\n showError(`Unable to save`);\n setEditedValue(currentValue);\n }\n setLoading(false);\n }\n },\n [api, currentValue, editedValue, idBulletinApprenant]\n );\n\n const handleChange = React.useCallback((value: any, details?: any) => {\n if (!value?.value || details?.action === \"clear\") {\n setEditedValue(undefined);\n } else {\n setEditedValue(value.value);\n }\n }, []);\n\n const finalItems = React.useMemo(() => grades?.map(i => ({ value: i.value || \"\", label: i.label || \" \" })), [grades]);\n\n const finalValue = React.useMemo(() => {\n const value = editedValue;\n const found = finalItems?.find(d => \"\" + d.value === \"\" + value);\n return found;\n }, [editedValue, finalItems]);\n\n return (\n {\n let final = {\n ...base,\n minHeight: \"28px\"\n };\n return final;\n },\n input: base => ({ ...base, margin: \"1px 2px\" }),\n clearIndicator: base => ({ ...base, padding: \"4px\", cursor: \"pointer\" }),\n menu: base => ({ ...base, zIndex: 9999 }),\n menuPortal: base => ({ ...base, zIndex: 9999 })\n }}\n isLoading={gloading || loading}\n options={finalItems}\n components={{ DropdownIndicator }}\n onChange={handleChange}\n menuPortalTarget={document.body}\n menuPlacement=\"auto\"\n onBlur={onBlur}\n value={finalValue}\n loadingMessage={() => t(ETLCodes.FGSelectInput_Loading)}\n noOptionsMessage={() => t(ETLCodes.FGSelectInput_NoOptions)}\n placeholder={t(ETLCodes.FGSelectInput_SelectAnItem)}\n />\n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService } from \"../../hooks\";\nimport { Icon, IOptionProps } from \"@blueprintjs/core\";\nimport { BulletinApprenantTypeApi } from \"../../api\";\nimport { showError } from \"nsitools-react\";\nimport { ETLCodes } from \"../../locales\";\nimport Select from \"react-select\";\n\nexport interface ITableBASelectGradeEditorProps {\n initialValue: number;\n idBulletinApprenant: number;\n editable?: boolean;\n grades: {\n props: IOptionProps[];\n loading: boolean;\n };\n}\n\nconst DropdownIndicator: React.FunctionComponent = () => {\n return ;\n};\n\nexport const TableBASelectGradeEditor: React.FunctionComponent = ({\n initialValue,\n idBulletinApprenant,\n editable = true,\n grades\n}) => {\n const { t } = useTl();\n\n const api = useApiService(BulletinApprenantTypeApi);\n\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState();\n\n React.useEffect(() => {\n setCurrentValue(initialValue);\n setEditedValue(initialValue);\n }, [initialValue]);\n\n const [loading, setLoading] = React.useState();\n const onBlur = React.useCallback(\n async (e: any) => {\n if (editedValue !== currentValue) {\n try {\n setLoading(true);\n await api.bulletinApprenantTypeSaveBulletinTotalGrade({\n idgrade: editedValue,\n idbulletinApprenant: idBulletinApprenant\n });\n setCurrentValue(editedValue);\n } catch (Error) {\n showError(`Unable to save`);\n setEditedValue(currentValue);\n }\n setLoading(false);\n }\n },\n [api, currentValue, editedValue, idBulletinApprenant]\n );\n\n const handleChange = React.useCallback((value: any, details?: any) => {\n if (!value?.value || details?.action === \"clear\") {\n setEditedValue(undefined);\n } else {\n setEditedValue(value.value);\n }\n }, []);\n\n const finalItems = React.useMemo(() => grades?.props?.map(i => ({ value: i.value || \"\", label: i.label || \" \" })), [\n grades\n ]);\n\n const finalValue = React.useMemo(() => {\n const value = editedValue;\n const found = finalItems?.find(d => \"\" + d.value === \"\" + value);\n return found;\n }, [editedValue, finalItems]);\n\n return (\n {\n let final = {\n ...base,\n minHeight: \"28px\"\n };\n return final;\n },\n input: base => ({ ...base, margin: \"1px 2px\" }),\n clearIndicator: base => ({ ...base, padding: \"4px\", cursor: \"pointer\" }),\n menu: base => ({ ...base, zIndex: 9999 }),\n menuPortal: base => ({ ...base, zIndex: 9999 })\n }}\n isLoading={grades?.loading || loading}\n options={finalItems}\n components={{ DropdownIndicator }}\n onChange={handleChange}\n menuPortalTarget={document.body}\n menuPlacement=\"auto\"\n onBlur={onBlur}\n value={finalValue}\n loadingMessage={() => t(ETLCodes.FGSelectInput_Loading)}\n noOptionsMessage={() => t(ETLCodes.FGSelectInput_NoOptions)}\n placeholder={t(ETLCodes.FGSelectInput_SelectAnItem)}\n isDisabled={!editable}\n />\n );\n};\n","import { InputGroup, NumericInput } from \"@blueprintjs/core\";\nimport * as React from \"react\";\n\nexport interface ITableGlobalTextEditorProps {\n initialTextValue: string;\n onValueChanged: (value: string) => void;\n textEditorHeight?: string | number;\n maxLength?: number;\n numeric?: boolean;\n readonly?: boolean;\n maxWidth?: string;\n}\n\nexport const TableGlobalTextEditor: React.FunctionComponent = ({\n initialTextValue,\n onValueChanged,\n textEditorHeight = \"auto\",\n maxLength,\n numeric = false,\n readonly = false,\n maxWidth\n}) => {\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState();\n const [focused, setFocused] = React.useState(false);\n\n React.useEffect(() => {\n setCurrentValue(initialTextValue);\n setEditedValue(initialTextValue);\n }, [initialTextValue]);\n\n const onBlur = React.useCallback(\n async (e: any) => {\n if (editedValue !== currentValue) {\n setCurrentValue(editedValue);\n onValueChanged(editedValue);\n }\n setFocused(false);\n },\n [currentValue, editedValue, onValueChanged]\n );\n\n const computeFocus = React.useCallback(() => {\n if (!focused) {\n setFocused(true);\n }\n }, [focused]);\n\n const cursor = React.useMemo(() => (readonly ? \"text\" : \"pointer\"), [readonly]);\n\n return (\n <>\n {focused && !readonly ? (\n numeric ? (\n setEditedValue(e.target.value)}\n onBlur={onBlur}\n onClick={() => computeFocus()}\n />\n ) : (\n setEditedValue(e.target.value)}\n onBlur={onBlur}\n onClick={() => computeFocus()}\n maxLength={maxLength}\n >\n )\n ) : (\n computeFocus()}\n >\n {editedValue}\n
\n )}\n \n );\n};\n","import { IOptionProps } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useTl } from \"../../hooks\";\nimport SelectVirtualized from \"react-select-virtualized\";\nimport { ETLCodes } from \"../../locales\";\n\nexport interface ITableGlobalSelectEditorProps {\n initialValue: number | string;\n onValueChanged: (value: number | string) => void;\n items: IOptionProps[];\n loading: boolean;\n readonly?: boolean;\n}\n\nexport const TableGlobalSelectEditor: React.FunctionComponent = ({\n initialValue,\n onValueChanged,\n items,\n loading,\n readonly = false\n}) => {\n const { t } = useTl();\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState(null);\n const [focused, setFocused] = React.useState(false);\n\n React.useEffect(() => {\n setCurrentValue(initialValue);\n const found = items?.find(v => v.value === initialValue);\n setEditedValue(found);\n }, [initialValue, items]);\n\n const onBlur = React.useCallback(\n async (e: any) => {\n if (editedValue && editedValue.value !== currentValue) {\n setCurrentValue(editedValue.value);\n onValueChanged(editedValue.value);\n }\n setFocused(false);\n },\n [currentValue, editedValue, onValueChanged]\n );\n\n const finalItems = React.useMemo(() => items?.map(i => ({ value: i.value || \"\", label: i.label || \" \" })), [items]);\n\n const computeFocus = React.useCallback(() => {\n if (!focused) {\n setFocused(true);\n }\n }, [focused]);\n\n const cursor = React.useMemo(() => (readonly ? \"text\" : \"pointer\"), [readonly]);\n\n return (\n <>\n {focused && !readonly ? (\n {\n let final = {\n ...base,\n minHeight: \"28px\",\n minWidth: \"50px\"\n };\n return final;\n },\n input: base => ({ ...base, margin: \"1px 2px\" }),\n clearIndicator: base => ({ ...base, padding: \"4px\", cursor: \"pointer\" }),\n dropdownIndicator: base => ({ ...base, padding: \"4px\", cursor: \"pointer\" }),\n menu: base => ({ ...base, zIndex: 9999 }),\n menuPortal: base => ({ ...base, zIndex: 9999 })\n }}\n isLoading={loading}\n options={finalItems}\n onChange={value => setEditedValue(value)}\n menuPortalTarget={document.body}\n menuPlacement=\"auto\"\n value={editedValue}\n loadingMessage={() => t(ETLCodes.FGSelectInput_Loading)}\n noOptionsMessage={() => t(ETLCodes.FGSelectInput_NoOptions)}\n placeholder=\"\"\n tabSelectsValue={true}\n onBlur={onBlur}\n autoFocus\n menuIsOpen={true}\n >\n ) : (\n computeFocus()}\n >\n {editedValue?.value ? editedValue.label : t(ETLCodes.NoValue)}\n
\n )}\n \n );\n};\n","import { Classes, Colors, Icon, InputGroup } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nexport interface ITableCheckboxEditorProps {\n initialValue: boolean;\n onValueChanged: (value: boolean) => void;\n readonly?: boolean;\n}\n\nconst ViewInput = styled(InputGroup)<{ colorcheck: string }>`\n display: flex;\n justify-content: center;\n width: 30px;\n & .${Classes.ICON} {\n color: ${p => p.colorcheck};\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nconst StyledIcon = styled(Icon)`\n cursor: pointer;\n`;\n\nexport const TableCheckboxEditor: React.FunctionComponent = ({\n initialValue,\n onValueChanged,\n readonly = false\n}) => {\n const [currentValue, setCurrentValue] = React.useState();\n\n React.useEffect(() => {\n setCurrentValue(initialValue);\n }, [initialValue]);\n\n const onChange = React.useCallback(\n async (e: any) => {\n const editedValue = !currentValue;\n if (editedValue !== currentValue) {\n setCurrentValue(editedValue);\n onValueChanged(editedValue);\n }\n },\n [currentValue, onValueChanged]\n );\n\n return (\n \n {readonly ? (\n \n ) : (\n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport Cleave from \"cleave.js/react\";\nimport { Classes, Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\n\nexport interface ITableGlobalDateEditorProps {\n initialTextValue: string;\n onValueChanged: (value: string) => void;\n textEditorHeight?: string | number;\n readonly?: boolean;\n}\n\nexport const TableGlobalDateEditor: React.FunctionComponent = ({\n initialTextValue,\n onValueChanged,\n textEditorHeight = \"auto\",\n readonly = false\n}) => {\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState();\n const [focused, setFocused] = React.useState(false);\n\n React.useEffect(() => {\n setCurrentValue(initialTextValue);\n setEditedValue(initialTextValue);\n }, [initialTextValue]);\n\n const input = React.useRef();\n\n const onBlur = React.useCallback(\n async (e: any) => {\n if (editedValue !== currentValue) {\n setCurrentValue(editedValue);\n onValueChanged(editedValue);\n }\n setFocused(false);\n },\n [currentValue, editedValue, onValueChanged]\n );\n\n const computeFocus = React.useCallback(() => {\n if (!focused) {\n setFocused(true);\n }\n }, [focused]);\n\n const cursor = React.useMemo(() => (readonly ? \"text\" : \"pointer\"), [readonly]);\n\n return (\n <>\n {focused && !readonly ? (\n
\n setEditedValue(e.target.value)}\n autoComplete=\"new-password\"\n onBlur={onBlur}\n onClick={computeFocus}\n value={editedValue}\n placeholder={\"\"}\n options={{ date: true, delimiter: \"/\", datePattern: [\"d\", \"m\", \"Y\"] }}\n className={`${Classes.INPUT}`}\n htmlRef={hRef => (input.current = hRef)}\n />\n \n
\n ) : (\n computeFocus()}\n >\n {editedValue}\n
\n )}\n \n );\n};\n","import printJS from \"print-js\";\n\nexport function downloadPdf({\n data,\n downloadFileName,\n}: {\n data: Uint8Array;\n downloadFileName: string;\n}) {\n const blob = new Blob([data], { type: \"application/pdf\" });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.setAttribute(\"style\", \"display:none;\");\n a.href = url;\n a.download = downloadFileName;\n a.click();\n window.URL.revokeObjectURL(url);\n document.removeChild(a);\n}\n\nexport function printPdf({\n data,\n onLoadingStart,\n onLoadingEnd,\n}: {\n data: Uint8Array;\n onLoadingStart?: () => void;\n onLoadingEnd?: () => void;\n}) {\n const blob = new Blob([data], { type: \"application/pdf\" });\n const url = window.URL.createObjectURL(blob);\n printJS({\n printable: url,\n type: \"pdf\",\n onLoadingStart,\n onLoadingEnd,\n });\n}\n","import { Button, ButtonGroup, ButtonProps } from \"@blueprintjs/core\";\nimport React, { Children, isValidElement } from \"react\";\nimport styled from \"styled-components\";\n\ntype VoidFunction = () => void;\n\ntype PdfViewerToolbarProps = {\n onToggleThumbnails?: VoidFunction;\n onDownload?: VoidFunction;\n onZoomIn?: VoidFunction;\n onZoomOut?: VoidFunction;\n onRotateRight?: VoidFunction;\n onRotateLeft?: VoidFunction;\n onPrint?: VoidFunction;\n fitToHeight?: VoidFunction;\n onNext?: VoidFunction;\n onPrevious?: VoidFunction;\n canPrevious?: boolean;\n canNext?: boolean;\n};\n\nconst ToolbarContainer = styled.div`\n display: flex;\n flex-direction: row;\n > .bp4-button,\n .bp4-button-group {\n margin-right: 0.25rem;\n }\n`;\n\nconst OptionalButton = (props: ButtonProps) => {\n if (props.onClick) return
\n \n );\n })}\n \n);\n","import { Page } from \"react-pdf\";\nimport React, { RefObject, useEffect, useRef } from \"react\";\nimport styled from \"styled-components\";\nimport { PDFDocumentProxy } from \"pdfjs-dist/types/display/api\";\nimport { Colors } from \"@blueprintjs/core\";\n\nexport type PdfViewerPagesProps = {\n pdf: PDFDocumentProxy;\n displayAll: boolean;\n pageNumber: number;\n height: number;\n rotate: number;\n containerRef?: RefObject;\n};\n\nconst PagesContainer = styled.div`\n overflow-y: hidden;\n overflow-x: hidden;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n > * {\n border-radius: 0.5rem;\n box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n max-width: 100%;\n max-height: 100%;\n border: ${Colors.GRAY4} solid 1px;\n scrollbar-width: thin;\n overflow-y: auto;\n overflow-x: auto;\n }\n`;\n\nconst AllPages = ({ pdf, height, rotate }: Pick) => {\n return (\n <>\n {Array.from(new Array(pdf.numPages), (el, index) => (\n \n ))}\n \n );\n};\n\nexport default ({ containerRef, pdf, displayAll, pageNumber, height, rotate }: PdfViewerPagesProps) => {\n const divRef = useRef();\n useEffect(() => {\n if (divRef.current && displayAll) {\n const pageElement = divRef.current.querySelector(`*:nth-child(${pageNumber})`);\n if (pageElement) pageElement.scrollIntoView();\n }\n }, [displayAll, pageNumber]);\n return (\n \n
\n {pdf && displayAll && }\n {pdf && !displayAll && (\n \n )}\n
\n
\n );\n};\n","import React, { useCallback, useRef, useState } from \"react\";\nimport { Document } from \"react-pdf\";\nimport { PDFDocumentProxy } from \"pdfjs-dist/types/display/api\";\nimport styled from \"styled-components\";\nimport { Colors } from \"@blueprintjs/core\";\nimport { useToggle } from \"ahooks\";\nimport { downloadPdf, printPdf } from \"./pdf-viewer-utils\";\nimport PdfViewerToolbar from \"./PdfViewerToolbar\";\nimport PdfViewerPrintLoadingDialog from \"./PdfViewerPrintLoadingDialog\";\nimport PdfViewerThumbnails, { PdfViewerThumbnailsProps } from \"./PdfViewerThumbnails\";\nimport PdfViewerPages, { PdfViewerPagesProps } from \"./PdfViewerPages\";\n\nexport type ToolbarFlagsType = {\n disabled?: boolean;\n withoutThumbnail?: boolean;\n withoutZoomIn?: boolean;\n withoutZoomOut?: boolean;\n withoutZoomFit?: boolean;\n withoutRotateRight?: boolean;\n withoutRotateLeft?: boolean;\n withoutDownload?: boolean;\n withoutPrint?: boolean;\n withoutPageNav?: boolean;\n\n dummy?: boolean;\n};\n\nexport type PdfViewerProps = Pick &\n Pick & {\n displayAll?: boolean;\n downloadFileName?: string;\n file: Uint8Array | Blob;\n toolbarOptions?: ToolbarFlagsType;\n scale?: number;\n };\n\nconst ViewerContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n max-width: 100%;\n flex: 1;\n overflow: hidden;\n background-color: ${Colors.LIGHT_GRAY4};\n padding: 0 1rem;\n align-items: center;\n > * {\n padding: 0.5rem 0.25rem 0 0;\n }\n`;\n\nconst MainContainer = styled(Document)`\n display: flex;\n flex-direction: row;\n height: 100%;\n flex: 1;\n overflow: hidden;\n width: 100%;\n justify-content: center;\n > *:not(:last-child) {\n margin-right: 0.5rem;\n }\n`;\n\nexport const PdfViewer = ({\n displayAll,\n thumbnailWidth,\n downloadFileName = \"file.pdf\",\n file,\n toolbarOptions = {},\n scale: externeScale = 1.0\n}: PdfViewerProps) => {\n const pageRef = useRef();\n const [pageNumber, setPageNumber] = useState(1);\n const [pdf, setPdf] = useState(undefined);\n const [scale, setScale] = useState(externeScale);\n const [height, setHeight] = useState(794);\n const [rotate, setRotate] = useState(0);\n const [loadingPrint, { set: setLoadingPrint }] = useToggle();\n const [showThumbnails, { toggle: onToggleThumbnails }] = useToggle(!displayAll);\n\n const onPdfLoaded = useCallback((pdf: PDFDocumentProxy) => {\n setPdf(pdf);\n }, []);\n\n const onZoomIn = useCallback(() => setScale(scale => scale + 0.1), []);\n const onZoomOut = useCallback(() => setScale(scale => scale - 0.1), []);\n const onRotateRight = useCallback(() => setRotate(rotate => (rotate === 270 ? 0 : rotate + 90)), []);\n const onRotateLeft = useCallback(() => setRotate(rotate => (rotate === 0 ? 270 : rotate - 90)), []);\n\n const onPrint = useCallback(async () => {\n const data: any = await pdf.getData();\n printPdf({\n data,\n onLoadingStart: () => setLoadingPrint(true),\n onLoadingEnd: () => setLoadingPrint(false)\n });\n }, [pdf, setLoadingPrint]);\n\n const onDownload = useCallback(async () => {\n const data: any = await pdf.getData();\n downloadPdf({ data, downloadFileName });\n }, [downloadFileName, pdf]);\n\n const fitToHeight = useCallback(() => {\n if (pageRef.current) {\n setScale(1);\n setHeight(pageRef.current.offsetHeight);\n }\n }, []);\n\n const canNext = React.useMemo(() => pageNumber < pdf?.numPages, [pageNumber, pdf?.numPages]);\n const onNext = React.useCallback(() => {\n if (!canNext) return;\n setPageNumber(pageNumber + 1);\n }, [canNext, pageNumber]);\n\n const canPrevious = React.useMemo(() => pageNumber > 1, [pageNumber]);\n const onPrevious = React.useCallback(() => {\n if (!canPrevious) return;\n setPageNumber(pageNumber - 1);\n }, [canPrevious, pageNumber]);\n\n return (\n \n \n {!toolbarOptions.disabled && (\n \n )}\n \n {showThumbnails && pdf && (\n \n )}\n \n \n \n );\n};\n","import { Tooltip2 } from \"@blueprintjs/popover2\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nconst Circle = styled.div<{ bgColor: string }>`\n height: 15px;\n width: 15px;\n background-color: ${props => props.bgColor};\n border-radius: 50%;\n display: inline-block;\n margin: 0 0.5rem;\n`;\n\nexport interface ICircleColumnProps {\n color: string;\n tooltip?: string | JSX.Element;\n}\n\nexport const CircleColumn: React.FunctionComponent = ({ color, tooltip }) => {\n const circle = React.useMemo(() => , [color]);\n return !!tooltip ? (\n \n {circle}\n \n ) : (\n circle\n );\n};\n","import { Classes } from \"@blueprintjs/core\";\nimport { CleaveOptions } from \"cleave.js/options\";\nimport Cleave from \"cleave.js/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nconst Container = styled.div``;\n\nexport interface IColumnMaskProps {\n value: any;\n cleaveOptions: CleaveOptions;\n}\n\nexport const ColumnMask: React.FunctionComponent = ({ value, cleaveOptions }) => {\n return (\n !!value && (\n \n \n \n )\n );\n};\n","import * as React from \"react\";\n\nexport type UnordoredListValue = {\n label: string;\n value: boolean;\n};\n\nexport interface IUnordoredListColumnProps {\n values: UnordoredListValue[];\n noBullets?: boolean;\n}\n\nexport const UnordoredListColumn: React.FunctionComponent = ({ values = [], noBullets }) => {\n return noBullets ? (\n
\n {values\n .filter(v => v.value)\n .map(v => (\n {v.label}\n ))}\n
\n ) : (\n
    \n {values\n .filter(v => v.value)\n .map(v => (\n
  • {v.label}
  • \n ))}\n
\n );\n};\n","import { Colors, Icon } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useTheme } from \"../../hooks\";\n\nexport interface IBooleanColumnProps {\n value: boolean;\n muted?: boolean;\n}\n\nexport const BooleanColumn: React.FunctionComponent = ({ value, muted }) => {\n const { theme } = useTheme();\n return value ? (\n \n ) : (\n \n );\n};\n","import * as React from \"react\";\n\nexport type OpenedMenuId = {\n level: number;\n id: string;\n};\n\ninterface ICollapseAllContext {\n openedMenuId?: OpenedMenuId;\n setMenuOpenedId: (id: OpenedMenuId | null) => void;\n}\n\nexport const CollapseAllContext = React.createContext(null);\n","import { Classes } from \"@blueprintjs/core\";\nimport styled from \"styled-components\";\n\nimport { IThemeData } from \"../../theme\";\n\nexport const Container = styled.div<{ theme: IThemeData }>`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: stretch;\n min-width: 250px;\n height: auto;\n background-color: ${({ theme }) => theme.menuBackgroundColor} !important;\n & .${Classes.MENU} {\n padding: 0 !important;\n }\n`;\n","import { Alignment, Button, Classes, Collapse, Colors } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { useTheme, useTl } from \"../../hooks\";\nimport { IThemeData } from \"../../theme\";\nimport { CollapseAllContext } from \"./CollapseAllContext\";\nimport { Container } from \"./Container\";\nimport { INavigationItem } from \"./INavigationItem\";\n\nconst ButtonStyled = styled(Button)<{ theme: IThemeData }>`\n margin: 0em;\n &.level_0 {\n background-color: ${props => props.theme.menuColor || Colors.BLUE3} !important;\n border-radius: 0;\n padding: 0.5em !important;\n &:hover {\n background-color: ${props => props.theme.menuSubColor || Colors.BLUE3} !important;\n color: ${props => props.theme.highlightColor || \"black\"} !important;\n }\n }\n &.level_1.has-children {\n /* border: 1px solid white; */\n margin-top: 1px;\n margin-bottom: 1px;\n background-color: ${props => props.theme.menuSubColor} !important;\n border-radius: 0;\n &:hover {\n background-color: ${props => props.theme.menuSubColorSelected || Colors.BLUE3} !important;\n color: ${props => props.theme.highlightColor || \"black\"} !important;\n }\n }\n\n & .${Classes.ICON} {\n color: ${props => props.theme.menuIconColor} !important;\n }\n\n &.is-active {\n font-weight: bold;\n text-decoration: blink !important;\n border-bottom: 3px solid;\n border-color: ${props => props.theme.menuActiveColor || Colors.BLUE3} !important;\n background-color: ${props => props.theme.menuActiveColor || Colors.BLUE3} !important;\n color: white !important;\n }\n`;\n\nexport interface IMenuItemProps {\n item: INavigationItem;\n level: number;\n disabled?: boolean;\n maxAutoCollapseLevel?: number;\n onNavigation?: () => void;\n}\n\nexport const MenuItem: React.FunctionComponent = ({\n item,\n level,\n disabled,\n maxAutoCollapseLevel = 999,\n onNavigation\n}) => {\n const { pathname } = useLocation();\n const { theme } = useTheme();\n const isActive = React.useMemo(\n () =>\n item.route &&\n (pathname === item.route ||\n pathname.startsWith(item.route + \"/\") ||\n item.otherAuthorizedRoutes?.some(r => pathname === r || pathname.startsWith(r + \"/\"))),\n [item, pathname]\n );\n\n const [isExpanded, setIsExpanded] = React.useState(!!item.defaultOpened);\n const history = useHistory();\n const { t } = useTl();\n const id = React.useMemo(() => uuidv4(), []);\n const { openedMenuId, setMenuOpenedId } = React.useContext(CollapseAllContext);\n\n React.useEffect(() => {\n const hasItemWithCurrentRoute = (itm: INavigationItem) => {\n if (itm.route && pathname.includes(itm.route)) {\n return true;\n }\n if (itm.items) {\n return itm.items.filter(i => hasItemWithCurrentRoute(i)).length > 0;\n }\n return false;\n };\n\n if (hasItemWithCurrentRoute(item)) {\n setIsExpanded(true);\n setMenuOpenedId({ level, id });\n }\n }, [id, item, level, pathname, setMenuOpenedId]);\n\n React.useEffect(() => {\n if (openedMenuId?.level === level && openedMenuId?.id !== id && level <= maxAutoCollapseLevel) {\n setIsExpanded(false);\n }\n }, [id, level, maxAutoCollapseLevel, openedMenuId]);\n\n const hasChildren = React.useMemo(() => {\n return item.items && item.items.length > 0;\n }, [item]);\n\n const collapseIcon = React.useMemo(() => {\n if (hasChildren) {\n return isExpanded ? IconNames.CHEVRON_RIGHT : IconNames.CHEVRON_DOWN;\n } else {\n return IconNames.BLANK;\n }\n }, [hasChildren, isExpanded]);\n\n const onClick = React.useCallback(() => {\n if (hasChildren) {\n if (!isExpanded) {\n setMenuOpenedId({ level, id });\n }\n setIsExpanded(e => !e);\n } else if (item.route) {\n history.push(item.route);\n if (onNavigation) {\n onNavigation();\n }\n }\n }, [hasChildren, item, isExpanded, setMenuOpenedId, level, id, history, onNavigation]);\n\n return (\n <>\n {item.startGroupTitle &&
{item.startGroupTitle}
}\n onClick()}\n style={{ paddingLeft: `${level * 1 + 0.1}em` }}\n minimal={true}\n className={classnames([`level_${level}`, { \"has-children\": hasChildren, \"is-active\": isActive }])}\n alignText={Alignment.LEFT}\n small={true}\n disabled={disabled}\n />\n \n \n {item.items &&\n item.items!.map((itm, index) => (\n \n ))}\n \n \n \n );\n};\n","import { Classes, MenuItem } from \"@blueprintjs/core\";\nimport { ItemPredicate, ItemRenderer, Suggest } from \"@blueprintjs/select\";\nimport { orderBy } from \"lodash\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { INavigationItem } from \".\";\nimport { useTheme, useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales\";\nimport { IThemeData } from \"../../theme\";\n\nfunction escapeRegExpChars(text: string) {\n return text.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, \"\\\\$1\");\n}\n\nfunction highlightText(text: string, query: string) {\n let lastIndex = 0;\n const words = query\n .split(/\\s+/)\n .filter(word => word.length > 0)\n .map(escapeRegExpChars);\n if (words.length === 0) {\n return [text];\n }\n const regexp = new RegExp(words.join(\"|\"), \"gi\");\n const tokens: React.ReactNode[] = [];\n while (true) {\n const match = regexp.exec(text);\n if (!match) {\n break;\n }\n const length = match[0].length;\n const before = text.slice(lastIndex, regexp.lastIndex - length);\n if (before.length > 0) {\n tokens.push(before);\n }\n lastIndex = regexp.lastIndex;\n tokens.push({match[0]});\n }\n const rest = text.slice(lastIndex);\n if (rest.length > 0) {\n tokens.push(rest);\n }\n return tokens;\n}\n\nexport type FlattenedNavigationItems = {\n label: string;\n route: string;\n id: string;\n};\n\nexport interface IQuickAccessProps {\n navigationMenu: INavigationItem[];\n onNavigation?: () => void;\n}\n\nconst NavItemSuggest = Suggest.ofType();\n\nconst MyNavItemSuggest = styled(NavItemSuggest)<{ theme: IThemeData }>`\n & .${Classes.MENU} {\n max-height: 200px !important;\n overflow: auto !important;\n color: white !important;\n & .${Classes.ACTIVE} {\n color: ${props => props.theme.quickAccessSelectedColor} !important;\n }\n }\n`;\n\nexport const QuickAccess: React.FunctionComponent = ({ navigationMenu, onNavigation }) => {\n const { t } = useTl();\n const { theme } = useTheme();\n const history = useHistory();\n const list = React.useMemo(() => {\n const extractItemsFromNavMenu = (navMenu: INavigationItem[], parentLabel = \"\"): FlattenedNavigationItems[] => {\n return navMenu\n .map(mItem => {\n const menuName = t(mItem.name);\n const items: FlattenedNavigationItems[] = mItem.route\n ? [{ label: parentLabel ? parentLabel + \" / \" + menuName : menuName, route: mItem.route, id: uuidv4() }]\n : [];\n\n if (mItem.items) {\n return [...items, ...extractItemsFromNavMenu(mItem.items, menuName)];\n }\n return items;\n })\n .reduce((prev, curr) => [...prev, ...curr], []);\n };\n\n return orderBy(extractItemsFromNavMenu(navigationMenu), [\"label\"], [\"asc\"]);\n }, [navigationMenu, t]);\n\n const renderInputValue = React.useCallback((i: FlattenedNavigationItems) => i.label, []);\n const areItemsEquals = React.useCallback(\n (a: FlattenedNavigationItems, b: FlattenedNavigationItems) => a.route === b.route,\n []\n );\n\n const onChange = React.useCallback(\n (i: FlattenedNavigationItems) => {\n history.push(i.route);\n if (onNavigation) {\n onNavigation();\n }\n },\n [history, onNavigation]\n );\n\n const itemRenderer = React.useCallback>(\n (item: FlattenedNavigationItems, { handleClick, modifiers, query }) => {\n if (!modifiers.matchesPredicate) {\n return null;\n }\n const text = item.label;\n return (\n \n );\n },\n []\n );\n\n const filterList = React.useCallback>((query, item, _index, exactMatch) => {\n const normalizedTitle = item.label.toLowerCase();\n const normalizedQuery = query.toLowerCase();\n if (exactMatch) {\n return normalizedTitle === normalizedQuery;\n } else {\n return normalizedTitle.indexOf(normalizedQuery) >= 0;\n }\n }, []);\n\n return (\n }\n onItemSelect={onChange}\n itemRenderer={itemRenderer}\n itemPredicate={filterList}\n resetOnQuery={true}\n fill={true}\n selectedItem={null}\n openOnKeyDown={true}\n resetOnSelect={true}\n inputProps={{\n placeholder: t(ETLCodes.QuickAccess),\n leftIcon: \"search\"\n }}\n popoverProps={{\n minimal: true,\n usePortal: false,\n popoverClassName: \"quickaccess\"\n }}\n >\n );\n};\n","import { Classes, Icon, Menu } from \"@blueprintjs/core\";\nimport { ToolTipButton } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useLocation } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { useTheme } from \"../../hooks\";\nimport { useTl } from \"../../hooks/useTl\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { IThemeData } from \"../../theme\";\nimport { CollapseAllContext, OpenedMenuId } from \"./CollapseAllContext\";\nimport { Container } from \"./Container\";\nimport { INavigationItem } from \"./INavigationItem\";\nimport { IMenuItemProps, MenuItem } from \"./MenuItem\";\nimport { QuickAccess } from \"./QuickAccess\";\n\ninterface INavigationMenuProps extends Pick {\n navigationMenu: INavigationItem[];\n isFixed: boolean;\n changeFixed: (value: boolean) => void;\n collapseOtherOnSelection?: boolean;\n maxAutoCollapseLevel?: number;\n}\n\nconst MenuStyled = styled(Menu)<{ theme: IThemeData }>`\n display: flex;\n flex-direction: column;\n flex: 1;\n margin-top: 0.5em;\n background-color: ${({ theme }) => theme.menuBackgroundColor} !important;\n`;\n\nconst TitleContainer = styled.div<{ theme: IThemeData }>`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n background-color: ${({ theme }) => theme.menuBackgroundColor} !important;\n align-items: center;\n`;\n\nexport const NavigationMenu: React.FunctionComponent = ({\n navigationMenu,\n isFixed,\n changeFixed,\n collapseOtherOnSelection: closeOtherOnSelection,\n maxAutoCollapseLevel,\n onNavigation\n}) => {\n const { t } = useTl();\n const [openedMenuId, setMenuOpenedId] = React.useState(null);\n const { pathname } = useLocation();\n const { theme } = useTheme();\n\n const checkOpened = React.useCallback(\n (navItem: INavigationItem): INavigationItem => {\n let opened = false;\n if (navItem.route && pathname.startsWith(navItem.route)) {\n opened = true;\n }\n const nextNavItems = navItem.items ? navItem.items.map(checkOpened) : [];\n opened = opened || nextNavItems.filter(d => d.defaultOpened).length > 0;\n return {\n ...navItem,\n defaultOpened: opened,\n items: nextNavItems\n };\n },\n [pathname]\n );\n\n const navigationMenuFinal = React.useMemo(() => {\n // Keep menu original state for root route\n // if (pathname === \"/\") return navigationMenu;\n return navigationMenu.map(checkOpened);\n }, [checkOpened, navigationMenu]);\n\n return (\n \n \n
\n \n
\n {t(ETLCodes.Menu)} \n {/* */}\n
\n }\n minimal={true}\n onClick={() => changeFixed(!isFixed)}\n >\n
\n
\n \n {} }}\n >\n \n \n {navigationMenuFinal.map((n, i) => (\n \n ))}\n \n \n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { AddStatutPostSortieDialog } from \".\";\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales\";\n\nexport interface IAddStatutPostSortieButtonProps {\n idApprenant: number;\n onClosed: (refresh: boolean) => void;\n}\n\nexport const AddStatutPostSortieButton: React.FunctionComponent = ({\n idApprenant,\n onClosed\n}) => {\n const { t } = useTl();\n const [isDialogOpen, setIsDialogOpen] = React.useState(false);\n\n return (\n <>\n \n {\n setIsDialogOpen(true);\n }}\n />\n \n\n {\n setIsDialogOpen(false);\n onClosed(refresh);\n }}\n />\n \n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGCheckboxInput } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"..\";\nimport { StatutApprenantApi, StatutApprenantEditDto } from \"../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../hooks\";\nimport { useReferential } from \"../../hooks/useReferential\";\nimport { ETLCodes } from \"../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nexport interface IAddStatutPostSortieDialogProps {\n idApprenant: number;\n onClosed: (refresh: boolean) => void;\n isDialogOpen: boolean;\n}\n\nexport const AddStatutPostSortieDialog: React.FunctionComponent = ({\n idApprenant,\n isDialogOpen,\n onClosed\n}) => {\n const { t } = useTl();\n const api = useApiService(StatutApprenantApi);\n const [idCatStatutSocial, setIdCatStatutSocial] = React.useState(0);\n\n const { data, loading, saveItem, saving } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n return await api.statutApprenantGetNewStatutPostSortie({ idapprenant: idApprenant });\n },\n saveApiFn: d => api.statutApprenantSaveStatutApprenant({ StatutApprenantEditDto: d }),\n onSaved: () => onClosed(true),\n getDeps: [idApprenant]\n }),\n [idApprenant, api, onClosed]\n )\n );\n\n const [categoriesStatutSocial, cssLoading] = useReferential(a => a.referentialGetCategoriesStatutSocial());\n const [idstatutSocial, setIdstatutSocial] = React.useState(0);\n const [statutsSocial, ssLoading] = useReferential(\n a =>\n a.referentialGetSousStatutsByCategorie({ idCategorie: idCatStatutSocial, currentIdstatutSocial: idstatutSocial }),\n true,\n [idCatStatutSocial]\n );\n\n const FormSchema = React.useMemo(\n () =>\n Yup.object().shape({\n idCategorieStatut: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idStatut: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n dateStatut: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n [t]\n );\n\n return (\n onClosed(false)}>\n
\n onClosed(false)}\n showDeleteButton={false}\n saving={saving}\n forceEnableSave\n watchChanges={{\n idStatut: setIdstatutSocial,\n idCategorieStatut: setIdCatStatutSocial\n }}\n >\n \n \n \n \n \n
\n
\n );\n};\n","import { Classes, Dialog } from \"@blueprintjs/core\";\nimport { FGListen } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { StatutApprenantApi, StatutApprenantEditDto } from \"../../api\";\nimport { useApiService, useCrudApi, useTl } from \"../../hooks\";\nimport { useReferential } from \"../../hooks/useReferential\";\nimport { ETLCodes } from \"../../locales\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput } from \"../formGenerator\";\nimport { SmallFormGenerator } from \"../SmallFormGenerator\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n\n & .${Classes.RADIO} {\n align-self: center;\n min-width: 125px;\n }\n`;\n\nexport interface IEditStatutApprenantDialogProps {\n apprenantData: StatutApprenantEditDto;\n isDialogOpen: boolean;\n onClose: (refresh: boolean) => void;\n}\n\nexport const EditStatutApprenantDialog: React.FunctionComponent = ({\n isDialogOpen,\n onClose = (refresh: boolean) => {},\n apprenantData\n}) => {\n const { t } = useTl();\n const api = useApiService(StatutApprenantApi);\n const [idCatStatutSocial, setIdCatStatutSocial] = React.useState(+(apprenantData?.idCategorieStatut ?? 0));\n\n const [categoriesStatutSocial, cssLoading, , rawCatStatutSocial] = useReferential(a =>\n a.referentialGetCategoriesStatutSocial()\n );\n const [idstatutSocial, setIdstatutSocial] = React.useState(0);\n const [statutsSocial, ssLoading] = useReferential(\n a =>\n a.referentialGetSousStatutsByCategorie({\n idCategorie: idCatStatutSocial ?? 0,\n currentIdstatutSocial: idstatutSocial ?? 0\n }),\n true,\n [idCatStatutSocial]\n );\n const [dureeInoccupations, diLoading] = useReferential(a => a.referentialGetDureeInoccupation(), true, []);\n const [idtypeSortie, setIdtypeSortie] = React.useState(0);\n const [typesSortie, tLoading] = useReferential(a => a.referentialGetTypesSortie({ currentId: idtypeSortie }));\n const [motifsSortie, msLoading] = useReferential(a => a.referentialGetMotifsSortie({ idtypeSortie }), true, [\n idtypeSortie\n ]);\n\n const showDureeInoccupation = React.useMemo(\n () =>\n !!rawCatStatutSocial &&\n +(rawCatStatutSocial.find(c => c.keyValue === \"DEM\")?.idValue ?? 0) === +idCatStatutSocial,\n [idCatStatutSocial, rawCatStatutSocial]\n );\n\n const { data, loading, saveItem, saving } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: async () => {\n let d = await api.statutApprenantGetStatutApprenant({ idstatutApprenant: apprenantData?.idStatutApprenant });\n d.simpleUpdate = true;\n return d;\n },\n saveApiFn: d => api.statutApprenantSaveStatutApprenant({ StatutApprenantEditDto: d }),\n onSaved: () => onClose(true)\n }),\n [api, apprenantData, onClose]\n )\n );\n\n React.useEffect(() => {\n if (!!data) {\n setIdCatStatutSocial(data.idCategorieStatut);\n setIdstatutSocial(data.idStatut);\n setIdtypeSortie(data.idtypeSortie);\n }\n }, [data]);\n\n const FormSchema = React.useMemo(() => {\n let schema = {\n idCategorieStatut: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n idStatut: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required)),\n iddureeInoccupation: Yup.number()\n .nullable()\n .when([\"idCategorieStatut\"], {\n is: idCategorieStatut =>\n !!rawCatStatutSocial &&\n +(rawCatStatutSocial.find(c => c.keyValue === \"DEM\")?.idValue ?? 0) === +idCategorieStatut,\n then: Yup.number()\n .nullable()\n .required(t(ETLCodes.Required))\n }),\n dateStatut: Yup.date()\n .nullable()\n .required(t(ETLCodes.Required))\n };\n\n return Yup.object().shape(schema, [\n [\"iddureeInoccupation\", \"idCategorieStatut\"],\n [\"idtypeSortie\", \"idMotifSortie\"]\n ]);\n }, [rawCatStatutSocial, t]);\n\n return (\n onClose(false)}>\n
\n onClose(false)}\n showDeleteButton={false}\n saving={saving}\n forceEnableSave\n watchChanges={{\n idStatut: setIdstatutSocial,\n idtypeSortie: setIdtypeSortie,\n idCategorieStatut: (value: any, formik) => {\n if (value === idCatStatutSocial) return;\n setIdCatStatutSocial(value);\n formik.setFieldValue(\"idStatut\", null);\n formik.setFieldValue(\"iddureeInoccupation\", null);\n }\n }}\n enableDirtyCheck={false}\n loading={loading}\n >\n \n \n {showDureeInoccupation && (\n \n )}\n {(data?.idtypeSortie || data?.idMotifSortie) && (\n \n )}\n {(data?.idtypeSortie || data?.idMotifSortie) && (\n \n )}\n \n \n
\n
\n );\n};\n","import { ITabsProps, Tabs } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport { useHistory, useLocation, useParams } from \"react-router\";\n\nimport { useAuth } from \"../../contexts\";\n\nexport interface IProtectedTabsProps extends ITabsProps {}\n\nexport const ProtectedTabs: React.FunctionComponent = ({ ...props }) => {\n const { matchTab } = useAuth();\n const { pathname } = useLocation();\n const { tab: tabString } = useParams<{ tab: string }>();\n const history = useHistory();\n\n const filteredTabs = React.useCallback(\n (tabs: any = props.children) => {\n if (Array.isArray(tabs)) {\n return tabs.filter((d: any) => {\n if (Array.isArray(d)) return filteredTabs(d);\n if (d?.type?.displayName === \"Blueprint4.Tab\") {\n return matchTab(d.props.id.toString());\n } else {\n return true;\n }\n });\n }\n return props.children;\n },\n [matchTab, props.children]\n );\n\n React.useEffect(() => {\n if (filteredTabs() && Array.isArray(filteredTabs()) && filteredTabs().length > 0) {\n let tab = null;\n\n if (!filteredTabs().some(d => (d.props?.id?.toUpperCase() ?? \"\") === tabString?.toUpperCase())) {\n for (let d of filteredTabs()) {\n if (d?.type?.displayName === \"Blueprint4.Tab\" && !tab) {\n tab = d;\n }\n }\n }\n\n if (tab && tabString.toUpperCase() !== tab.props.id.toUpperCase()) {\n let url = pathname.charAt(pathname.length - 1) !== \"/\" ? pathname + \"/\" : pathname;\n url = url.replace(`/${tabString}/`, `/${tab.props.id}/`);\n url = url.substr(0, url.indexOf(`/${tab.props.id}/`) + `/${tab.props.id}/`.length);\n history.push(url);\n }\n }\n }, [filteredTabs, history, pathname, tabString]);\n\n return ;\n};\n","import * as React from \"react\";\nimport { Redirect } from \"react-router\";\nimport { ERoutes } from \"../../AppRouter\";\nimport { useAuth } from \"../../contexts\";\n\nexport interface IProtectedRedirectProps {}\n\nexport const ProtectedRedirect: React.FunctionComponent = () => {\n const { userPermissions } = useAuth();\n const hasAnyPermission = React.useMemo(() => userPermissions?.length > 0, [userPermissions]);\n return <>{hasAnyPermission ? : };\n};\n","import * as React from \"react\";\nimport styled from 'styled-components';\nimport { ErrorText, LinkButton } from '..';\nimport { ERoutes } from '../../AppRouter';\nimport { useTl } from '../../hooks';\nimport { ETLCodes } from '../../locales';\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport interface IAdresseDoublonErrorLinkProps {\n idpersonne: number;\n}\n\nexport const AdresseDoublonErrorLink: React.FunctionComponent = ({ idpersonne }) => {\n const { t } = useTl();\n\n return (\n {'\\u00A0'}\n window.open(`#${ERoutes.personne}/${idpersonne}/signaletique/edit`)} />\n );\n};","import { Button, Card, Classes, Colors, Dialog, Icon } from \"@blueprintjs/core\";\nimport { FGCustomPanel, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport styled from \"styled-components\";\n\nimport { SmallFormGenerator } from \"..\";\nimport { AdresseDoublonApi, AdresseDoublonDto, AdresseDoublonSearchDtoFromJSON } from \"../../api\";\nimport { useApiService, useManageError, useTheme, useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales\";\n\nconst StyledDialog = styled(Dialog)`\n width: 600px;\n height: auto;\n background-color: white;\n`;\n\nconst CardContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n`;\n\nconst StyledCard = styled(Card)<{ backgroundColor: string }>`\n padding: 10px !important;\n background-color: ${props => props.backgroundColor};\n display: flex;\n justify-content: space-between;\n`;\n\nexport interface IAdresseDoublonDialogProps {\n initialData: AdresseDoublonDto;\n dialogOpen: boolean;\n onClose: (refresh?: boolean) => void;\n}\n\nexport const AdresseDoublonDialog: React.FunctionComponent = ({\n initialData,\n dialogOpen,\n onClose\n}) => {\n const { t } = useTl();\n const { theme } = useTheme();\n const api = useApiService(AdresseDoublonApi);\n const { manageError } = useManageError();\n\n const searchFn = React.useCallback(() => {\n return api.adresseDoublonBaseSearch({\n AdresseDoublonSearchDto: AdresseDoublonSearchDtoFromJSON({\n idpersonne: initialData.idpersonne,\n idtypeAdresse: initialData.idtypeAdresse\n })\n });\n }, [api, initialData.idpersonne, initialData.idtypeAdresse]);\n const { data, isFetching } = useQuery(\n [\"search-adresse-doublons\", initialData.idpersonne, initialData.idtypeAdresse],\n searchFn\n );\n\n const [saving, setSaving] = React.useState(false);\n const onSave = React.useCallback(\n async (d: AdresseDoublonDto) => {\n setSaving(true);\n try {\n await api.adresseDoublonSaveAdresseDoublon({ AdresseDoublonDto: d });\n } catch (e) {\n manageError(e);\n } finally {\n setSaving(false);\n onClose(true);\n }\n },\n [api, manageError, onClose]\n );\n\n return (\n onClose()}>\n
\n \n onClose()} icon=\"cross\" />}\n >\n \n {ctx => (\n \n {data?.results?.map(a => (\n ctx.formik.setFieldValue(\"idadresseToKeep\", a.idadresse)}\n backgroundColor={\n ctx.formik.values.idadresseToKeep === a.idadresse ? Colors.WHITE : Colors.LIGHT_GRAY3\n }\n >\n
\n {a.adresse}\n
\n {a.localite && (\n <>\n {a.codePostal ?? a.codePostalText} {a.localite}\n {a.commune ? ` (${a.commune})` : a.commune}\n
\n \n )}\n {a.typeAdresse}\n
\n {ctx.formik.values.idadresseToKeep === a.idadresse ? (\n \n ) : (\n \n )}\n \n ))}\n
\n )}\n
\n \n \n
\n
\n );\n};\n","import { getIn } from \"formik\";\nimport { useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { FGWalterSelectInput, IFGWalterSelectInputProps } from \"..\";\nimport { useTl } from \"../../hooks\";\nimport { useReferential } from \"../../hooks/useReferential\";\nimport { ETLCodes } from \"../../locales\";\n\nexport interface IContratMotifRupturePatronSelectProps\n extends Omit, \"items\" | \"loading\"> {}\n\nexport function ContratMotifRupturePatronSelect(props: IContratMotifRupturePatronSelectProps) {\n const { t } = useTl();\n const { formik } = useFGContext();\n\n const value = React.useMemo(() => formik?.values && getIn(formik?.values, props.name), [formik?.values, props.name]);\n const [motifsPatron, mpLoading] = useReferential(a =>\n a.referentialGetMotifsRupturePatron({ selectedId: value ?? 0 })\n );\n\n return (\n \n );\n}\n\nexport default ContratMotifRupturePatronSelect;\n","import { getIn } from \"formik\";\nimport { useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { FGWalterSelectInput, IFGWalterSelectInputProps } from \"..\";\nimport { useTl } from \"../../hooks\";\nimport { useReferential } from \"../../hooks/useReferential\";\nimport { ETLCodes } from \"../../locales\";\n\nexport interface IContratMotifRuptureJeuneSelectProps\n extends Omit, \"items\" | \"loading\"> {}\n\nexport function ContratMotifRuptureJeuneSelect(props: IContratMotifRuptureJeuneSelectProps) {\n const { t } = useTl();\n const { formik } = useFGContext();\n\n const value = React.useMemo(() => formik?.values && getIn(formik?.values, props.name), [formik?.values, props.name]);\n const [motifsJeune, mjLoading] = useReferential(a => a.referentialGetMotifsRuptureJeune({ selectedId: value ?? 0 }));\n\n return (\n \n );\n}\n\nexport default ContratMotifRuptureJeuneSelect;\n","import { Intent } from \"@blueprintjs/core\";\nimport {\n BaseFilterCriteriaInfo,\n BaseSelectItem,\n DataTable,\n FieldSet,\n IDataTableColumn,\n IDataTableProps,\n IDefaultCriteriaValue,\n IFieldSetProps,\n ISearchCriteriaValues,\n SearchPanel,\n SortType,\n useGridState\n} from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useLocation } from \"react-router\";\n\nimport { AddButton, ICustomBreadcrumbProps, PageBase } from \"..\";\nimport { useEventsContext } from \"../../contexts\";\nimport { useSearchApi, useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales\";\n\ninterface ISearchTablePageProps\n extends Pick, \"customizeRowStyle\" | \"onRowClick\">,\n Pick {\n searchFunction: (sObj: ISearchCriteriaValues) => TResults | Promise;\n getCriteriasFunction: () => BaseFilterCriteriaInfo[] | Promise;\n addFunc?: () => void;\n columns: Array;\n breadCrumbs?: Array;\n criteriasTlPrefix?: string;\n defaultCriterias?: Array;\n withCard?: boolean;\n overrideListValues?: {\n [key: string]: (e: BaseSelectItem) => string;\n };\n sortKeys?: {\n [key: string]: SortType;\n };\n title?: ETLCodes;\n pageSize?: number;\n availablePageSizes?: number[];\n avoidSavingCriterias?: boolean;\n initialSearch?: boolean;\n onOpenSubComponent?: (item: any) => string | React.ReactElement>;\n keyFieldName?: string;\n renderNoData?: React.ReactElement>;\n searchStateInitialSearch?: boolean;\n noTitle?: boolean;\n forceLoading?: boolean;\n onAbort?: () => void;\n enableFilter?: boolean;\n totalCount?: (value: number) => void;\n}\n\nexport function SearchTablePage(props: ISearchTablePageProps) {\n const {\n searchFunction,\n getCriteriasFunction,\n columns,\n breadCrumbs,\n withCard = true,\n criteriasTlPrefix,\n overrideListValues,\n sortKeys = {},\n defaultCriterias,\n rightElement,\n buttons,\n addFunc,\n customizeRowStyle,\n onRowClick,\n title,\n pageSize = 15,\n availablePageSizes = [15, 25, 50],\n avoidSavingCriterias = false,\n initialSearch = true,\n searchStateInitialSearch = true,\n onOpenSubComponent,\n keyFieldName,\n renderNoData,\n noTitle = false,\n forceLoading = false,\n onAbort,\n enableFilter = true,\n totalCount: sendTotalCount\n } = props;\n const { t, tUnsafe } = useTl();\n const currentSObj = React.useRef();\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: enableFilter,\n availablePageSizes: availablePageSizes,\n pageSize: pageSize,\n sortKeys: sortKeys\n });\n\n const { totalCount } = tableState;\n\n React.useEffect(() => {\n if (!!sendTotalCount && totalCount >= 0) sendTotalCount(totalCount);\n }, [sendTotalCount, totalCount]);\n\n const [criteriasLoading, setCriteriasLoading] = React.useState(false);\n\n const location = useLocation();\n\n const triggerInitialSearch = React.useMemo(\n () => (initialSearch !== undefined ? initialSearch : !!!getCriteriasFunction),\n [getCriteriasFunction, initialSearch]\n );\n\n // const abortRef = React.useRef(0);\n // const innerSearchFunction = React.useCallback(\n // async (sObj: ISearchCriteriaValues) => {\n // if (!!abortController.current && abortRef.current > 0) {\n // abortController.current.abort();\n // }\n // abortRef.current++;\n // try {\n // const res = await searchFunction(sObj);\n // return res;\n // } finally {\n // abortRef.current--;\n // }\n // },\n // [abortController, searchFunction]\n // );\n\n const { search, loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: searchStateInitialSearch && triggerInitialSearch,\n onAbort\n });\n\n const OnRefreshSearchTablesEvent = React.useCallback(() => {\n search(currentSObj.current);\n }, [search]);\n\n const { subscribeToEvent, unsubscribeEvent } = useEventsContext();\n React.useEffect(() => {\n subscribeToEvent(\"SEARCH_TABLE_REFRESH\", OnRefreshSearchTablesEvent);\n return () => unsubscribeEvent(\"SEARCH_TABLE_REFRESH\", OnRefreshSearchTablesEvent);\n }, [OnRefreshSearchTablesEvent, subscribeToEvent, unsubscribeEvent]);\n\n const getCriterias = React.useCallback(async () => {\n if (!getCriteriasFunction) return null;\n setCriteriasLoading(true);\n const crit = await getCriteriasFunction();\n setCriteriasLoading(false);\n return crit;\n }, [getCriteriasFunction]);\n\n const searchPanel = React.useMemo(\n () => (\n {\n currentSObj.current = val;\n search(val);\n }}\n enableOrOnSameCriteria={false}\n translateFunc={tUnsafe}\n tlDataPrefix={criteriasTlPrefix}\n overrideListValues={overrideListValues}\n criteriaIntent=\"primary\"\n storageMode={avoidSavingCriterias ? \"none\" : \"sessionStorage\"}\n storageKey={\"search_\" + location.pathname}\n dateFormat=\"dd-MM-yyyy\"\n triggerInitialSearch={triggerInitialSearch}\n clearSelectQueryOnClose\n />\n ),\n [\n avoidSavingCriterias,\n criteriasTlPrefix,\n defaultCriterias,\n getCriterias,\n location.pathname,\n overrideListValues,\n search,\n tUnsafe,\n triggerInitialSearch\n ]\n );\n\n return (\n \n {getCriterias &&\n (noTitle ? (\n searchPanel\n ) : (\n
{searchPanel}
\n ))}\n {\n e.stopPropagation();\n addFunc();\n }}\n text={t(ETLCodes.General_Add)}\n intent={Intent.PRIMARY}\n />\n )\n }\n buttons={buttons}\n >\n \n \n
\n );\n}\n","import { Icon, Spinner, Tooltip } from \"@blueprintjs/core\";\r\nimport * as React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport { ToolTipContent } from \".\";\r\nimport { ApprenantApi, FcbApprenantDto } from \"../../api\";\r\nimport { useApiService } from \"../../hooks\";\r\n\r\nexport interface IApprenantTooltipProps {\r\n idApprenant: number;\r\n showId?: boolean;\r\n}\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n & > * + * {\r\n margin-left: 0.5rem;\r\n }\r\n`;\r\n\r\nexport const ApprenantTooltip: React.FunctionComponent = ({ idApprenant, showId = true }) => {\r\n const api = useApiService(ApprenantApi);\r\n\r\n const [request, setRequest] = React.useState(false);\r\n const [apprenant, setApprenant] = React.useState(null);\r\n React.useEffect(() => {\r\n async function getApprenant() {\r\n setApprenant(await api.apprenantGet({ id: idApprenant, picture: true }));\r\n }\r\n if (request) {\r\n getApprenant();\r\n setRequest(false);\r\n }\r\n }, [api, idApprenant, request]);\r\n\r\n return (\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n onOpening={() => {\r\n setRequest(true);\r\n }}\r\n >\r\n \r\n \r\n {showId && {idApprenant}}\r\n \r\n );\r\n};\r\n","import * as React from \"react\";\nimport { InputGroup, Tooltip } from \"@blueprintjs/core\";\nimport { ETLCodes } from \"../../locales\";\nimport { useTl } from \"../../hooks\";\nimport styled from \"styled-components\";\n\nexport interface ITableTextEditorProps {\n initialTextValue: string;\n onValueChanged: (value: string) => void;\n width?: number;\n inputHeight?: React.ReactText;\n textHeight?: React.ReactText;\n maxLength?: number;\n authorizedValues?: string[];\n tabIndex?: number;\n editable?: boolean;\n}\n\nconst StyledTooltip = styled(Tooltip)`\n display: flex;\n & > * {\n flex: 1;\n }\n`;\n\nexport const TableTextEditor: React.FunctionComponent = ({\n initialTextValue,\n onValueChanged,\n width,\n inputHeight,\n textHeight = 30,\n maxLength,\n authorizedValues,\n tabIndex,\n editable\n}) => {\n const { t } = useTl();\n const [currentValue, setCurrentValue] = React.useState();\n const [editedValue, setEditedValue] = React.useState();\n const [focused, setFocused] = React.useState(false);\n const [customError, setCustomError] = React.useState(null);\n\n React.useEffect(() => {\n setCurrentValue(initialTextValue);\n setEditedValue(initialTextValue);\n }, [initialTextValue]);\n\n const onBlur = React.useCallback(async () => {\n let val = editedValue;\n if (val.startsWith(\"@\") && val.length > 1) {\n val = val.replace(\"@\", \"\");\n setEditedValue(val);\n }\n if (!authorizedValues || authorizedValues.includes(val) || val === currentValue) {\n if (val !== currentValue) {\n setCurrentValue(val);\n onValueChanged(val);\n }\n setCustomError(null);\n setFocused(false);\n } else if (!authorizedValues.includes(val)) {\n setCustomError(t(ETLCodes.ValueNotPartOfAuthorizedOnes, { values: authorizedValues.join(\", \") }));\n }\n }, [authorizedValues, currentValue, editedValue, onValueChanged, t]);\n\n const computeFocus = React.useCallback(() => {\n if (!focused) {\n setFocused(true);\n }\n }, [focused]);\n\n return (\n <>\n \n {focused && editable ? (\n setEditedValue(e.target.value.toUpperCase())}\n onBlur={onBlur}\n onKeyUp={e => (e.keyCode === 13 ? onBlur() : () => {})}\n width={width}\n height={inputHeight}\n maxLength={maxLength}\n tabIndex={tabIndex}\n >\n ) : (\n computeFocus()}\n tabIndex={tabIndex}\n onFocus={() => computeFocus()}\n >\n {editedValue}\n
\n )}\n \n \n );\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { NextButton, PreviousButton } from \"..\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n padding: 1rem 3rem;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n width: 100%;\n position: relative;\n`;\n\nconst ContentWrapper = styled.div`\n overflow: hidden;\n width: 100%;\n height: 100%;\n\n & .carousel-left,\n .carousel-right {\n position: absolute;\n z-index: 1;\n top: 1rem;\n transform: translateY(-50%);\n }\n\n & .carousel-left {\n left: -39px;\n }\n\n & .carousel-right {\n right: -39px;\n }\n`;\n\nconst Content = styled.div`\n display: flex;\n transition: all 250ms linear;\n -ms-overflow-style: none; /* hide scrollbar in IE and Edge */\n scrollbar-width: none; /* hide scrollbar in Firefox */\n &::-webkit-scrollbar {\n display: none; /* hide scrollbar in webkit browser */\n }\n\n & > * {\n width: 100%;\n flex-shrink: 0;\n flex-grow: 1;\n }\n`;\n\nexport interface ICarouselProps {}\n\nexport const Carousel: React.FunctionComponent = ({ children }) => {\n const [currentIndex, setCurrentIndex] = React.useState(0);\n const length = React.useMemo(() => React.Children.count(children), [children]);\n\n const next = React.useCallback(() => {\n if (currentIndex < length - 1) {\n setCurrentIndex(prevState => prevState + 1);\n }\n }, [currentIndex, length]);\n\n const previous = React.useCallback(() => {\n if (currentIndex > 0) {\n setCurrentIndex(prevState => prevState - 1);\n }\n }, [currentIndex]);\n\n return (\n \n \n \n \n {children}\n \n \n \n \n );\n};\n","import * as React from \"react\";\n\nimport { Configuration } from \"../api\";\nimport { apiConfiguration } from \"../apiConfig\";\nimport { useAuth, useGlobalData } from \"../contexts\";\n\nexport function useApiService(\n type: new (configuration: Configuration) => T,\n abortControllerFn?: () => AbortController\n): T {\n const { getAccessToken } = useAuth();\n const { ifapmeSide } = useGlobalData();\n\n const configuration = React.useMemo(() => {\n if (!ifapmeSide) return;\n const cfg = apiConfiguration(getAccessToken, ifapmeSide);\n cfg.middleware = [\n {\n pre(context) {\n if (!!abortControllerFn) {\n const abortController = abortControllerFn();\n context.init.signal = abortController.signal;\n }\n return Promise.resolve(context);\n },\n post(context) {\n if (context.response.status === 401) {\n //TODO: REDIRECT TO\n // logout(\"Unauthorized Access\");\n }\n return Promise.resolve(context.response);\n }\n }\n ];\n\n return new Configuration(cfg);\n }, [abortControllerFn, getAccessToken, ifapmeSide]);\n return React.useMemo(() => new type(configuration), [configuration, type]);\n}\n\nexport function useAbortableApiServiceFactory(type: new (configuration: Configuration) => T) {\n const { logout, getAccessToken } = useAuth();\n const { ifapmeSide } = useGlobalData();\n return React.useCallback(() => {\n if (!ifapmeSide) return;\n const abortController = new AbortController();\n\n const cfg = apiConfiguration(getAccessToken, ifapmeSide);\n cfg.middleware = [\n {\n pre(context) {\n context.init.signal = abortController.signal;\n return Promise.resolve(context);\n },\n post(context) {\n if (context.response.status === 401) {\n logout(\"Unauthorized Access\");\n }\n return Promise.resolve(context.response);\n }\n }\n ];\n return { api: new type(new Configuration(cfg)), abortController };\n }, [getAccessToken, ifapmeSide, logout, type]);\n}\n\n// export function useAbortableApiService(type: new (configuration: Configuration) => T) {\n// const lastAbortController = React.useRef();\n// const currentAbortController = React.useRef();\n// const abortControllerFactory = React.useCallback(() => {\n// const abortController = new AbortController();\n\n// const controllerToCopy = currentAbortController.current;\n// lastAbortController.current = controllerToCopy;\n// currentAbortController.current = abortController;\n\n// return abortController;\n// }, []);\n\n// return { api: useApiService(type, abortControllerFactory), lastAbortControllerRef: lastAbortController };\n// }\n\n","import { lowerFirst } from \"lodash\";\nimport { showError, ValidationErrorsType } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { useTl } from \".\";\nimport { ErrorDetails, ResultErrorFromJSON } from \"../api\";\nimport { ETLCodes } from \"../locales/ETLCodes\";\n\nexport const useManageError = () => {\n const { t, tUnsafe } = useTl();\n const [saveError, setCurrentError] = React.useState();\n\n const manageError = React.useCallback(\n (error: any, defaultMessage?: string) => {\n if (!!error.response) {\n error.response\n .clone()\n .json()\n .then((d: ErrorDetails) => {\n setCurrentError(d);\n });\n } else {\n showError(defaultMessage ?? t(ETLCodes.Error));\n }\n },\n [t]\n );\n\n React.useEffect(() => {\n if (saveError) {\n if (saveError.errorCode) {\n showError(tUnsafe(`BackendError_${saveError.errorCode}`));\n } else if (!saveError.validationErrors) {\n showError(t(ETLCodes.Error));\n }\n }\n }, [saveError, t, tUnsafe]);\n\n const parseValidationErrors = React.useCallback(\n (error: any, rootKey = \"\"): ValidationErrorsType => {\n if (!error) {\n return {} as ValidationErrorsType;\n }\n if (Array.isArray(error)) {\n return error.map(ResultErrorFromJSON).reduce((curr, next) => {\n if (next.propertyName && next.errorCode) {\n let propertyName = next[\"propertyName\"];\n\n if (rootKey !== \"\" && propertyName.startsWith(rootKey + \".\"))\n propertyName = propertyName.replace(rootKey + \".\", \"\");\n propertyName = propertyName\n .split(\".\")\n .map(p => lowerFirst(p))\n .join(\".\");\n\n let existingErrors = [];\n\n if (curr.hasOwnProperty(propertyName)) existingErrors = curr[propertyName];\n\n curr[propertyName] = [\n ...existingErrors,\n next.errorCode ? tUnsafe(\"ServerValidationError_\" + next.errorCode) : next.errorMessage\n ];\n }\n return curr;\n }, {} as ValidationErrorsType);\n }\n return {} as ValidationErrorsType;\n },\n [tUnsafe]\n );\n\n return {\n saveError,\n setCurrentError,\n manageError,\n parseValidationErrors\n };\n};\n","import { showSuccess, useApiEffect, ValidationErrorsType } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useLocation } from \"react-router\";\n\nimport { useTl } from \".\";\nimport { useDialog } from \"../contexts\";\nimport { ETLCodes } from \"../locales\";\nimport { useManageError } from \"./useManageError\";\n\nexport interface IUseCrudApiOptions {\n getApiFn: () => Promise | T;\n saveApiFn: (data: T) => Promise | T;\n deleteApiFn?: (data: T) => Promise | any;\n onSaved?: (data: T) => void;\n onSavedRoute?: (data: T) => string;\n onDeletedRoute?: (data: T) => string;\n successMessage?: string;\n deletedMessage?: string;\n getDeps?: React.DependencyList;\n deleteConfirmationMessage?: string;\n deleteDialogTitle?: string;\n serverValidationRootKey?: string;\n childArraysToSanitize?: { name: string; idKey: string }[];\n refreshAfterSave?: boolean;\n refreshAfterDelete?: boolean;\n closeCfs?: boolean;\n}\n\nexport function useCrudApi(options: IUseCrudApiOptions) {\n const {\n getApiFn,\n saveApiFn,\n deleteApiFn,\n onSaved,\n onSavedRoute,\n onDeletedRoute,\n successMessage,\n deletedMessage,\n getDeps,\n deleteConfirmationMessage,\n deleteDialogTitle,\n childArraysToSanitize = [],\n serverValidationRootKey = \"Dto\",\n refreshAfterSave = false,\n refreshAfterDelete = false,\n closeCfs = true\n } = options;\n const { t } = useTl();\n const { showDialog } = useDialog();\n\n const history = useHistory();\n\n const [data, loading, , refresh, setData] = useApiEffect(getApiFn, getDeps);\n\n const [saving, setSaving] = React.useState(false);\n\n const finalSuccessMessage = React.useMemo(() => successMessage || t(ETLCodes.SaveSuccess), [successMessage, t]);\n\n const { saveError, setCurrentError, manageError, parseValidationErrors } = useManageError();\n\n const { search } = useLocation();\n const isCreateFromSelect = React.useMemo(() => search.includes(\"cfs=\"), [search]);\n\n const saveItem = React.useCallback(\n async (values: T) => {\n try {\n setSaving(true);\n let nextValues = { ...values };\n if (childArraysToSanitize.length > 0) {\n childArraysToSanitize.forEach(k =>\n nextValues[k.name]?.filter(p => p[k.idKey] < 0)?.forEach(p => (p[k.idKey] = 0))\n );\n }\n const saved: T = await saveApiFn(nextValues);\n if (saved) {\n setCurrentError(null);\n showSuccess(finalSuccessMessage);\n if (refreshAfterSave) refresh();\n else setData(saved);\n setTimeout(() => {\n if (onSaved) {\n onSaved(saved);\n }\n if (closeCfs && isCreateFromSelect) {\n window.close();\n return;\n }\n if (onSavedRoute) {\n history.push(onSavedRoute(saved));\n }\n }, 0);\n }\n } catch (error) {\n manageError(error);\n }\n setSaving(false);\n },\n [\n childArraysToSanitize,\n closeCfs,\n finalSuccessMessage,\n history,\n isCreateFromSelect,\n manageError,\n onSaved,\n onSavedRoute,\n refresh,\n refreshAfterSave,\n saveApiFn,\n setCurrentError,\n setData\n ]\n );\n\n const finalDeleteMessage = React.useMemo(() => deletedMessage || t(ETLCodes.DeleteSuccess), [deletedMessage, t]);\n\n const [deleting, setDeleting] = React.useState(false);\n const deleteItem = React.useCallback(() => {\n showDialog({\n message: deleteConfirmationMessage || t(ETLCodes.DeleteConfirmationMessage),\n title: deleteDialogTitle || t(ETLCodes.DeleteDialogTitle),\n onConfirmed: async () => {\n try {\n setDeleting(true);\n const deleted = await deleteApiFn(data);\n if (deleted === false) {\n // Check litteraly false, not null or undefined\n setDeleting(false);\n return;\n }\n if (refreshAfterDelete) refresh();\n setTimeout(() => {\n if (onDeletedRoute) {\n history.push(onDeletedRoute(data));\n }\n }, 0);\n showSuccess(finalDeleteMessage);\n } catch (error) {\n manageError(error);\n }\n setDeleting(false);\n }\n });\n }, [\n data,\n deleteApiFn,\n deleteConfirmationMessage,\n deleteDialogTitle,\n finalDeleteMessage,\n history,\n manageError,\n onDeletedRoute,\n refresh,\n refreshAfterDelete,\n showDialog,\n t\n ]);\n\n const [validationErrors, setValidationErrors] = React.useState({});\n\n React.useEffect(() => {\n if (!!saveError) {\n const err = parseValidationErrors(saveError, serverValidationRootKey);\n setValidationErrors(err);\n } else {\n setValidationErrors({});\n }\n }, [parseValidationErrors, saveError, serverValidationRootKey]);\n\n return {\n data,\n loading,\n setData,\n saveItem,\n saving,\n setSaving,\n deleteItem,\n deleting,\n refresh,\n saveError,\n validationErrors\n };\n}\n","import * as React from \"react\";\n\nexport function useLocalStorage(key: string, initialValue: T): [T, (t: T) => void] {\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = React.useState(() => {\n try {\n // Get from local storage by key\n const item = window.localStorage.getItem(key);\n // Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n // If error also return initialValue\n // eslint-disable-next-line no-console\n console.log(error);\n return initialValue;\n }\n });\n\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue = (value: T) => {\n try {\n // Allow value to be a function so we have same API as useState\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n // Save state\n setStoredValue(valueToStore);\n // Save to local storage\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n } catch (error) {\n // A more advanced implementation would handle the error case\n // eslint-disable-next-line no-console\n console.log(error);\n }\n };\n\n return [storedValue, setValue];\n}\n","import { usePrevious } from \"ahooks\";\nimport React from \"react\";\n\nimport { useGlobalData } from \"../contexts\";\n\nexport function useAppVersion() {\n const { fetchingInfo, applicationVersion, walterUrl } = useGlobalData();\n const previousVersion = usePrevious(applicationVersion);\n\n const appVersion = React.useMemo(() => {\n if (applicationVersion) {\n const appName = walterUrl?.includes(window.location.origin) ? \"Walter\" : \"Hope\";\n if (!previousVersion) {\n // eslint-disable-next-line no-console\n console.log(`IFAPME - ${appName}`);\n // eslint-disable-next-line no-console\n console.log(`Version ${applicationVersion}`);\n }\n return `${appName} - v${applicationVersion.split(\"+\")[0]}`;\n } else {\n return \"\";\n }\n }, [applicationVersion, previousVersion, walterUrl]);\n\n return {\n versionLoading: fetchingInfo,\n appVersion\n };\n}\n","import { darken, lighten } from \"polished\";\n\nimport assets from \"./assets\";\n\nexport interface IThemeData {\n siteTheme: SiteTheme;\n headerLeftColor: string;\n headerRightColor: string;\n menuColor: string;\n menuActiveColor: string;\n menuBackgroundColor: string;\n menuSubColor: string;\n menuSubColorSelected: string;\n menuIconColor: string;\n headerName: string;\n highlightColor: string;\n logoUrl: string;\n primaryColor: string;\n quickAccessSelectedColor: string;\n sucessColor: string;\n dangerColor: string;\n warningColor: string;\n}\n\nconst walterTestTheme: IThemeData = {\n siteTheme: \"test-walter\",\n primaryColor: \"#7961DB\",\n headerLeftColor: \"#5642A6\",\n headerRightColor: \"#5642A6\",\n menuColor: \"#7961DB\",\n menuActiveColor: lighten(0.1, \"#7961DB\"),\n menuBackgroundColor: \"#30404D\",\n menuSubColor: lighten(0.1, \"#7961DB\"),\n menuSubColorSelected: lighten(0.2, \"#7961DB\"),\n menuIconColor: darken(0.1, \"#7961DB\"),\n highlightColor: \"white\",\n headerName: \"IFAPME - Walter\",\n logoUrl: assets.images.walterTestLogo,\n quickAccessSelectedColor: lighten(0.4, \"#7961DB\"),\n sucessColor: \"#238551\",\n dangerColor: \"#CD4246\",\n warningColor: \"#C87619\"\n};\n\nconst walterTheme: IThemeData = {\n siteTheme: \"walter\",\n primaryColor: \"#106BA3\",\n headerLeftColor: \"#0e5a8a\",\n headerRightColor: \"#0e5a8a\",\n menuColor: \"#106ba3\",\n menuActiveColor: lighten(0.1, \"#106ba3\"),\n menuBackgroundColor: \"#30404D\",\n menuSubColor: lighten(0.1, \"#106ba3\"),\n menuSubColorSelected: lighten(0.2, \"#106ba3\"),\n menuIconColor: darken(0.1, \"#106ba3\"),\n highlightColor: \"white\",\n headerName: \"IFAPME - Walter\",\n logoUrl: assets.images.walterLogo,\n quickAccessSelectedColor: lighten(0.4, \"#106ba3\"),\n sucessColor: \"#238551\",\n dangerColor: \"#CD4246\",\n warningColor: \"#C87619\"\n};\n\nconst hopeTheme: IThemeData = {\n siteTheme: \"hope\",\n primaryColor: \"#FA1955\",\n headerLeftColor: \"#7C0041\",\n headerRightColor: \"#ED174F\",\n menuColor: \"#7C0041\",\n menuActiveColor: lighten(0.1, \"#7C0041\"),\n menuBackgroundColor: darken(0.1, \"#7C0041\"),\n menuSubColor: darken(0.1, \"#ED174F\"),\n menuSubColorSelected: \"#ED174F\",\n menuIconColor: \"white\",\n headerName: \"IFAPME - Hope\",\n highlightColor: \"white\",\n logoUrl: assets.images.hopeLogo,\n quickAccessSelectedColor: lighten(0.2, \"#7C0041\"),\n sucessColor: \"#2DB338\",\n dangerColor: \"#E04119\",\n warningColor: \"#DEA20B\"\n};\n\nconst hopeTestTheme: IThemeData = {\n siteTheme: \"test-hope\",\n primaryColor: \"#29a634\",\n headerLeftColor: \"#1d7324\",\n headerRightColor: \"#29a634\",\n menuColor: \"#1d7324\",\n menuActiveColor: lighten(0.1, \"#1d7324\"),\n menuBackgroundColor: darken(0.15, \"#1d7324\"),\n menuSubColor: darken(0.1, \"#29a634\"),\n menuSubColorSelected: \"#29a634\",\n menuIconColor: \"white\",\n headerName: \"IFAPME - Hope\",\n highlightColor: \"white\",\n logoUrl: assets.images.hopeLogoTest,\n quickAccessSelectedColor: lighten(0.2, \"#1d7324\"),\n sucessColor: \"#2DB338\",\n dangerColor: \"#E04119\",\n warningColor: \"#DEA20B\"\n};\n\nexport type SiteTheme = \"walter\" | \"hope\" | \"test-walter\" | \"test-hope\";\n\nexport function getTheme(type: SiteTheme) {\n switch (type) {\n case \"walter\":\n return walterTheme;\n case \"test-walter\":\n return walterTestTheme;\n case \"hope\":\n return hopeTheme;\n case \"test-hope\":\n return hopeTestTheme;\n default:\n return walterTheme;\n }\n}\n","import React from \"react\";\n\nimport { useGlobalData } from \"../contexts\";\nimport { getTheme } from \"../theme\";\n\n// const storageKey = \"ifapme-theme\";\n\nexport function useTheme() {\n // const [devTheme, setDevTheme] = useLocalStorageState(storageKey, { defaultValue: \"walter\" });\n const { walterUrl, isTestEnv } = useGlobalData();\n\n const ifapmeSide = React.useMemo<\"walter\" | \"hope\">(\n () => (walterUrl?.includes(window.location.origin) ? \"walter\" : \"hope\"),\n [walterUrl]\n );\n const getConfigValue = React.useCallback(() => {\n // if (window.location.origin.includes(\"localhost\")) {\n // return devTheme;\n // }\n\n return ifapmeSide === \"walter\" && isTestEnv\n ? \"test-walter\"\n : ifapmeSide === \"hope\" && isTestEnv\n ? \"test-hope\"\n : ifapmeSide;\n }, [ifapmeSide, isTestEnv]);\n\n const devMode = React.useMemo(() => false && window.location.origin.includes(\"localhost\"), []);\n\n const theme = React.useMemo(() => {\n const themeValue = getConfigValue();\n return getTheme(themeValue);\n }, [getConfigValue]);\n\n // const toggleDevTheme = React.useCallback(() => {\n // setDevTheme(devTheme === \"walter\" ? \"hope\" : \"walter\");\n // window.location.reload();\n // }, [devTheme, setDevTheme]);\n\n const isHope = React.useMemo(() => ifapmeSide === \"hope\", [ifapmeSide]);\n\n return {\n theme,\n devMode,\n // setDevTheme,\n // toggleDevTheme,\n ifapmeSide,\n isHope\n };\n}\n","import { useLocalStorageState } from \"ahooks\";\nimport * as React from \"react\";\n\nexport const useTabMessage = (identifier: string) => {\n const [messageValue, setMessageValue] = useLocalStorageState(identifier, { defaultValue: null });\n const [newTabOpened, setNewTabOpened] = React.useState(false);\n\n const receiveMessage = React.useCallback(\n event => {\n if (event.origin !== window.location.origin || identifier !== event.data?.identifier) return;\n\n if (event.data.tabReady) {\n setNewTabOpened(event.data.tabReady);\n } else if (event.data.tabClosed) {\n setNewTabOpened(false);\n } else {\n setMessageValue(JSON.parse(event.data.value));\n }\n },\n [identifier, setMessageValue]\n );\n\n React.useEffect(() => {\n window.addEventListener(\"message\", receiveMessage, false);\n return () => window.removeEventListener(\"message\", receiveMessage);\n }, [receiveMessage]);\n\n const sendMessage = React.useCallback(\n (value: any, closeTab = false, tab: Window = window.opener) => {\n if (!tab) return;\n\n tab.postMessage({ identifier, value: JSON.stringify(value) }, window.location.origin);\n\n if (closeTab) {\n tab.focus();\n }\n },\n [identifier]\n );\n\n const [messageToSend, setMessageToSend] = React.useState(null);\n const openTabThenSendMessage = React.useCallback(\n (path: string, value: any, params?: { key: string; value: string }[]) => {\n const joinedParams = !!params && params.length > 0 ? params.map(p => `&${p.key}=${p.value}`).join() : \"\";\n const tab = window.open(`${path}?cfs=${identifier}${joinedParams}`, \"_blank\");\n setMessageToSend({ tab, value });\n },\n [identifier]\n );\n\n React.useEffect(() => {\n if (newTabOpened && messageToSend) {\n sendMessage(messageToSend.value, false, messageToSend.tab);\n }\n }, [messageToSend, newTabOpened, sendMessage]);\n\n // Hook ready\n React.useEffect(() => {\n if (identifier && window.opener) {\n window.opener.postMessage({ identifier, tabReady: true }, window.location.origin);\n }\n }, [identifier, sendMessage]);\n\n const unreadyTab = React.useCallback(() => {\n if (identifier && window.opener) {\n setMessageValue(undefined);\n window.opener.postMessage({ identifier, tabClosed: true }, window.location.origin);\n }\n }, [identifier, setMessageValue]);\n\n // Tab closing\n React.useEffect(() => {\n window.addEventListener(\"beforeunload\", unreadyTab, false);\n return () => window.removeEventListener(\"beforeunload\", unreadyTab);\n }, [unreadyTab]);\n\n return {\n messageValue,\n clearMessageValue: () => setMessageValue(null),\n sendMessage,\n openTabThenSendMessage\n };\n};\n","import * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useApiService } from \".\";\nimport { PersonneApi } from \"../api\";\n\nexport const useFetchPicture = (id: number, deps?: any[]): [any, boolean, () => void] => {\n const api = useApiService(PersonneApi);\n const fetchPhoto = React.useCallback(() => api.personneGetPhoto({ id: id }), [api, id]);\n const { data, isFetching: loading, refetch } = useQuery([\"personne-pic\", id, ...deps], fetchPhoto);\n\n const finalData = React.useMemo(() => {\n return data;\n }, [data]);\n\n return [finalData, loading, refetch];\n};\n","import { usePrevious } from \"nsitools-react\";\nimport React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useLocation } from \"react-router\";\nimport { Configuration, EIfapmeSide, SystemApi, SystemInfoDto } from \"../api\";\nimport { useSearchCriteriaContext } from \"../contexts\";\nimport { apiConfiguration } from \"../apiConfig\";\n\nexport interface ISystemInfo extends SystemInfoDto {\n fetchingInfo: boolean;\n backendNotReacheable: boolean;\n walterUrl: string;\n isFetchedAfterMount: boolean;\n ifapmeSide: EIfapmeSide;\n}\n\nexport function useSystemInfo() {\n const systemApi = new SystemApi(new Configuration(apiConfiguration()));\n const { data: systemInfo, isFetching: fetchingInfo, error, isFetchedAfterMount } = useQuery(\n \"system-info\",\n () => systemApi.systemGet(),\n {\n enabled: true,\n refetchInterval: 1000 * 60 * 10\n }\n );\n const searchCriteriaContext = useSearchCriteriaContext();\n const { pathname } = useLocation();\n\n const walterUrl = React.useMemo(() => systemInfo?.walterUrl, [systemInfo?.walterUrl]);\n const hopeUrl = React.useMemo(() => systemInfo?.hopeUrl, [systemInfo?.hopeUrl]);\n\n const [mustRefreshFrontend, setMustRefreshFrontend] = React.useState(false);\n const previousPathName = usePrevious(pathname);\n const previousInfo = usePrevious(systemInfo);\n\n const ifapmeSide = React.useMemo(() => {\n if (walterUrl?.includes(window.location.origin)) {\n return EIfapmeSide.Walter;\n }\n if (hopeUrl?.includes(window.location.origin)) {\n return EIfapmeSide.Hope;\n }\n return null;\n }, [hopeUrl, walterUrl]);\n\n React.useEffect(() => {\n if (!fetchingInfo && !!error) {\n // eslint-disable-next-line no-console\n console.log(error);\n }\n }, [error, fetchingInfo]);\n\n const backendNotReacheable = React.useMemo(() => !systemInfo || !!error, [error, systemInfo]);\n\n React.useEffect(() => {\n if (mustRefreshFrontend && previousPathName !== pathname) {\n // @ts-ignore\n window.location.reload(true);\n searchCriteriaContext?.clearCriterias();\n }\n }, [mustRefreshFrontend, pathname, previousPathName, searchCriteriaContext]);\n\n React.useEffect(() => {\n if (previousInfo && previousInfo?.applicationVersion !== systemInfo?.applicationVersion) {\n // eslint-disable-next-line no-console\n console.log(\"Backend version has changed, Walter application will be refreshed soon...\");\n setMustRefreshFrontend(true);\n }\n }, [previousInfo, systemInfo?.applicationVersion]);\n\n return {\n ...systemInfo,\n fetchingInfo,\n backendNotReacheable,\n walterUrl,\n isFetchedAfterMount,\n ifapmeSide\n } as ISystemInfo;\n}\n\n","import { useGridState } from \"nsitools-react\";\nimport React, { useEffect } from \"react\";\n\nexport type baseReturnType = {\n results?: Array;\n totalCount?: number;\n aggregateResults?: Array;\n};\n\nexport type baseSearchObject = {\n sortKey?: string[] | null;\n filter?: string | null;\n forceSkip?: number | null;\n forceTake?: number | null;\n};\n\nexport interface IUseSearchApiOptions {\n tableState: ReturnType;\n searchFunction: (sObj: TSearch) => TResults | Promise;\n initialSearch?: boolean;\n debounceFilterMs?: number;\n ignoreSearchWhenFilterChanged?: boolean;\n trimSearchObjectStringValues?: boolean;\n onAbort?: () => void;\n}\n\nexport function useSearchApi({\n tableState,\n searchFunction,\n initialSearch = true,\n debounceFilterMs = 500,\n ignoreSearchWhenFilterChanged = false,\n trimSearchObjectStringValues = false,\n onAbort\n}: IUseSearchApiOptions) {\n const [searchData, setSearchData] = React.useState();\n const { sortKeysStrings, globalFilter, skip, take, setData } = tableState;\n const [loading, setLoading] = React.useState(false);\n const [gridResults, setGridResults] = React.useState();\n const [error, setError] = React.useState();\n const [initialSearchDone, setInitialSearchDone] = React.useState(false);\n\n const performSearch = React.useCallback(\n async (sObj: TSearch) => {\n try {\n if (!!onAbort) onAbort();\n\n setLoading(true);\n const data = await searchFunction(sObj);\n setGridResults(data);\n let newData = {\n totalCount: data.totalCount || 0\n };\n setData(data.results!, newData, data.aggregateResults!);\n setLoading(false);\n } catch (error) {\n setError(error);\n if (error.name !== \"AbortError\" && error.cause?.name !== \"AbortError\") setLoading(false);\n }\n },\n [onAbort, searchFunction, setData]\n );\n\n const [waitingExternalSearch, setWaitingExternalSearch] = React.useState(!initialSearch);\n\n useEffect(() => {\n setSearchData(s => {\n return {\n ...s,\n sortKey: sortKeysStrings,\n forceSkip: skip,\n forceTake: take,\n filter: globalFilter\n };\n });\n }, [skip, sortKeysStrings, take, ignoreSearchWhenFilterChanged, globalFilter]);\n\n React.useEffect(() => {\n if (searchData && !waitingExternalSearch) {\n performSearch(searchData);\n }\n }, [performSearch, searchData, waitingExternalSearch]);\n\n const search = React.useCallback(\n (nextSearch?: TSearch) => {\n setSearchData({\n sortKey: sortKeysStrings,\n forceSkip: skip,\n forceTake: take,\n filter: globalFilter,\n ...nextSearch\n });\n\n setWaitingExternalSearch(false);\n },\n [globalFilter, skip, sortKeysStrings, take]\n );\n\n useEffect(() => {\n if (initialSearch && !initialSearchDone) {\n search();\n setInitialSearchDone(true);\n }\n }, [search, initialSearch, initialSearchDone]);\n\n return {\n gridResults,\n loading,\n search,\n searchData,\n error\n };\n}\n","import { useQuery } from \"react-query\";\nimport { Configuration, SystemApi } from \"../../api\";\nimport { baseUrl } from \"../../apiConfig\";\n\nexport function useFrontendSettings() {\n const { data: frontendSettings, isFetching: loadingFrontendSettings, refetch: refreshFrontendSettings } = useQuery(\n \"fe-settings\",\n async () => {\n const api = new SystemApi(new Configuration({\n basePath: baseUrl\n }));\n \n return api.systemGeFrontendSettings();\n },\n {\n enabled: true,\n staleTime: Infinity\n }\n );\n\n return {\n frontendSettings,\n loadingFrontendSettings,\n refreshFrontendSettings\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CompteBancaireDto\n */\nexport interface CompteBancaireDto {\n /**\n * \n * @type {number}\n * @memberof CompteBancaireDto\n */\n idcompteBancaire?: number | null;\n /**\n * \n * @type {number}\n * @memberof CompteBancaireDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof CompteBancaireDto\n */\n iban?: string | null;\n /**\n * \n * @type {string}\n * @memberof CompteBancaireDto\n */\n bic?: string | null;\n}\n\n/**\n * Check if a given object implements the CompteBancaireDto interface.\n */\nexport function instanceOfCompteBancaireDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CompteBancaireDtoFromJSON(json: any): CompteBancaireDto {\n return CompteBancaireDtoFromJSONTyped(json, false);\n}\n\nexport function CompteBancaireDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CompteBancaireDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcompteBancaire': !exists(json, 'idcompteBancaire') ? undefined : json['idcompteBancaire'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'iban': !exists(json, 'iban') ? undefined : json['iban'],\n 'bic': !exists(json, 'bic') ? undefined : json['bic'],\n };\n}\n\nexport function CompteBancaireDtoToJSON(value?: CompteBancaireDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcompteBancaire': value.idcompteBancaire,\n 'idpersonne': value.idpersonne,\n 'iban': value.iban,\n 'bic': value.bic,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\nexport * from './runtime';\nexport * from './apis/index';\nexport * from './models/index';\n","export class Guid {\n static newGuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n var r = (Math.random() * 16) | 0,\n v = c === \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n","import { getIn } from \"formik\";\nimport { FGMaskInput, IFGMaskInputProps, useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { CopyButton } from \"..\";\n\nconst RightElementContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport interface FGCopyTextInputProps extends Omit {\n onCopy?: (value: string) => string;\n copyOnlyDigits?: boolean;\n}\n\nconst FGCopyTextInput: React.FC = ({ onCopy, copyOnlyDigits, rightElement, ...props }) => {\n const { formik } = useFGContext();\n const currentValue = React.useMemo(() => getIn(formik?.values, props.name), [formik?.values, props.name]);\n\n const onCopyButtonClick = React.useCallback(async () => {\n let nextValue = currentValue;\n if (onCopy) {\n nextValue = onCopy(currentValue);\n } else if (copyOnlyDigits) {\n nextValue = currentValue.replace(/[^\\d+]+/g, \"\");\n }\n\n // navigator clipboard api needs a secure context (https)\n if (navigator.clipboard && window.isSecureContext) {\n // navigator clipboard api method'\n await navigator.clipboard.writeText(nextValue);\n } else {\n // text area method\n let textArea = document.createElement(\"textarea\");\n textArea.value = nextValue;\n // make the textarea out of viewport because it must be visible\n textArea.style.position = \"fixed\";\n textArea.style.left = \"-999999px\";\n textArea.style.top = \"-999999px\";\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n await new Promise((res, rej) => {\n document.execCommand(\"copy\") ? res(nextValue) : rej();\n textArea.remove();\n });\n }\n }, [currentValue, onCopy, copyOnlyDigits]);\n\n const finalRightElement = React.useMemo(\n () => (\n \n {rightElement}\n {!!currentValue && }\n \n ),\n [currentValue, onCopyButtonClick, rightElement]\n );\n\n return (\n \n );\n};\n\nexport default FGCopyTextInput;\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AcquisIfapmeEditDto\n */\nexport interface AcquisIfapmeEditDto {\n /**\n * \n * @type {number}\n * @memberof AcquisIfapmeEditDto\n */\n idtitreDiplomeCertificationIfapme?: number;\n /**\n * \n * @type {string}\n * @memberof AcquisIfapmeEditDto\n */\n description?: string | null;\n}\n\n/**\n * Check if a given object implements the AcquisIfapmeEditDto interface.\n */\nexport function instanceOfAcquisIfapmeEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AcquisIfapmeEditDtoFromJSON(json: any): AcquisIfapmeEditDto {\n return AcquisIfapmeEditDtoFromJSONTyped(json, false);\n}\n\nexport function AcquisIfapmeEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcquisIfapmeEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtitreDiplomeCertificationIfapme': !exists(json, 'idtitreDiplomeCertificationIfapme') ? undefined : json['idtitreDiplomeCertificationIfapme'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n };\n}\n\nexport function AcquisIfapmeEditDtoToJSON(value?: AcquisIfapmeEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtitreDiplomeCertificationIfapme': value.idtitreDiplomeCertificationIfapme,\n 'description': value.description,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AcquisIfapmeGridDto\n */\nexport interface AcquisIfapmeGridDto {\n /**\n * \n * @type {number}\n * @memberof AcquisIfapmeGridDto\n */\n idtitreDiplomeCertificationIfapme?: number;\n /**\n * \n * @type {string}\n * @memberof AcquisIfapmeGridDto\n */\n description?: string | null;\n}\n\n/**\n * Check if a given object implements the AcquisIfapmeGridDto interface.\n */\nexport function instanceOfAcquisIfapmeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AcquisIfapmeGridDtoFromJSON(json: any): AcquisIfapmeGridDto {\n return AcquisIfapmeGridDtoFromJSONTyped(json, false);\n}\n\nexport function AcquisIfapmeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcquisIfapmeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtitreDiplomeCertificationIfapme': !exists(json, 'idtitreDiplomeCertificationIfapme') ? undefined : json['idtitreDiplomeCertificationIfapme'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n };\n}\n\nexport function AcquisIfapmeGridDtoToJSON(value?: AcquisIfapmeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtitreDiplomeCertificationIfapme': value.idtitreDiplomeCertificationIfapme,\n 'description': value.description,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface IAggregateResult\n */\nexport interface IAggregateResult {\n /**\n * \n * @type {string}\n * @memberof IAggregateResult\n */\n key?: string | null;\n /**\n * \n * @type {string}\n * @memberof IAggregateResult\n */\n text?: string | null;\n /**\n * \n * @type {number}\n * @memberof IAggregateResult\n */\n readonly value?: number | null;\n}\n\n/**\n * Check if a given object implements the IAggregateResult interface.\n */\nexport function instanceOfIAggregateResult(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function IAggregateResultFromJSON(json: any): IAggregateResult {\n return IAggregateResultFromJSONTyped(json, false);\n}\n\nexport function IAggregateResultFromJSONTyped(json: any, ignoreDiscriminator: boolean): IAggregateResult {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'key': !exists(json, 'key') ? undefined : json['key'],\n 'text': !exists(json, 'text') ? undefined : json['text'],\n 'value': !exists(json, 'value') ? undefined : json['value'],\n };\n}\n\nexport function IAggregateResultToJSON(value?: IAggregateResult | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'key': value.key,\n 'text': value.text,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AcquisIfapmeGridDto } from './AcquisIfapmeGridDto';\nimport {\n AcquisIfapmeGridDtoFromJSON,\n AcquisIfapmeGridDtoFromJSONTyped,\n AcquisIfapmeGridDtoToJSON,\n} from './AcquisIfapmeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface AcquisIfapmeGridDtoPaginatedResults\n */\nexport interface AcquisIfapmeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof AcquisIfapmeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof AcquisIfapmeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AcquisIfapmeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the AcquisIfapmeGridDtoPaginatedResults interface.\n */\nexport function instanceOfAcquisIfapmeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AcquisIfapmeGridDtoPaginatedResultsFromJSON(json: any): AcquisIfapmeGridDtoPaginatedResults {\n return AcquisIfapmeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function AcquisIfapmeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcquisIfapmeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(AcquisIfapmeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function AcquisIfapmeGridDtoPaginatedResultsToJSON(value?: AcquisIfapmeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(AcquisIfapmeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ETextSearchType {\n StartWith = 'StartWith',\n EndWith = 'EndWith',\n Contains = 'Contains',\n NotContains = 'NotContains',\n Equals = 'Equals',\n NotEquals = 'NotEquals'\n}\n\n\nexport function ETextSearchTypeFromJSON(json: any): ETextSearchType {\n return ETextSearchTypeFromJSONTyped(json, false);\n}\n\nexport function ETextSearchTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETextSearchType {\n return json as ETextSearchType;\n}\n\nexport function ETextSearchTypeToJSON(value?: ETextSearchType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ETextSearchType } from './ETextSearchType';\nimport {\n ETextSearchTypeFromJSON,\n ETextSearchTypeFromJSONTyped,\n ETextSearchTypeToJSON,\n} from './ETextSearchType';\n\n/**\n * \n * @export\n * @interface ETextSearchTypeStringCombinableCriteria\n */\nexport interface ETextSearchTypeStringCombinableCriteria {\n /**\n * \n * @type {ETextSearchType}\n * @memberof ETextSearchTypeStringCombinableCriteria\n */\n searchMode?: ETextSearchType;\n /**\n * \n * @type {string}\n * @memberof ETextSearchTypeStringCombinableCriteria\n */\n value?: string | null;\n /**\n * \n * @type {string}\n * @memberof ETextSearchTypeStringCombinableCriteria\n */\n secondaryValue?: string | null;\n}\n\n/**\n * Check if a given object implements the ETextSearchTypeStringCombinableCriteria interface.\n */\nexport function instanceOfETextSearchTypeStringCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ETextSearchTypeStringCombinableCriteriaFromJSON(json: any): ETextSearchTypeStringCombinableCriteria {\n return ETextSearchTypeStringCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function ETextSearchTypeStringCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETextSearchTypeStringCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : ETextSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n };\n}\n\nexport function ETextSearchTypeStringCombinableCriteriaToJSON(value?: ETextSearchTypeStringCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': ETextSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ETextSearchType } from './ETextSearchType';\nimport {\n ETextSearchTypeFromJSON,\n ETextSearchTypeFromJSONTyped,\n ETextSearchTypeToJSON,\n} from './ETextSearchType';\nimport type { ETextSearchTypeStringCombinableCriteria } from './ETextSearchTypeStringCombinableCriteria';\nimport {\n ETextSearchTypeStringCombinableCriteriaFromJSON,\n ETextSearchTypeStringCombinableCriteriaFromJSONTyped,\n ETextSearchTypeStringCombinableCriteriaToJSON,\n} from './ETextSearchTypeStringCombinableCriteria';\n\n/**\n * \n * @export\n * @interface TextSearch\n */\nexport interface TextSearch {\n /**\n * \n * @type {Array}\n * @memberof TextSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {ETextSearchType}\n * @memberof TextSearch\n */\n searchMode?: ETextSearchType;\n /**\n * \n * @type {string}\n * @memberof TextSearch\n * @deprecated\n */\n value?: string | null;\n /**\n * \n * @type {string}\n * @memberof TextSearch\n * @deprecated\n */\n secondaryValue?: string | null;\n /**\n * \n * @type {Array}\n * @memberof TextSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof TextSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the TextSearch interface.\n */\nexport function instanceOfTextSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TextSearchFromJSON(json: any): TextSearch {\n return TextSearchFromJSONTyped(json, false);\n}\n\nexport function TextSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): TextSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(ETextSearchTypeStringCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : ETextSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function TextSearchToJSON(value?: TextSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(ETextSearchTypeStringCombinableCriteriaToJSON)),\n 'searchMode': ETextSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface AcquisIfapmeSearchDto\n */\nexport interface AcquisIfapmeSearchDto {\n /**\n * \n * @type {TextSearch}\n * @memberof AcquisIfapmeSearchDto\n */\n description?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof AcquisIfapmeSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AcquisIfapmeSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AcquisIfapmeSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AcquisIfapmeSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AcquisIfapmeSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AcquisIfapmeSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AcquisIfapmeSearchDto interface.\n */\nexport function instanceOfAcquisIfapmeSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AcquisIfapmeSearchDtoFromJSON(json: any): AcquisIfapmeSearchDto {\n return AcquisIfapmeSearchDtoFromJSONTyped(json, false);\n}\n\nexport function AcquisIfapmeSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcquisIfapmeSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AcquisIfapmeSearchDtoToJSON(value?: AcquisIfapmeSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'description': TextSearchToJSON(value.description),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface AcquisProfessionnelSearch\n */\nexport interface AcquisProfessionnelSearch {\n /**\n * \n * @type {number}\n * @memberof AcquisProfessionnelSearch\n */\n idapprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof AcquisProfessionnelSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AcquisProfessionnelSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AcquisProfessionnelSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AcquisProfessionnelSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AcquisProfessionnelSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AcquisProfessionnelSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AcquisProfessionnelSearch interface.\n */\nexport function instanceOfAcquisProfessionnelSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AcquisProfessionnelSearchFromJSON(json: any): AcquisProfessionnelSearch {\n return AcquisProfessionnelSearchFromJSONTyped(json, false);\n}\n\nexport function AcquisProfessionnelSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcquisProfessionnelSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AcquisProfessionnelSearchToJSON(value?: AcquisProfessionnelSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AcquisScolaireGridDto\n */\nexport interface AcquisScolaireGridDto {\n /**\n * \n * @type {number}\n * @memberof AcquisScolaireGridDto\n */\n id?: number;\n /**\n * \n * @type {string}\n * @memberof AcquisScolaireGridDto\n */\n titre?: string | null;\n /**\n * \n * @type {string}\n * @memberof AcquisScolaireGridDto\n */\n type?: string | null;\n /**\n * \n * @type {string}\n * @memberof AcquisScolaireGridDto\n */\n operateur?: string | null;\n /**\n * \n * @type {string}\n * @memberof AcquisScolaireGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof AcquisScolaireGridDto\n */\n resultat?: string | null;\n}\n\n/**\n * Check if a given object implements the AcquisScolaireGridDto interface.\n */\nexport function instanceOfAcquisScolaireGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AcquisScolaireGridDtoFromJSON(json: any): AcquisScolaireGridDto {\n return AcquisScolaireGridDtoFromJSONTyped(json, false);\n}\n\nexport function AcquisScolaireGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcquisScolaireGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'titre': !exists(json, 'titre') ? undefined : json['titre'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'operateur': !exists(json, 'operateur') ? undefined : json['operateur'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'resultat': !exists(json, 'resultat') ? undefined : json['resultat'],\n };\n}\n\nexport function AcquisScolaireGridDtoToJSON(value?: AcquisScolaireGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'id': value.id,\n 'titre': value.titre,\n 'type': value.type,\n 'operateur': value.operateur,\n 'anneeScolaire': value.anneeScolaire,\n 'resultat': value.resultat,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AcquisScolaireGridDto } from './AcquisScolaireGridDto';\nimport {\n AcquisScolaireGridDtoFromJSON,\n AcquisScolaireGridDtoFromJSONTyped,\n AcquisScolaireGridDtoToJSON,\n} from './AcquisScolaireGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface AcquisScolaireGridDtoPaginatedResults\n */\nexport interface AcquisScolaireGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof AcquisScolaireGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof AcquisScolaireGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AcquisScolaireGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the AcquisScolaireGridDtoPaginatedResults interface.\n */\nexport function instanceOfAcquisScolaireGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AcquisScolaireGridDtoPaginatedResultsFromJSON(json: any): AcquisScolaireGridDtoPaginatedResults {\n return AcquisScolaireGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function AcquisScolaireGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcquisScolaireGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(AcquisScolaireGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function AcquisScolaireGridDtoPaginatedResultsToJSON(value?: AcquisScolaireGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(AcquisScolaireGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface AcquisScolaireSearch\n */\nexport interface AcquisScolaireSearch {\n /**\n * \n * @type {number}\n * @memberof AcquisScolaireSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof AcquisScolaireSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AcquisScolaireSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AcquisScolaireSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AcquisScolaireSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AcquisScolaireSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AcquisScolaireSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AcquisScolaireSearch interface.\n */\nexport function instanceOfAcquisScolaireSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AcquisScolaireSearchFromJSON(json: any): AcquisScolaireSearch {\n return AcquisScolaireSearchFromJSONTyped(json, false);\n}\n\nexport function AcquisScolaireSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcquisScolaireSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AcquisScolaireSearchToJSON(value?: AcquisScolaireSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface AcquisScolaireSearchDto\n */\nexport interface AcquisScolaireSearchDto {\n /**\n * \n * @type {number}\n * @memberof AcquisScolaireSearchDto\n */\n idpersonne?: number;\n /**\n * \n * @type {Array}\n * @memberof AcquisScolaireSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AcquisScolaireSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AcquisScolaireSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AcquisScolaireSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AcquisScolaireSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AcquisScolaireSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AcquisScolaireSearchDto interface.\n */\nexport function instanceOfAcquisScolaireSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AcquisScolaireSearchDtoFromJSON(json: any): AcquisScolaireSearchDto {\n return AcquisScolaireSearchDtoFromJSONTyped(json, false);\n}\n\nexport function AcquisScolaireSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcquisScolaireSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AcquisScolaireSearchDtoToJSON(value?: AcquisScolaireSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne': value.idpersonne,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface AdjointSearch\n */\nexport interface AdjointSearch {\n /**\n * \n * @type {number}\n * @memberof AdjointSearch\n */\n idcentre?: number;\n /**\n * \n * @type {Array}\n * @memberof AdjointSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AdjointSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AdjointSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AdjointSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AdjointSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AdjointSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AdjointSearch interface.\n */\nexport function instanceOfAdjointSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdjointSearchFromJSON(json: any): AdjointSearch {\n return AdjointSearchFromJSONTyped(json, false);\n}\n\nexport function AdjointSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdjointSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AdjointSearchToJSON(value?: AdjointSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AdmissionGridDto\n */\nexport interface AdmissionGridDto {\n /**\n * \n * @type {number}\n * @memberof AdmissionGridDto\n */\n id?: number;\n /**\n * \n * @type {string}\n * @memberof AdmissionGridDto\n */\n type?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdmissionGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdmissionGridDto\n */\n resultat?: string | null;\n}\n\n/**\n * Check if a given object implements the AdmissionGridDto interface.\n */\nexport function instanceOfAdmissionGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdmissionGridDtoFromJSON(json: any): AdmissionGridDto {\n return AdmissionGridDtoFromJSONTyped(json, false);\n}\n\nexport function AdmissionGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdmissionGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'resultat': !exists(json, 'resultat') ? undefined : json['resultat'],\n };\n}\n\nexport function AdmissionGridDtoToJSON(value?: AdmissionGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'id': value.id,\n 'type': value.type,\n 'anneeScolaire': value.anneeScolaire,\n 'resultat': value.resultat,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdmissionGridDto } from './AdmissionGridDto';\nimport {\n AdmissionGridDtoFromJSON,\n AdmissionGridDtoFromJSONTyped,\n AdmissionGridDtoToJSON,\n} from './AdmissionGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface AdmissionGridDtoPaginatedResults\n */\nexport interface AdmissionGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof AdmissionGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof AdmissionGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AdmissionGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the AdmissionGridDtoPaginatedResults interface.\n */\nexport function instanceOfAdmissionGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdmissionGridDtoPaginatedResultsFromJSON(json: any): AdmissionGridDtoPaginatedResults {\n return AdmissionGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function AdmissionGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdmissionGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(AdmissionGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function AdmissionGridDtoPaginatedResultsToJSON(value?: AdmissionGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(AdmissionGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface AdmissionSearchDto\n */\nexport interface AdmissionSearchDto {\n /**\n * \n * @type {number}\n * @memberof AdmissionSearchDto\n */\n idpersonne?: number;\n /**\n * \n * @type {Array}\n * @memberof AdmissionSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AdmissionSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AdmissionSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AdmissionSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AdmissionSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AdmissionSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AdmissionSearchDto interface.\n */\nexport function instanceOfAdmissionSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdmissionSearchDtoFromJSON(json: any): AdmissionSearchDto {\n return AdmissionSearchDtoFromJSONTyped(json, false);\n}\n\nexport function AdmissionSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdmissionSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AdmissionSearchDtoToJSON(value?: AdmissionSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne': value.idpersonne,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AdresseDoublonDto\n */\nexport interface AdresseDoublonDto {\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonDto\n */\n idadresseToKeep?: number;\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonDto\n */\n idpersonne?: number;\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonDto\n */\n idtypeAdresse?: number;\n}\n\n/**\n * Check if a given object implements the AdresseDoublonDto interface.\n */\nexport function instanceOfAdresseDoublonDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdresseDoublonDtoFromJSON(json: any): AdresseDoublonDto {\n return AdresseDoublonDtoFromJSONTyped(json, false);\n}\n\nexport function AdresseDoublonDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdresseDoublonDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idadresseToKeep': !exists(json, 'idadresseToKeep') ? undefined : json['idadresseToKeep'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idtypeAdresse': !exists(json, 'idtypeAdresse') ? undefined : json['idtypeAdresse'],\n };\n}\n\nexport function AdresseDoublonDtoToJSON(value?: AdresseDoublonDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idadresseToKeep': value.idadresseToKeep,\n 'idpersonne': value.idpersonne,\n 'idtypeAdresse': value.idtypeAdresse,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AdresseDoublonGridDto\n */\nexport interface AdresseDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonGridDto\n */\n idadresse?: number;\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof AdresseDoublonGridDto\n */\n typeAdresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDoublonGridDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDoublonGridDto\n */\n boite?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDoublonGridDto\n */\n codePostalText?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDoublonGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDoublonGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDoublonGridDto\n */\n commune?: string | null;\n}\n\n/**\n * Check if a given object implements the AdresseDoublonGridDto interface.\n */\nexport function instanceOfAdresseDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdresseDoublonGridDtoFromJSON(json: any): AdresseDoublonGridDto {\n return AdresseDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function AdresseDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdresseDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idadresse': !exists(json, 'idadresse') ? undefined : json['idadresse'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'typeAdresse': !exists(json, 'typeAdresse') ? undefined : json['typeAdresse'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'boite': !exists(json, 'boite') ? undefined : json['boite'],\n 'codePostalText': !exists(json, 'codePostalText') ? undefined : json['codePostalText'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n };\n}\n\nexport function AdresseDoublonGridDtoToJSON(value?: AdresseDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idadresse': value.idadresse,\n 'idpersonne': value.idpersonne,\n 'typeAdresse': value.typeAdresse,\n 'adresse': value.adresse,\n 'boite': value.boite,\n 'codePostalText': value.codePostalText,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n 'commune': value.commune,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDoublonGridDto } from './AdresseDoublonGridDto';\nimport {\n AdresseDoublonGridDtoFromJSON,\n AdresseDoublonGridDtoFromJSONTyped,\n AdresseDoublonGridDtoToJSON,\n} from './AdresseDoublonGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface AdresseDoublonGridDtoPaginatedResults\n */\nexport interface AdresseDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof AdresseDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AdresseDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the AdresseDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfAdresseDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdresseDoublonGridDtoPaginatedResultsFromJSON(json: any): AdresseDoublonGridDtoPaginatedResults {\n return AdresseDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function AdresseDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdresseDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(AdresseDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function AdresseDoublonGridDtoPaginatedResultsToJSON(value?: AdresseDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(AdresseDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface AdresseDoublonSearchDto\n */\nexport interface AdresseDoublonSearchDto {\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonSearchDto\n */\n idpersonne?: number;\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonSearchDto\n */\n idtypeAdresse?: number;\n /**\n * \n * @type {Array}\n * @memberof AdresseDoublonSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AdresseDoublonSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AdresseDoublonSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AdresseDoublonSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDoublonSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AdresseDoublonSearchDto interface.\n */\nexport function instanceOfAdresseDoublonSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdresseDoublonSearchDtoFromJSON(json: any): AdresseDoublonSearchDto {\n return AdresseDoublonSearchDtoFromJSONTyped(json, false);\n}\n\nexport function AdresseDoublonSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdresseDoublonSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idtypeAdresse': !exists(json, 'idtypeAdresse') ? undefined : json['idtypeAdresse'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AdresseDoublonSearchDtoToJSON(value?: AdresseDoublonSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne': value.idpersonne,\n 'idtypeAdresse': value.idtypeAdresse,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AdresseDto\n */\nexport interface AdresseDto {\n /**\n * \n * @type {number}\n * @memberof AdresseDto\n */\n idadresse?: number;\n /**\n * \n * @type {number}\n * @memberof AdresseDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof AdresseDto\n */\n adresse?: string | null;\n /**\n * \n * @type {number}\n * @memberof AdresseDto\n */\n idcodePostal?: number | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDto\n */\n boite?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDto\n */\n pays?: string | null;\n /**\n * \n * @type {number}\n * @memberof AdresseDto\n */\n idtypeAdresse?: number;\n /**\n * \n * @type {string}\n * @memberof AdresseDto\n */\n codePostalText?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof AdresseDto\n */\n typeAdresse?: string | null;\n}\n\n/**\n * Check if a given object implements the AdresseDto interface.\n */\nexport function instanceOfAdresseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdresseDtoFromJSON(json: any): AdresseDto {\n return AdresseDtoFromJSONTyped(json, false);\n}\n\nexport function AdresseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdresseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idadresse': !exists(json, 'idadresse') ? undefined : json['idadresse'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'boite': !exists(json, 'boite') ? undefined : json['boite'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'pays': !exists(json, 'pays') ? undefined : json['pays'],\n 'idtypeAdresse': !exists(json, 'idtypeAdresse') ? undefined : json['idtypeAdresse'],\n 'codePostalText': !exists(json, 'codePostalText') ? undefined : json['codePostalText'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'typeAdresse': !exists(json, 'typeAdresse') ? undefined : json['typeAdresse'],\n };\n}\n\nexport function AdresseDtoToJSON(value?: AdresseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idadresse': value.idadresse,\n 'idpersonne': value.idpersonne,\n 'adresse': value.adresse,\n 'idcodePostal': value.idcodePostal,\n 'boite': value.boite,\n 'localite': value.localite,\n 'commune': value.commune,\n 'pays': value.pays,\n 'idtypeAdresse': value.idtypeAdresse,\n 'codePostalText': value.codePostalText,\n 'codePostal': value.codePostal,\n 'typeAdresse': value.typeAdresse,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\n\n/**\n * \n * @export\n * @interface AdresseReferentialResultInfoDto\n */\nexport interface AdresseReferentialResultInfoDto {\n /**\n * \n * @type {Array}\n * @memberof AdresseReferentialResultInfoDto\n */\n list?: Array | null;\n}\n\n/**\n * Check if a given object implements the AdresseReferentialResultInfoDto interface.\n */\nexport function instanceOfAdresseReferentialResultInfoDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AdresseReferentialResultInfoDtoFromJSON(json: any): AdresseReferentialResultInfoDto {\n return AdresseReferentialResultInfoDtoFromJSONTyped(json, false);\n}\n\nexport function AdresseReferentialResultInfoDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdresseReferentialResultInfoDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'list': !exists(json, 'list') ? undefined : (json['list'] === null ? null : (json['list'] as Array).map(AdresseDtoFromJSON)),\n };\n}\n\nexport function AdresseReferentialResultInfoDtoToJSON(value?: AdresseReferentialResultInfoDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'list': value.list === undefined ? undefined : (value.list === null ? null : (value.list as Array).map(AdresseDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface AgrementSearch\n */\nexport interface AgrementSearch {\n /**\n * \n * @type {number}\n * @memberof AgrementSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof AgrementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AgrementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AgrementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AgrementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AgrementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AgrementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AgrementSearch interface.\n */\nexport function instanceOfAgrementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AgrementSearchFromJSON(json: any): AgrementSearch {\n return AgrementSearchFromJSONTyped(json, false);\n}\n\nexport function AgrementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): AgrementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AgrementSearchToJSON(value?: AgrementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AnneeFormationSuivieFichierGridDto\n */\nexport interface AnneeFormationSuivieFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierGridDto\n */\n idanneeFormationSuivieFichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierGridDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieFichierGridDto\n */\n typeAcquisFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof AnneeFormationSuivieFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the AnneeFormationSuivieFichierGridDto interface.\n */\nexport function instanceOfAnneeFormationSuivieFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeFormationSuivieFichierGridDtoFromJSON(json: any): AnneeFormationSuivieFichierGridDto {\n return AnneeFormationSuivieFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function AnneeFormationSuivieFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeFormationSuivieFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeFormationSuivieFichier': !exists(json, 'idanneeFormationSuivieFichier') ? undefined : json['idanneeFormationSuivieFichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'typeAcquisFichier': !exists(json, 'typeAcquisFichier') ? undefined : json['typeAcquisFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function AnneeFormationSuivieFichierGridDtoToJSON(value?: AnneeFormationSuivieFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeFormationSuivieFichier': value.idanneeFormationSuivieFichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'typeAcquisFichier': value.typeAcquisFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AnneeFormationSuivieFichierGridDto } from './AnneeFormationSuivieFichierGridDto';\nimport {\n AnneeFormationSuivieFichierGridDtoFromJSON,\n AnneeFormationSuivieFichierGridDtoFromJSONTyped,\n AnneeFormationSuivieFichierGridDtoToJSON,\n} from './AnneeFormationSuivieFichierGridDto';\n\n/**\n * \n * @export\n * @interface AnneeFormationSuivieEditDto\n */\nexport interface AnneeFormationSuivieEditDto {\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieEditDto\n */\n idanneeFormationSuivie?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieEditDto\n */\n idanneeDeFormation?: string | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieEditDto\n */\n idniveau?: number | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieEditDto\n */\n idannee?: number | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieEditDto\n */\n idforme?: number | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieEditDto\n */\n optionFormation?: string | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieEditDto\n */\n idecole?: number | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieEditDto\n */\n idresultat?: number | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieEditDto\n */\n typeAcquis?: string | null;\n /**\n * \n * @type {Array}\n * @memberof AnneeFormationSuivieEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the AnneeFormationSuivieEditDto interface.\n */\nexport function instanceOfAnneeFormationSuivieEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeFormationSuivieEditDtoFromJSON(json: any): AnneeFormationSuivieEditDto {\n return AnneeFormationSuivieEditDtoFromJSONTyped(json, false);\n}\n\nexport function AnneeFormationSuivieEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeFormationSuivieEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeFormationSuivie': !exists(json, 'idanneeFormationSuivie') ? undefined : json['idanneeFormationSuivie'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idanneeDeFormation': !exists(json, 'idanneeDeFormation') ? undefined : json['idanneeDeFormation'],\n 'idniveau': !exists(json, 'idniveau') ? undefined : json['idniveau'],\n 'idannee': !exists(json, 'idannee') ? undefined : json['idannee'],\n 'idforme': !exists(json, 'idforme') ? undefined : json['idforme'],\n 'optionFormation': !exists(json, 'optionFormation') ? undefined : json['optionFormation'],\n 'idecole': !exists(json, 'idecole') ? undefined : json['idecole'],\n 'idresultat': !exists(json, 'idresultat') ? undefined : json['idresultat'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'typeAcquis': !exists(json, 'typeAcquis') ? undefined : json['typeAcquis'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(AnneeFormationSuivieFichierGridDtoFromJSON)),\n };\n}\n\nexport function AnneeFormationSuivieEditDtoToJSON(value?: AnneeFormationSuivieEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeFormationSuivie': value.idanneeFormationSuivie,\n 'idpersonne': value.idpersonne,\n 'idanneeDeFormation': value.idanneeDeFormation,\n 'idniveau': value.idniveau,\n 'idannee': value.idannee,\n 'idforme': value.idforme,\n 'optionFormation': value.optionFormation,\n 'idecole': value.idecole,\n 'idresultat': value.idresultat,\n 'remarque': value.remarque,\n 'typeAcquis': value.typeAcquis,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(AnneeFormationSuivieFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AnneeFormationSuivieFichierDto\n */\nexport interface AnneeFormationSuivieFichierDto {\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierDto\n */\n idanneeFormationSuivieFichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierDto\n */\n idanneeFormationSuivie?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the AnneeFormationSuivieFichierDto interface.\n */\nexport function instanceOfAnneeFormationSuivieFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeFormationSuivieFichierDtoFromJSON(json: any): AnneeFormationSuivieFichierDto {\n return AnneeFormationSuivieFichierDtoFromJSONTyped(json, false);\n}\n\nexport function AnneeFormationSuivieFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeFormationSuivieFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeFormationSuivieFichier': !exists(json, 'idanneeFormationSuivieFichier') ? undefined : json['idanneeFormationSuivieFichier'],\n 'idanneeFormationSuivie': !exists(json, 'idanneeFormationSuivie') ? undefined : json['idanneeFormationSuivie'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function AnneeFormationSuivieFichierDtoToJSON(value?: AnneeFormationSuivieFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeFormationSuivieFichier': value.idanneeFormationSuivieFichier,\n 'idanneeFormationSuivie': value.idanneeFormationSuivie,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FileUploadDto\n */\nexport interface FileUploadDto {\n /**\n * \n * @type {string}\n * @memberof FileUploadDto\n */\n fileName?: string | null;\n /**\n * \n * @type {string}\n * @memberof FileUploadDto\n */\n contentB64?: string | null;\n}\n\n/**\n * Check if a given object implements the FileUploadDto interface.\n */\nexport function instanceOfFileUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FileUploadDtoFromJSON(json: any): FileUploadDto {\n return FileUploadDtoFromJSONTyped(json, false);\n}\n\nexport function FileUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FileUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'contentB64': !exists(json, 'contentB64') ? undefined : json['contentB64'],\n };\n}\n\nexport function FileUploadDtoToJSON(value?: FileUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'fileName': value.fileName,\n 'contentB64': value.contentB64,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface AnneeFormationSuivieFichierUploadDto\n */\nexport interface AnneeFormationSuivieFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof AnneeFormationSuivieFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierUploadDto\n */\n idanneeFormationSuivieFichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierUploadDto\n */\n idanneeFormationSuivie?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieFichierUploadDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the AnneeFormationSuivieFichierUploadDto interface.\n */\nexport function instanceOfAnneeFormationSuivieFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeFormationSuivieFichierUploadDtoFromJSON(json: any): AnneeFormationSuivieFichierUploadDto {\n return AnneeFormationSuivieFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function AnneeFormationSuivieFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeFormationSuivieFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idanneeFormationSuivieFichier': !exists(json, 'idanneeFormationSuivieFichier') ? undefined : json['idanneeFormationSuivieFichier'],\n 'idanneeFormationSuivie': !exists(json, 'idanneeFormationSuivie') ? undefined : json['idanneeFormationSuivie'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function AnneeFormationSuivieFichierUploadDtoToJSON(value?: AnneeFormationSuivieFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idanneeFormationSuivieFichier': value.idanneeFormationSuivieFichier,\n 'idanneeFormationSuivie': value.idanneeFormationSuivie,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AnneeFormationSuivieIfapmeFichierGridDto\n */\nexport interface AnneeFormationSuivieIfapmeFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierGridDto\n */\n idanneeFormationSuivieIfapmeFichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierGridDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeFichierGridDto\n */\n typeAcquisFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof AnneeFormationSuivieIfapmeFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the AnneeFormationSuivieIfapmeFichierGridDto interface.\n */\nexport function instanceOfAnneeFormationSuivieIfapmeFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeFormationSuivieIfapmeFichierGridDtoFromJSON(json: any): AnneeFormationSuivieIfapmeFichierGridDto {\n return AnneeFormationSuivieIfapmeFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function AnneeFormationSuivieIfapmeFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeFormationSuivieIfapmeFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeFormationSuivieIfapmeFichier': !exists(json, 'idanneeFormationSuivieIfapmeFichier') ? undefined : json['idanneeFormationSuivieIfapmeFichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'typeAcquisFichier': !exists(json, 'typeAcquisFichier') ? undefined : json['typeAcquisFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function AnneeFormationSuivieIfapmeFichierGridDtoToJSON(value?: AnneeFormationSuivieIfapmeFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeFormationSuivieIfapmeFichier': value.idanneeFormationSuivieIfapmeFichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'typeAcquisFichier': value.typeAcquisFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AnneeFormationSuivieIfapmeFichierGridDto } from './AnneeFormationSuivieIfapmeFichierGridDto';\nimport {\n AnneeFormationSuivieIfapmeFichierGridDtoFromJSON,\n AnneeFormationSuivieIfapmeFichierGridDtoFromJSONTyped,\n AnneeFormationSuivieIfapmeFichierGridDtoToJSON,\n} from './AnneeFormationSuivieIfapmeFichierGridDto';\n\n/**\n * \n * @export\n * @interface AnneeFormationSuivieIfapmeEditDto\n */\nexport interface AnneeFormationSuivieIfapmeEditDto {\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n idanneeFormationSuivieIfapme?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n idanneeDeFormation?: string | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n idstade?: number | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n idtypeDeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n iddegre?: string | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n idresultatValide?: number | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n typeAcquis?: string | null;\n /**\n * \n * @type {Array}\n * @memberof AnneeFormationSuivieIfapmeEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the AnneeFormationSuivieIfapmeEditDto interface.\n */\nexport function instanceOfAnneeFormationSuivieIfapmeEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeFormationSuivieIfapmeEditDtoFromJSON(json: any): AnneeFormationSuivieIfapmeEditDto {\n return AnneeFormationSuivieIfapmeEditDtoFromJSONTyped(json, false);\n}\n\nexport function AnneeFormationSuivieIfapmeEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeFormationSuivieIfapmeEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeFormationSuivieIfapme': !exists(json, 'idanneeFormationSuivieIfapme') ? undefined : json['idanneeFormationSuivieIfapme'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idanneeDeFormation': !exists(json, 'idanneeDeFormation') ? undefined : json['idanneeDeFormation'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'idtypeDeCours': !exists(json, 'idtypeDeCours') ? undefined : json['idtypeDeCours'],\n 'iddegre': !exists(json, 'iddegre') ? undefined : json['iddegre'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idresultatValide': !exists(json, 'idresultatValide') ? undefined : json['idresultatValide'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'typeAcquis': !exists(json, 'typeAcquis') ? undefined : json['typeAcquis'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(AnneeFormationSuivieIfapmeFichierGridDtoFromJSON)),\n };\n}\n\nexport function AnneeFormationSuivieIfapmeEditDtoToJSON(value?: AnneeFormationSuivieIfapmeEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeFormationSuivieIfapme': value.idanneeFormationSuivieIfapme,\n 'idpersonne': value.idpersonne,\n 'idanneeDeFormation': value.idanneeDeFormation,\n 'idstade': value.idstade,\n 'idtypeDeCours': value.idtypeDeCours,\n 'iddegre': value.iddegre,\n 'idmetier': value.idmetier,\n 'idcentre': value.idcentre,\n 'idresultatValide': value.idresultatValide,\n 'remarque': value.remarque,\n 'typeAcquis': value.typeAcquis,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(AnneeFormationSuivieIfapmeFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AnneeFormationSuivieIfapmeFichierDto\n */\nexport interface AnneeFormationSuivieIfapmeFichierDto {\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierDto\n */\n idanneeFormationSuivieIfapmeFichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierDto\n */\n idanneeFormationSuivieIfapme?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the AnneeFormationSuivieIfapmeFichierDto interface.\n */\nexport function instanceOfAnneeFormationSuivieIfapmeFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeFormationSuivieIfapmeFichierDtoFromJSON(json: any): AnneeFormationSuivieIfapmeFichierDto {\n return AnneeFormationSuivieIfapmeFichierDtoFromJSONTyped(json, false);\n}\n\nexport function AnneeFormationSuivieIfapmeFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeFormationSuivieIfapmeFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeFormationSuivieIfapmeFichier': !exists(json, 'idanneeFormationSuivieIfapmeFichier') ? undefined : json['idanneeFormationSuivieIfapmeFichier'],\n 'idanneeFormationSuivieIfapme': !exists(json, 'idanneeFormationSuivieIfapme') ? undefined : json['idanneeFormationSuivieIfapme'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function AnneeFormationSuivieIfapmeFichierDtoToJSON(value?: AnneeFormationSuivieIfapmeFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeFormationSuivieIfapmeFichier': value.idanneeFormationSuivieIfapmeFichier,\n 'idanneeFormationSuivieIfapme': value.idanneeFormationSuivieIfapme,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface AnneeFormationSuivieIfapmeFichierUploadDto\n */\nexport interface AnneeFormationSuivieIfapmeFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof AnneeFormationSuivieIfapmeFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierUploadDto\n */\n idanneeFormationSuivieIfapmeFichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierUploadDto\n */\n idanneeFormationSuivieIfapme?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof AnneeFormationSuivieIfapmeFichierUploadDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof AnneeFormationSuivieIfapmeFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the AnneeFormationSuivieIfapmeFichierUploadDto interface.\n */\nexport function instanceOfAnneeFormationSuivieIfapmeFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeFormationSuivieIfapmeFichierUploadDtoFromJSON(json: any): AnneeFormationSuivieIfapmeFichierUploadDto {\n return AnneeFormationSuivieIfapmeFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function AnneeFormationSuivieIfapmeFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeFormationSuivieIfapmeFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idanneeFormationSuivieIfapmeFichier': !exists(json, 'idanneeFormationSuivieIfapmeFichier') ? undefined : json['idanneeFormationSuivieIfapmeFichier'],\n 'idanneeFormationSuivieIfapme': !exists(json, 'idanneeFormationSuivieIfapme') ? undefined : json['idanneeFormationSuivieIfapme'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function AnneeFormationSuivieIfapmeFichierUploadDtoToJSON(value?: AnneeFormationSuivieIfapmeFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idanneeFormationSuivieIfapmeFichier': value.idanneeFormationSuivieIfapmeFichier,\n 'idanneeFormationSuivieIfapme': value.idanneeFormationSuivieIfapme,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EBooleanSearchTypes {\n Equals = 'Equals',\n NotEquals = 'NotEquals'\n}\n\n\nexport function EBooleanSearchTypesFromJSON(json: any): EBooleanSearchTypes {\n return EBooleanSearchTypesFromJSONTyped(json, false);\n}\n\nexport function EBooleanSearchTypesFromJSONTyped(json: any, ignoreDiscriminator: boolean): EBooleanSearchTypes {\n return json as EBooleanSearchTypes;\n}\n\nexport function EBooleanSearchTypesToJSON(value?: EBooleanSearchTypes | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EBooleanSearchTypes } from './EBooleanSearchTypes';\nimport {\n EBooleanSearchTypesFromJSON,\n EBooleanSearchTypesFromJSONTyped,\n EBooleanSearchTypesToJSON,\n} from './EBooleanSearchTypes';\n\n/**\n * \n * @export\n * @interface EBooleanSearchTypesBooleanNullableCombinableCriteria\n */\nexport interface EBooleanSearchTypesBooleanNullableCombinableCriteria {\n /**\n * \n * @type {EBooleanSearchTypes}\n * @memberof EBooleanSearchTypesBooleanNullableCombinableCriteria\n */\n searchMode?: EBooleanSearchTypes;\n /**\n * \n * @type {boolean}\n * @memberof EBooleanSearchTypesBooleanNullableCombinableCriteria\n */\n value?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof EBooleanSearchTypesBooleanNullableCombinableCriteria\n */\n secondaryValue?: boolean | null;\n}\n\n/**\n * Check if a given object implements the EBooleanSearchTypesBooleanNullableCombinableCriteria interface.\n */\nexport function instanceOfEBooleanSearchTypesBooleanNullableCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EBooleanSearchTypesBooleanNullableCombinableCriteriaFromJSON(json: any): EBooleanSearchTypesBooleanNullableCombinableCriteria {\n return EBooleanSearchTypesBooleanNullableCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EBooleanSearchTypesBooleanNullableCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EBooleanSearchTypesBooleanNullableCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EBooleanSearchTypesFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n };\n}\n\nexport function EBooleanSearchTypesBooleanNullableCombinableCriteriaToJSON(value?: EBooleanSearchTypesBooleanNullableCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EBooleanSearchTypesToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EBooleanSearchTypes } from './EBooleanSearchTypes';\nimport {\n EBooleanSearchTypesFromJSON,\n EBooleanSearchTypesFromJSONTyped,\n EBooleanSearchTypesToJSON,\n} from './EBooleanSearchTypes';\nimport type { EBooleanSearchTypesBooleanNullableCombinableCriteria } from './EBooleanSearchTypesBooleanNullableCombinableCriteria';\nimport {\n EBooleanSearchTypesBooleanNullableCombinableCriteriaFromJSON,\n EBooleanSearchTypesBooleanNullableCombinableCriteriaFromJSONTyped,\n EBooleanSearchTypesBooleanNullableCombinableCriteriaToJSON,\n} from './EBooleanSearchTypesBooleanNullableCombinableCriteria';\n\n/**\n * \n * @export\n * @interface BooleanSearch\n */\nexport interface BooleanSearch {\n /**\n * \n * @type {Array}\n * @memberof BooleanSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EBooleanSearchTypes}\n * @memberof BooleanSearch\n */\n searchMode?: EBooleanSearchTypes;\n /**\n * \n * @type {boolean}\n * @memberof BooleanSearch\n * @deprecated\n */\n value?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof BooleanSearch\n * @deprecated\n */\n secondaryValue?: boolean | null;\n /**\n * \n * @type {Array}\n * @memberof BooleanSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof BooleanSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the BooleanSearch interface.\n */\nexport function instanceOfBooleanSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BooleanSearchFromJSON(json: any): BooleanSearch {\n return BooleanSearchFromJSONTyped(json, false);\n}\n\nexport function BooleanSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): BooleanSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EBooleanSearchTypesBooleanNullableCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EBooleanSearchTypesFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function BooleanSearchToJSON(value?: BooleanSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EBooleanSearchTypesBooleanNullableCombinableCriteriaToJSON)),\n 'searchMode': EBooleanSearchTypesToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface AnneeReussieSearch\n */\nexport interface AnneeReussieSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof AnneeReussieSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof AnneeReussieSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof AnneeReussieSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AnneeReussieSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AnneeReussieSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AnneeReussieSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AnneeReussieSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AnneeReussieSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AnneeReussieSearch interface.\n */\nexport function instanceOfAnneeReussieSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeReussieSearchFromJSON(json: any): AnneeReussieSearch {\n return AnneeReussieSearchFromJSONTyped(json, false);\n}\n\nexport function AnneeReussieSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeReussieSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AnneeReussieSearchToJSON(value?: AnneeReussieSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface AnneeScolaireSearch\n */\nexport interface AnneeScolaireSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof AnneeScolaireSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof AnneeScolaireSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof AnneeScolaireSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AnneeScolaireSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AnneeScolaireSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AnneeScolaireSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AnneeScolaireSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AnneeScolaireSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AnneeScolaireSearch interface.\n */\nexport function instanceOfAnneeScolaireSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AnneeScolaireSearchFromJSON(json: any): AnneeScolaireSearch {\n return AnneeScolaireSearchFromJSONTyped(json, false);\n}\n\nexport function AnneeScolaireSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): AnneeScolaireSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AnneeScolaireSearchToJSON(value?: AnneeScolaireSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'description': TextSearchToJSON(value.description),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ApprenantAzureSearch\n */\nexport interface ApprenantAzureSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantAzureSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {number}\n * @memberof ApprenantAzureSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {string}\n * @memberof ApprenantAzureSearch\n */\n codeCentres?: string | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantAzureSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantAzureSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantAzureSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantAzureSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ApprenantAzureSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantAzureSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantAzureSearch interface.\n */\nexport function instanceOfApprenantAzureSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantAzureSearchFromJSON(json: any): ApprenantAzureSearch {\n return ApprenantAzureSearchFromJSONTyped(json, false);\n}\n\nexport function ApprenantAzureSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantAzureSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'codeCentres': !exists(json, 'codeCentres') ? undefined : json['codeCentres'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ApprenantAzureSearchToJSON(value?: ApprenantAzureSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'centre': TextSearchToJSON(value.centre),\n 'idApprenant': value.idApprenant,\n 'codeCentres': value.codeCentres,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ETypeContrat {\n CC = 'CC',\n CA = 'CA',\n CS = 'CS',\n PP = 'PP',\n CF = 'CF',\n DM = 'DM',\n JI = 'JI',\n SO = 'SO',\n CCE = 'CCE',\n CSE = 'CSE'\n}\n\n\nexport function ETypeContratFromJSON(json: any): ETypeContrat {\n return ETypeContratFromJSONTyped(json, false);\n}\n\nexport function ETypeContratFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETypeContrat {\n return json as ETypeContrat;\n}\n\nexport function ETypeContratToJSON(value?: ETypeContrat | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EStatutContrat } from './EStatutContrat';\nimport {\n EStatutContratFromJSON,\n EStatutContratFromJSONTyped,\n EStatutContratToJSON,\n} from './EStatutContrat';\nimport type { ETypeContrat } from './ETypeContrat';\nimport {\n ETypeContratFromJSON,\n ETypeContratFromJSONTyped,\n ETypeContratToJSON,\n} from './ETypeContrat';\n\n/**\n * \n * @export\n * @interface ApprenantContratDto\n */\nexport interface ApprenantContratDto {\n /**\n * \n * @type {number}\n * @memberof ApprenantContratDto\n */\n idcontrat?: number;\n /**\n * \n * @type {string}\n * @memberof ApprenantContratDto\n */\n service?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantContratDto\n */\n metier?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantContratDto\n */\n stade?: string | null;\n /**\n * \n * @type {ETypeContrat}\n * @memberof ApprenantContratDto\n */\n type?: ETypeContrat;\n /**\n * \n * @type {EStatutContrat}\n * @memberof ApprenantContratDto\n */\n statut?: EStatutContrat;\n /**\n * \n * @type {number}\n * @memberof ApprenantContratDto\n */\n idapprenant?: number;\n /**\n * \n * @type {Date}\n * @memberof ApprenantContratDto\n */\n marqueSansSuiteLe?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantContratDto\n */\n rompuLe?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantContratDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantContratDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantContratDto\n */\n debutDerniereSuspension?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantContratDto\n */\n finDerniereSuspension?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantContratDto\n */\n code?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantContratDto interface.\n */\nexport function instanceOfApprenantContratDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantContratDtoFromJSON(json: any): ApprenantContratDto {\n return ApprenantContratDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantContratDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantContratDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'service': !exists(json, 'service') ? undefined : json['service'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'type': !exists(json, 'type') ? undefined : ETypeContratFromJSON(json['type']),\n 'statut': !exists(json, 'statut') ? undefined : EStatutContratFromJSON(json['statut']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'marqueSansSuiteLe': !exists(json, 'marqueSansSuiteLe') ? undefined : (json['marqueSansSuiteLe'] === null ? null : new Date(json['marqueSansSuiteLe'])),\n 'rompuLe': !exists(json, 'rompuLe') ? undefined : (json['rompuLe'] === null ? null : new Date(json['rompuLe'])),\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'debutDerniereSuspension': !exists(json, 'debutDerniereSuspension') ? undefined : (json['debutDerniereSuspension'] === null ? null : new Date(json['debutDerniereSuspension'])),\n 'finDerniereSuspension': !exists(json, 'finDerniereSuspension') ? undefined : (json['finDerniereSuspension'] === null ? null : new Date(json['finDerniereSuspension'])),\n 'code': !exists(json, 'code') ? undefined : json['code'],\n };\n}\n\nexport function ApprenantContratDtoToJSON(value?: ApprenantContratDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontrat': value.idcontrat,\n 'service': value.service,\n 'metier': value.metier,\n 'stade': value.stade,\n 'type': ETypeContratToJSON(value.type),\n 'statut': EStatutContratToJSON(value.statut),\n 'idapprenant': value.idapprenant,\n 'marqueSansSuiteLe': value.marqueSansSuiteLe === undefined ? undefined : (value.marqueSansSuiteLe === null ? null : value.marqueSansSuiteLe.toISOString()),\n 'rompuLe': value.rompuLe === undefined ? undefined : (value.rompuLe === null ? null : value.rompuLe.toISOString()),\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'debutDerniereSuspension': value.debutDerniereSuspension === undefined ? undefined : (value.debutDerniereSuspension === null ? null : value.debutDerniereSuspension.toISOString()),\n 'finDerniereSuspension': value.finDerniereSuspension === undefined ? undefined : (value.finDerniereSuspension === null ? null : value.finDerniereSuspension.toISOString()),\n 'code': value.code,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EApprenantFichierDeletionReason {\n MANUAL_DELETION = 'MANUAL_DELETION',\n INVALIDATION_AVIS_RESULTATS = 'INVALIDATION_AVIS_RESULTATS'\n}\n\n\nexport function EApprenantFichierDeletionReasonFromJSON(json: any): EApprenantFichierDeletionReason {\n return EApprenantFichierDeletionReasonFromJSONTyped(json, false);\n}\n\nexport function EApprenantFichierDeletionReasonFromJSONTyped(json: any, ignoreDiscriminator: boolean): EApprenantFichierDeletionReason {\n return json as EApprenantFichierDeletionReason;\n}\n\nexport function EApprenantFichierDeletionReasonToJSON(value?: EApprenantFichierDeletionReason | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EApprenantFichierDeletionReason } from './EApprenantFichierDeletionReason';\nimport {\n EApprenantFichierDeletionReasonFromJSON,\n EApprenantFichierDeletionReasonFromJSONTyped,\n EApprenantFichierDeletionReasonToJSON,\n} from './EApprenantFichierDeletionReason';\n\n/**\n * \n * @export\n * @interface ApprenantFichierGridDto\n */\nexport interface ApprenantFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierGridDto\n */\n idapprenantFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierGridDto\n */\n idtypeApprenantFichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n typeApprenantFichier?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n typeApprenantFichierCode?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierGridDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierGridDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierGridDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n degre?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n metier?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n deliberation?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n deliberation2Sess?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantFichierGridDto\n */\n remis?: boolean;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierGridDto\n */\n uploadDate?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierGridDto\n */\n deletionDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n deletionUserName?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n deletionReason?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantFichierGridDto\n */\n autoCreated?: boolean;\n /**\n * \n * @type {EApprenantFichierDeletionReason}\n * @memberof ApprenantFichierGridDto\n */\n deletionReasonCode?: EApprenantFichierDeletionReason;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierGridDto\n */\n creationUserName?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantFichierGridDto interface.\n */\nexport function instanceOfApprenantFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantFichierGridDtoFromJSON(json: any): ApprenantFichierGridDto {\n return ApprenantFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenantFichier': !exists(json, 'idapprenantFichier') ? undefined : json['idapprenantFichier'],\n 'idtypeApprenantFichier': !exists(json, 'idtypeApprenantFichier') ? undefined : json['idtypeApprenantFichier'],\n 'typeApprenantFichier': !exists(json, 'typeApprenantFichier') ? undefined : json['typeApprenantFichier'],\n 'typeApprenantFichierCode': !exists(json, 'typeApprenantFichierCode') ? undefined : json['typeApprenantFichierCode'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'deliberation': !exists(json, 'deliberation') ? undefined : json['deliberation'],\n 'deliberation2Sess': !exists(json, 'deliberation2Sess') ? undefined : json['deliberation2Sess'],\n 'remis': !exists(json, 'remis') ? undefined : json['remis'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n 'deletionDate': !exists(json, 'deletionDate') ? undefined : (json['deletionDate'] === null ? null : new Date(json['deletionDate'])),\n 'deletionUserName': !exists(json, 'deletionUserName') ? undefined : json['deletionUserName'],\n 'deletionReason': !exists(json, 'deletionReason') ? undefined : json['deletionReason'],\n 'autoCreated': !exists(json, 'autoCreated') ? undefined : json['autoCreated'],\n 'deletionReasonCode': !exists(json, 'deletionReasonCode') ? undefined : EApprenantFichierDeletionReasonFromJSON(json['deletionReasonCode']),\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n };\n}\n\nexport function ApprenantFichierGridDtoToJSON(value?: ApprenantFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenantFichier': value.idapprenantFichier,\n 'idtypeApprenantFichier': value.idtypeApprenantFichier,\n 'typeApprenantFichier': value.typeApprenantFichier,\n 'typeApprenantFichierCode': value.typeApprenantFichierCode,\n 'anneeScolaire': value.anneeScolaire,\n 'idinscription': value.idinscription,\n 'nom': value.nom,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'description': value.description,\n 'typeCours': value.typeCours,\n 'degre': value.degre,\n 'metier': value.metier,\n 'centre': value.centre,\n 'deliberation': value.deliberation,\n 'deliberation2Sess': value.deliberation2Sess,\n 'remis': value.remis,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n 'deletionDate': value.deletionDate === undefined ? undefined : (value.deletionDate === null ? null : value.deletionDate.toISOString()),\n 'deletionUserName': value.deletionUserName,\n 'deletionReason': value.deletionReason,\n 'autoCreated': value.autoCreated,\n 'deletionReasonCode': EApprenantFichierDeletionReasonToJSON(value.deletionReasonCode),\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ApprenantRepresentantHopeGridDto\n */\nexport interface ApprenantRepresentantHopeGridDto {\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantHopeGridDto\n */\n id?: number;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantHopeGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantHopeGridDto\n */\n lien?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantHopeGridDto\n */\n type?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantHopeGridDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantHopeGridDto\n */\n idrepresentant?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantHopeGridDto\n */\n contactUrgence?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantHopeGridDto\n */\n representantLegal?: boolean;\n}\n\n/**\n * Check if a given object implements the ApprenantRepresentantHopeGridDto interface.\n */\nexport function instanceOfApprenantRepresentantHopeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantRepresentantHopeGridDtoFromJSON(json: any): ApprenantRepresentantHopeGridDto {\n return ApprenantRepresentantHopeGridDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantRepresentantHopeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantRepresentantHopeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'lien': !exists(json, 'lien') ? undefined : json['lien'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'contactUrgence': !exists(json, 'contactUrgence') ? undefined : json['contactUrgence'],\n 'representantLegal': !exists(json, 'representantLegal') ? undefined : json['representantLegal'],\n };\n}\n\nexport function ApprenantRepresentantHopeGridDtoToJSON(value?: ApprenantRepresentantHopeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'id': value.id,\n 'nom': value.nom,\n 'lien': value.lien,\n 'type': value.type,\n 'idapprenant': value.idapprenant,\n 'idrepresentant': value.idrepresentant,\n 'contactUrgence': value.contactUrgence,\n 'representantLegal': value.representantLegal,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EmailDto\n */\nexport interface EmailDto {\n /**\n * \n * @type {number}\n * @memberof EmailDto\n */\n idemail?: number | null;\n /**\n * \n * @type {number}\n * @memberof EmailDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof EmailDto\n */\n adresseEmail?: string | null;\n /**\n * \n * @type {number}\n * @memberof EmailDto\n */\n idtypeEmail?: number;\n /**\n * \n * @type {string}\n * @memberof EmailDto\n */\n typeEmail?: string | null;\n}\n\n/**\n * Check if a given object implements the EmailDto interface.\n */\nexport function instanceOfEmailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EmailDtoFromJSON(json: any): EmailDto {\n return EmailDtoFromJSONTyped(json, false);\n}\n\nexport function EmailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): EmailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idemail': !exists(json, 'idemail') ? undefined : json['idemail'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'adresseEmail': !exists(json, 'adresseEmail') ? undefined : json['adresseEmail'],\n 'idtypeEmail': !exists(json, 'idtypeEmail') ? undefined : json['idtypeEmail'],\n 'typeEmail': !exists(json, 'typeEmail') ? undefined : json['typeEmail'],\n };\n}\n\nexport function EmailDtoToJSON(value?: EmailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idemail': value.idemail,\n 'idpersonne': value.idpersonne,\n 'adresseEmail': value.adresseEmail,\n 'idtypeEmail': value.idtypeEmail,\n 'typeEmail': value.typeEmail,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ParcoursFormationGridDto\n */\nexport interface ParcoursFormationGridDto {\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationGridDto\n */\n idParcoursFormation?: number;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationGridDto\n */\n dateEntree?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ParcoursFormationGridDto\n */\n statutEntree?: string | null;\n /**\n * \n * @type {string}\n * @memberof ParcoursFormationGridDto\n */\n catStatutEntree?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationGridDto\n */\n dateSortie?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ParcoursFormationGridDto\n */\n statutSortie?: string | null;\n /**\n * \n * @type {string}\n * @memberof ParcoursFormationGridDto\n */\n catStatutSortie?: string | null;\n /**\n * \n * @type {string}\n * @memberof ParcoursFormationGridDto\n */\n motifSortie?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationGridDto\n */\n modificationDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the ParcoursFormationGridDto interface.\n */\nexport function instanceOfParcoursFormationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ParcoursFormationGridDtoFromJSON(json: any): ParcoursFormationGridDto {\n return ParcoursFormationGridDtoFromJSONTyped(json, false);\n}\n\nexport function ParcoursFormationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ParcoursFormationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idParcoursFormation': !exists(json, 'idParcoursFormation') ? undefined : json['idParcoursFormation'],\n 'dateEntree': !exists(json, 'dateEntree') ? undefined : (json['dateEntree'] === null ? null : new Date(json['dateEntree'])),\n 'statutEntree': !exists(json, 'statutEntree') ? undefined : json['statutEntree'],\n 'catStatutEntree': !exists(json, 'catStatutEntree') ? undefined : json['catStatutEntree'],\n 'dateSortie': !exists(json, 'dateSortie') ? undefined : (json['dateSortie'] === null ? null : new Date(json['dateSortie'])),\n 'statutSortie': !exists(json, 'statutSortie') ? undefined : json['statutSortie'],\n 'catStatutSortie': !exists(json, 'catStatutSortie') ? undefined : json['catStatutSortie'],\n 'motifSortie': !exists(json, 'motifSortie') ? undefined : json['motifSortie'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n };\n}\n\nexport function ParcoursFormationGridDtoToJSON(value?: ParcoursFormationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idParcoursFormation': value.idParcoursFormation,\n 'dateEntree': value.dateEntree === undefined ? undefined : (value.dateEntree === null ? null : value.dateEntree.toISOString()),\n 'statutEntree': value.statutEntree,\n 'catStatutEntree': value.catStatutEntree,\n 'dateSortie': value.dateSortie === undefined ? undefined : (value.dateSortie === null ? null : value.dateSortie.toISOString()),\n 'statutSortie': value.statutSortie,\n 'catStatutSortie': value.catStatutSortie,\n 'motifSortie': value.motifSortie,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PassportDriveDto\n */\nexport interface PassportDriveDto {\n /**\n * \n * @type {number}\n * @memberof PassportDriveDto\n */\n idpassportDrive?: number;\n /**\n * \n * @type {number}\n * @memberof PassportDriveDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof PassportDriveDto\n */\n permis?: string | null;\n /**\n * \n * @type {number}\n * @memberof PassportDriveDto\n */\n idautoecole?: number | null;\n /**\n * \n * @type {string}\n * @memberof PassportDriveDto\n */\n autoecole?: string | null;\n /**\n * \n * @type {Date}\n * @memberof PassportDriveDto\n */\n remiseCheque?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof PassportDriveDto\n */\n inscriptionEffective?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof PassportDriveDto\n */\n datePermisTheorique?: Date | null;\n /**\n * \n * @type {number}\n * @memberof PassportDriveDto\n */\n idresultatPermisTheorique?: number | null;\n /**\n * \n * @type {string}\n * @memberof PassportDriveDto\n */\n resultatPermisTheorique?: string | null;\n /**\n * \n * @type {Date}\n * @memberof PassportDriveDto\n */\n datePermisPratique?: Date | null;\n /**\n * \n * @type {number}\n * @memberof PassportDriveDto\n */\n idresultatPermisPratique?: number | null;\n /**\n * \n * @type {string}\n * @memberof PassportDriveDto\n */\n resultatPermisPratique?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof PassportDriveDto\n */\n demandeNouveauCheque?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PassportDriveDto\n */\n pasEmailPromotionnel?: boolean;\n /**\n * \n * @type {number}\n * @memberof PassportDriveDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof PassportDriveDto\n */\n creationDate?: Date;\n /**\n * \n * @type {number}\n * @memberof PassportDriveDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof PassportDriveDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof PassportDriveDto\n */\n consentementCollecteDonnees?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PassportDriveDto\n */\n chequeReceptionForem?: boolean;\n}\n\n/**\n * Check if a given object implements the PassportDriveDto interface.\n */\nexport function instanceOfPassportDriveDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PassportDriveDtoFromJSON(json: any): PassportDriveDto {\n return PassportDriveDtoFromJSONTyped(json, false);\n}\n\nexport function PassportDriveDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PassportDriveDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpassportDrive': !exists(json, 'idpassportDrive') ? undefined : json['idpassportDrive'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'permis': !exists(json, 'permis') ? undefined : json['permis'],\n 'idautoecole': !exists(json, 'idautoecole') ? undefined : json['idautoecole'],\n 'autoecole': !exists(json, 'autoecole') ? undefined : json['autoecole'],\n 'remiseCheque': !exists(json, 'remiseCheque') ? undefined : (json['remiseCheque'] === null ? null : new Date(json['remiseCheque'])),\n 'inscriptionEffective': !exists(json, 'inscriptionEffective') ? undefined : (json['inscriptionEffective'] === null ? null : new Date(json['inscriptionEffective'])),\n 'datePermisTheorique': !exists(json, 'datePermisTheorique') ? undefined : (json['datePermisTheorique'] === null ? null : new Date(json['datePermisTheorique'])),\n 'idresultatPermisTheorique': !exists(json, 'idresultatPermisTheorique') ? undefined : json['idresultatPermisTheorique'],\n 'resultatPermisTheorique': !exists(json, 'resultatPermisTheorique') ? undefined : json['resultatPermisTheorique'],\n 'datePermisPratique': !exists(json, 'datePermisPratique') ? undefined : (json['datePermisPratique'] === null ? null : new Date(json['datePermisPratique'])),\n 'idresultatPermisPratique': !exists(json, 'idresultatPermisPratique') ? undefined : json['idresultatPermisPratique'],\n 'resultatPermisPratique': !exists(json, 'resultatPermisPratique') ? undefined : json['resultatPermisPratique'],\n 'demandeNouveauCheque': !exists(json, 'demandeNouveauCheque') ? undefined : json['demandeNouveauCheque'],\n 'pasEmailPromotionnel': !exists(json, 'pasEmailPromotionnel') ? undefined : json['pasEmailPromotionnel'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'consentementCollecteDonnees': !exists(json, 'consentementCollecteDonnees') ? undefined : json['consentementCollecteDonnees'],\n 'chequeReceptionForem': !exists(json, 'chequeReceptionForem') ? undefined : json['chequeReceptionForem'],\n };\n}\n\nexport function PassportDriveDtoToJSON(value?: PassportDriveDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpassportDrive': value.idpassportDrive,\n 'idapprenant': value.idapprenant,\n 'permis': value.permis,\n 'idautoecole': value.idautoecole,\n 'autoecole': value.autoecole,\n 'remiseCheque': value.remiseCheque === undefined ? undefined : (value.remiseCheque === null ? null : value.remiseCheque.toISOString()),\n 'inscriptionEffective': value.inscriptionEffective === undefined ? undefined : (value.inscriptionEffective === null ? null : value.inscriptionEffective.toISOString()),\n 'datePermisTheorique': value.datePermisTheorique === undefined ? undefined : (value.datePermisTheorique === null ? null : value.datePermisTheorique.toISOString()),\n 'idresultatPermisTheorique': value.idresultatPermisTheorique,\n 'resultatPermisTheorique': value.resultatPermisTheorique,\n 'datePermisPratique': value.datePermisPratique === undefined ? undefined : (value.datePermisPratique === null ? null : value.datePermisPratique.toISOString()),\n 'idresultatPermisPratique': value.idresultatPermisPratique,\n 'resultatPermisPratique': value.resultatPermisPratique,\n 'demandeNouveauCheque': value.demandeNouveauCheque,\n 'pasEmailPromotionnel': value.pasEmailPromotionnel,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'consentementCollecteDonnees': value.consentementCollecteDonnees,\n 'chequeReceptionForem': value.chequeReceptionForem,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ECategorieStatutApprenant {\n PostFormation = 'PostFormation',\n Entree = 'Entree',\n Sortie = 'Sortie',\n SortieAnnulee = 'SortieAnnulee',\n SortieEnCours = 'SortieEnCours'\n}\n\n\nexport function ECategorieStatutApprenantFromJSON(json: any): ECategorieStatutApprenant {\n return ECategorieStatutApprenantFromJSONTyped(json, false);\n}\n\nexport function ECategorieStatutApprenantFromJSONTyped(json: any, ignoreDiscriminator: boolean): ECategorieStatutApprenant {\n return json as ECategorieStatutApprenant;\n}\n\nexport function ECategorieStatutApprenantToJSON(value?: ECategorieStatutApprenant | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ECategorieStatutApprenant } from './ECategorieStatutApprenant';\nimport {\n ECategorieStatutApprenantFromJSON,\n ECategorieStatutApprenantFromJSONTyped,\n ECategorieStatutApprenantToJSON,\n} from './ECategorieStatutApprenant';\n\n/**\n * \n * @export\n * @interface StatutApprenantGridDto\n */\nexport interface StatutApprenantGridDto {\n /**\n * \n * @type {number}\n * @memberof StatutApprenantGridDto\n */\n idStatutApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantGridDto\n */\n idApprenant?: number;\n /**\n * \n * @type {ECategorieStatutApprenant}\n * @memberof StatutApprenantGridDto\n */\n categorie?: ECategorieStatutApprenant;\n /**\n * \n * @type {string}\n * @memberof StatutApprenantGridDto\n */\n categorieStatutSocial?: string | null;\n /**\n * \n * @type {string}\n * @memberof StatutApprenantGridDto\n */\n statutSocial?: string | null;\n /**\n * \n * @type {string}\n * @memberof StatutApprenantGridDto\n */\n dureeInoccupation?: string | null;\n /**\n * \n * @type {Date}\n * @memberof StatutApprenantGridDto\n */\n dateStatut?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof StatutApprenantGridDto\n */\n sortieAnnulee?: boolean;\n /**\n * \n * @type {string}\n * @memberof StatutApprenantGridDto\n */\n typeSortie?: string | null;\n /**\n * \n * @type {string}\n * @memberof StatutApprenantGridDto\n */\n motifSortie?: string | null;\n /**\n * \n * @type {string}\n * @memberof StatutApprenantGridDto\n */\n creationUser?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof StatutApprenantGridDto\n */\n postSortie?: boolean;\n /**\n * \n * @type {string}\n * @memberof StatutApprenantGridDto\n */\n remarqueRefus?: string | null;\n /**\n * \n * @type {string}\n * @memberof StatutApprenantGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof StatutApprenantGridDto\n */\n creationDate?: Date;\n}\n\n/**\n * Check if a given object implements the StatutApprenantGridDto interface.\n */\nexport function instanceOfStatutApprenantGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function StatutApprenantGridDtoFromJSON(json: any): StatutApprenantGridDto {\n return StatutApprenantGridDtoFromJSONTyped(json, false);\n}\n\nexport function StatutApprenantGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatutApprenantGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idStatutApprenant': !exists(json, 'idStatutApprenant') ? undefined : json['idStatutApprenant'],\n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'categorie': !exists(json, 'categorie') ? undefined : ECategorieStatutApprenantFromJSON(json['categorie']),\n 'categorieStatutSocial': !exists(json, 'categorieStatutSocial') ? undefined : json['categorieStatutSocial'],\n 'statutSocial': !exists(json, 'statutSocial') ? undefined : json['statutSocial'],\n 'dureeInoccupation': !exists(json, 'dureeInoccupation') ? undefined : json['dureeInoccupation'],\n 'dateStatut': !exists(json, 'dateStatut') ? undefined : (json['dateStatut'] === null ? null : new Date(json['dateStatut'])),\n 'sortieAnnulee': !exists(json, 'sortieAnnulee') ? undefined : json['sortieAnnulee'],\n 'typeSortie': !exists(json, 'typeSortie') ? undefined : json['typeSortie'],\n 'motifSortie': !exists(json, 'motifSortie') ? undefined : json['motifSortie'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'postSortie': !exists(json, 'postSortie') ? undefined : json['postSortie'],\n 'remarqueRefus': !exists(json, 'remarqueRefus') ? undefined : json['remarqueRefus'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n };\n}\n\nexport function StatutApprenantGridDtoToJSON(value?: StatutApprenantGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idStatutApprenant': value.idStatutApprenant,\n 'idApprenant': value.idApprenant,\n 'categorie': ECategorieStatutApprenantToJSON(value.categorie),\n 'categorieStatutSocial': value.categorieStatutSocial,\n 'statutSocial': value.statutSocial,\n 'dureeInoccupation': value.dureeInoccupation,\n 'dateStatut': value.dateStatut === undefined ? undefined : (value.dateStatut === null ? null : value.dateStatut.toISOString()),\n 'sortieAnnulee': value.sortieAnnulee,\n 'typeSortie': value.typeSortie,\n 'motifSortie': value.motifSortie,\n 'creationUser': value.creationUser,\n 'postSortie': value.postSortie,\n 'remarqueRefus': value.remarqueRefus,\n 'remarque': value.remarque,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TelephoneDto\n */\nexport interface TelephoneDto {\n /**\n * \n * @type {number}\n * @memberof TelephoneDto\n */\n idtelephone?: number | null;\n /**\n * \n * @type {number}\n * @memberof TelephoneDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof TelephoneDto\n */\n numero?: string | null;\n /**\n * \n * @type {number}\n * @memberof TelephoneDto\n */\n idtypeTelephone?: number;\n /**\n * \n * @type {string}\n * @memberof TelephoneDto\n */\n typeTelephone?: string | null;\n}\n\n/**\n * Check if a given object implements the TelephoneDto interface.\n */\nexport function instanceOfTelephoneDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TelephoneDtoFromJSON(json: any): TelephoneDto {\n return TelephoneDtoFromJSONTyped(json, false);\n}\n\nexport function TelephoneDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TelephoneDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtelephone': !exists(json, 'idtelephone') ? undefined : json['idtelephone'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'idtypeTelephone': !exists(json, 'idtypeTelephone') ? undefined : json['idtypeTelephone'],\n 'typeTelephone': !exists(json, 'typeTelephone') ? undefined : json['typeTelephone'],\n };\n}\n\nexport function TelephoneDtoToJSON(value?: TelephoneDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtelephone': value.idtelephone,\n 'idpersonne': value.idpersonne,\n 'numero': value.numero,\n 'idtypeTelephone': value.idtypeTelephone,\n 'typeTelephone': value.typeTelephone,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ApprenantFichierGridDto } from './ApprenantFichierGridDto';\nimport {\n ApprenantFichierGridDtoFromJSON,\n ApprenantFichierGridDtoFromJSONTyped,\n ApprenantFichierGridDtoToJSON,\n} from './ApprenantFichierGridDto';\nimport type { ApprenantRepresentantHopeGridDto } from './ApprenantRepresentantHopeGridDto';\nimport {\n ApprenantRepresentantHopeGridDtoFromJSON,\n ApprenantRepresentantHopeGridDtoFromJSONTyped,\n ApprenantRepresentantHopeGridDtoToJSON,\n} from './ApprenantRepresentantHopeGridDto';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { ParcoursFormationGridDto } from './ParcoursFormationGridDto';\nimport {\n ParcoursFormationGridDtoFromJSON,\n ParcoursFormationGridDtoFromJSONTyped,\n ParcoursFormationGridDtoToJSON,\n} from './ParcoursFormationGridDto';\nimport type { PassportDriveDto } from './PassportDriveDto';\nimport {\n PassportDriveDtoFromJSON,\n PassportDriveDtoFromJSONTyped,\n PassportDriveDtoToJSON,\n} from './PassportDriveDto';\nimport type { StatutApprenantGridDto } from './StatutApprenantGridDto';\nimport {\n StatutApprenantGridDtoFromJSON,\n StatutApprenantGridDtoFromJSONTyped,\n StatutApprenantGridDtoToJSON,\n} from './StatutApprenantGridDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ApprenantDoublonEditDto\n */\nexport interface ApprenantDoublonEditDto {\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n nbInscriptions?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n nbContrats?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n nbSuivis?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n nbAbsences?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n nbDocuments?: number;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonEditDto\n */\n azureEmail?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantDoublonEditDto\n */\n azureCreatedOn?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n bankAccountBeneficiaryId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonEditDto\n */\n bankAccountBeneficiaryName?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantDoublonEditDto\n */\n permisB?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantDoublonEditDto\n */\n permisAm?: boolean;\n /**\n * \n * @type {Array}\n * @memberof ApprenantDoublonEditDto\n */\n remarques?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantDoublonEditDto\n */\n remarquesService?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantDoublonEditDto\n */\n internes?: Array | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ApprenantDoublonEditDto\n */\n telephoneApprenant?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ApprenantDoublonEditDto\n */\n gsmApprenant?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ApprenantDoublonEditDto\n */\n emailApprenant?: EmailDto;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n idpri?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonEditDto\n */\n pri?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n idari?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonEditDto\n */\n ari?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n idcop?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonEditDto\n */\n cop?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n idpricontratEnCours?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonEditDto\n */\n pricontratEnCours?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantDoublonEditDto\n */\n idaricontratEnCours?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantDoublonEditDto\n */\n aricontratEnCours?: string | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantDoublonEditDto\n */\n representants?: Array | null;\n /**\n * \n * @type {ParcoursFormationGridDto}\n * @memberof ApprenantDoublonEditDto\n */\n currentParcoursFormation?: ParcoursFormationGridDto;\n /**\n * \n * @type {StatutApprenantGridDto}\n * @memberof ApprenantDoublonEditDto\n */\n currentStatutApprenant?: StatutApprenantGridDto;\n /**\n * \n * @type {PassportDriveDto}\n * @memberof ApprenantDoublonEditDto\n */\n passportDrive?: PassportDriveDto;\n /**\n * \n * @type {Array}\n * @memberof ApprenantDoublonEditDto\n */\n documentsReglementaires?: Array | null;\n}\n\n/**\n * Check if a given object implements the ApprenantDoublonEditDto interface.\n */\nexport function instanceOfApprenantDoublonEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantDoublonEditDtoFromJSON(json: any): ApprenantDoublonEditDto {\n return ApprenantDoublonEditDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantDoublonEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantDoublonEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'nbInscriptions': !exists(json, 'nbInscriptions') ? undefined : json['nbInscriptions'],\n 'nbContrats': !exists(json, 'nbContrats') ? undefined : json['nbContrats'],\n 'nbSuivis': !exists(json, 'nbSuivis') ? undefined : json['nbSuivis'],\n 'nbAbsences': !exists(json, 'nbAbsences') ? undefined : json['nbAbsences'],\n 'nbDocuments': !exists(json, 'nbDocuments') ? undefined : json['nbDocuments'],\n 'azureEmail': !exists(json, 'azureEmail') ? undefined : json['azureEmail'],\n 'azureCreatedOn': !exists(json, 'azureCreatedOn') ? undefined : (json['azureCreatedOn'] === null ? null : new Date(json['azureCreatedOn'])),\n 'bankAccountBeneficiaryId': !exists(json, 'bankAccountBeneficiaryId') ? undefined : json['bankAccountBeneficiaryId'],\n 'bankAccountBeneficiaryName': !exists(json, 'bankAccountBeneficiaryName') ? undefined : json['bankAccountBeneficiaryName'],\n 'permisB': !exists(json, 'permisB') ? undefined : json['permisB'],\n 'permisAm': !exists(json, 'permisAm') ? undefined : json['permisAm'],\n 'remarques': !exists(json, 'remarques') ? undefined : json['remarques'],\n 'remarquesService': !exists(json, 'remarquesService') ? undefined : json['remarquesService'],\n 'internes': !exists(json, 'internes') ? undefined : json['internes'],\n 'telephoneApprenant': !exists(json, 'telephoneApprenant') ? undefined : TelephoneDtoFromJSON(json['telephoneApprenant']),\n 'gsmApprenant': !exists(json, 'gsmApprenant') ? undefined : TelephoneDtoFromJSON(json['gsmApprenant']),\n 'emailApprenant': !exists(json, 'emailApprenant') ? undefined : EmailDtoFromJSON(json['emailApprenant']),\n 'idpri': !exists(json, 'idpri') ? undefined : json['idpri'],\n 'pri': !exists(json, 'pri') ? undefined : json['pri'],\n 'idari': !exists(json, 'idari') ? undefined : json['idari'],\n 'ari': !exists(json, 'ari') ? undefined : json['ari'],\n 'idcop': !exists(json, 'idcop') ? undefined : json['idcop'],\n 'cop': !exists(json, 'cop') ? undefined : json['cop'],\n 'idpricontratEnCours': !exists(json, 'idpricontratEnCours') ? undefined : json['idpricontratEnCours'],\n 'pricontratEnCours': !exists(json, 'pricontratEnCours') ? undefined : json['pricontratEnCours'],\n 'idaricontratEnCours': !exists(json, 'idaricontratEnCours') ? undefined : json['idaricontratEnCours'],\n 'aricontratEnCours': !exists(json, 'aricontratEnCours') ? undefined : json['aricontratEnCours'],\n 'representants': !exists(json, 'representants') ? undefined : (json['representants'] === null ? null : (json['representants'] as Array).map(ApprenantRepresentantHopeGridDtoFromJSON)),\n 'currentParcoursFormation': !exists(json, 'currentParcoursFormation') ? undefined : ParcoursFormationGridDtoFromJSON(json['currentParcoursFormation']),\n 'currentStatutApprenant': !exists(json, 'currentStatutApprenant') ? undefined : StatutApprenantGridDtoFromJSON(json['currentStatutApprenant']),\n 'passportDrive': !exists(json, 'passportDrive') ? undefined : PassportDriveDtoFromJSON(json['passportDrive']),\n 'documentsReglementaires': !exists(json, 'documentsReglementaires') ? undefined : (json['documentsReglementaires'] === null ? null : (json['documentsReglementaires'] as Array).map(ApprenantFichierGridDtoFromJSON)),\n };\n}\n\nexport function ApprenantDoublonEditDtoToJSON(value?: ApprenantDoublonEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'nbInscriptions': value.nbInscriptions,\n 'nbContrats': value.nbContrats,\n 'nbSuivis': value.nbSuivis,\n 'nbAbsences': value.nbAbsences,\n 'nbDocuments': value.nbDocuments,\n 'azureEmail': value.azureEmail,\n 'azureCreatedOn': value.azureCreatedOn === undefined ? undefined : (value.azureCreatedOn === null ? null : value.azureCreatedOn.toISOString()),\n 'bankAccountBeneficiaryId': value.bankAccountBeneficiaryId,\n 'bankAccountBeneficiaryName': value.bankAccountBeneficiaryName,\n 'permisB': value.permisB,\n 'permisAm': value.permisAm,\n 'remarques': value.remarques,\n 'remarquesService': value.remarquesService,\n 'internes': value.internes,\n 'telephoneApprenant': TelephoneDtoToJSON(value.telephoneApprenant),\n 'gsmApprenant': TelephoneDtoToJSON(value.gsmApprenant),\n 'emailApprenant': EmailDtoToJSON(value.emailApprenant),\n 'idpri': value.idpri,\n 'pri': value.pri,\n 'idari': value.idari,\n 'ari': value.ari,\n 'idcop': value.idcop,\n 'cop': value.cop,\n 'idpricontratEnCours': value.idpricontratEnCours,\n 'pricontratEnCours': value.pricontratEnCours,\n 'idaricontratEnCours': value.idaricontratEnCours,\n 'aricontratEnCours': value.aricontratEnCours,\n 'representants': value.representants === undefined ? undefined : (value.representants === null ? null : (value.representants as Array).map(ApprenantRepresentantHopeGridDtoToJSON)),\n 'currentParcoursFormation': ParcoursFormationGridDtoToJSON(value.currentParcoursFormation),\n 'currentStatutApprenant': StatutApprenantGridDtoToJSON(value.currentStatutApprenant),\n 'passportDrive': PassportDriveDtoToJSON(value.passportDrive),\n 'documentsReglementaires': value.documentsReglementaires === undefined ? undefined : (value.documentsReglementaires === null ? null : (value.documentsReglementaires as Array).map(ApprenantFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ApprenantFichierDto\n */\nexport interface ApprenantFichierDto {\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierDto\n */\n idapprenantFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierDto\n */\n idtypeApprenantFichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierDto\n */\n fileName?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierDto\n */\n nom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierDto\n */\n description?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the ApprenantFichierDto interface.\n */\nexport function instanceOfApprenantFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantFichierDtoFromJSON(json: any): ApprenantFichierDto {\n return ApprenantFichierDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenantFichier': !exists(json, 'idapprenantFichier') ? undefined : json['idapprenantFichier'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeApprenantFichier': !exists(json, 'idtypeApprenantFichier') ? undefined : json['idtypeApprenantFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function ApprenantFichierDtoToJSON(value?: ApprenantFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenantFichier': value.idapprenantFichier,\n 'idapprenant': value.idapprenant,\n 'idfichier': value.idfichier,\n 'idtypeApprenantFichier': value.idtypeApprenantFichier,\n 'fileName': value.fileName,\n 'anneeScolaire': value.anneeScolaire,\n 'idinscription': value.idinscription,\n 'nom': value.nom,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'description': value.description,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ApprenantFichierGridDto } from './ApprenantFichierGridDto';\nimport {\n ApprenantFichierGridDtoFromJSON,\n ApprenantFichierGridDtoFromJSONTyped,\n ApprenantFichierGridDtoToJSON,\n} from './ApprenantFichierGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ApprenantFichierGridDtoPaginatedResults\n */\nexport interface ApprenantFichierGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ApprenantFichierGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantFichierGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ApprenantFichierGridDtoPaginatedResults interface.\n */\nexport function instanceOfApprenantFichierGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantFichierGridDtoPaginatedResultsFromJSON(json: any): ApprenantFichierGridDtoPaginatedResults {\n return ApprenantFichierGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ApprenantFichierGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantFichierGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ApprenantFichierGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ApprenantFichierGridDtoPaginatedResultsToJSON(value?: ApprenantFichierGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ApprenantFichierGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EDateSearchType {\n Between = 'Between',\n Equals = 'Equals',\n NotEquals = 'NotEquals',\n GreaterThan = 'GreaterThan',\n LessThan = 'LessThan'\n}\n\n\nexport function EDateSearchTypeFromJSON(json: any): EDateSearchType {\n return EDateSearchTypeFromJSONTyped(json, false);\n}\n\nexport function EDateSearchTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): EDateSearchType {\n return json as EDateSearchType;\n}\n\nexport function EDateSearchTypeToJSON(value?: EDateSearchType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EDateSearchType } from './EDateSearchType';\nimport {\n EDateSearchTypeFromJSON,\n EDateSearchTypeFromJSONTyped,\n EDateSearchTypeToJSON,\n} from './EDateSearchType';\n\n/**\n * \n * @export\n * @interface EDateSearchTypeDateTimeNullableCombinableCriteria\n */\nexport interface EDateSearchTypeDateTimeNullableCombinableCriteria {\n /**\n * \n * @type {EDateSearchType}\n * @memberof EDateSearchTypeDateTimeNullableCombinableCriteria\n */\n searchMode?: EDateSearchType;\n /**\n * \n * @type {Date}\n * @memberof EDateSearchTypeDateTimeNullableCombinableCriteria\n */\n value?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof EDateSearchTypeDateTimeNullableCombinableCriteria\n */\n secondaryValue?: Date | null;\n}\n\n/**\n * Check if a given object implements the EDateSearchTypeDateTimeNullableCombinableCriteria interface.\n */\nexport function instanceOfEDateSearchTypeDateTimeNullableCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EDateSearchTypeDateTimeNullableCombinableCriteriaFromJSON(json: any): EDateSearchTypeDateTimeNullableCombinableCriteria {\n return EDateSearchTypeDateTimeNullableCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EDateSearchTypeDateTimeNullableCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EDateSearchTypeDateTimeNullableCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EDateSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : (json['value'] === null ? null : new Date(json['value'])),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : (json['secondaryValue'] === null ? null : new Date(json['secondaryValue'])),\n };\n}\n\nexport function EDateSearchTypeDateTimeNullableCombinableCriteriaToJSON(value?: EDateSearchTypeDateTimeNullableCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EDateSearchTypeToJSON(value.searchMode),\n 'value': value.value === undefined ? undefined : (value.value === null ? null : value.value.toISOString()),\n 'secondaryValue': value.secondaryValue === undefined ? undefined : (value.secondaryValue === null ? null : value.secondaryValue.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EDateSearchType } from './EDateSearchType';\nimport {\n EDateSearchTypeFromJSON,\n EDateSearchTypeFromJSONTyped,\n EDateSearchTypeToJSON,\n} from './EDateSearchType';\nimport type { EDateSearchTypeDateTimeNullableCombinableCriteria } from './EDateSearchTypeDateTimeNullableCombinableCriteria';\nimport {\n EDateSearchTypeDateTimeNullableCombinableCriteriaFromJSON,\n EDateSearchTypeDateTimeNullableCombinableCriteriaFromJSONTyped,\n EDateSearchTypeDateTimeNullableCombinableCriteriaToJSON,\n} from './EDateSearchTypeDateTimeNullableCombinableCriteria';\n\n/**\n * \n * @export\n * @interface DateSearch\n */\nexport interface DateSearch {\n /**\n * \n * @type {Array}\n * @memberof DateSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EDateSearchType}\n * @memberof DateSearch\n */\n searchMode?: EDateSearchType;\n /**\n * \n * @type {Date}\n * @memberof DateSearch\n * @deprecated\n */\n value?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof DateSearch\n * @deprecated\n */\n secondaryValue?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof DateSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof DateSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the DateSearch interface.\n */\nexport function instanceOfDateSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DateSearchFromJSON(json: any): DateSearch {\n return DateSearchFromJSONTyped(json, false);\n}\n\nexport function DateSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DateSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EDateSearchTypeDateTimeNullableCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EDateSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : (json['value'] === null ? null : new Date(json['value'])),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : (json['secondaryValue'] === null ? null : new Date(json['secondaryValue'])),\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function DateSearchToJSON(value?: DateSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EDateSearchTypeDateTimeNullableCombinableCriteriaToJSON)),\n 'searchMode': EDateSearchTypeToJSON(value.searchMode),\n 'value': value.value === undefined ? undefined : (value.value === null ? null : value.value.toISOString()),\n 'secondaryValue': value.secondaryValue === undefined ? undefined : (value.secondaryValue === null ? null : value.secondaryValue.toISOString()),\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ETypeApprenantFichier {\n CARTE_IDENTITE = 'CARTE_IDENTITE',\n FICHE_FSE = 'FICHE_FSE',\n DOSSIER_SCOLAIRE = 'DOSSIER_SCOLAIRE',\n DOSSIER_SCOLAIRE_ACCUSE_FIC = 'DOSSIER_SCOLAIRE_ACCUSE_FIC',\n ROI_CARNET_PEDA = 'ROI_CARNET_PEDA',\n CHARTE_ENGAGEMENT = 'CHARTE_ENGAGEMENT',\n AVIS_RESULTATS = 'AVIS_RESULTATS',\n AVIS_RESULTATS_1ERE_SESSION = 'AVIS_RESULTATS_1ERE_SESSION',\n AVIS_RESULTATS_2EME_SESSION = 'AVIS_RESULTATS_2EME_SESSION',\n PF_ENTREPRISE = 'PF_ENTREPRISE',\n CERTIFICAT_MEDICAL = 'CERTIFICAT_MEDICAL',\n JUSTIFICATIF = 'JUSTIFICATIF',\n ATTESTATION_REUSSITE = 'ATTESTATION_REUSSITE',\n PPD_AUTORISATION_PARENTALE = 'PPD_AUTORISATION_PARENTALE',\n PPD_CONSENTEMENT_COLLECTE = 'PPD_CONSENTEMENT_COLLECTE',\n AUTRES = 'AUTRES'\n}\n\n\nexport function ETypeApprenantFichierFromJSON(json: any): ETypeApprenantFichier {\n return ETypeApprenantFichierFromJSONTyped(json, false);\n}\n\nexport function ETypeApprenantFichierFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETypeApprenantFichier {\n return json as ETypeApprenantFichier;\n}\n\nexport function ETypeApprenantFichierToJSON(value?: ETypeApprenantFichier | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EListSearchType {\n Equals = 'Equals',\n NotEquals = 'NotEquals',\n NestedDefault = 'NestedDefault'\n}\n\n\nexport function EListSearchTypeFromJSON(json: any): EListSearchType {\n return EListSearchTypeFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchType {\n return json as EListSearchType;\n}\n\nexport function EListSearchTypeToJSON(value?: EListSearchType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\n\n/**\n * \n * @export\n * @interface EListSearchTypeInt32NullableCombinableCriteria\n */\nexport interface EListSearchTypeInt32NullableCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeInt32NullableCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {number}\n * @memberof EListSearchTypeInt32NullableCombinableCriteria\n */\n value?: number | null;\n /**\n * \n * @type {number}\n * @memberof EListSearchTypeInt32NullableCombinableCriteria\n */\n secondaryValue?: number | null;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeInt32NullableCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeInt32NullableCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeInt32NullableCombinableCriteriaFromJSON(json: any): EListSearchTypeInt32NullableCombinableCriteria {\n return EListSearchTypeInt32NullableCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeInt32NullableCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeInt32NullableCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n };\n}\n\nexport function EListSearchTypeInt32NullableCombinableCriteriaToJSON(value?: EListSearchTypeInt32NullableCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeInt32NullableCombinableCriteria } from './EListSearchTypeInt32NullableCombinableCriteria';\nimport {\n EListSearchTypeInt32NullableCombinableCriteriaFromJSON,\n EListSearchTypeInt32NullableCombinableCriteriaFromJSONTyped,\n EListSearchTypeInt32NullableCombinableCriteriaToJSON,\n} from './EListSearchTypeInt32NullableCombinableCriteria';\n\n/**\n * \n * @export\n * @interface Int32NullableListSearch\n */\nexport interface Int32NullableListSearch {\n /**\n * \n * @type {Array}\n * @memberof Int32NullableListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof Int32NullableListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {number}\n * @memberof Int32NullableListSearch\n * @deprecated\n */\n value?: number | null;\n /**\n * \n * @type {number}\n * @memberof Int32NullableListSearch\n * @deprecated\n */\n secondaryValue?: number | null;\n /**\n * \n * @type {Array}\n * @memberof Int32NullableListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof Int32NullableListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the Int32NullableListSearch interface.\n */\nexport function instanceOfInt32NullableListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function Int32NullableListSearchFromJSON(json: any): Int32NullableListSearch {\n return Int32NullableListSearchFromJSONTyped(json, false);\n}\n\nexport function Int32NullableListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): Int32NullableListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeInt32NullableCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function Int32NullableListSearchToJSON(value?: Int32NullableListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeInt32NullableCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ETextSearchType } from './ETextSearchType';\nimport {\n ETextSearchTypeFromJSON,\n ETextSearchTypeFromJSONTyped,\n ETextSearchTypeToJSON,\n} from './ETextSearchType';\nimport type { ETextSearchTypeStringCombinableCriteria } from './ETextSearchTypeStringCombinableCriteria';\nimport {\n ETextSearchTypeStringCombinableCriteriaFromJSON,\n ETextSearchTypeStringCombinableCriteriaFromJSONTyped,\n ETextSearchTypeStringCombinableCriteriaToJSON,\n} from './ETextSearchTypeStringCombinableCriteria';\n\n/**\n * \n * @export\n * @interface UnaccentTextSearch\n */\nexport interface UnaccentTextSearch {\n /**\n * \n * @type {Array}\n * @memberof UnaccentTextSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {ETextSearchType}\n * @memberof UnaccentTextSearch\n */\n searchMode?: ETextSearchType;\n /**\n * \n * @type {string}\n * @memberof UnaccentTextSearch\n * @deprecated\n */\n value?: string | null;\n /**\n * \n * @type {string}\n * @memberof UnaccentTextSearch\n * @deprecated\n */\n secondaryValue?: string | null;\n /**\n * \n * @type {Array}\n * @memberof UnaccentTextSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof UnaccentTextSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the UnaccentTextSearch interface.\n */\nexport function instanceOfUnaccentTextSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UnaccentTextSearchFromJSON(json: any): UnaccentTextSearch {\n return UnaccentTextSearchFromJSONTyped(json, false);\n}\n\nexport function UnaccentTextSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): UnaccentTextSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(ETextSearchTypeStringCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : ETextSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function UnaccentTextSearchToJSON(value?: UnaccentTextSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(ETextSearchTypeStringCombinableCriteriaToJSON)),\n 'searchMode': ETextSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { ETypeApprenantFichier } from './ETypeApprenantFichier';\nimport {\n ETypeApprenantFichierFromJSON,\n ETypeApprenantFichierFromJSONTyped,\n ETypeApprenantFichierToJSON,\n} from './ETypeApprenantFichier';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface ApprenantFichierSearchDto\n */\nexport interface ApprenantFichierSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ApprenantFichierSearchDto\n */\n fileName?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ApprenantFichierSearchDto\n */\n uploadUser?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof ApprenantFichierSearchDto\n */\n uploadDate?: DateSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof ApprenantFichierSearchDto\n */\n idtypeApprenantFichier?: Int32NullableListSearch;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierSearchDto\n */\n idapprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof ApprenantFichierSearchDto\n */\n excludedTypes?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantFichierSearchDto\n */\n hideDeleted?: boolean;\n /**\n * \n * @type {Array}\n * @memberof ApprenantFichierSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantFichierSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ApprenantFichierSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantFichierSearchDto interface.\n */\nexport function instanceOfApprenantFichierSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantFichierSearchDtoFromJSON(json: any): ApprenantFichierSearchDto {\n return ApprenantFichierSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantFichierSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantFichierSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'fileName': !exists(json, 'fileName') ? undefined : UnaccentTextSearchFromJSON(json['fileName']),\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : UnaccentTextSearchFromJSON(json['uploadUser']),\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : DateSearchFromJSON(json['uploadDate']),\n 'idtypeApprenantFichier': !exists(json, 'idtypeApprenantFichier') ? undefined : Int32NullableListSearchFromJSON(json['idtypeApprenantFichier']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'excludedTypes': !exists(json, 'excludedTypes') ? undefined : (json['excludedTypes'] === null ? null : (json['excludedTypes'] as Array).map(ETypeApprenantFichierFromJSON)),\n 'hideDeleted': !exists(json, 'hideDeleted') ? undefined : json['hideDeleted'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ApprenantFichierSearchDtoToJSON(value?: ApprenantFichierSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'fileName': UnaccentTextSearchToJSON(value.fileName),\n 'uploadUser': UnaccentTextSearchToJSON(value.uploadUser),\n 'uploadDate': DateSearchToJSON(value.uploadDate),\n 'idtypeApprenantFichier': Int32NullableListSearchToJSON(value.idtypeApprenantFichier),\n 'idapprenant': value.idapprenant,\n 'excludedTypes': value.excludedTypes === undefined ? undefined : (value.excludedTypes === null ? null : (value.excludedTypes as Array).map(ETypeApprenantFichierToJSON)),\n 'hideDeleted': value.hideDeleted,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface ApprenantFichierUploadDto\n */\nexport interface ApprenantFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof ApprenantFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierUploadDto\n */\n idapprenantFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierUploadDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierUploadDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierUploadDto\n */\n idtypeApprenantFichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierUploadDto\n */\n fileName?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierUploadDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantFichierUploadDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierUploadDto\n */\n nom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierUploadDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierUploadDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantFichierUploadDto\n */\n description?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantFichierUploadDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the ApprenantFichierUploadDto interface.\n */\nexport function instanceOfApprenantFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantFichierUploadDtoFromJSON(json: any): ApprenantFichierUploadDto {\n return ApprenantFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idapprenantFichier': !exists(json, 'idapprenantFichier') ? undefined : json['idapprenantFichier'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeApprenantFichier': !exists(json, 'idtypeApprenantFichier') ? undefined : json['idtypeApprenantFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function ApprenantFichierUploadDtoToJSON(value?: ApprenantFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idapprenantFichier': value.idapprenantFichier,\n 'idapprenant': value.idapprenant,\n 'idfichier': value.idfichier,\n 'idtypeApprenantFichier': value.idtypeApprenantFichier,\n 'fileName': value.fileName,\n 'anneeScolaire': value.anneeScolaire,\n 'idinscription': value.idinscription,\n 'nom': value.nom,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'description': value.description,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ApprenantHistorySearch\n */\nexport interface ApprenantHistorySearch {\n /**\n * \n * @type {number}\n * @memberof ApprenantHistorySearch\n */\n idapprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof ApprenantHistorySearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantHistorySearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantHistorySearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantHistorySearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ApprenantHistorySearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantHistorySearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantHistorySearch interface.\n */\nexport function instanceOfApprenantHistorySearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantHistorySearchFromJSON(json: any): ApprenantHistorySearch {\n return ApprenantHistorySearchFromJSONTyped(json, false);\n}\n\nexport function ApprenantHistorySearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantHistorySearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ApprenantHistorySearchToJSON(value?: ApprenantHistorySearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EHopeApprenantSearchType {\n CURRENT = 'CURRENT',\n PAST = 'PAST',\n BOTH = 'BOTH'\n}\n\n\nexport function EHopeApprenantSearchTypeFromJSON(json: any): EHopeApprenantSearchType {\n return EHopeApprenantSearchTypeFromJSONTyped(json, false);\n}\n\nexport function EHopeApprenantSearchTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): EHopeApprenantSearchType {\n return json as EHopeApprenantSearchType;\n}\n\nexport function EHopeApprenantSearchTypeToJSON(value?: EHopeApprenantSearchType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EHopeApprenantSearchType } from './EHopeApprenantSearchType';\nimport {\n EHopeApprenantSearchTypeFromJSON,\n EHopeApprenantSearchTypeFromJSONTyped,\n EHopeApprenantSearchTypeToJSON,\n} from './EHopeApprenantSearchType';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\n\n/**\n * \n * @export\n * @interface EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria\n */\nexport interface EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {EHopeApprenantSearchType}\n * @memberof EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria\n */\n value?: EHopeApprenantSearchType;\n /**\n * \n * @type {EHopeApprenantSearchType}\n * @memberof EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria\n */\n secondaryValue?: EHopeApprenantSearchType;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeEHopeApprenantSearchTypeCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeEHopeApprenantSearchTypeCombinableCriteriaFromJSON(json: any): EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria {\n return EListSearchTypeEHopeApprenantSearchTypeCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeEHopeApprenantSearchTypeCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : EHopeApprenantSearchTypeFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : EHopeApprenantSearchTypeFromJSON(json['secondaryValue']),\n };\n}\n\nexport function EListSearchTypeEHopeApprenantSearchTypeCombinableCriteriaToJSON(value?: EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': EHopeApprenantSearchTypeToJSON(value.value),\n 'secondaryValue': EHopeApprenantSearchTypeToJSON(value.secondaryValue),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EHopeApprenantSearchType } from './EHopeApprenantSearchType';\nimport {\n EHopeApprenantSearchTypeFromJSON,\n EHopeApprenantSearchTypeFromJSONTyped,\n EHopeApprenantSearchTypeToJSON,\n} from './EHopeApprenantSearchType';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria } from './EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria';\nimport {\n EListSearchTypeEHopeApprenantSearchTypeCombinableCriteriaFromJSON,\n EListSearchTypeEHopeApprenantSearchTypeCombinableCriteriaFromJSONTyped,\n EListSearchTypeEHopeApprenantSearchTypeCombinableCriteriaToJSON,\n} from './EListSearchTypeEHopeApprenantSearchTypeCombinableCriteria';\n\n/**\n * \n * @export\n * @interface EHopeApprenantSearchTypeListSearch\n */\nexport interface EHopeApprenantSearchTypeListSearch {\n /**\n * \n * @type {Array}\n * @memberof EHopeApprenantSearchTypeListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof EHopeApprenantSearchTypeListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {EHopeApprenantSearchType}\n * @memberof EHopeApprenantSearchTypeListSearch\n */\n value?: EHopeApprenantSearchType;\n /**\n * \n * @type {EHopeApprenantSearchType}\n * @memberof EHopeApprenantSearchTypeListSearch\n */\n secondaryValue?: EHopeApprenantSearchType;\n /**\n * \n * @type {Array}\n * @memberof EHopeApprenantSearchTypeListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof EHopeApprenantSearchTypeListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the EHopeApprenantSearchTypeListSearch interface.\n */\nexport function instanceOfEHopeApprenantSearchTypeListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EHopeApprenantSearchTypeListSearchFromJSON(json: any): EHopeApprenantSearchTypeListSearch {\n return EHopeApprenantSearchTypeListSearchFromJSONTyped(json, false);\n}\n\nexport function EHopeApprenantSearchTypeListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): EHopeApprenantSearchTypeListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeEHopeApprenantSearchTypeCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : EHopeApprenantSearchTypeFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : EHopeApprenantSearchTypeFromJSON(json['secondaryValue']),\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function EHopeApprenantSearchTypeListSearchToJSON(value?: EHopeApprenantSearchTypeListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeEHopeApprenantSearchTypeCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': EHopeApprenantSearchTypeToJSON(value.value),\n 'secondaryValue': EHopeApprenantSearchTypeToJSON(value.secondaryValue),\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ESearchStatutInscription {\n None = 'None',\n Waiting = 'Waiting',\n Current = 'Current'\n}\n\n\nexport function ESearchStatutInscriptionFromJSON(json: any): ESearchStatutInscription {\n return ESearchStatutInscriptionFromJSONTyped(json, false);\n}\n\nexport function ESearchStatutInscriptionFromJSONTyped(json: any, ignoreDiscriminator: boolean): ESearchStatutInscription {\n return json as ESearchStatutInscription;\n}\n\nexport function ESearchStatutInscriptionToJSON(value?: ESearchStatutInscription | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { ESearchStatutInscription } from './ESearchStatutInscription';\nimport {\n ESearchStatutInscriptionFromJSON,\n ESearchStatutInscriptionFromJSONTyped,\n ESearchStatutInscriptionToJSON,\n} from './ESearchStatutInscription';\n\n/**\n * \n * @export\n * @interface EListSearchTypeESearchStatutInscriptionCombinableCriteria\n */\nexport interface EListSearchTypeESearchStatutInscriptionCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeESearchStatutInscriptionCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {ESearchStatutInscription}\n * @memberof EListSearchTypeESearchStatutInscriptionCombinableCriteria\n */\n value?: ESearchStatutInscription;\n /**\n * \n * @type {ESearchStatutInscription}\n * @memberof EListSearchTypeESearchStatutInscriptionCombinableCriteria\n */\n secondaryValue?: ESearchStatutInscription;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeESearchStatutInscriptionCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeESearchStatutInscriptionCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeESearchStatutInscriptionCombinableCriteriaFromJSON(json: any): EListSearchTypeESearchStatutInscriptionCombinableCriteria {\n return EListSearchTypeESearchStatutInscriptionCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeESearchStatutInscriptionCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeESearchStatutInscriptionCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : ESearchStatutInscriptionFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : ESearchStatutInscriptionFromJSON(json['secondaryValue']),\n };\n}\n\nexport function EListSearchTypeESearchStatutInscriptionCombinableCriteriaToJSON(value?: EListSearchTypeESearchStatutInscriptionCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': ESearchStatutInscriptionToJSON(value.value),\n 'secondaryValue': ESearchStatutInscriptionToJSON(value.secondaryValue),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeESearchStatutInscriptionCombinableCriteria } from './EListSearchTypeESearchStatutInscriptionCombinableCriteria';\nimport {\n EListSearchTypeESearchStatutInscriptionCombinableCriteriaFromJSON,\n EListSearchTypeESearchStatutInscriptionCombinableCriteriaFromJSONTyped,\n EListSearchTypeESearchStatutInscriptionCombinableCriteriaToJSON,\n} from './EListSearchTypeESearchStatutInscriptionCombinableCriteria';\nimport type { ESearchStatutInscription } from './ESearchStatutInscription';\nimport {\n ESearchStatutInscriptionFromJSON,\n ESearchStatutInscriptionFromJSONTyped,\n ESearchStatutInscriptionToJSON,\n} from './ESearchStatutInscription';\n\n/**\n * \n * @export\n * @interface ESearchStatutInscriptionListSearch\n */\nexport interface ESearchStatutInscriptionListSearch {\n /**\n * \n * @type {Array}\n * @memberof ESearchStatutInscriptionListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof ESearchStatutInscriptionListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {ESearchStatutInscription}\n * @memberof ESearchStatutInscriptionListSearch\n */\n value?: ESearchStatutInscription;\n /**\n * \n * @type {ESearchStatutInscription}\n * @memberof ESearchStatutInscriptionListSearch\n */\n secondaryValue?: ESearchStatutInscription;\n /**\n * \n * @type {Array}\n * @memberof ESearchStatutInscriptionListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof ESearchStatutInscriptionListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the ESearchStatutInscriptionListSearch interface.\n */\nexport function instanceOfESearchStatutInscriptionListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ESearchStatutInscriptionListSearchFromJSON(json: any): ESearchStatutInscriptionListSearch {\n return ESearchStatutInscriptionListSearchFromJSONTyped(json, false);\n}\n\nexport function ESearchStatutInscriptionListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ESearchStatutInscriptionListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeESearchStatutInscriptionCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : ESearchStatutInscriptionFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : ESearchStatutInscriptionFromJSON(json['secondaryValue']),\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function ESearchStatutInscriptionListSearchToJSON(value?: ESearchStatutInscriptionListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeESearchStatutInscriptionCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': ESearchStatutInscriptionToJSON(value.value),\n 'secondaryValue': ESearchStatutInscriptionToJSON(value.secondaryValue),\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EFilterSearchType {\n Contains = 'Contains',\n NotContains = 'NotContains'\n}\n\n\nexport function EFilterSearchTypeFromJSON(json: any): EFilterSearchType {\n return EFilterSearchTypeFromJSONTyped(json, false);\n}\n\nexport function EFilterSearchTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): EFilterSearchType {\n return json as EFilterSearchType;\n}\n\nexport function EFilterSearchTypeToJSON(value?: EFilterSearchType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EFilterSearchType } from './EFilterSearchType';\nimport {\n EFilterSearchTypeFromJSON,\n EFilterSearchTypeFromJSONTyped,\n EFilterSearchTypeToJSON,\n} from './EFilterSearchType';\n\n/**\n * \n * @export\n * @interface EFilterSearchTypeStringCombinableCriteria\n */\nexport interface EFilterSearchTypeStringCombinableCriteria {\n /**\n * \n * @type {EFilterSearchType}\n * @memberof EFilterSearchTypeStringCombinableCriteria\n */\n searchMode?: EFilterSearchType;\n /**\n * \n * @type {string}\n * @memberof EFilterSearchTypeStringCombinableCriteria\n */\n value?: string | null;\n /**\n * \n * @type {string}\n * @memberof EFilterSearchTypeStringCombinableCriteria\n */\n secondaryValue?: string | null;\n}\n\n/**\n * Check if a given object implements the EFilterSearchTypeStringCombinableCriteria interface.\n */\nexport function instanceOfEFilterSearchTypeStringCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EFilterSearchTypeStringCombinableCriteriaFromJSON(json: any): EFilterSearchTypeStringCombinableCriteria {\n return EFilterSearchTypeStringCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EFilterSearchTypeStringCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EFilterSearchTypeStringCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EFilterSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n };\n}\n\nexport function EFilterSearchTypeStringCombinableCriteriaToJSON(value?: EFilterSearchTypeStringCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EFilterSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EFilterSearchType } from './EFilterSearchType';\nimport {\n EFilterSearchTypeFromJSON,\n EFilterSearchTypeFromJSONTyped,\n EFilterSearchTypeToJSON,\n} from './EFilterSearchType';\nimport type { EFilterSearchTypeStringCombinableCriteria } from './EFilterSearchTypeStringCombinableCriteria';\nimport {\n EFilterSearchTypeStringCombinableCriteriaFromJSON,\n EFilterSearchTypeStringCombinableCriteriaFromJSONTyped,\n EFilterSearchTypeStringCombinableCriteriaToJSON,\n} from './EFilterSearchTypeStringCombinableCriteria';\n\n/**\n * \n * @export\n * @interface FilterTextSearch\n */\nexport interface FilterTextSearch {\n /**\n * \n * @type {Array}\n * @memberof FilterTextSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EFilterSearchType}\n * @memberof FilterTextSearch\n */\n searchMode?: EFilterSearchType;\n /**\n * \n * @type {string}\n * @memberof FilterTextSearch\n * @deprecated\n */\n value?: string | null;\n /**\n * \n * @type {string}\n * @memberof FilterTextSearch\n * @deprecated\n */\n secondaryValue?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FilterTextSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof FilterTextSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the FilterTextSearch interface.\n */\nexport function instanceOfFilterTextSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FilterTextSearchFromJSON(json: any): FilterTextSearch {\n return FilterTextSearchFromJSONTyped(json, false);\n}\n\nexport function FilterTextSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FilterTextSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EFilterSearchTypeStringCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EFilterSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function FilterTextSearchToJSON(value?: FilterTextSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EFilterSearchTypeStringCombinableCriteriaToJSON)),\n 'searchMode': EFilterSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\n\n/**\n * \n * @export\n * @interface EListSearchTypeInt32CombinableCriteria\n */\nexport interface EListSearchTypeInt32CombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeInt32CombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {number}\n * @memberof EListSearchTypeInt32CombinableCriteria\n */\n value?: number;\n /**\n * \n * @type {number}\n * @memberof EListSearchTypeInt32CombinableCriteria\n */\n secondaryValue?: number;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeInt32CombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeInt32CombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeInt32CombinableCriteriaFromJSON(json: any): EListSearchTypeInt32CombinableCriteria {\n return EListSearchTypeInt32CombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeInt32CombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeInt32CombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n };\n}\n\nexport function EListSearchTypeInt32CombinableCriteriaToJSON(value?: EListSearchTypeInt32CombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeInt32CombinableCriteria } from './EListSearchTypeInt32CombinableCriteria';\nimport {\n EListSearchTypeInt32CombinableCriteriaFromJSON,\n EListSearchTypeInt32CombinableCriteriaFromJSONTyped,\n EListSearchTypeInt32CombinableCriteriaToJSON,\n} from './EListSearchTypeInt32CombinableCriteria';\n\n/**\n * \n * @export\n * @interface Int32ListSearch\n */\nexport interface Int32ListSearch {\n /**\n * \n * @type {Array}\n * @memberof Int32ListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof Int32ListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {number}\n * @memberof Int32ListSearch\n * @deprecated\n */\n value?: number;\n /**\n * \n * @type {number}\n * @memberof Int32ListSearch\n * @deprecated\n */\n secondaryValue?: number;\n /**\n * \n * @type {Array}\n * @memberof Int32ListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof Int32ListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the Int32ListSearch interface.\n */\nexport function instanceOfInt32ListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function Int32ListSearchFromJSON(json: any): Int32ListSearch {\n return Int32ListSearchFromJSONTyped(json, false);\n}\n\nexport function Int32ListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): Int32ListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeInt32CombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function Int32ListSearchToJSON(value?: Int32ListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeInt32CombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ENumericSearchType {\n Equals = 'Equals',\n NotEquals = 'NotEquals',\n GreaterThan = 'GreaterThan',\n GreaterThanOrEquals = 'GreaterThanOrEquals',\n LessThan = 'LessThan',\n LessThanOrEquals = 'LessThanOrEquals'\n}\n\n\nexport function ENumericSearchTypeFromJSON(json: any): ENumericSearchType {\n return ENumericSearchTypeFromJSONTyped(json, false);\n}\n\nexport function ENumericSearchTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ENumericSearchType {\n return json as ENumericSearchType;\n}\n\nexport function ENumericSearchTypeToJSON(value?: ENumericSearchType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ENumericSearchType } from './ENumericSearchType';\nimport {\n ENumericSearchTypeFromJSON,\n ENumericSearchTypeFromJSONTyped,\n ENumericSearchTypeToJSON,\n} from './ENumericSearchType';\n\n/**\n * \n * @export\n * @interface ENumericSearchTypeInt64NullableCombinableCriteria\n */\nexport interface ENumericSearchTypeInt64NullableCombinableCriteria {\n /**\n * \n * @type {ENumericSearchType}\n * @memberof ENumericSearchTypeInt64NullableCombinableCriteria\n */\n searchMode?: ENumericSearchType;\n /**\n * \n * @type {number}\n * @memberof ENumericSearchTypeInt64NullableCombinableCriteria\n */\n value?: number | null;\n /**\n * \n * @type {number}\n * @memberof ENumericSearchTypeInt64NullableCombinableCriteria\n */\n secondaryValue?: number | null;\n}\n\n/**\n * Check if a given object implements the ENumericSearchTypeInt64NullableCombinableCriteria interface.\n */\nexport function instanceOfENumericSearchTypeInt64NullableCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ENumericSearchTypeInt64NullableCombinableCriteriaFromJSON(json: any): ENumericSearchTypeInt64NullableCombinableCriteria {\n return ENumericSearchTypeInt64NullableCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function ENumericSearchTypeInt64NullableCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): ENumericSearchTypeInt64NullableCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : ENumericSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n };\n}\n\nexport function ENumericSearchTypeInt64NullableCombinableCriteriaToJSON(value?: ENumericSearchTypeInt64NullableCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': ENumericSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ENumericSearchType } from './ENumericSearchType';\nimport {\n ENumericSearchTypeFromJSON,\n ENumericSearchTypeFromJSONTyped,\n ENumericSearchTypeToJSON,\n} from './ENumericSearchType';\nimport type { ENumericSearchTypeInt64NullableCombinableCriteria } from './ENumericSearchTypeInt64NullableCombinableCriteria';\nimport {\n ENumericSearchTypeInt64NullableCombinableCriteriaFromJSON,\n ENumericSearchTypeInt64NullableCombinableCriteriaFromJSONTyped,\n ENumericSearchTypeInt64NullableCombinableCriteriaToJSON,\n} from './ENumericSearchTypeInt64NullableCombinableCriteria';\n\n/**\n * \n * @export\n * @interface NumericSearch\n */\nexport interface NumericSearch {\n /**\n * \n * @type {Array}\n * @memberof NumericSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {ENumericSearchType}\n * @memberof NumericSearch\n */\n searchMode?: ENumericSearchType;\n /**\n * \n * @type {number}\n * @memberof NumericSearch\n * @deprecated\n */\n value?: number | null;\n /**\n * \n * @type {number}\n * @memberof NumericSearch\n * @deprecated\n */\n secondaryValue?: number | null;\n /**\n * \n * @type {Array}\n * @memberof NumericSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof NumericSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the NumericSearch interface.\n */\nexport function instanceOfNumericSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function NumericSearchFromJSON(json: any): NumericSearch {\n return NumericSearchFromJSONTyped(json, false);\n}\n\nexport function NumericSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): NumericSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(ENumericSearchTypeInt64NullableCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : ENumericSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function NumericSearchToJSON(value?: NumericSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(ENumericSearchTypeInt64NullableCombinableCriteriaToJSON)),\n 'searchMode': ENumericSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\n\n/**\n * \n * @export\n * @interface EListSearchTypeStringCombinableCriteria\n */\nexport interface EListSearchTypeStringCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeStringCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {string}\n * @memberof EListSearchTypeStringCombinableCriteria\n */\n value?: string | null;\n /**\n * \n * @type {string}\n * @memberof EListSearchTypeStringCombinableCriteria\n */\n secondaryValue?: string | null;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeStringCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeStringCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeStringCombinableCriteriaFromJSON(json: any): EListSearchTypeStringCombinableCriteria {\n return EListSearchTypeStringCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeStringCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeStringCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n };\n}\n\nexport function EListSearchTypeStringCombinableCriteriaToJSON(value?: EListSearchTypeStringCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeStringCombinableCriteria } from './EListSearchTypeStringCombinableCriteria';\nimport {\n EListSearchTypeStringCombinableCriteriaFromJSON,\n EListSearchTypeStringCombinableCriteriaFromJSONTyped,\n EListSearchTypeStringCombinableCriteriaToJSON,\n} from './EListSearchTypeStringCombinableCriteria';\n\n/**\n * \n * @export\n * @interface StringListSearch\n */\nexport interface StringListSearch {\n /**\n * \n * @type {Array}\n * @memberof StringListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof StringListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {string}\n * @memberof StringListSearch\n * @deprecated\n */\n value?: string | null;\n /**\n * \n * @type {string}\n * @memberof StringListSearch\n * @deprecated\n */\n secondaryValue?: string | null;\n /**\n * \n * @type {Array}\n * @memberof StringListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof StringListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the StringListSearch interface.\n */\nexport function instanceOfStringListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function StringListSearchFromJSON(json: any): StringListSearch {\n return StringListSearchFromJSONTyped(json, false);\n}\n\nexport function StringListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): StringListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeStringCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function StringListSearchToJSON(value?: StringListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeStringCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { EHopeApprenantSearchTypeListSearch } from './EHopeApprenantSearchTypeListSearch';\nimport {\n EHopeApprenantSearchTypeListSearchFromJSON,\n EHopeApprenantSearchTypeListSearchFromJSONTyped,\n EHopeApprenantSearchTypeListSearchToJSON,\n} from './EHopeApprenantSearchTypeListSearch';\nimport type { ESearchStatutInscriptionListSearch } from './ESearchStatutInscriptionListSearch';\nimport {\n ESearchStatutInscriptionListSearchFromJSON,\n ESearchStatutInscriptionListSearchFromJSONTyped,\n ESearchStatutInscriptionListSearchToJSON,\n} from './ESearchStatutInscriptionListSearch';\nimport type { FilterTextSearch } from './FilterTextSearch';\nimport {\n FilterTextSearchFromJSON,\n FilterTextSearchFromJSONTyped,\n FilterTextSearchToJSON,\n} from './FilterTextSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { NumericSearch } from './NumericSearch';\nimport {\n NumericSearchFromJSON,\n NumericSearchFromJSONTyped,\n NumericSearchToJSON,\n} from './NumericSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ApprenantHopeSearch\n */\nexport interface ApprenantHopeSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantHopeSearch\n */\n nomSa?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantHopeSearch\n */\n prenomSa?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantHopeSearch\n */\n anneeScolaireCriteria?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantHopeSearch\n */\n telephone?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantHopeSearch\n */\n gsm?: TextSearch;\n /**\n * \n * @type {FilterTextSearch}\n * @memberof ApprenantHopeSearch\n */\n classeCriteria?: FilterTextSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantHopeSearch\n */\n centreCriteria?: StringListSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantHopeSearch\n */\n degreCriteria?: StringListSearch;\n /**\n * \n * @type {NumericSearch}\n * @memberof ApprenantHopeSearch\n */\n idapprenant?: NumericSearch;\n /**\n * \n * @type {EHopeApprenantSearchTypeListSearch}\n * @memberof ApprenantHopeSearch\n */\n mesApprenants?: EHopeApprenantSearchTypeListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ApprenantHopeSearch\n */\n enrechercheEntreprise?: BooleanSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantHopeSearch\n */\n metierContrat?: StringListSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantHopeSearch\n */\n metierCriteria?: StringListSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantHopeSearch\n */\n stadeContrat?: StringListSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantHopeSearch\n */\n stadeCriteria?: StringListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ApprenantHopeSearch\n */\n serviceContrat?: Int32ListSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantHopeSearch\n */\n typeContrat?: StringListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantHopeSearch\n */\n registreNationalOrEmpty?: TextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ApprenantHopeSearch\n */\n idpri?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ApprenantHopeSearch\n */\n idari?: Int32ListSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantHopeSearch\n */\n statutContrat?: StringListSearch;\n /**\n * \n * @type {ESearchStatutInscriptionListSearch}\n * @memberof ApprenantHopeSearch\n */\n statutInscription?: ESearchStatutInscriptionListSearch;\n /**\n * \n * @type {Array}\n * @memberof ApprenantHopeSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantHopeSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantHopeSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantHopeSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ApprenantHopeSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantHopeSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantHopeSearch interface.\n */\nexport function instanceOfApprenantHopeSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantHopeSearchFromJSON(json: any): ApprenantHopeSearch {\n return ApprenantHopeSearchFromJSONTyped(json, false);\n}\n\nexport function ApprenantHopeSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantHopeSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nomSa': !exists(json, 'nomSa') ? undefined : TextSearchFromJSON(json['nomSa']),\n 'prenomSa': !exists(json, 'prenomSa') ? undefined : TextSearchFromJSON(json['prenomSa']),\n 'anneeScolaireCriteria': !exists(json, 'anneeScolaireCriteria') ? undefined : TextSearchFromJSON(json['anneeScolaireCriteria']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TextSearchFromJSON(json['gsm']),\n 'classeCriteria': !exists(json, 'classeCriteria') ? undefined : FilterTextSearchFromJSON(json['classeCriteria']),\n 'centreCriteria': !exists(json, 'centreCriteria') ? undefined : StringListSearchFromJSON(json['centreCriteria']),\n 'degreCriteria': !exists(json, 'degreCriteria') ? undefined : StringListSearchFromJSON(json['degreCriteria']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : NumericSearchFromJSON(json['idapprenant']),\n 'mesApprenants': !exists(json, 'mesApprenants') ? undefined : EHopeApprenantSearchTypeListSearchFromJSON(json['mesApprenants']),\n 'enrechercheEntreprise': !exists(json, 'enrechercheEntreprise') ? undefined : BooleanSearchFromJSON(json['enrechercheEntreprise']),\n 'metierContrat': !exists(json, 'metierContrat') ? undefined : StringListSearchFromJSON(json['metierContrat']),\n 'metierCriteria': !exists(json, 'metierCriteria') ? undefined : StringListSearchFromJSON(json['metierCriteria']),\n 'stadeContrat': !exists(json, 'stadeContrat') ? undefined : StringListSearchFromJSON(json['stadeContrat']),\n 'stadeCriteria': !exists(json, 'stadeCriteria') ? undefined : StringListSearchFromJSON(json['stadeCriteria']),\n 'serviceContrat': !exists(json, 'serviceContrat') ? undefined : Int32ListSearchFromJSON(json['serviceContrat']),\n 'typeContrat': !exists(json, 'typeContrat') ? undefined : StringListSearchFromJSON(json['typeContrat']),\n 'registreNationalOrEmpty': !exists(json, 'registreNationalOrEmpty') ? undefined : TextSearchFromJSON(json['registreNationalOrEmpty']),\n 'idpri': !exists(json, 'idpri') ? undefined : Int32ListSearchFromJSON(json['idpri']),\n 'idari': !exists(json, 'idari') ? undefined : Int32ListSearchFromJSON(json['idari']),\n 'statutContrat': !exists(json, 'statutContrat') ? undefined : StringListSearchFromJSON(json['statutContrat']),\n 'statutInscription': !exists(json, 'statutInscription') ? undefined : ESearchStatutInscriptionListSearchFromJSON(json['statutInscription']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ApprenantHopeSearchToJSON(value?: ApprenantHopeSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nomSa': TextSearchToJSON(value.nomSa),\n 'prenomSa': TextSearchToJSON(value.prenomSa),\n 'anneeScolaireCriteria': TextSearchToJSON(value.anneeScolaireCriteria),\n 'telephone': TextSearchToJSON(value.telephone),\n 'gsm': TextSearchToJSON(value.gsm),\n 'classeCriteria': FilterTextSearchToJSON(value.classeCriteria),\n 'centreCriteria': StringListSearchToJSON(value.centreCriteria),\n 'degreCriteria': StringListSearchToJSON(value.degreCriteria),\n 'idapprenant': NumericSearchToJSON(value.idapprenant),\n 'mesApprenants': EHopeApprenantSearchTypeListSearchToJSON(value.mesApprenants),\n 'enrechercheEntreprise': BooleanSearchToJSON(value.enrechercheEntreprise),\n 'metierContrat': StringListSearchToJSON(value.metierContrat),\n 'metierCriteria': StringListSearchToJSON(value.metierCriteria),\n 'stadeContrat': StringListSearchToJSON(value.stadeContrat),\n 'stadeCriteria': StringListSearchToJSON(value.stadeCriteria),\n 'serviceContrat': Int32ListSearchToJSON(value.serviceContrat),\n 'typeContrat': StringListSearchToJSON(value.typeContrat),\n 'registreNationalOrEmpty': TextSearchToJSON(value.registreNationalOrEmpty),\n 'idpri': Int32ListSearchToJSON(value.idpri),\n 'idari': Int32ListSearchToJSON(value.idari),\n 'statutContrat': StringListSearchToJSON(value.statutContrat),\n 'statutInscription': ESearchStatutInscriptionListSearchToJSON(value.statutInscription),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ApprenantRepresentantHopeGridDto } from './ApprenantRepresentantHopeGridDto';\nimport {\n ApprenantRepresentantHopeGridDtoFromJSON,\n ApprenantRepresentantHopeGridDtoFromJSONTyped,\n ApprenantRepresentantHopeGridDtoToJSON,\n} from './ApprenantRepresentantHopeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ApprenantRepresentantHopeGridDtoPaginatedResults\n */\nexport interface ApprenantRepresentantHopeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantHopeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ApprenantRepresentantHopeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantRepresentantHopeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ApprenantRepresentantHopeGridDtoPaginatedResults interface.\n */\nexport function instanceOfApprenantRepresentantHopeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantRepresentantHopeGridDtoPaginatedResultsFromJSON(json: any): ApprenantRepresentantHopeGridDtoPaginatedResults {\n return ApprenantRepresentantHopeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ApprenantRepresentantHopeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantRepresentantHopeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ApprenantRepresentantHopeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ApprenantRepresentantHopeGridDtoPaginatedResultsToJSON(value?: ApprenantRepresentantHopeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ApprenantRepresentantHopeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ApprenantRepresentantInstitutionEditDto\n */\nexport interface ApprenantRepresentantInstitutionEditDto {\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n idapprenantInstitution?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n idinstitution?: number;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n adresseInstitution?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n codePostalInstitution?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n localiteInstitution?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n communeInstitution?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n email?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n idrepresentant?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n isEmergencyContact?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n alreadyHasEmergencyContact?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n representantLegal?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n courrier?: boolean;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n type?: string | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n idgsmPersonne?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n idtelephonePersonne?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n idemailPersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n gsmInstitution?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n telephoneInstitution?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantInstitutionEditDto\n */\n emailInstitution?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantRepresentantInstitutionEditDto interface.\n */\nexport function instanceOfApprenantRepresentantInstitutionEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantRepresentantInstitutionEditDtoFromJSON(json: any): ApprenantRepresentantInstitutionEditDto {\n return ApprenantRepresentantInstitutionEditDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantRepresentantInstitutionEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantRepresentantInstitutionEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenantInstitution': !exists(json, 'idapprenantInstitution') ? undefined : json['idapprenantInstitution'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idinstitution': !exists(json, 'idinstitution') ? undefined : json['idinstitution'],\n 'adresseInstitution': !exists(json, 'adresseInstitution') ? undefined : json['adresseInstitution'],\n 'codePostalInstitution': !exists(json, 'codePostalInstitution') ? undefined : json['codePostalInstitution'],\n 'localiteInstitution': !exists(json, 'localiteInstitution') ? undefined : json['localiteInstitution'],\n 'communeInstitution': !exists(json, 'communeInstitution') ? undefined : json['communeInstitution'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'isEmergencyContact': !exists(json, 'isEmergencyContact') ? undefined : json['isEmergencyContact'],\n 'alreadyHasEmergencyContact': !exists(json, 'alreadyHasEmergencyContact') ? undefined : json['alreadyHasEmergencyContact'],\n 'representantLegal': !exists(json, 'representantLegal') ? undefined : json['representantLegal'],\n 'courrier': !exists(json, 'courrier') ? undefined : json['courrier'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'idgsmPersonne': !exists(json, 'idgsmPersonne') ? undefined : json['idgsmPersonne'],\n 'idtelephonePersonne': !exists(json, 'idtelephonePersonne') ? undefined : json['idtelephonePersonne'],\n 'idemailPersonne': !exists(json, 'idemailPersonne') ? undefined : json['idemailPersonne'],\n 'gsmInstitution': !exists(json, 'gsmInstitution') ? undefined : json['gsmInstitution'],\n 'telephoneInstitution': !exists(json, 'telephoneInstitution') ? undefined : json['telephoneInstitution'],\n 'emailInstitution': !exists(json, 'emailInstitution') ? undefined : json['emailInstitution'],\n };\n}\n\nexport function ApprenantRepresentantInstitutionEditDtoToJSON(value?: ApprenantRepresentantInstitutionEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenantInstitution': value.idapprenantInstitution,\n 'idapprenant': value.idapprenant,\n 'idinstitution': value.idinstitution,\n 'adresseInstitution': value.adresseInstitution,\n 'codePostalInstitution': value.codePostalInstitution,\n 'localiteInstitution': value.localiteInstitution,\n 'communeInstitution': value.communeInstitution,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'email': value.email,\n 'idrepresentant': value.idrepresentant,\n 'isEmergencyContact': value.isEmergencyContact,\n 'alreadyHasEmergencyContact': value.alreadyHasEmergencyContact,\n 'representantLegal': value.representantLegal,\n 'courrier': value.courrier,\n 'remarque': value.remarque,\n 'type': value.type,\n 'idgsmPersonne': value.idgsmPersonne,\n 'idtelephonePersonne': value.idtelephonePersonne,\n 'idemailPersonne': value.idemailPersonne,\n 'gsmInstitution': value.gsmInstitution,\n 'telephoneInstitution': value.telephoneInstitution,\n 'emailInstitution': value.emailInstitution,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\n\n/**\n * \n * @export\n * @interface ApprenantRepresentantPersonneEditDto\n */\nexport interface ApprenantRepresentantPersonneEditDto {\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n idapprenantRepresentant?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n idrepresentant?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n codesexe?: string;\n /**\n * \n * @type {Date}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n numeroNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n adresseNaissance?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n adresseRepresentant?: AdresseDto;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n idgsm?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n idtelephone?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n idemail?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n idlienParente?: number | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n autreLien?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n courrier?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n isEmergencyContact?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n alreadyHasEmergencyContact?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n representantLegal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n type?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ApprenantRepresentantPersonneEditDto\n */\n hasAddressDoublons?: boolean;\n}\n\n/**\n * Check if a given object implements the ApprenantRepresentantPersonneEditDto interface.\n */\nexport function instanceOfApprenantRepresentantPersonneEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantRepresentantPersonneEditDtoFromJSON(json: any): ApprenantRepresentantPersonneEditDto {\n return ApprenantRepresentantPersonneEditDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantRepresentantPersonneEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantRepresentantPersonneEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenantRepresentant': !exists(json, 'idapprenantRepresentant') ? undefined : json['idapprenantRepresentant'],\n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'numeroNational': !exists(json, 'numeroNational') ? undefined : json['numeroNational'],\n 'adresseNaissance': !exists(json, 'adresseNaissance') ? undefined : json['adresseNaissance'],\n 'adresseRepresentant': !exists(json, 'adresseRepresentant') ? undefined : AdresseDtoFromJSON(json['adresseRepresentant']),\n 'idgsm': !exists(json, 'idgsm') ? undefined : json['idgsm'],\n 'idtelephone': !exists(json, 'idtelephone') ? undefined : json['idtelephone'],\n 'idemail': !exists(json, 'idemail') ? undefined : json['idemail'],\n 'idlienParente': !exists(json, 'idlienParente') ? undefined : json['idlienParente'],\n 'autreLien': !exists(json, 'autreLien') ? undefined : json['autreLien'],\n 'courrier': !exists(json, 'courrier') ? undefined : json['courrier'],\n 'isEmergencyContact': !exists(json, 'isEmergencyContact') ? undefined : json['isEmergencyContact'],\n 'alreadyHasEmergencyContact': !exists(json, 'alreadyHasEmergencyContact') ? undefined : json['alreadyHasEmergencyContact'],\n 'representantLegal': !exists(json, 'representantLegal') ? undefined : json['representantLegal'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'hasAddressDoublons': !exists(json, 'hasAddressDoublons') ? undefined : json['hasAddressDoublons'],\n };\n}\n\nexport function ApprenantRepresentantPersonneEditDtoToJSON(value?: ApprenantRepresentantPersonneEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenantRepresentant': value.idapprenantRepresentant,\n 'idrepresentant': value.idrepresentant,\n 'idapprenant': value.idapprenant,\n 'codesexe': value.codesexe,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'numeroNational': value.numeroNational,\n 'adresseNaissance': value.adresseNaissance,\n 'adresseRepresentant': AdresseDtoToJSON(value.adresseRepresentant),\n 'idgsm': value.idgsm,\n 'idtelephone': value.idtelephone,\n 'idemail': value.idemail,\n 'idlienParente': value.idlienParente,\n 'autreLien': value.autreLien,\n 'courrier': value.courrier,\n 'isEmergencyContact': value.isEmergencyContact,\n 'alreadyHasEmergencyContact': value.alreadyHasEmergencyContact,\n 'representantLegal': value.representantLegal,\n 'remarque': value.remarque,\n 'type': value.type,\n 'hasAddressDoublons': value.hasAddressDoublons,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ApprenantRepresentantSearchDto\n */\nexport interface ApprenantRepresentantSearchDto {\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantSearchDto\n */\n idapprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof ApprenantRepresentantSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantRepresentantSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ApprenantRepresentantSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantRepresentantSearchDto interface.\n */\nexport function instanceOfApprenantRepresentantSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantRepresentantSearchDtoFromJSON(json: any): ApprenantRepresentantSearchDto {\n return ApprenantRepresentantSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantRepresentantSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantRepresentantSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ApprenantRepresentantSearchDtoToJSON(value?: ApprenantRepresentantSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ApprenantRepresentantsSearch\n */\nexport interface ApprenantRepresentantsSearch {\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantsSearch\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantsSearch\n */\n idrepresentant?: number;\n /**\n * \n * @type {Array}\n * @memberof ApprenantRepresentantsSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantRepresentantsSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantsSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantRepresentantsSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ApprenantRepresentantsSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantRepresentantsSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantRepresentantsSearch interface.\n */\nexport function instanceOfApprenantRepresentantsSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantRepresentantsSearchFromJSON(json: any): ApprenantRepresentantsSearch {\n return ApprenantRepresentantsSearchFromJSONTyped(json, false);\n}\n\nexport function ApprenantRepresentantsSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantRepresentantsSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ApprenantRepresentantsSearchToJSON(value?: ApprenantRepresentantsSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'idrepresentant': value.idrepresentant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { ESearchStatutInscriptionListSearch } from './ESearchStatutInscriptionListSearch';\nimport {\n ESearchStatutInscriptionListSearchFromJSON,\n ESearchStatutInscriptionListSearchFromJSONTyped,\n ESearchStatutInscriptionListSearchToJSON,\n} from './ESearchStatutInscriptionListSearch';\nimport type { FilterTextSearch } from './FilterTextSearch';\nimport {\n FilterTextSearchFromJSON,\n FilterTextSearchFromJSONTyped,\n FilterTextSearchToJSON,\n} from './FilterTextSearch';\nimport type { NumericSearch } from './NumericSearch';\nimport {\n NumericSearchFromJSON,\n NumericSearchFromJSONTyped,\n NumericSearchToJSON,\n} from './NumericSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ApprenantSearch\n */\nexport interface ApprenantSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantSearch\n */\n nomSa?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantSearch\n */\n prenomSa?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantSearch\n */\n anneeScolaireCriteria?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantSearch\n */\n telephone?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantSearch\n */\n gsm?: TextSearch;\n /**\n * \n * @type {FilterTextSearch}\n * @memberof ApprenantSearch\n */\n classeCriteria?: FilterTextSearch;\n /**\n * \n * @type {NumericSearch}\n * @memberof ApprenantSearch\n */\n idapprenant?: NumericSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantSearch\n */\n centreCriteria?: StringListSearch;\n /**\n * \n * @type {ESearchStatutInscriptionListSearch}\n * @memberof ApprenantSearch\n */\n statutInscription?: ESearchStatutInscriptionListSearch;\n /**\n * \n * @type {Array}\n * @memberof ApprenantSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ApprenantSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantSearch interface.\n */\nexport function instanceOfApprenantSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantSearchFromJSON(json: any): ApprenantSearch {\n return ApprenantSearchFromJSONTyped(json, false);\n}\n\nexport function ApprenantSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nomSa': !exists(json, 'nomSa') ? undefined : TextSearchFromJSON(json['nomSa']),\n 'prenomSa': !exists(json, 'prenomSa') ? undefined : TextSearchFromJSON(json['prenomSa']),\n 'anneeScolaireCriteria': !exists(json, 'anneeScolaireCriteria') ? undefined : TextSearchFromJSON(json['anneeScolaireCriteria']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TextSearchFromJSON(json['gsm']),\n 'classeCriteria': !exists(json, 'classeCriteria') ? undefined : FilterTextSearchFromJSON(json['classeCriteria']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : NumericSearchFromJSON(json['idapprenant']),\n 'centreCriteria': !exists(json, 'centreCriteria') ? undefined : StringListSearchFromJSON(json['centreCriteria']),\n 'statutInscription': !exists(json, 'statutInscription') ? undefined : ESearchStatutInscriptionListSearchFromJSON(json['statutInscription']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ApprenantSearchToJSON(value?: ApprenantSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nomSa': TextSearchToJSON(value.nomSa),\n 'prenomSa': TextSearchToJSON(value.prenomSa),\n 'anneeScolaireCriteria': TextSearchToJSON(value.anneeScolaireCriteria),\n 'telephone': TextSearchToJSON(value.telephone),\n 'gsm': TextSearchToJSON(value.gsm),\n 'classeCriteria': FilterTextSearchToJSON(value.classeCriteria),\n 'idapprenant': NumericSearchToJSON(value.idapprenant),\n 'centreCriteria': StringListSearchToJSON(value.centreCriteria),\n 'statutInscription': ESearchStatutInscriptionListSearchToJSON(value.statutInscription),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\n\n/**\n * \n * @export\n * @interface ApprenantSelectorGridDto\n */\nexport interface ApprenantSelectorGridDto {\n /**\n * \n * @type {number}\n * @memberof ApprenantSelectorGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof ApprenantSelectorGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ApprenantSelectorGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantSelectorGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof ApprenantSelectorGridDto\n */\n adresseApprenant?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof ApprenantSelectorGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantSelectorGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantSelectorGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantSelectorGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ApprenantSelectorGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantSelectorGridDto\n */\n registreNational?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantSelectorGridDto interface.\n */\nexport function instanceOfApprenantSelectorGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantSelectorGridDtoFromJSON(json: any): ApprenantSelectorGridDto {\n return ApprenantSelectorGridDtoFromJSONTyped(json, false);\n}\n\nexport function ApprenantSelectorGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantSelectorGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseApprenant': !exists(json, 'adresseApprenant') ? undefined : AdresseDtoFromJSON(json['adresseApprenant']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n };\n}\n\nexport function ApprenantSelectorGridDtoToJSON(value?: ApprenantSelectorGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseApprenant': AdresseDtoToJSON(value.adresseApprenant),\n 'nationalite': value.nationalite,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ApprenantSelectorGridDto } from './ApprenantSelectorGridDto';\nimport {\n ApprenantSelectorGridDtoFromJSON,\n ApprenantSelectorGridDtoFromJSONTyped,\n ApprenantSelectorGridDtoToJSON,\n} from './ApprenantSelectorGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ApprenantSelectorGridDtoPaginatedResults\n */\nexport interface ApprenantSelectorGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ApprenantSelectorGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ApprenantSelectorGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantSelectorGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ApprenantSelectorGridDtoPaginatedResults interface.\n */\nexport function instanceOfApprenantSelectorGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantSelectorGridDtoPaginatedResultsFromJSON(json: any): ApprenantSelectorGridDtoPaginatedResults {\n return ApprenantSelectorGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ApprenantSelectorGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantSelectorGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ApprenantSelectorGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ApprenantSelectorGridDtoPaginatedResultsToJSON(value?: ApprenantSelectorGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ApprenantSelectorGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ApprenantSelectorSearch\n */\nexport interface ApprenantSelectorSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantSelectorSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantSelectorSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ApprenantSelectorSearch\n */\n registreNational?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof ApprenantSelectorSearch\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ApprenantSelectorSearch\n */\n nationalite?: StringListSearch;\n /**\n * \n * @type {Array}\n * @memberof ApprenantSelectorSearch\n */\n selectedApprenantIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantSelectorSearch\n */\n excludedApprenantIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantSelectorSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ApprenantSelectorSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantSelectorSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ApprenantSelectorSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ApprenantSelectorSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ApprenantSelectorSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ApprenantSelectorSearch interface.\n */\nexport function instanceOfApprenantSelectorSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ApprenantSelectorSearchFromJSON(json: any): ApprenantSelectorSearch {\n return ApprenantSelectorSearchFromJSONTyped(json, false);\n}\n\nexport function ApprenantSelectorSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApprenantSelectorSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'registreNational': !exists(json, 'registreNational') ? undefined : TextSearchFromJSON(json['registreNational']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'nationalite': !exists(json, 'nationalite') ? undefined : StringListSearchFromJSON(json['nationalite']),\n 'selectedApprenantIds': !exists(json, 'selectedApprenantIds') ? undefined : json['selectedApprenantIds'],\n 'excludedApprenantIds': !exists(json, 'excludedApprenantIds') ? undefined : json['excludedApprenantIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ApprenantSelectorSearchToJSON(value?: ApprenantSelectorSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'registreNational': TextSearchToJSON(value.registreNational),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'nationalite': StringListSearchToJSON(value.nationalite),\n 'selectedApprenantIds': value.selectedApprenantIds,\n 'excludedApprenantIds': value.excludedApprenantIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AriReassignmentDto\n */\nexport interface AriReassignmentDto {\n /**\n * \n * @type {Array}\n * @memberof AriReassignmentDto\n */\n aris?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AriReassignmentDto\n */\n idsApprenant?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AriReassignmentDto\n */\n newIdAri?: number | null;\n}\n\n/**\n * Check if a given object implements the AriReassignmentDto interface.\n */\nexport function instanceOfAriReassignmentDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AriReassignmentDtoFromJSON(json: any): AriReassignmentDto {\n return AriReassignmentDtoFromJSONTyped(json, false);\n}\n\nexport function AriReassignmentDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AriReassignmentDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'aris': !exists(json, 'aris') ? undefined : json['aris'],\n 'idsApprenant': !exists(json, 'idsApprenant') ? undefined : json['idsApprenant'],\n 'newIdAri': !exists(json, 'newIdAri') ? undefined : json['newIdAri'],\n };\n}\n\nexport function AriReassignmentDtoToJSON(value?: AriReassignmentDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'aris': value.aris,\n 'idsApprenant': value.idsApprenant,\n 'newIdAri': value.newIdAri,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AssuranceEditDto\n */\nexport interface AssuranceEditDto {\n /**\n * \n * @type {number}\n * @memberof AssuranceEditDto\n */\n idsiegeSocialCompagnieAssurance?: number;\n /**\n * \n * @type {number}\n * @memberof AssuranceEditDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {number}\n * @memberof AssuranceEditDto\n */\n idcompagnieAssurance?: number;\n /**\n * \n * @type {string}\n * @memberof AssuranceEditDto\n */\n numeroPolice?: string | null;\n}\n\n/**\n * Check if a given object implements the AssuranceEditDto interface.\n */\nexport function instanceOfAssuranceEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AssuranceEditDtoFromJSON(json: any): AssuranceEditDto {\n return AssuranceEditDtoFromJSONTyped(json, false);\n}\n\nexport function AssuranceEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AssuranceEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocialCompagnieAssurance': !exists(json, 'idsiegeSocialCompagnieAssurance') ? undefined : json['idsiegeSocialCompagnieAssurance'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'idcompagnieAssurance': !exists(json, 'idcompagnieAssurance') ? undefined : json['idcompagnieAssurance'],\n 'numeroPolice': !exists(json, 'numeroPolice') ? undefined : json['numeroPolice'],\n };\n}\n\nexport function AssuranceEditDtoToJSON(value?: AssuranceEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocialCompagnieAssurance': value.idsiegeSocialCompagnieAssurance,\n 'idsiegeSocial': value.idsiegeSocial,\n 'idcompagnieAssurance': value.idcompagnieAssurance,\n 'numeroPolice': value.numeroPolice,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AssuranceGridDto\n */\nexport interface AssuranceGridDto {\n /**\n * \n * @type {number}\n * @memberof AssuranceGridDto\n */\n idsiegeSocialCompagnieAssurance?: number;\n /**\n * \n * @type {number}\n * @memberof AssuranceGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof AssuranceGridDto\n */\n compagnieAssurance?: string | null;\n /**\n * \n * @type {string}\n * @memberof AssuranceGridDto\n */\n numeroPolice?: string | null;\n}\n\n/**\n * Check if a given object implements the AssuranceGridDto interface.\n */\nexport function instanceOfAssuranceGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AssuranceGridDtoFromJSON(json: any): AssuranceGridDto {\n return AssuranceGridDtoFromJSONTyped(json, false);\n}\n\nexport function AssuranceGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AssuranceGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocialCompagnieAssurance': !exists(json, 'idsiegeSocialCompagnieAssurance') ? undefined : json['idsiegeSocialCompagnieAssurance'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'compagnieAssurance': !exists(json, 'compagnieAssurance') ? undefined : json['compagnieAssurance'],\n 'numeroPolice': !exists(json, 'numeroPolice') ? undefined : json['numeroPolice'],\n };\n}\n\nexport function AssuranceGridDtoToJSON(value?: AssuranceGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocialCompagnieAssurance': value.idsiegeSocialCompagnieAssurance,\n 'idsiegeSocial': value.idsiegeSocial,\n 'compagnieAssurance': value.compagnieAssurance,\n 'numeroPolice': value.numeroPolice,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AssuranceGridDto } from './AssuranceGridDto';\nimport {\n AssuranceGridDtoFromJSON,\n AssuranceGridDtoFromJSONTyped,\n AssuranceGridDtoToJSON,\n} from './AssuranceGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface AssuranceGridDtoPaginatedResults\n */\nexport interface AssuranceGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof AssuranceGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof AssuranceGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AssuranceGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the AssuranceGridDtoPaginatedResults interface.\n */\nexport function instanceOfAssuranceGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AssuranceGridDtoPaginatedResultsFromJSON(json: any): AssuranceGridDtoPaginatedResults {\n return AssuranceGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function AssuranceGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): AssuranceGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(AssuranceGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function AssuranceGridDtoPaginatedResultsToJSON(value?: AssuranceGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(AssuranceGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface AssuranceSearchDto\n */\nexport interface AssuranceSearchDto {\n /**\n * \n * @type {number}\n * @memberof AssuranceSearchDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {Array}\n * @memberof AssuranceSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof AssuranceSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof AssuranceSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof AssuranceSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof AssuranceSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof AssuranceSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the AssuranceSearchDto interface.\n */\nexport function instanceOfAssuranceSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AssuranceSearchDtoFromJSON(json: any): AssuranceSearchDto {\n return AssuranceSearchDtoFromJSONTyped(json, false);\n}\n\nexport function AssuranceSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AssuranceSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function AssuranceSearchDtoToJSON(value?: AssuranceSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AzureUserDto\n */\nexport interface AzureUserDto {\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n firstName?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n lastName?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n displayName?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n userPrincipalName?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n mailNickName?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n identifier?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n password?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n jobTitle?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n department?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n office?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n telephoneNumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n mobile?: string | null;\n /**\n * \n * @type {string}\n * @memberof AzureUserDto\n */\n o365UserId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof AzureUserDto\n */\n accountEnabled?: boolean;\n}\n\n/**\n * Check if a given object implements the AzureUserDto interface.\n */\nexport function instanceOfAzureUserDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function AzureUserDtoFromJSON(json: any): AzureUserDto {\n return AzureUserDtoFromJSONTyped(json, false);\n}\n\nexport function AzureUserDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AzureUserDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'firstName': !exists(json, 'firstName') ? undefined : json['firstName'],\n 'lastName': !exists(json, 'lastName') ? undefined : json['lastName'],\n 'displayName': !exists(json, 'displayName') ? undefined : json['displayName'],\n 'userPrincipalName': !exists(json, 'userPrincipalName') ? undefined : json['userPrincipalName'],\n 'mailNickName': !exists(json, 'mailNickName') ? undefined : json['mailNickName'],\n 'identifier': !exists(json, 'identifier') ? undefined : json['identifier'],\n 'password': !exists(json, 'password') ? undefined : json['password'],\n 'jobTitle': !exists(json, 'jobTitle') ? undefined : json['jobTitle'],\n 'department': !exists(json, 'department') ? undefined : json['department'],\n 'office': !exists(json, 'office') ? undefined : json['office'],\n 'telephoneNumber': !exists(json, 'telephoneNumber') ? undefined : json['telephoneNumber'],\n 'mobile': !exists(json, 'mobile') ? undefined : json['mobile'],\n 'o365UserId': !exists(json, 'o365UserId') ? undefined : json['o365UserId'],\n 'accountEnabled': !exists(json, 'accountEnabled') ? undefined : json['accountEnabled'],\n };\n}\n\nexport function AzureUserDtoToJSON(value?: AzureUserDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'firstName': value.firstName,\n 'lastName': value.lastName,\n 'displayName': value.displayName,\n 'userPrincipalName': value.userPrincipalName,\n 'mailNickName': value.mailNickName,\n 'identifier': value.identifier,\n 'password': value.password,\n 'jobTitle': value.jobTitle,\n 'department': value.department,\n 'office': value.office,\n 'telephoneNumber': value.telephoneNumber,\n 'mobile': value.mobile,\n 'o365UserId': value.o365UserId,\n 'accountEnabled': value.accountEnabled,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BaremeTheoriqueDto\n */\nexport interface BaremeTheoriqueDto {\n /**\n * \n * @type {number}\n * @memberof BaremeTheoriqueDto\n */\n idcontratBaremeTheorique?: number;\n /**\n * \n * @type {number}\n * @memberof BaremeTheoriqueDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof BaremeTheoriqueDto\n */\n idbaremeTheorique?: number | null;\n /**\n * \n * @type {number}\n * @memberof BaremeTheoriqueDto\n */\n remunReelle?: number;\n /**\n * \n * @type {number}\n * @memberof BaremeTheoriqueDto\n */\n remunTheorique?: number;\n /**\n * \n * @type {string}\n * @memberof BaremeTheoriqueDto\n */\n libelle?: string | null;\n}\n\n/**\n * Check if a given object implements the BaremeTheoriqueDto interface.\n */\nexport function instanceOfBaremeTheoriqueDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BaremeTheoriqueDtoFromJSON(json: any): BaremeTheoriqueDto {\n return BaremeTheoriqueDtoFromJSONTyped(json, false);\n}\n\nexport function BaremeTheoriqueDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): BaremeTheoriqueDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratBaremeTheorique': !exists(json, 'idcontratBaremeTheorique') ? undefined : json['idcontratBaremeTheorique'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idbaremeTheorique': !exists(json, 'idbaremeTheorique') ? undefined : json['idbaremeTheorique'],\n 'remunReelle': !exists(json, 'remunReelle') ? undefined : json['remunReelle'],\n 'remunTheorique': !exists(json, 'remunTheorique') ? undefined : json['remunTheorique'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n };\n}\n\nexport function BaremeTheoriqueDtoToJSON(value?: BaremeTheoriqueDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratBaremeTheorique': value.idcontratBaremeTheorique,\n 'idcontrat': value.idcontrat,\n 'idbaremeTheorique': value.idbaremeTheorique,\n 'remunReelle': value.remunReelle,\n 'remunTheorique': value.remunTheorique,\n 'libelle': value.libelle,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BilanCompetenceFichierGridDto\n */\nexport interface BilanCompetenceFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierGridDto\n */\n idbilanCompetenceFichier?: number;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierGridDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof BilanCompetenceFichierGridDto\n */\n typeAcquisFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof BilanCompetenceFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof BilanCompetenceFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof BilanCompetenceFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the BilanCompetenceFichierGridDto interface.\n */\nexport function instanceOfBilanCompetenceFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BilanCompetenceFichierGridDtoFromJSON(json: any): BilanCompetenceFichierGridDto {\n return BilanCompetenceFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function BilanCompetenceFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): BilanCompetenceFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idbilanCompetenceFichier': !exists(json, 'idbilanCompetenceFichier') ? undefined : json['idbilanCompetenceFichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'typeAcquisFichier': !exists(json, 'typeAcquisFichier') ? undefined : json['typeAcquisFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function BilanCompetenceFichierGridDtoToJSON(value?: BilanCompetenceFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idbilanCompetenceFichier': value.idbilanCompetenceFichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'typeAcquisFichier': value.typeAcquisFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { BilanCompetenceFichierGridDto } from './BilanCompetenceFichierGridDto';\nimport {\n BilanCompetenceFichierGridDtoFromJSON,\n BilanCompetenceFichierGridDtoFromJSONTyped,\n BilanCompetenceFichierGridDtoToJSON,\n} from './BilanCompetenceFichierGridDto';\n\n/**\n * \n * @export\n * @interface BilanCompetenceEditDto\n */\nexport interface BilanCompetenceEditDto {\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceEditDto\n */\n idbilanCompetence?: number;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof BilanCompetenceEditDto\n */\n idanneeDeFormation?: string | null;\n /**\n * \n * @type {Date}\n * @memberof BilanCompetenceEditDto\n */\n date?: Date | null;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceEditDto\n */\n pointsMath?: number | null;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceEditDto\n */\n pointsFrancais?: number | null;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceEditDto\n */\n idexaminateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceEditDto\n */\n idcommentaire?: number | null;\n /**\n * \n * @type {string}\n * @memberof BilanCompetenceEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof BilanCompetenceEditDto\n */\n typeAcquis?: string | null;\n /**\n * \n * @type {Array}\n * @memberof BilanCompetenceEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the BilanCompetenceEditDto interface.\n */\nexport function instanceOfBilanCompetenceEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BilanCompetenceEditDtoFromJSON(json: any): BilanCompetenceEditDto {\n return BilanCompetenceEditDtoFromJSONTyped(json, false);\n}\n\nexport function BilanCompetenceEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): BilanCompetenceEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idbilanCompetence': !exists(json, 'idbilanCompetence') ? undefined : json['idbilanCompetence'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idanneeDeFormation': !exists(json, 'idanneeDeFormation') ? undefined : json['idanneeDeFormation'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'pointsMath': !exists(json, 'pointsMath') ? undefined : json['pointsMath'],\n 'pointsFrancais': !exists(json, 'pointsFrancais') ? undefined : json['pointsFrancais'],\n 'idexaminateur': !exists(json, 'idexaminateur') ? undefined : json['idexaminateur'],\n 'idcommentaire': !exists(json, 'idcommentaire') ? undefined : json['idcommentaire'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'typeAcquis': !exists(json, 'typeAcquis') ? undefined : json['typeAcquis'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(BilanCompetenceFichierGridDtoFromJSON)),\n };\n}\n\nexport function BilanCompetenceEditDtoToJSON(value?: BilanCompetenceEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idbilanCompetence': value.idbilanCompetence,\n 'idpersonne': value.idpersonne,\n 'idanneeDeFormation': value.idanneeDeFormation,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'pointsMath': value.pointsMath,\n 'pointsFrancais': value.pointsFrancais,\n 'idexaminateur': value.idexaminateur,\n 'idcommentaire': value.idcommentaire,\n 'remarque': value.remarque,\n 'typeAcquis': value.typeAcquis,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(BilanCompetenceFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BilanCompetenceFichierDto\n */\nexport interface BilanCompetenceFichierDto {\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierDto\n */\n idbilanCompetenceFichier?: number;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierDto\n */\n idbilanCompetence?: number;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof BilanCompetenceFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the BilanCompetenceFichierDto interface.\n */\nexport function instanceOfBilanCompetenceFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BilanCompetenceFichierDtoFromJSON(json: any): BilanCompetenceFichierDto {\n return BilanCompetenceFichierDtoFromJSONTyped(json, false);\n}\n\nexport function BilanCompetenceFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): BilanCompetenceFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idbilanCompetenceFichier': !exists(json, 'idbilanCompetenceFichier') ? undefined : json['idbilanCompetenceFichier'],\n 'idbilanCompetence': !exists(json, 'idbilanCompetence') ? undefined : json['idbilanCompetence'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function BilanCompetenceFichierDtoToJSON(value?: BilanCompetenceFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idbilanCompetenceFichier': value.idbilanCompetenceFichier,\n 'idbilanCompetence': value.idbilanCompetence,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface BilanCompetenceFichierUploadDto\n */\nexport interface BilanCompetenceFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof BilanCompetenceFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierUploadDto\n */\n idbilanCompetenceFichier?: number;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierUploadDto\n */\n idbilanCompetence?: number;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof BilanCompetenceFichierUploadDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof BilanCompetenceFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the BilanCompetenceFichierUploadDto interface.\n */\nexport function instanceOfBilanCompetenceFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BilanCompetenceFichierUploadDtoFromJSON(json: any): BilanCompetenceFichierUploadDto {\n return BilanCompetenceFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function BilanCompetenceFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): BilanCompetenceFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idbilanCompetenceFichier': !exists(json, 'idbilanCompetenceFichier') ? undefined : json['idbilanCompetenceFichier'],\n 'idbilanCompetence': !exists(json, 'idbilanCompetence') ? undefined : json['idbilanCompetence'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function BilanCompetenceFichierUploadDtoToJSON(value?: BilanCompetenceFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idbilanCompetenceFichier': value.idbilanCompetenceFichier,\n 'idbilanCompetence': value.idbilanCompetence,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BooleanDto\n */\nexport interface BooleanDto {\n /**\n * \n * @type {boolean}\n * @memberof BooleanDto\n */\n value?: boolean;\n}\n\n/**\n * Check if a given object implements the BooleanDto interface.\n */\nexport function instanceOfBooleanDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BooleanDtoFromJSON(json: any): BooleanDto {\n return BooleanDtoFromJSONTyped(json, false);\n}\n\nexport function BooleanDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): BooleanDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'value': !exists(json, 'value') ? undefined : json['value'],\n };\n}\n\nexport function BooleanDtoToJSON(value?: BooleanDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'value': value.value,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface BulletinApprenantRecapitulatifSearch\n */\nexport interface BulletinApprenantRecapitulatifSearch {\n /**\n * \n * @type {number}\n * @memberof BulletinApprenantRecapitulatifSearch\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof BulletinApprenantRecapitulatifSearch\n */\n idbulletinApprenantType?: number | null;\n /**\n * \n * @type {string}\n * @memberof BulletinApprenantRecapitulatifSearch\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {Array}\n * @memberof BulletinApprenantRecapitulatifSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof BulletinApprenantRecapitulatifSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof BulletinApprenantRecapitulatifSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof BulletinApprenantRecapitulatifSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof BulletinApprenantRecapitulatifSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof BulletinApprenantRecapitulatifSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the BulletinApprenantRecapitulatifSearch interface.\n */\nexport function instanceOfBulletinApprenantRecapitulatifSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BulletinApprenantRecapitulatifSearchFromJSON(json: any): BulletinApprenantRecapitulatifSearch {\n return BulletinApprenantRecapitulatifSearchFromJSONTyped(json, false);\n}\n\nexport function BulletinApprenantRecapitulatifSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): BulletinApprenantRecapitulatifSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idbulletinApprenantType': !exists(json, 'idbulletinApprenantType') ? undefined : json['idbulletinApprenantType'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function BulletinApprenantRecapitulatifSearchToJSON(value?: BulletinApprenantRecapitulatifSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'idbulletinApprenantType': value.idbulletinApprenantType,\n 'anneeScolaire': value.anneeScolaire,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BulletinDeliberationNavigationDto\n */\nexport interface BulletinDeliberationNavigationDto {\n /**\n * \n * @type {number}\n * @memberof BulletinDeliberationNavigationDto\n */\n idbulletinApprenantType?: number | null;\n /**\n * \n * @type {number}\n * @memberof BulletinDeliberationNavigationDto\n */\n idApprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof BulletinDeliberationNavigationDto\n */\n displayName?: string | null;\n}\n\n/**\n * Check if a given object implements the BulletinDeliberationNavigationDto interface.\n */\nexport function instanceOfBulletinDeliberationNavigationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BulletinDeliberationNavigationDtoFromJSON(json: any): BulletinDeliberationNavigationDto {\n return BulletinDeliberationNavigationDtoFromJSONTyped(json, false);\n}\n\nexport function BulletinDeliberationNavigationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): BulletinDeliberationNavigationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idbulletinApprenantType': !exists(json, 'idbulletinApprenantType') ? undefined : json['idbulletinApprenantType'],\n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'displayName': !exists(json, 'displayName') ? undefined : json['displayName'],\n };\n}\n\nexport function BulletinDeliberationNavigationDtoToJSON(value?: BulletinDeliberationNavigationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idbulletinApprenantType': value.idbulletinApprenantType,\n 'idApprenant': value.idApprenant,\n 'displayName': value.displayName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface BulletinDetailSearch\n */\nexport interface BulletinDetailSearch {\n /**\n * \n * @type {number}\n * @memberof BulletinDetailSearch\n */\n idbulletinApprenantType?: number;\n /**\n * \n * @type {Array}\n * @memberof BulletinDetailSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof BulletinDetailSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof BulletinDetailSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof BulletinDetailSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof BulletinDetailSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof BulletinDetailSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the BulletinDetailSearch interface.\n */\nexport function instanceOfBulletinDetailSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function BulletinDetailSearchFromJSON(json: any): BulletinDetailSearch {\n return BulletinDetailSearchFromJSONTyped(json, false);\n}\n\nexport function BulletinDetailSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): BulletinDetailSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idbulletinApprenantType': !exists(json, 'idbulletinApprenantType') ? undefined : json['idbulletinApprenantType'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function BulletinDetailSearchToJSON(value?: BulletinDetailSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idbulletinApprenantType': value.idbulletinApprenantType,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface CalendrierGlobalSearch\n */\nexport interface CalendrierGlobalSearch {\n /**\n * \n * @type {number}\n * @memberof CalendrierGlobalSearch\n */\n idcentre?: number | null;\n /**\n * \n * @type {Date}\n * @memberof CalendrierGlobalSearch\n */\n jour?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof CalendrierGlobalSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CalendrierGlobalSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof CalendrierGlobalSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof CalendrierGlobalSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof CalendrierGlobalSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof CalendrierGlobalSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the CalendrierGlobalSearch interface.\n */\nexport function instanceOfCalendrierGlobalSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CalendrierGlobalSearchFromJSON(json: any): CalendrierGlobalSearch {\n return CalendrierGlobalSearchFromJSONTyped(json, false);\n}\n\nexport function CalendrierGlobalSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): CalendrierGlobalSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'jour': !exists(json, 'jour') ? undefined : (json['jour'] === null ? null : new Date(json['jour'])),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function CalendrierGlobalSearchToJSON(value?: CalendrierGlobalSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'jour': value.jour === undefined ? undefined : (value.jour === null ? null : value.jour.toISOString()),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface CalendrierSearch\n */\nexport interface CalendrierSearch {\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof CalendrierSearch\n */\n idcentre?: Int32NullableListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof CalendrierSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {number}\n * @memberof CalendrierSearch\n */\n idUser?: number;\n /**\n * \n * @type {Array}\n * @memberof CalendrierSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CalendrierSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof CalendrierSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof CalendrierSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof CalendrierSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof CalendrierSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the CalendrierSearch interface.\n */\nexport function instanceOfCalendrierSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CalendrierSearchFromJSON(json: any): CalendrierSearch {\n return CalendrierSearchFromJSONTyped(json, false);\n}\n\nexport function CalendrierSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): CalendrierSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : Int32NullableListSearchFromJSON(json['idcentre']),\n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function CalendrierSearchToJSON(value?: CalendrierSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': Int32NullableListSearchToJSON(value.idcentre),\n 'libelle': TextSearchToJSON(value.libelle),\n 'idUser': value.idUser,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CanDisableOffreRequestDto\n */\nexport interface CanDisableOffreRequestDto {\n /**\n * \n * @type {number}\n * @memberof CanDisableOffreRequestDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof CanDisableOffreRequestDto\n */\n idmetier?: number;\n}\n\n/**\n * Check if a given object implements the CanDisableOffreRequestDto interface.\n */\nexport function instanceOfCanDisableOffreRequestDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CanDisableOffreRequestDtoFromJSON(json: any): CanDisableOffreRequestDto {\n return CanDisableOffreRequestDtoFromJSONTyped(json, false);\n}\n\nexport function CanDisableOffreRequestDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CanDisableOffreRequestDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n };\n}\n\nexport function CanDisableOffreRequestDtoToJSON(value?: CanDisableOffreRequestDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'idmetier': value.idmetier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ETypeCarteIdentiteUser {\n Apprenant = 'Apprenant',\n Formateur = 'Formateur',\n Representant = 'Representant',\n Tuteur = 'Tuteur',\n ChefEntreprise = 'ChefEntreprise'\n}\n\n\nexport function ETypeCarteIdentiteUserFromJSON(json: any): ETypeCarteIdentiteUser {\n return ETypeCarteIdentiteUserFromJSONTyped(json, false);\n}\n\nexport function ETypeCarteIdentiteUserFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETypeCarteIdentiteUser {\n return json as ETypeCarteIdentiteUser;\n}\n\nexport function ETypeCarteIdentiteUserToJSON(value?: ETypeCarteIdentiteUser | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ETypeCarteIdentiteUser } from './ETypeCarteIdentiteUser';\nimport {\n ETypeCarteIdentiteUserFromJSON,\n ETypeCarteIdentiteUserFromJSONTyped,\n ETypeCarteIdentiteUserToJSON,\n} from './ETypeCarteIdentiteUser';\n\n/**\n * \n * @export\n * @interface CarteIdentiteExistingUserDto\n */\nexport interface CarteIdentiteExistingUserDto {\n /**\n * \n * @type {Array}\n * @memberof CarteIdentiteExistingUserDto\n */\n existingIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CarteIdentiteExistingUserDto\n */\n existingPersonneIds?: Array | null;\n /**\n * \n * @type {ETypeCarteIdentiteUser}\n * @memberof CarteIdentiteExistingUserDto\n */\n typeUser?: ETypeCarteIdentiteUser;\n}\n\n/**\n * Check if a given object implements the CarteIdentiteExistingUserDto interface.\n */\nexport function instanceOfCarteIdentiteExistingUserDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CarteIdentiteExistingUserDtoFromJSON(json: any): CarteIdentiteExistingUserDto {\n return CarteIdentiteExistingUserDtoFromJSONTyped(json, false);\n}\n\nexport function CarteIdentiteExistingUserDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CarteIdentiteExistingUserDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'existingIds': !exists(json, 'existingIds') ? undefined : json['existingIds'],\n 'existingPersonneIds': !exists(json, 'existingPersonneIds') ? undefined : json['existingPersonneIds'],\n 'typeUser': !exists(json, 'typeUser') ? undefined : ETypeCarteIdentiteUserFromJSON(json['typeUser']),\n };\n}\n\nexport function CarteIdentiteExistingUserDtoToJSON(value?: CarteIdentiteExistingUserDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'existingIds': value.existingIds,\n 'existingPersonneIds': value.existingPersonneIds,\n 'typeUser': ETypeCarteIdentiteUserToJSON(value.typeUser),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CentreDemandeRequestDto\n */\nexport interface CentreDemandeRequestDto {\n /**\n * \n * @type {string}\n * @memberof CentreDemandeRequestDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof CentreDemandeRequestDto\n */\n idmetier?: number;\n /**\n * \n * @type {number}\n * @memberof CentreDemandeRequestDto\n */\n iddegre?: number;\n /**\n * \n * @type {number}\n * @memberof CentreDemandeRequestDto\n */\n idtypeCours?: number;\n}\n\n/**\n * Check if a given object implements the CentreDemandeRequestDto interface.\n */\nexport function instanceOfCentreDemandeRequestDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CentreDemandeRequestDtoFromJSON(json: any): CentreDemandeRequestDto {\n return CentreDemandeRequestDtoFromJSONTyped(json, false);\n}\n\nexport function CentreDemandeRequestDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CentreDemandeRequestDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'iddegre': !exists(json, 'iddegre') ? undefined : json['iddegre'],\n 'idtypeCours': !exists(json, 'idtypeCours') ? undefined : json['idtypeCours'],\n };\n}\n\nexport function CentreDemandeRequestDtoToJSON(value?: CentreDemandeRequestDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeScolaire': value.anneeScolaire,\n 'idmetier': value.idmetier,\n 'iddegre': value.iddegre,\n 'idtypeCours': value.idtypeCours,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface CentreSearch\n */\nexport interface CentreSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof CentreSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof CentreSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof CentreSearch\n */\n directeur?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof CentreSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof CentreSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CentreSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CentreSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CentreSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof CentreSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof CentreSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof CentreSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof CentreSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the CentreSearch interface.\n */\nexport function instanceOfCentreSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CentreSearchFromJSON(json: any): CentreSearch {\n return CentreSearchFromJSONTyped(json, false);\n}\n\nexport function CentreSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): CentreSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'directeur': !exists(json, 'directeur') ? undefined : TextSearchFromJSON(json['directeur']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function CentreSearchToJSON(value?: CentreSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'nom': TextSearchToJSON(value.nom),\n 'directeur': TextSearchToJSON(value.directeur),\n 'actif': BooleanSearchToJSON(value.actif),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CentreUserDto\n */\nexport interface CentreUserDto {\n /**\n * \n * @type {number}\n * @memberof CentreUserDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof CentreUserDto\n */\n centre?: string | null;\n /**\n * \n * @type {number}\n * @memberof CentreUserDto\n */\n iduser?: number;\n /**\n * \n * @type {boolean}\n * @memberof CentreUserDto\n */\n presenceApp?: boolean;\n}\n\n/**\n * Check if a given object implements the CentreUserDto interface.\n */\nexport function instanceOfCentreUserDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CentreUserDtoFromJSON(json: any): CentreUserDto {\n return CentreUserDtoFromJSONTyped(json, false);\n}\n\nexport function CentreUserDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CentreUserDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'presenceApp': !exists(json, 'presenceApp') ? undefined : json['presenceApp'],\n };\n}\n\nexport function CentreUserDtoToJSON(value?: CentreUserDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'centre': value.centre,\n 'iduser': value.iduser,\n 'presenceApp': value.presenceApp,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ChangeStatutMultipleDto\n */\nexport interface ChangeStatutMultipleDto {\n /**\n * \n * @type {Array}\n * @memberof ChangeStatutMultipleDto\n */\n demandes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof ChangeStatutMultipleDto\n */\n codeStatut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChangeStatutMultipleDto\n */\n remarqueRefus?: string | null;\n}\n\n/**\n * Check if a given object implements the ChangeStatutMultipleDto interface.\n */\nexport function instanceOfChangeStatutMultipleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChangeStatutMultipleDtoFromJSON(json: any): ChangeStatutMultipleDto {\n return ChangeStatutMultipleDtoFromJSONTyped(json, false);\n}\n\nexport function ChangeStatutMultipleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChangeStatutMultipleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'demandes': !exists(json, 'demandes') ? undefined : json['demandes'],\n 'codeStatut': !exists(json, 'codeStatut') ? undefined : json['codeStatut'],\n 'remarqueRefus': !exists(json, 'remarqueRefus') ? undefined : json['remarqueRefus'],\n };\n}\n\nexport function ChangeStatutMultipleDtoToJSON(value?: ChangeStatutMultipleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'demandes': value.demandes,\n 'codeStatut': value.codeStatut,\n 'remarqueRefus': value.remarqueRefus,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\n\n/**\n * \n * @export\n * @interface ChangementClasseSearch\n */\nexport interface ChangementClasseSearch {\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ChangementClasseSearch\n */\n classesource?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ChangementClasseSearch\n */\n classecible?: Int32ListSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof ChangementClasseSearch\n */\n datechangement?: DateSearch;\n /**\n * \n * @type {number}\n * @memberof ChangementClasseSearch\n */\n idinscription?: number;\n /**\n * \n * @type {Array}\n * @memberof ChangementClasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChangementClasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ChangementClasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChangementClasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ChangementClasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ChangementClasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ChangementClasseSearch interface.\n */\nexport function instanceOfChangementClasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChangementClasseSearchFromJSON(json: any): ChangementClasseSearch {\n return ChangementClasseSearchFromJSONTyped(json, false);\n}\n\nexport function ChangementClasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChangementClasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'classesource': !exists(json, 'classesource') ? undefined : Int32ListSearchFromJSON(json['classesource']),\n 'classecible': !exists(json, 'classecible') ? undefined : Int32ListSearchFromJSON(json['classecible']),\n 'datechangement': !exists(json, 'datechangement') ? undefined : DateSearchFromJSON(json['datechangement']),\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ChangementClasseSearchToJSON(value?: ChangementClasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'classesource': Int32ListSearchToJSON(value.classesource),\n 'classecible': Int32ListSearchToJSON(value.classecible),\n 'datechangement': DateSearchToJSON(value.datechangement),\n 'idinscription': value.idinscription,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ChefEntrepriseDisplayNameDto\n */\nexport interface ChefEntrepriseDisplayNameDto {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseDisplayNameDto\n */\n id?: number;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseDisplayNameDto\n */\n text?: string | null;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseDisplayNameDto\n */\n idchefEntrepriseSiege?: number | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseDisplayNameDto interface.\n */\nexport function instanceOfChefEntrepriseDisplayNameDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseDisplayNameDtoFromJSON(json: any): ChefEntrepriseDisplayNameDto {\n return ChefEntrepriseDisplayNameDtoFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseDisplayNameDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseDisplayNameDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'text': !exists(json, 'text') ? undefined : json['text'],\n 'idchefEntrepriseSiege': !exists(json, 'idchefEntrepriseSiege') ? undefined : json['idchefEntrepriseSiege'],\n };\n}\n\nexport function ChefEntrepriseDisplayNameDtoToJSON(value?: ChefEntrepriseDisplayNameDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'id': value.id,\n 'text': value.text,\n 'idchefEntrepriseSiege': value.idchefEntrepriseSiege,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseDoublonSiegeSocialDto\n */\nexport interface ChefEntrepriseDoublonSiegeSocialDto {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n idchefEntrepriseSiege?: number;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n denominationSociale?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n numeroBce?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n chefEntreprisePrincipal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n remarqueSiege?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ChefEntrepriseDoublonSiegeSocialDto\n */\n email?: EmailDto;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseDoublonSiegeSocialDto interface.\n */\nexport function instanceOfChefEntrepriseDoublonSiegeSocialDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseDoublonSiegeSocialDtoFromJSON(json: any): ChefEntrepriseDoublonSiegeSocialDto {\n return ChefEntrepriseDoublonSiegeSocialDtoFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseDoublonSiegeSocialDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseDoublonSiegeSocialDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntrepriseSiege': !exists(json, 'idchefEntrepriseSiege') ? undefined : json['idchefEntrepriseSiege'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : json['denominationSociale'],\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : json['numeroBce'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'chefEntreprisePrincipal': !exists(json, 'chefEntreprisePrincipal') ? undefined : json['chefEntreprisePrincipal'],\n 'remarqueSiege': !exists(json, 'remarqueSiege') ? undefined : json['remarqueSiege'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n };\n}\n\nexport function ChefEntrepriseDoublonSiegeSocialDtoToJSON(value?: ChefEntrepriseDoublonSiegeSocialDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntrepriseSiege': value.idchefEntrepriseSiege,\n 'idsiegeSocial': value.idsiegeSocial,\n 'denominationSociale': value.denominationSociale,\n 'numeroBce': value.numeroBce,\n 'actif': value.actif,\n 'fonction': value.fonction,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'chefEntreprisePrincipal': value.chefEntreprisePrincipal,\n 'remarqueSiege': value.remarqueSiege,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ChefEntrepriseDoublonSiegeSocialDto } from './ChefEntrepriseDoublonSiegeSocialDto';\nimport {\n ChefEntrepriseDoublonSiegeSocialDtoFromJSON,\n ChefEntrepriseDoublonSiegeSocialDtoFromJSONTyped,\n ChefEntrepriseDoublonSiegeSocialDtoToJSON,\n} from './ChefEntrepriseDoublonSiegeSocialDto';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseDoublonEditDto\n */\nexport interface ChefEntrepriseDoublonEditDto {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseDoublonEditDto\n */\n idchefEntreprise?: number;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseDoublonEditDto\n */\n siegesSociaux?: Array | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseDoublonEditDto interface.\n */\nexport function instanceOfChefEntrepriseDoublonEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseDoublonEditDtoFromJSON(json: any): ChefEntrepriseDoublonEditDto {\n return ChefEntrepriseDoublonEditDtoFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseDoublonEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseDoublonEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'siegesSociaux': !exists(json, 'siegesSociaux') ? undefined : (json['siegesSociaux'] === null ? null : (json['siegesSociaux'] as Array).map(ChefEntrepriseDoublonSiegeSocialDtoFromJSON)),\n };\n}\n\nexport function ChefEntrepriseDoublonEditDtoToJSON(value?: ChefEntrepriseDoublonEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'siegesSociaux': value.siegesSociaux === undefined ? undefined : (value.siegesSociaux === null ? null : (value.siegesSociaux as Array).map(ChefEntrepriseDoublonSiegeSocialDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ChefEntrepriseEditDto\n */\nexport interface ChefEntrepriseEditDto {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseEditDto\n */\n idchefEntreprise?: number;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseEditDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseEditDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseEditDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseEditDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefEntrepriseEditDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseEditDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseEditDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseEditDto\n */\n idpersonne?: number | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseEditDto interface.\n */\nexport function instanceOfChefEntrepriseEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseEditDtoFromJSON(json: any): ChefEntrepriseEditDto {\n return ChefEntrepriseEditDtoFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n };\n}\n\nexport function ChefEntrepriseEditDtoToJSON(value?: ChefEntrepriseEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'codesexe': value.codesexe,\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'idpersonne': value.idpersonne,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LastSiegeSocialDto\n */\nexport interface LastSiegeSocialDto {\n /**\n * \n * @type {string}\n * @memberof LastSiegeSocialDto\n */\n denominationSociale?: string | null;\n /**\n * \n * @type {string}\n * @memberof LastSiegeSocialDto\n */\n fonction?: string | null;\n}\n\n/**\n * Check if a given object implements the LastSiegeSocialDto interface.\n */\nexport function instanceOfLastSiegeSocialDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LastSiegeSocialDtoFromJSON(json: any): LastSiegeSocialDto {\n return LastSiegeSocialDtoFromJSONTyped(json, false);\n}\n\nexport function LastSiegeSocialDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LastSiegeSocialDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : json['denominationSociale'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n };\n}\n\nexport function LastSiegeSocialDtoToJSON(value?: LastSiegeSocialDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'denominationSociale': value.denominationSociale,\n 'fonction': value.fonction,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { LastSiegeSocialDto } from './LastSiegeSocialDto';\nimport {\n LastSiegeSocialDtoFromJSON,\n LastSiegeSocialDtoFromJSONTyped,\n LastSiegeSocialDtoToJSON,\n} from './LastSiegeSocialDto';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseGridDto\n */\nexport interface ChefEntrepriseGridDto {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseGridDto\n */\n idchefEntreprise?: number;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {LastSiegeSocialDto}\n * @memberof ChefEntrepriseGridDto\n */\n lastSiegeSocial?: LastSiegeSocialDto;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefEntrepriseGridDto\n */\n dateNaissance?: Date | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseGridDto interface.\n */\nexport function instanceOfChefEntrepriseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseGridDtoFromJSON(json: any): ChefEntrepriseGridDto {\n return ChefEntrepriseGridDtoFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'lastSiegeSocial': !exists(json, 'lastSiegeSocial') ? undefined : LastSiegeSocialDtoFromJSON(json['lastSiegeSocial']),\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n };\n}\n\nexport function ChefEntrepriseGridDtoToJSON(value?: ChefEntrepriseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'lastSiegeSocial': LastSiegeSocialDtoToJSON(value.lastSiegeSocial),\n 'email': value.email,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'registreNational': value.registreNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ChefEntrepriseGridDto } from './ChefEntrepriseGridDto';\nimport {\n ChefEntrepriseGridDtoFromJSON,\n ChefEntrepriseGridDtoFromJSONTyped,\n ChefEntrepriseGridDtoToJSON,\n} from './ChefEntrepriseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseGridDtoPaginatedResults\n */\nexport interface ChefEntrepriseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseGridDtoPaginatedResults interface.\n */\nexport function instanceOfChefEntrepriseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseGridDtoPaginatedResultsFromJSON(json: any): ChefEntrepriseGridDtoPaginatedResults {\n return ChefEntrepriseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ChefEntrepriseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ChefEntrepriseGridDtoPaginatedResultsToJSON(value?: ChefEntrepriseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ChefEntrepriseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseSearchDto\n */\nexport interface ChefEntrepriseSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ChefEntrepriseSearchDto\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ChefEntrepriseSearchDto\n */\n prenom?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ChefEntrepriseSearchDto\n */\n gsm?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ChefEntrepriseSearchDto\n */\n telephone?: TextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ChefEntrepriseSearchDto\n */\n siegeSocial?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ChefEntrepriseSearchDto\n */\n lieuFormation?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ChefEntrepriseSearchDto\n */\n enseigneLieuFormation?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof ChefEntrepriseSearchDto\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ChefEntrepriseSearchDto\n */\n registreNationalOrEmpty?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ChefEntrepriseSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseSearchDto interface.\n */\nexport function instanceOfChefEntrepriseSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseSearchDtoFromJSON(json: any): ChefEntrepriseSearchDto {\n return ChefEntrepriseSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : UnaccentTextSearchFromJSON(json['prenom']),\n 'gsm': !exists(json, 'gsm') ? undefined : TextSearchFromJSON(json['gsm']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'siegeSocial': !exists(json, 'siegeSocial') ? undefined : UnaccentTextSearchFromJSON(json['siegeSocial']),\n 'lieuFormation': !exists(json, 'lieuFormation') ? undefined : UnaccentTextSearchFromJSON(json['lieuFormation']),\n 'enseigneLieuFormation': !exists(json, 'enseigneLieuFormation') ? undefined : UnaccentTextSearchFromJSON(json['enseigneLieuFormation']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'registreNationalOrEmpty': !exists(json, 'registreNationalOrEmpty') ? undefined : TextSearchFromJSON(json['registreNationalOrEmpty']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ChefEntrepriseSearchDtoToJSON(value?: ChefEntrepriseSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'prenom': UnaccentTextSearchToJSON(value.prenom),\n 'gsm': TextSearchToJSON(value.gsm),\n 'telephone': TextSearchToJSON(value.telephone),\n 'siegeSocial': UnaccentTextSearchToJSON(value.siegeSocial),\n 'lieuFormation': UnaccentTextSearchToJSON(value.lieuFormation),\n 'enseigneLieuFormation': UnaccentTextSearchToJSON(value.enseigneLieuFormation),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'registreNationalOrEmpty': TextSearchToJSON(value.registreNationalOrEmpty),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ChefEntrepriseSelectorGridDto\n */\nexport interface ChefEntrepriseSelectorGridDto {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSelectorGridDto\n */\n idchefEntreprise?: number;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSelectorGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSelectorGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSelectorGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSelectorGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefEntrepriseSelectorGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSelectorGridDto\n */\n numeroNational?: string | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseSelectorGridDto interface.\n */\nexport function instanceOfChefEntrepriseSelectorGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseSelectorGridDtoFromJSON(json: any): ChefEntrepriseSelectorGridDto {\n return ChefEntrepriseSelectorGridDtoFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseSelectorGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseSelectorGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'numeroNational': !exists(json, 'numeroNational') ? undefined : json['numeroNational'],\n };\n}\n\nexport function ChefEntrepriseSelectorGridDtoToJSON(value?: ChefEntrepriseSelectorGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'nationalite': value.nationalite,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'numeroNational': value.numeroNational,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ChefEntrepriseSelectorGridDto } from './ChefEntrepriseSelectorGridDto';\nimport {\n ChefEntrepriseSelectorGridDtoFromJSON,\n ChefEntrepriseSelectorGridDtoFromJSONTyped,\n ChefEntrepriseSelectorGridDtoToJSON,\n} from './ChefEntrepriseSelectorGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseSelectorGridDtoPaginatedResults\n */\nexport interface ChefEntrepriseSelectorGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSelectorGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSelectorGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSelectorGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseSelectorGridDtoPaginatedResults interface.\n */\nexport function instanceOfChefEntrepriseSelectorGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseSelectorGridDtoPaginatedResultsFromJSON(json: any): ChefEntrepriseSelectorGridDtoPaginatedResults {\n return ChefEntrepriseSelectorGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseSelectorGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseSelectorGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ChefEntrepriseSelectorGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ChefEntrepriseSelectorGridDtoPaginatedResultsToJSON(value?: ChefEntrepriseSelectorGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ChefEntrepriseSelectorGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseSelectorSearch\n */\nexport interface ChefEntrepriseSelectorSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ChefEntrepriseSelectorSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ChefEntrepriseSelectorSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ChefEntrepriseSelectorSearch\n */\n numeroNational?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof ChefEntrepriseSelectorSearch\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof ChefEntrepriseSelectorSearch\n */\n nationalite?: StringListSearch;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSelectorSearch\n */\n idsiegeSocial?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSelectorSearch\n */\n selectedChefEntrepriseIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSelectorSearch\n */\n excludedChefEntrepriseIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSelectorSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSelectorSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSelectorSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSelectorSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ChefEntrepriseSelectorSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSelectorSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseSelectorSearch interface.\n */\nexport function instanceOfChefEntrepriseSelectorSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseSelectorSearchFromJSON(json: any): ChefEntrepriseSelectorSearch {\n return ChefEntrepriseSelectorSearchFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseSelectorSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseSelectorSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'numeroNational': !exists(json, 'numeroNational') ? undefined : TextSearchFromJSON(json['numeroNational']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'nationalite': !exists(json, 'nationalite') ? undefined : StringListSearchFromJSON(json['nationalite']),\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'selectedChefEntrepriseIds': !exists(json, 'selectedChefEntrepriseIds') ? undefined : json['selectedChefEntrepriseIds'],\n 'excludedChefEntrepriseIds': !exists(json, 'excludedChefEntrepriseIds') ? undefined : json['excludedChefEntrepriseIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ChefEntrepriseSelectorSearchToJSON(value?: ChefEntrepriseSelectorSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'numeroNational': TextSearchToJSON(value.numeroNational),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'nationalite': StringListSearchToJSON(value.nationalite),\n 'idsiegeSocial': value.idsiegeSocial,\n 'selectedChefEntrepriseIds': value.selectedChefEntrepriseIds,\n 'excludedChefEntrepriseIds': value.excludedChefEntrepriseIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseSiegeEditDto\n */\nexport interface ChefEntrepriseSiegeEditDto {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n idchefEntreprise?: number;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n idchefEntrepriseSiege?: number;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n email?: EmailDto;\n /**\n * \n * @type {boolean}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n chefEntreprisePrincipal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n remarqueSiege?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n fonction?: string | null;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeEditDto\n */\n idpersonne?: number | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseSiegeEditDto interface.\n */\nexport function instanceOfChefEntrepriseSiegeEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseSiegeEditDtoFromJSON(json: any): ChefEntrepriseSiegeEditDto {\n return ChefEntrepriseSiegeEditDtoFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseSiegeEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseSiegeEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idchefEntrepriseSiege': !exists(json, 'idchefEntrepriseSiege') ? undefined : json['idchefEntrepriseSiege'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'chefEntreprisePrincipal': !exists(json, 'chefEntreprisePrincipal') ? undefined : json['chefEntreprisePrincipal'],\n 'remarqueSiege': !exists(json, 'remarqueSiege') ? undefined : json['remarqueSiege'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n };\n}\n\nexport function ChefEntrepriseSiegeEditDtoToJSON(value?: ChefEntrepriseSiegeEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'idchefEntrepriseSiege': value.idchefEntrepriseSiege,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'codesexe': value.codesexe,\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n 'actif': value.actif,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'chefEntreprisePrincipal': value.chefEntreprisePrincipal,\n 'remarqueSiege': value.remarqueSiege,\n 'fonction': value.fonction,\n 'idpersonne': value.idpersonne,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ChefEntrepriseSiegeSocialGridDto\n */\nexport interface ChefEntrepriseSiegeSocialGridDto {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeSocialGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeSocialGridDto\n */\n idchefEntreprise?: number | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeSocialGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeSocialGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeSocialGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeSocialGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeSocialGridDto\n */\n numeroBce?: string | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseSiegeSocialGridDto interface.\n */\nexport function instanceOfChefEntrepriseSiegeSocialGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseSiegeSocialGridDtoFromJSON(json: any): ChefEntrepriseSiegeSocialGridDto {\n return ChefEntrepriseSiegeSocialGridDtoFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseSiegeSocialGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseSiegeSocialGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : json['numeroBce'],\n };\n}\n\nexport function ChefEntrepriseSiegeSocialGridDtoToJSON(value?: ChefEntrepriseSiegeSocialGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'idchefEntreprise': value.idchefEntreprise,\n 'nom': value.nom,\n 'email': value.email,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'numeroBce': value.numeroBce,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ChefEntrepriseSiegeSocialGridDto } from './ChefEntrepriseSiegeSocialGridDto';\nimport {\n ChefEntrepriseSiegeSocialGridDtoFromJSON,\n ChefEntrepriseSiegeSocialGridDtoFromJSONTyped,\n ChefEntrepriseSiegeSocialGridDtoToJSON,\n} from './ChefEntrepriseSiegeSocialGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseSiegeSocialGridDtoPaginatedResults\n */\nexport interface ChefEntrepriseSiegeSocialGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeSocialGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSiegeSocialGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSiegeSocialGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseSiegeSocialGridDtoPaginatedResults interface.\n */\nexport function instanceOfChefEntrepriseSiegeSocialGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseSiegeSocialGridDtoPaginatedResultsFromJSON(json: any): ChefEntrepriseSiegeSocialGridDtoPaginatedResults {\n return ChefEntrepriseSiegeSocialGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseSiegeSocialGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseSiegeSocialGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ChefEntrepriseSiegeSocialGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ChefEntrepriseSiegeSocialGridDtoPaginatedResultsToJSON(value?: ChefEntrepriseSiegeSocialGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ChefEntrepriseSiegeSocialGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ChefEntrepriseSiegeSocialSearch\n */\nexport interface ChefEntrepriseSiegeSocialSearch {\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeSocialSearch\n */\n idChefEntreprise?: number;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSiegeSocialSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefEntrepriseSiegeSocialSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeSocialSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefEntrepriseSiegeSocialSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ChefEntrepriseSiegeSocialSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ChefEntrepriseSiegeSocialSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ChefEntrepriseSiegeSocialSearch interface.\n */\nexport function instanceOfChefEntrepriseSiegeSocialSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefEntrepriseSiegeSocialSearchFromJSON(json: any): ChefEntrepriseSiegeSocialSearch {\n return ChefEntrepriseSiegeSocialSearchFromJSONTyped(json, false);\n}\n\nexport function ChefEntrepriseSiegeSocialSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefEntrepriseSiegeSocialSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idChefEntreprise': !exists(json, 'idChefEntreprise') ? undefined : json['idChefEntreprise'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ChefEntrepriseSiegeSocialSearchToJSON(value?: ChefEntrepriseSiegeSocialSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idChefEntreprise': value.idChefEntreprise,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface ChefsEntrepriseDoublonGridDto\n */\nexport interface ChefsEntrepriseDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n idchefEntreprise?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n adresseDto?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n isCollaborateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseDoublonGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the ChefsEntrepriseDoublonGridDto interface.\n */\nexport function instanceOfChefsEntrepriseDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefsEntrepriseDoublonGridDtoFromJSON(json: any): ChefsEntrepriseDoublonGridDto {\n return ChefsEntrepriseDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function ChefsEntrepriseDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefsEntrepriseDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseDto': !exists(json, 'adresseDto') ? undefined : AdresseDtoFromJSON(json['adresseDto']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isCollaborateur': !exists(json, 'isCollaborateur') ? undefined : json['isCollaborateur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function ChefsEntrepriseDoublonGridDtoToJSON(value?: ChefsEntrepriseDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseDto': AdresseDtoToJSON(value.adresseDto),\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isTuteur': value.isTuteur,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isCollaborateur': value.isCollaborateur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ChefsEntrepriseDoublonGridDto } from './ChefsEntrepriseDoublonGridDto';\nimport {\n ChefsEntrepriseDoublonGridDtoFromJSON,\n ChefsEntrepriseDoublonGridDtoFromJSONTyped,\n ChefsEntrepriseDoublonGridDtoToJSON,\n} from './ChefsEntrepriseDoublonGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ChefsEntrepriseDoublonGridDtoPaginatedResults\n */\nexport interface ChefsEntrepriseDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ChefsEntrepriseDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfChefsEntrepriseDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefsEntrepriseDoublonGridDtoPaginatedResultsFromJSON(json: any): ChefsEntrepriseDoublonGridDtoPaginatedResults {\n return ChefsEntrepriseDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ChefsEntrepriseDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefsEntrepriseDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ChefsEntrepriseDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ChefsEntrepriseDoublonGridDtoPaginatedResultsToJSON(value?: ChefsEntrepriseDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ChefsEntrepriseDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ChefsEntrepriseDoublonSearchDto\n */\nexport interface ChefsEntrepriseDoublonSearchDto {\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n idchefEntreprise?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseDoublonSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ChefsEntrepriseDoublonSearchDto interface.\n */\nexport function instanceOfChefsEntrepriseDoublonSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefsEntrepriseDoublonSearchDtoFromJSON(json: any): ChefsEntrepriseDoublonSearchDto {\n return ChefsEntrepriseDoublonSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ChefsEntrepriseDoublonSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefsEntrepriseDoublonSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ChefsEntrepriseDoublonSearchDtoToJSON(value?: ChefsEntrepriseDoublonSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'registreNational': value.registreNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'idpersonne': value.idpersonne,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface ChefsEntrepriseSiegeDoublonGridDto\n */\nexport interface ChefsEntrepriseSiegeDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n idchefEntreprise?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n idchefEntrepriseSiege?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n adresseDto?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n isCollaborateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ChefsEntrepriseSiegeDoublonGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the ChefsEntrepriseSiegeDoublonGridDto interface.\n */\nexport function instanceOfChefsEntrepriseSiegeDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefsEntrepriseSiegeDoublonGridDtoFromJSON(json: any): ChefsEntrepriseSiegeDoublonGridDto {\n return ChefsEntrepriseSiegeDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function ChefsEntrepriseSiegeDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefsEntrepriseSiegeDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idchefEntrepriseSiege': !exists(json, 'idchefEntrepriseSiege') ? undefined : json['idchefEntrepriseSiege'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseDto': !exists(json, 'adresseDto') ? undefined : AdresseDtoFromJSON(json['adresseDto']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isCollaborateur': !exists(json, 'isCollaborateur') ? undefined : json['isCollaborateur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function ChefsEntrepriseSiegeDoublonGridDtoToJSON(value?: ChefsEntrepriseSiegeDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'idchefEntrepriseSiege': value.idchefEntrepriseSiege,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseDto': AdresseDtoToJSON(value.adresseDto),\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isTuteur': value.isTuteur,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isCollaborateur': value.isCollaborateur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ChefsEntrepriseSiegeDoublonGridDto } from './ChefsEntrepriseSiegeDoublonGridDto';\nimport {\n ChefsEntrepriseSiegeDoublonGridDtoFromJSON,\n ChefsEntrepriseSiegeDoublonGridDtoFromJSONTyped,\n ChefsEntrepriseSiegeDoublonGridDtoToJSON,\n} from './ChefsEntrepriseSiegeDoublonGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults\n */\nexport interface ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfChefsEntrepriseSiegeDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefsEntrepriseSiegeDoublonGridDtoPaginatedResultsFromJSON(json: any): ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults {\n return ChefsEntrepriseSiegeDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ChefsEntrepriseSiegeDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ChefsEntrepriseSiegeDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ChefsEntrepriseSiegeDoublonGridDtoPaginatedResultsToJSON(value?: ChefsEntrepriseSiegeDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ChefsEntrepriseSiegeDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ChefsEntrepriseSiegeDoublonSearchDto\n */\nexport interface ChefsEntrepriseSiegeDoublonSearchDto {\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n idchefEntreprise?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ChefsEntrepriseSiegeDoublonSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ChefsEntrepriseSiegeDoublonSearchDto interface.\n */\nexport function instanceOfChefsEntrepriseSiegeDoublonSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ChefsEntrepriseSiegeDoublonSearchDtoFromJSON(json: any): ChefsEntrepriseSiegeDoublonSearchDto {\n return ChefsEntrepriseSiegeDoublonSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ChefsEntrepriseSiegeDoublonSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChefsEntrepriseSiegeDoublonSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ChefsEntrepriseSiegeDoublonSearchDtoToJSON(value?: ChefsEntrepriseSiegeDoublonSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'registreNational': value.registreNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'idpersonne': value.idpersonne,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ClassHoraireDto\n */\nexport interface ClassHoraireDto {\n /**\n * \n * @type {Date}\n * @memberof ClassHoraireDto\n */\n date?: Date;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n nomJour?: string | null;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage01ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage01PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage01HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage01MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage01LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage01Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage01Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage02ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage02PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage02HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage02MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage02LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage02Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage02Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage03ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage03PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage03HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage03MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage03LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage03Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage03Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage04ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage04PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage04HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage04MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage04LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage04Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage04Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage05ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage05PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage05HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage05MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage05LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage05Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage05Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage06ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage06PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage06HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage06MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage06LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage06Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage06Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage07ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage07PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage07HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage07MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage07LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage07Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage07Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage08ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage08PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage08HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage08MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage08LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage08Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage08Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage09ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage09PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage09HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage09MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage09LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage09Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage09Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage10ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage10PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage10HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage10MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage10LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage10Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage10Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage11ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage11PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage11HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage11MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage11LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage11Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage11Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage12ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage12PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage12HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage12MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage12LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage12Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage12Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage13ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage13PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage13HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage13MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage13LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage13Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage13Numero?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage14ClasseHoraireId?: number;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n plage14PlageId?: number | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage14HeureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage14MatiereId?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClassHoraireDto\n */\n plage14LocalId?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClassHoraireDto\n */\n plage14Rattrapage?: boolean;\n /**\n * \n * @type {number}\n * @memberof ClassHoraireDto\n */\n readonly plage14Numero?: number;\n}\n\n/**\n * Check if a given object implements the ClassHoraireDto interface.\n */\nexport function instanceOfClassHoraireDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClassHoraireDtoFromJSON(json: any): ClassHoraireDto {\n return ClassHoraireDtoFromJSONTyped(json, false);\n}\n\nexport function ClassHoraireDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClassHoraireDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'date': !exists(json, 'date') ? undefined : (new Date(json['date'])),\n 'nomJour': !exists(json, 'nomJour') ? undefined : json['nomJour'],\n 'plage01ClasseHoraireId': !exists(json, 'plage01ClasseHoraireId') ? undefined : json['plage01ClasseHoraireId'],\n 'plage01PlageId': !exists(json, 'plage01PlageId') ? undefined : json['plage01PlageId'],\n 'plage01HeureDebut': !exists(json, 'plage01HeureDebut') ? undefined : json['plage01HeureDebut'],\n 'plage01MatiereId': !exists(json, 'plage01MatiereId') ? undefined : json['plage01MatiereId'],\n 'plage01LocalId': !exists(json, 'plage01LocalId') ? undefined : json['plage01LocalId'],\n 'plage01Rattrapage': !exists(json, 'plage01Rattrapage') ? undefined : json['plage01Rattrapage'],\n 'plage01Numero': !exists(json, 'plage01Numero') ? undefined : json['plage01Numero'],\n 'plage02ClasseHoraireId': !exists(json, 'plage02ClasseHoraireId') ? undefined : json['plage02ClasseHoraireId'],\n 'plage02PlageId': !exists(json, 'plage02PlageId') ? undefined : json['plage02PlageId'],\n 'plage02HeureDebut': !exists(json, 'plage02HeureDebut') ? undefined : json['plage02HeureDebut'],\n 'plage02MatiereId': !exists(json, 'plage02MatiereId') ? undefined : json['plage02MatiereId'],\n 'plage02LocalId': !exists(json, 'plage02LocalId') ? undefined : json['plage02LocalId'],\n 'plage02Rattrapage': !exists(json, 'plage02Rattrapage') ? undefined : json['plage02Rattrapage'],\n 'plage02Numero': !exists(json, 'plage02Numero') ? undefined : json['plage02Numero'],\n 'plage03ClasseHoraireId': !exists(json, 'plage03ClasseHoraireId') ? undefined : json['plage03ClasseHoraireId'],\n 'plage03PlageId': !exists(json, 'plage03PlageId') ? undefined : json['plage03PlageId'],\n 'plage03HeureDebut': !exists(json, 'plage03HeureDebut') ? undefined : json['plage03HeureDebut'],\n 'plage03MatiereId': !exists(json, 'plage03MatiereId') ? undefined : json['plage03MatiereId'],\n 'plage03LocalId': !exists(json, 'plage03LocalId') ? undefined : json['plage03LocalId'],\n 'plage03Rattrapage': !exists(json, 'plage03Rattrapage') ? undefined : json['plage03Rattrapage'],\n 'plage03Numero': !exists(json, 'plage03Numero') ? undefined : json['plage03Numero'],\n 'plage04ClasseHoraireId': !exists(json, 'plage04ClasseHoraireId') ? undefined : json['plage04ClasseHoraireId'],\n 'plage04PlageId': !exists(json, 'plage04PlageId') ? undefined : json['plage04PlageId'],\n 'plage04HeureDebut': !exists(json, 'plage04HeureDebut') ? undefined : json['plage04HeureDebut'],\n 'plage04MatiereId': !exists(json, 'plage04MatiereId') ? undefined : json['plage04MatiereId'],\n 'plage04LocalId': !exists(json, 'plage04LocalId') ? undefined : json['plage04LocalId'],\n 'plage04Rattrapage': !exists(json, 'plage04Rattrapage') ? undefined : json['plage04Rattrapage'],\n 'plage04Numero': !exists(json, 'plage04Numero') ? undefined : json['plage04Numero'],\n 'plage05ClasseHoraireId': !exists(json, 'plage05ClasseHoraireId') ? undefined : json['plage05ClasseHoraireId'],\n 'plage05PlageId': !exists(json, 'plage05PlageId') ? undefined : json['plage05PlageId'],\n 'plage05HeureDebut': !exists(json, 'plage05HeureDebut') ? undefined : json['plage05HeureDebut'],\n 'plage05MatiereId': !exists(json, 'plage05MatiereId') ? undefined : json['plage05MatiereId'],\n 'plage05LocalId': !exists(json, 'plage05LocalId') ? undefined : json['plage05LocalId'],\n 'plage05Rattrapage': !exists(json, 'plage05Rattrapage') ? undefined : json['plage05Rattrapage'],\n 'plage05Numero': !exists(json, 'plage05Numero') ? undefined : json['plage05Numero'],\n 'plage06ClasseHoraireId': !exists(json, 'plage06ClasseHoraireId') ? undefined : json['plage06ClasseHoraireId'],\n 'plage06PlageId': !exists(json, 'plage06PlageId') ? undefined : json['plage06PlageId'],\n 'plage06HeureDebut': !exists(json, 'plage06HeureDebut') ? undefined : json['plage06HeureDebut'],\n 'plage06MatiereId': !exists(json, 'plage06MatiereId') ? undefined : json['plage06MatiereId'],\n 'plage06LocalId': !exists(json, 'plage06LocalId') ? undefined : json['plage06LocalId'],\n 'plage06Rattrapage': !exists(json, 'plage06Rattrapage') ? undefined : json['plage06Rattrapage'],\n 'plage06Numero': !exists(json, 'plage06Numero') ? undefined : json['plage06Numero'],\n 'plage07ClasseHoraireId': !exists(json, 'plage07ClasseHoraireId') ? undefined : json['plage07ClasseHoraireId'],\n 'plage07PlageId': !exists(json, 'plage07PlageId') ? undefined : json['plage07PlageId'],\n 'plage07HeureDebut': !exists(json, 'plage07HeureDebut') ? undefined : json['plage07HeureDebut'],\n 'plage07MatiereId': !exists(json, 'plage07MatiereId') ? undefined : json['plage07MatiereId'],\n 'plage07LocalId': !exists(json, 'plage07LocalId') ? undefined : json['plage07LocalId'],\n 'plage07Rattrapage': !exists(json, 'plage07Rattrapage') ? undefined : json['plage07Rattrapage'],\n 'plage07Numero': !exists(json, 'plage07Numero') ? undefined : json['plage07Numero'],\n 'plage08ClasseHoraireId': !exists(json, 'plage08ClasseHoraireId') ? undefined : json['plage08ClasseHoraireId'],\n 'plage08PlageId': !exists(json, 'plage08PlageId') ? undefined : json['plage08PlageId'],\n 'plage08HeureDebut': !exists(json, 'plage08HeureDebut') ? undefined : json['plage08HeureDebut'],\n 'plage08MatiereId': !exists(json, 'plage08MatiereId') ? undefined : json['plage08MatiereId'],\n 'plage08LocalId': !exists(json, 'plage08LocalId') ? undefined : json['plage08LocalId'],\n 'plage08Rattrapage': !exists(json, 'plage08Rattrapage') ? undefined : json['plage08Rattrapage'],\n 'plage08Numero': !exists(json, 'plage08Numero') ? undefined : json['plage08Numero'],\n 'plage09ClasseHoraireId': !exists(json, 'plage09ClasseHoraireId') ? undefined : json['plage09ClasseHoraireId'],\n 'plage09PlageId': !exists(json, 'plage09PlageId') ? undefined : json['plage09PlageId'],\n 'plage09HeureDebut': !exists(json, 'plage09HeureDebut') ? undefined : json['plage09HeureDebut'],\n 'plage09MatiereId': !exists(json, 'plage09MatiereId') ? undefined : json['plage09MatiereId'],\n 'plage09LocalId': !exists(json, 'plage09LocalId') ? undefined : json['plage09LocalId'],\n 'plage09Rattrapage': !exists(json, 'plage09Rattrapage') ? undefined : json['plage09Rattrapage'],\n 'plage09Numero': !exists(json, 'plage09Numero') ? undefined : json['plage09Numero'],\n 'plage10ClasseHoraireId': !exists(json, 'plage10ClasseHoraireId') ? undefined : json['plage10ClasseHoraireId'],\n 'plage10PlageId': !exists(json, 'plage10PlageId') ? undefined : json['plage10PlageId'],\n 'plage10HeureDebut': !exists(json, 'plage10HeureDebut') ? undefined : json['plage10HeureDebut'],\n 'plage10MatiereId': !exists(json, 'plage10MatiereId') ? undefined : json['plage10MatiereId'],\n 'plage10LocalId': !exists(json, 'plage10LocalId') ? undefined : json['plage10LocalId'],\n 'plage10Rattrapage': !exists(json, 'plage10Rattrapage') ? undefined : json['plage10Rattrapage'],\n 'plage10Numero': !exists(json, 'plage10Numero') ? undefined : json['plage10Numero'],\n 'plage11ClasseHoraireId': !exists(json, 'plage11ClasseHoraireId') ? undefined : json['plage11ClasseHoraireId'],\n 'plage11PlageId': !exists(json, 'plage11PlageId') ? undefined : json['plage11PlageId'],\n 'plage11HeureDebut': !exists(json, 'plage11HeureDebut') ? undefined : json['plage11HeureDebut'],\n 'plage11MatiereId': !exists(json, 'plage11MatiereId') ? undefined : json['plage11MatiereId'],\n 'plage11LocalId': !exists(json, 'plage11LocalId') ? undefined : json['plage11LocalId'],\n 'plage11Rattrapage': !exists(json, 'plage11Rattrapage') ? undefined : json['plage11Rattrapage'],\n 'plage11Numero': !exists(json, 'plage11Numero') ? undefined : json['plage11Numero'],\n 'plage12ClasseHoraireId': !exists(json, 'plage12ClasseHoraireId') ? undefined : json['plage12ClasseHoraireId'],\n 'plage12PlageId': !exists(json, 'plage12PlageId') ? undefined : json['plage12PlageId'],\n 'plage12HeureDebut': !exists(json, 'plage12HeureDebut') ? undefined : json['plage12HeureDebut'],\n 'plage12MatiereId': !exists(json, 'plage12MatiereId') ? undefined : json['plage12MatiereId'],\n 'plage12LocalId': !exists(json, 'plage12LocalId') ? undefined : json['plage12LocalId'],\n 'plage12Rattrapage': !exists(json, 'plage12Rattrapage') ? undefined : json['plage12Rattrapage'],\n 'plage12Numero': !exists(json, 'plage12Numero') ? undefined : json['plage12Numero'],\n 'plage13ClasseHoraireId': !exists(json, 'plage13ClasseHoraireId') ? undefined : json['plage13ClasseHoraireId'],\n 'plage13PlageId': !exists(json, 'plage13PlageId') ? undefined : json['plage13PlageId'],\n 'plage13HeureDebut': !exists(json, 'plage13HeureDebut') ? undefined : json['plage13HeureDebut'],\n 'plage13MatiereId': !exists(json, 'plage13MatiereId') ? undefined : json['plage13MatiereId'],\n 'plage13LocalId': !exists(json, 'plage13LocalId') ? undefined : json['plage13LocalId'],\n 'plage13Rattrapage': !exists(json, 'plage13Rattrapage') ? undefined : json['plage13Rattrapage'],\n 'plage13Numero': !exists(json, 'plage13Numero') ? undefined : json['plage13Numero'],\n 'plage14ClasseHoraireId': !exists(json, 'plage14ClasseHoraireId') ? undefined : json['plage14ClasseHoraireId'],\n 'plage14PlageId': !exists(json, 'plage14PlageId') ? undefined : json['plage14PlageId'],\n 'plage14HeureDebut': !exists(json, 'plage14HeureDebut') ? undefined : json['plage14HeureDebut'],\n 'plage14MatiereId': !exists(json, 'plage14MatiereId') ? undefined : json['plage14MatiereId'],\n 'plage14LocalId': !exists(json, 'plage14LocalId') ? undefined : json['plage14LocalId'],\n 'plage14Rattrapage': !exists(json, 'plage14Rattrapage') ? undefined : json['plage14Rattrapage'],\n 'plage14Numero': !exists(json, 'plage14Numero') ? undefined : json['plage14Numero'],\n };\n}\n\nexport function ClassHoraireDtoToJSON(value?: ClassHoraireDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'date': value.date === undefined ? undefined : (value.date.toISOString()),\n 'nomJour': value.nomJour,\n 'plage01ClasseHoraireId': value.plage01ClasseHoraireId,\n 'plage01PlageId': value.plage01PlageId,\n 'plage01HeureDebut': value.plage01HeureDebut,\n 'plage01MatiereId': value.plage01MatiereId,\n 'plage01LocalId': value.plage01LocalId,\n 'plage01Rattrapage': value.plage01Rattrapage,\n 'plage02ClasseHoraireId': value.plage02ClasseHoraireId,\n 'plage02PlageId': value.plage02PlageId,\n 'plage02HeureDebut': value.plage02HeureDebut,\n 'plage02MatiereId': value.plage02MatiereId,\n 'plage02LocalId': value.plage02LocalId,\n 'plage02Rattrapage': value.plage02Rattrapage,\n 'plage03ClasseHoraireId': value.plage03ClasseHoraireId,\n 'plage03PlageId': value.plage03PlageId,\n 'plage03HeureDebut': value.plage03HeureDebut,\n 'plage03MatiereId': value.plage03MatiereId,\n 'plage03LocalId': value.plage03LocalId,\n 'plage03Rattrapage': value.plage03Rattrapage,\n 'plage04ClasseHoraireId': value.plage04ClasseHoraireId,\n 'plage04PlageId': value.plage04PlageId,\n 'plage04HeureDebut': value.plage04HeureDebut,\n 'plage04MatiereId': value.plage04MatiereId,\n 'plage04LocalId': value.plage04LocalId,\n 'plage04Rattrapage': value.plage04Rattrapage,\n 'plage05ClasseHoraireId': value.plage05ClasseHoraireId,\n 'plage05PlageId': value.plage05PlageId,\n 'plage05HeureDebut': value.plage05HeureDebut,\n 'plage05MatiereId': value.plage05MatiereId,\n 'plage05LocalId': value.plage05LocalId,\n 'plage05Rattrapage': value.plage05Rattrapage,\n 'plage06ClasseHoraireId': value.plage06ClasseHoraireId,\n 'plage06PlageId': value.plage06PlageId,\n 'plage06HeureDebut': value.plage06HeureDebut,\n 'plage06MatiereId': value.plage06MatiereId,\n 'plage06LocalId': value.plage06LocalId,\n 'plage06Rattrapage': value.plage06Rattrapage,\n 'plage07ClasseHoraireId': value.plage07ClasseHoraireId,\n 'plage07PlageId': value.plage07PlageId,\n 'plage07HeureDebut': value.plage07HeureDebut,\n 'plage07MatiereId': value.plage07MatiereId,\n 'plage07LocalId': value.plage07LocalId,\n 'plage07Rattrapage': value.plage07Rattrapage,\n 'plage08ClasseHoraireId': value.plage08ClasseHoraireId,\n 'plage08PlageId': value.plage08PlageId,\n 'plage08HeureDebut': value.plage08HeureDebut,\n 'plage08MatiereId': value.plage08MatiereId,\n 'plage08LocalId': value.plage08LocalId,\n 'plage08Rattrapage': value.plage08Rattrapage,\n 'plage09ClasseHoraireId': value.plage09ClasseHoraireId,\n 'plage09PlageId': value.plage09PlageId,\n 'plage09HeureDebut': value.plage09HeureDebut,\n 'plage09MatiereId': value.plage09MatiereId,\n 'plage09LocalId': value.plage09LocalId,\n 'plage09Rattrapage': value.plage09Rattrapage,\n 'plage10ClasseHoraireId': value.plage10ClasseHoraireId,\n 'plage10PlageId': value.plage10PlageId,\n 'plage10HeureDebut': value.plage10HeureDebut,\n 'plage10MatiereId': value.plage10MatiereId,\n 'plage10LocalId': value.plage10LocalId,\n 'plage10Rattrapage': value.plage10Rattrapage,\n 'plage11ClasseHoraireId': value.plage11ClasseHoraireId,\n 'plage11PlageId': value.plage11PlageId,\n 'plage11HeureDebut': value.plage11HeureDebut,\n 'plage11MatiereId': value.plage11MatiereId,\n 'plage11LocalId': value.plage11LocalId,\n 'plage11Rattrapage': value.plage11Rattrapage,\n 'plage12ClasseHoraireId': value.plage12ClasseHoraireId,\n 'plage12PlageId': value.plage12PlageId,\n 'plage12HeureDebut': value.plage12HeureDebut,\n 'plage12MatiereId': value.plage12MatiereId,\n 'plage12LocalId': value.plage12LocalId,\n 'plage12Rattrapage': value.plage12Rattrapage,\n 'plage13ClasseHoraireId': value.plage13ClasseHoraireId,\n 'plage13PlageId': value.plage13PlageId,\n 'plage13HeureDebut': value.plage13HeureDebut,\n 'plage13MatiereId': value.plage13MatiereId,\n 'plage13LocalId': value.plage13LocalId,\n 'plage13Rattrapage': value.plage13Rattrapage,\n 'plage14ClasseHoraireId': value.plage14ClasseHoraireId,\n 'plage14PlageId': value.plage14PlageId,\n 'plage14HeureDebut': value.plage14HeureDebut,\n 'plage14MatiereId': value.plage14MatiereId,\n 'plage14LocalId': value.plage14LocalId,\n 'plage14Rattrapage': value.plage14Rattrapage,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ClasseApprenantSearch\n */\nexport interface ClasseApprenantSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseApprenantSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseApprenantSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {number}\n * @memberof ClasseApprenantSearch\n */\n idClasse?: number;\n /**\n * \n * @type {Array}\n * @memberof ClasseApprenantSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseApprenantSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClasseApprenantSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClasseApprenantSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClasseApprenantSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClasseApprenantSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClasseApprenantSearch interface.\n */\nexport function instanceOfClasseApprenantSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseApprenantSearchFromJSON(json: any): ClasseApprenantSearch {\n return ClasseApprenantSearchFromJSONTyped(json, false);\n}\n\nexport function ClasseApprenantSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseApprenantSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClasseApprenantSearchToJSON(value?: ClasseApprenantSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'idClasse': value.idClasse,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ClasseHoraireCoherenceSearch\n */\nexport interface ClasseHoraireCoherenceSearch {\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireCoherenceSearch\n */\n idClasse?: number;\n /**\n * \n * @type {Array}\n * @memberof ClasseHoraireCoherenceSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseHoraireCoherenceSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireCoherenceSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireCoherenceSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClasseHoraireCoherenceSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClasseHoraireCoherenceSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClasseHoraireCoherenceSearch interface.\n */\nexport function instanceOfClasseHoraireCoherenceSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseHoraireCoherenceSearchFromJSON(json: any): ClasseHoraireCoherenceSearch {\n return ClasseHoraireCoherenceSearchFromJSONTyped(json, false);\n}\n\nexport function ClasseHoraireCoherenceSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseHoraireCoherenceSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClasseHoraireCoherenceSearchToJSON(value?: ClasseHoraireCoherenceSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ClasseHoraireIncoherenceSearch\n */\nexport interface ClasseHoraireIncoherenceSearch {\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n idClasse?: number;\n /**\n * \n * @type {StringListSearch}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n typeIncoherence?: StringListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n jour?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n local?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n formateur?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n incoherence?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClasseHoraireIncoherenceSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClasseHoraireIncoherenceSearch interface.\n */\nexport function instanceOfClasseHoraireIncoherenceSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseHoraireIncoherenceSearchFromJSON(json: any): ClasseHoraireIncoherenceSearch {\n return ClasseHoraireIncoherenceSearchFromJSONTyped(json, false);\n}\n\nexport function ClasseHoraireIncoherenceSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseHoraireIncoherenceSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'typeIncoherence': !exists(json, 'typeIncoherence') ? undefined : StringListSearchFromJSON(json['typeIncoherence']),\n 'jour': !exists(json, 'jour') ? undefined : TextSearchFromJSON(json['jour']),\n 'local': !exists(json, 'local') ? undefined : TextSearchFromJSON(json['local']),\n 'formateur': !exists(json, 'formateur') ? undefined : TextSearchFromJSON(json['formateur']),\n 'incoherence': !exists(json, 'incoherence') ? undefined : TextSearchFromJSON(json['incoherence']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClasseHoraireIncoherenceSearchToJSON(value?: ClasseHoraireIncoherenceSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'typeIncoherence': StringListSearchToJSON(value.typeIncoherence),\n 'jour': TextSearchToJSON(value.jour),\n 'local': TextSearchToJSON(value.local),\n 'formateur': TextSearchToJSON(value.formateur),\n 'incoherence': TextSearchToJSON(value.incoherence),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ClasseHoraireJourColumnsDto\n */\nexport interface ClasseHoraireJourColumnsDto {\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireJourColumnsDto\n */\n idclasseHoraire?: number;\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireJourColumnsDto\n */\n numero?: number;\n /**\n * \n * @type {string}\n * @memberof ClasseHoraireJourColumnsDto\n */\n codeClassMatiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof ClasseHoraireJourColumnsDto\n */\n heureDebut?: string | null;\n}\n\n/**\n * Check if a given object implements the ClasseHoraireJourColumnsDto interface.\n */\nexport function instanceOfClasseHoraireJourColumnsDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseHoraireJourColumnsDtoFromJSON(json: any): ClasseHoraireJourColumnsDto {\n return ClasseHoraireJourColumnsDtoFromJSONTyped(json, false);\n}\n\nexport function ClasseHoraireJourColumnsDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseHoraireJourColumnsDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasseHoraire': !exists(json, 'idclasseHoraire') ? undefined : json['idclasseHoraire'],\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'codeClassMatiere': !exists(json, 'codeClassMatiere') ? undefined : json['codeClassMatiere'],\n 'heureDebut': !exists(json, 'heureDebut') ? undefined : json['heureDebut'],\n };\n}\n\nexport function ClasseHoraireJourColumnsDtoToJSON(value?: ClasseHoraireJourColumnsDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasseHoraire': value.idclasseHoraire,\n 'numero': value.numero,\n 'codeClassMatiere': value.codeClassMatiere,\n 'heureDebut': value.heureDebut,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ClasseHoraireMatiereSearch\n */\nexport interface ClasseHoraireMatiereSearch {\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireMatiereSearch\n */\n idClasse?: number;\n /**\n * \n * @type {Array}\n * @memberof ClasseHoraireMatiereSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseHoraireMatiereSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireMatiereSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClasseHoraireMatiereSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClasseHoraireMatiereSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClasseHoraireMatiereSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClasseHoraireMatiereSearch interface.\n */\nexport function instanceOfClasseHoraireMatiereSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseHoraireMatiereSearchFromJSON(json: any): ClasseHoraireMatiereSearch {\n return ClasseHoraireMatiereSearchFromJSONTyped(json, false);\n}\n\nexport function ClasseHoraireMatiereSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseHoraireMatiereSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClasseHoraireMatiereSearchToJSON(value?: ClasseHoraireMatiereSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ClasseInfosForSuiviDto\n */\nexport interface ClasseInfosForSuiviDto {\n /**\n * \n * @type {number}\n * @memberof ClasseInfosForSuiviDto\n */\n idmetier?: number;\n}\n\n/**\n * Check if a given object implements the ClasseInfosForSuiviDto interface.\n */\nexport function instanceOfClasseInfosForSuiviDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseInfosForSuiviDtoFromJSON(json: any): ClasseInfosForSuiviDto {\n return ClasseInfosForSuiviDtoFromJSONTyped(json, false);\n}\n\nexport function ClasseInfosForSuiviDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseInfosForSuiviDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n };\n}\n\nexport function ClasseInfosForSuiviDtoToJSON(value?: ClasseInfosForSuiviDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idmetier': value.idmetier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ClasseJourDto\n */\nexport interface ClasseJourDto {\n /**\n * \n * @type {string}\n * @memberof ClasseJourDto\n */\n jour?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ClasseJourDto\n */\n presenceComplete?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ClasseJourDto\n */\n inTheFuture?: boolean;\n}\n\n/**\n * Check if a given object implements the ClasseJourDto interface.\n */\nexport function instanceOfClasseJourDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseJourDtoFromJSON(json: any): ClasseJourDto {\n return ClasseJourDtoFromJSONTyped(json, false);\n}\n\nexport function ClasseJourDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseJourDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'jour': !exists(json, 'jour') ? undefined : json['jour'],\n 'presenceComplete': !exists(json, 'presenceComplete') ? undefined : json['presenceComplete'],\n 'inTheFuture': !exists(json, 'inTheFuture') ? undefined : json['inTheFuture'],\n };\n}\n\nexport function ClasseJourDtoToJSON(value?: ClasseJourDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'jour': value.jour,\n 'presenceComplete': value.presenceComplete,\n 'inTheFuture': value.inTheFuture,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ClasseMatiereSearch\n */\nexport interface ClasseMatiereSearch {\n /**\n * \n * @type {number}\n * @memberof ClasseMatiereSearch\n */\n idClasse?: number;\n /**\n * \n * @type {number}\n * @memberof ClasseMatiereSearch\n */\n idFormateur?: number;\n /**\n * \n * @type {Array}\n * @memberof ClasseMatiereSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseMatiereSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClasseMatiereSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClasseMatiereSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClasseMatiereSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClasseMatiereSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClasseMatiereSearch interface.\n */\nexport function instanceOfClasseMatiereSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseMatiereSearchFromJSON(json: any): ClasseMatiereSearch {\n return ClasseMatiereSearchFromJSONTyped(json, false);\n}\n\nexport function ClasseMatiereSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseMatiereSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClasseMatiereSearchToJSON(value?: ClasseMatiereSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'idFormateur': value.idFormateur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ClasseMiseAJourMasseSearch\n */\nexport interface ClasseMiseAJourMasseSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseMiseAJourMasseSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseMiseAJourMasseSearch\n */\n nomClasse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseMiseAJourMasseSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseMiseAJourMasseSearch\n */\n lieucours?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof ClasseMiseAJourMasseSearch\n */\n dateCours?: DateSearch;\n /**\n * \n * @type {number}\n * @memberof ClasseMiseAJourMasseSearch\n */\n idclasse?: number | null;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseMiseAJourMasseSearch\n */\n statutLocalisationAgrement?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseMiseAJourMasseSearch\n */\n idconseillerAgrement?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof ClasseMiseAJourMasseSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseMiseAJourMasseSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseMiseAJourMasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseMiseAJourMasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClasseMiseAJourMasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClasseMiseAJourMasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClasseMiseAJourMasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClasseMiseAJourMasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClasseMiseAJourMasseSearch interface.\n */\nexport function instanceOfClasseMiseAJourMasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseMiseAJourMasseSearchFromJSON(json: any): ClasseMiseAJourMasseSearch {\n return ClasseMiseAJourMasseSearchFromJSONTyped(json, false);\n}\n\nexport function ClasseMiseAJourMasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseMiseAJourMasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'nomClasse': !exists(json, 'nomClasse') ? undefined : TextSearchFromJSON(json['nomClasse']),\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'lieucours': !exists(json, 'lieucours') ? undefined : TextSearchFromJSON(json['lieucours']),\n 'dateCours': !exists(json, 'dateCours') ? undefined : DateSearchFromJSON(json['dateCours']),\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'statutLocalisationAgrement': !exists(json, 'statutLocalisationAgrement') ? undefined : TextSearchFromJSON(json['statutLocalisationAgrement']),\n 'idconseillerAgrement': !exists(json, 'idconseillerAgrement') ? undefined : TextSearchFromJSON(json['idconseillerAgrement']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClasseMiseAJourMasseSearchToJSON(value?: ClasseMiseAJourMasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'nomClasse': TextSearchToJSON(value.nomClasse),\n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'lieucours': TextSearchToJSON(value.lieucours),\n 'dateCours': DateSearchToJSON(value.dateCours),\n 'idclasse': value.idclasse,\n 'statutLocalisationAgrement': TextSearchToJSON(value.statutLocalisationAgrement),\n 'idconseillerAgrement': TextSearchToJSON(value.idconseillerAgrement),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ClasseRemarqueSearch\n */\nexport interface ClasseRemarqueSearch {\n /**\n * \n * @type {number}\n * @memberof ClasseRemarqueSearch\n */\n idClasse?: number;\n /**\n * \n * @type {Array}\n * @memberof ClasseRemarqueSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseRemarqueSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClasseRemarqueSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClasseRemarqueSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClasseRemarqueSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClasseRemarqueSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClasseRemarqueSearch interface.\n */\nexport function instanceOfClasseRemarqueSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseRemarqueSearchFromJSON(json: any): ClasseRemarqueSearch {\n return ClasseRemarqueSearchFromJSONTyped(json, false);\n}\n\nexport function ClasseRemarqueSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseRemarqueSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClasseRemarqueSearchToJSON(value?: ClasseRemarqueSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ClasseSearch\n */\nexport interface ClasseSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseSearch\n */\n annee?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClasseSearch\n */\n lieu?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ClasseSearch\n */\n horaireCoherent?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof ClasseSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClasseSearch interface.\n */\nexport function instanceOfClasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClasseSearchFromJSON(json: any): ClasseSearch {\n return ClasseSearchFromJSONTyped(json, false);\n}\n\nexport function ClasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'annee': !exists(json, 'annee') ? undefined : TextSearchFromJSON(json['annee']),\n 'lieu': !exists(json, 'lieu') ? undefined : TextSearchFromJSON(json['lieu']),\n 'horaireCoherent': !exists(json, 'horaireCoherent') ? undefined : BooleanSearchFromJSON(json['horaireCoherent']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClasseSearchToJSON(value?: ClasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'code': TextSearchToJSON(value.code),\n 'annee': TextSearchToJSON(value.annee),\n 'lieu': TextSearchToJSON(value.lieu),\n 'horaireCoherent': BooleanSearchToJSON(value.horaireCoherent),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ClauseMetierSearch\n */\nexport interface ClauseMetierSearch {\n /**\n * \n * @type {number}\n * @memberof ClauseMetierSearch\n */\n idclause?: number;\n /**\n * \n * @type {Array}\n * @memberof ClauseMetierSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClauseMetierSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClauseMetierSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClauseMetierSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClauseMetierSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClauseMetierSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClauseMetierSearch interface.\n */\nexport function instanceOfClauseMetierSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClauseMetierSearchFromJSON(json: any): ClauseMetierSearch {\n return ClauseMetierSearchFromJSONTyped(json, false);\n}\n\nexport function ClauseMetierSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClauseMetierSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclause': !exists(json, 'idclause') ? undefined : json['idclause'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClauseMetierSearchToJSON(value?: ClauseMetierSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclause': value.idclause,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ClauseSearch\n */\nexport interface ClauseSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ClauseSearch\n */\n title?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ClauseSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ClauseSearch\n */\n idstade?: Int32ListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ClauseSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof ClauseSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClauseSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClauseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ClauseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ClauseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ClauseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ClauseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ClauseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ClauseSearch interface.\n */\nexport function instanceOfClauseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ClauseSearchFromJSON(json: any): ClauseSearch {\n return ClauseSearchFromJSONTyped(json, false);\n}\n\nexport function ClauseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClauseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'title': !exists(json, 'title') ? undefined : TextSearchFromJSON(json['title']),\n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'idstade': !exists(json, 'idstade') ? undefined : Int32ListSearchFromJSON(json['idstade']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ClauseSearchToJSON(value?: ClauseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'title': TextSearchToJSON(value.title),\n 'description': TextSearchToJSON(value.description),\n 'idstade': Int32ListSearchToJSON(value.idstade),\n 'actif': BooleanSearchToJSON(value.actif),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface CodePostalSearch\n */\nexport interface CodePostalSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof CodePostalSearch\n */\n codePostal?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof CodePostalSearch\n */\n commune?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof CodePostalSearch\n */\n localite?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof CodePostalSearch\n */\n pays?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof CodePostalSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof CodePostalSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CodePostalSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CodePostalSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CodePostalSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof CodePostalSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof CodePostalSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof CodePostalSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof CodePostalSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the CodePostalSearch interface.\n */\nexport function instanceOfCodePostalSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CodePostalSearchFromJSON(json: any): CodePostalSearch {\n return CodePostalSearchFromJSONTyped(json, false);\n}\n\nexport function CodePostalSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): CodePostalSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codePostal': !exists(json, 'codePostal') ? undefined : TextSearchFromJSON(json['codePostal']),\n 'commune': !exists(json, 'commune') ? undefined : TextSearchFromJSON(json['commune']),\n 'localite': !exists(json, 'localite') ? undefined : TextSearchFromJSON(json['localite']),\n 'pays': !exists(json, 'pays') ? undefined : TextSearchFromJSON(json['pays']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function CodePostalSearchToJSON(value?: CodePostalSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codePostal': TextSearchToJSON(value.codePostal),\n 'commune': TextSearchToJSON(value.commune),\n 'localite': TextSearchToJSON(value.localite),\n 'pays': TextSearchToJSON(value.pays),\n 'actif': BooleanSearchToJSON(value.actif),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CommissionParitaireEditDto\n */\nexport interface CommissionParitaireEditDto {\n /**\n * \n * @type {number}\n * @memberof CommissionParitaireEditDto\n */\n idcommissionParitaire?: number;\n /**\n * \n * @type {string}\n * @memberof CommissionParitaireEditDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof CommissionParitaireEditDto\n */\n code?: string | null;\n /**\n * \n * @type {number}\n * @memberof CommissionParitaireEditDto\n */\n idariane?: number | null;\n}\n\n/**\n * Check if a given object implements the CommissionParitaireEditDto interface.\n */\nexport function instanceOfCommissionParitaireEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CommissionParitaireEditDtoFromJSON(json: any): CommissionParitaireEditDto {\n return CommissionParitaireEditDtoFromJSONTyped(json, false);\n}\n\nexport function CommissionParitaireEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CommissionParitaireEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcommissionParitaire': !exists(json, 'idcommissionParitaire') ? undefined : json['idcommissionParitaire'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'idariane': !exists(json, 'idariane') ? undefined : json['idariane'],\n };\n}\n\nexport function CommissionParitaireEditDtoToJSON(value?: CommissionParitaireEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcommissionParitaire': value.idcommissionParitaire,\n 'libelle': value.libelle,\n 'code': value.code,\n 'idariane': value.idariane,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CommissionParitaireGridDto\n */\nexport interface CommissionParitaireGridDto {\n /**\n * \n * @type {number}\n * @memberof CommissionParitaireGridDto\n */\n idcommissionParitaire?: number;\n /**\n * \n * @type {string}\n * @memberof CommissionParitaireGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof CommissionParitaireGridDto\n */\n code?: string | null;\n}\n\n/**\n * Check if a given object implements the CommissionParitaireGridDto interface.\n */\nexport function instanceOfCommissionParitaireGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CommissionParitaireGridDtoFromJSON(json: any): CommissionParitaireGridDto {\n return CommissionParitaireGridDtoFromJSONTyped(json, false);\n}\n\nexport function CommissionParitaireGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CommissionParitaireGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcommissionParitaire': !exists(json, 'idcommissionParitaire') ? undefined : json['idcommissionParitaire'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n };\n}\n\nexport function CommissionParitaireGridDtoToJSON(value?: CommissionParitaireGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcommissionParitaire': value.idcommissionParitaire,\n 'libelle': value.libelle,\n 'code': value.code,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { CommissionParitaireGridDto } from './CommissionParitaireGridDto';\nimport {\n CommissionParitaireGridDtoFromJSON,\n CommissionParitaireGridDtoFromJSONTyped,\n CommissionParitaireGridDtoToJSON,\n} from './CommissionParitaireGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface CommissionParitaireGridDtoPaginatedResults\n */\nexport interface CommissionParitaireGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof CommissionParitaireGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof CommissionParitaireGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CommissionParitaireGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the CommissionParitaireGridDtoPaginatedResults interface.\n */\nexport function instanceOfCommissionParitaireGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CommissionParitaireGridDtoPaginatedResultsFromJSON(json: any): CommissionParitaireGridDtoPaginatedResults {\n return CommissionParitaireGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function CommissionParitaireGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): CommissionParitaireGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(CommissionParitaireGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function CommissionParitaireGridDtoPaginatedResultsToJSON(value?: CommissionParitaireGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(CommissionParitaireGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface CommissionParitaireSearchDto\n */\nexport interface CommissionParitaireSearchDto {\n /**\n * \n * @type {TextSearch}\n * @memberof CommissionParitaireSearchDto\n */\n libelle?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof CommissionParitaireSearchDto\n */\n code?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof CommissionParitaireSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CommissionParitaireSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof CommissionParitaireSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof CommissionParitaireSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof CommissionParitaireSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof CommissionParitaireSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the CommissionParitaireSearchDto interface.\n */\nexport function instanceOfCommissionParitaireSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CommissionParitaireSearchDtoFromJSON(json: any): CommissionParitaireSearchDto {\n return CommissionParitaireSearchDtoFromJSONTyped(json, false);\n}\n\nexport function CommissionParitaireSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CommissionParitaireSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function CommissionParitaireSearchDtoToJSON(value?: CommissionParitaireSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'code': TextSearchToJSON(value.code),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ConseillerPedagogiqueMetierLiesSearch\n */\nexport interface ConseillerPedagogiqueMetierLiesSearch {\n /**\n * \n * @type {string}\n * @memberof ConseillerPedagogiqueMetierLiesSearch\n */\n idConseiller?: string | null;\n /**\n * \n * @type {Array}\n * @memberof ConseillerPedagogiqueMetierLiesSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ConseillerPedagogiqueMetierLiesSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ConseillerPedagogiqueMetierLiesSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ConseillerPedagogiqueMetierLiesSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ConseillerPedagogiqueMetierLiesSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ConseillerPedagogiqueMetierLiesSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ConseillerPedagogiqueMetierLiesSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ConseillerPedagogiqueMetierLiesSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ConseillerPedagogiqueMetierLiesSearch interface.\n */\nexport function instanceOfConseillerPedagogiqueMetierLiesSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ConseillerPedagogiqueMetierLiesSearchFromJSON(json: any): ConseillerPedagogiqueMetierLiesSearch {\n return ConseillerPedagogiqueMetierLiesSearchFromJSONTyped(json, false);\n}\n\nexport function ConseillerPedagogiqueMetierLiesSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConseillerPedagogiqueMetierLiesSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idConseiller': !exists(json, 'idConseiller') ? undefined : json['idConseiller'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ConseillerPedagogiqueMetierLiesSearchToJSON(value?: ConseillerPedagogiqueMetierLiesSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idConseiller': value.idConseiller,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ConseillerPedagogiqueSearch\n */\nexport interface ConseillerPedagogiqueSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ConseillerPedagogiqueSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ConseillerPedagogiqueSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ConseillerPedagogiqueSearch\n */\n idconseillerPedagogique?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ConseillerPedagogiqueSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof ConseillerPedagogiqueSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ConseillerPedagogiqueSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ConseillerPedagogiqueSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ConseillerPedagogiqueSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ConseillerPedagogiqueSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ConseillerPedagogiqueSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ConseillerPedagogiqueSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ConseillerPedagogiqueSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ConseillerPedagogiqueSearch interface.\n */\nexport function instanceOfConseillerPedagogiqueSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ConseillerPedagogiqueSearchFromJSON(json: any): ConseillerPedagogiqueSearch {\n return ConseillerPedagogiqueSearchFromJSONTyped(json, false);\n}\n\nexport function ConseillerPedagogiqueSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConseillerPedagogiqueSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'idconseillerPedagogique': !exists(json, 'idconseillerPedagogique') ? undefined : TextSearchFromJSON(json['idconseillerPedagogique']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ConseillerPedagogiqueSearchToJSON(value?: ConseillerPedagogiqueSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'idconseillerPedagogique': TextSearchToJSON(value.idconseillerPedagogique),\n 'actif': BooleanSearchToJSON(value.actif),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ContactDoublonLieuFormationDto\n */\nexport interface ContactDoublonLieuFormationDto {\n /**\n * \n * @type {number}\n * @memberof ContactDoublonLieuFormationDto\n */\n idcontactLieu?: number;\n /**\n * \n * @type {number}\n * @memberof ContactDoublonLieuFormationDto\n */\n idcontact?: number;\n /**\n * \n * @type {number}\n * @memberof ContactDoublonLieuFormationDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonLieuFormationDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonLieuFormationDto\n */\n enseigne?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonLieuFormationDto\n */\n principal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonLieuFormationDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactDoublonLieuFormationDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonLieuFormationDto\n */\n remarqueLieu?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactDoublonLieuFormationDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactDoublonLieuFormationDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ContactDoublonLieuFormationDto\n */\n email?: EmailDto;\n}\n\n/**\n * Check if a given object implements the ContactDoublonLieuFormationDto interface.\n */\nexport function instanceOfContactDoublonLieuFormationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactDoublonLieuFormationDtoFromJSON(json: any): ContactDoublonLieuFormationDto {\n return ContactDoublonLieuFormationDtoFromJSONTyped(json, false);\n}\n\nexport function ContactDoublonLieuFormationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactDoublonLieuFormationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontactLieu': !exists(json, 'idcontactLieu') ? undefined : json['idcontactLieu'],\n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'enseigne': !exists(json, 'enseigne') ? undefined : json['enseigne'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'remarqueLieu': !exists(json, 'remarqueLieu') ? undefined : json['remarqueLieu'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n };\n}\n\nexport function ContactDoublonLieuFormationDtoToJSON(value?: ContactDoublonLieuFormationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontactLieu': value.idcontactLieu,\n 'idcontact': value.idcontact,\n 'idlieuFormation': value.idlieuFormation,\n 'nom': value.nom,\n 'enseigne': value.enseigne,\n 'principal': value.principal,\n 'fonction': value.fonction,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'remarqueLieu': value.remarqueLieu,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ContactDoublonSiegeSocialDto\n */\nexport interface ContactDoublonSiegeSocialDto {\n /**\n * \n * @type {number}\n * @memberof ContactDoublonSiegeSocialDto\n */\n idcontactSiege?: number;\n /**\n * \n * @type {number}\n * @memberof ContactDoublonSiegeSocialDto\n */\n idcontact?: number;\n /**\n * \n * @type {number}\n * @memberof ContactDoublonSiegeSocialDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSiegeSocialDto\n */\n denominationSociale?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSiegeSocialDto\n */\n numeroBce?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonSiegeSocialDto\n */\n principal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSiegeSocialDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactDoublonSiegeSocialDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSiegeSocialDto\n */\n remarqueSiege?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactDoublonSiegeSocialDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactDoublonSiegeSocialDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ContactDoublonSiegeSocialDto\n */\n email?: EmailDto;\n}\n\n/**\n * Check if a given object implements the ContactDoublonSiegeSocialDto interface.\n */\nexport function instanceOfContactDoublonSiegeSocialDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactDoublonSiegeSocialDtoFromJSON(json: any): ContactDoublonSiegeSocialDto {\n return ContactDoublonSiegeSocialDtoFromJSONTyped(json, false);\n}\n\nexport function ContactDoublonSiegeSocialDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactDoublonSiegeSocialDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontactSiege': !exists(json, 'idcontactSiege') ? undefined : json['idcontactSiege'],\n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : json['denominationSociale'],\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : json['numeroBce'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'remarqueSiege': !exists(json, 'remarqueSiege') ? undefined : json['remarqueSiege'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n };\n}\n\nexport function ContactDoublonSiegeSocialDtoToJSON(value?: ContactDoublonSiegeSocialDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontactSiege': value.idcontactSiege,\n 'idcontact': value.idcontact,\n 'idsiegeSocial': value.idsiegeSocial,\n 'denominationSociale': value.denominationSociale,\n 'numeroBce': value.numeroBce,\n 'principal': value.principal,\n 'fonction': value.fonction,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'remarqueSiege': value.remarqueSiege,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContactDoublonLieuFormationDto } from './ContactDoublonLieuFormationDto';\nimport {\n ContactDoublonLieuFormationDtoFromJSON,\n ContactDoublonLieuFormationDtoFromJSONTyped,\n ContactDoublonLieuFormationDtoToJSON,\n} from './ContactDoublonLieuFormationDto';\nimport type { ContactDoublonSiegeSocialDto } from './ContactDoublonSiegeSocialDto';\nimport {\n ContactDoublonSiegeSocialDtoFromJSON,\n ContactDoublonSiegeSocialDtoFromJSONTyped,\n ContactDoublonSiegeSocialDtoToJSON,\n} from './ContactDoublonSiegeSocialDto';\n\n/**\n * \n * @export\n * @interface ContactDoublonEditDto\n */\nexport interface ContactDoublonEditDto {\n /**\n * \n * @type {number}\n * @memberof ContactDoublonEditDto\n */\n idcontact?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactDoublonEditDto\n */\n siegesSociaux?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactDoublonEditDto\n */\n lieuxFormation?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContactDoublonEditDto interface.\n */\nexport function instanceOfContactDoublonEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactDoublonEditDtoFromJSON(json: any): ContactDoublonEditDto {\n return ContactDoublonEditDtoFromJSONTyped(json, false);\n}\n\nexport function ContactDoublonEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactDoublonEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'siegesSociaux': !exists(json, 'siegesSociaux') ? undefined : (json['siegesSociaux'] === null ? null : (json['siegesSociaux'] as Array).map(ContactDoublonSiegeSocialDtoFromJSON)),\n 'lieuxFormation': !exists(json, 'lieuxFormation') ? undefined : (json['lieuxFormation'] === null ? null : (json['lieuxFormation'] as Array).map(ContactDoublonLieuFormationDtoFromJSON)),\n };\n}\n\nexport function ContactDoublonEditDtoToJSON(value?: ContactDoublonEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'siegesSociaux': value.siegesSociaux === undefined ? undefined : (value.siegesSociaux === null ? null : (value.siegesSociaux as Array).map(ContactDoublonSiegeSocialDtoToJSON)),\n 'lieuxFormation': value.lieuxFormation === undefined ? undefined : (value.lieuxFormation === null ? null : (value.lieuxFormation as Array).map(ContactDoublonLieuFormationDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface ContactDoublonGridDto\n */\nexport interface ContactDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof ContactDoublonGridDto\n */\n idcontact?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof ContactDoublonGridDto\n */\n adresseDto?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactDoublonGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof ContactDoublonGridDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactDoublonGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonGridDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n isCollaborateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactDoublonGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the ContactDoublonGridDto interface.\n */\nexport function instanceOfContactDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactDoublonGridDtoFromJSON(json: any): ContactDoublonGridDto {\n return ContactDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContactDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseDto': !exists(json, 'adresseDto') ? undefined : AdresseDtoFromJSON(json['adresseDto']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isCollaborateur': !exists(json, 'isCollaborateur') ? undefined : json['isCollaborateur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function ContactDoublonGridDtoToJSON(value?: ContactDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseDto': AdresseDtoToJSON(value.adresseDto),\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isTuteur': value.isTuteur,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isCollaborateur': value.isCollaborateur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContactDoublonGridDto } from './ContactDoublonGridDto';\nimport {\n ContactDoublonGridDtoFromJSON,\n ContactDoublonGridDtoFromJSONTyped,\n ContactDoublonGridDtoToJSON,\n} from './ContactDoublonGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContactDoublonGridDtoPaginatedResults\n */\nexport interface ContactDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContactDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContactDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfContactDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactDoublonGridDtoPaginatedResultsFromJSON(json: any): ContactDoublonGridDtoPaginatedResults {\n return ContactDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContactDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContactDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContactDoublonGridDtoPaginatedResultsToJSON(value?: ContactDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContactDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ContactDoublonSearchDto\n */\nexport interface ContactDoublonSearchDto {\n /**\n * \n * @type {number}\n * @memberof ContactDoublonSearchDto\n */\n idcontact?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSearchDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSearchDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSearchDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactDoublonSearchDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSearchDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSearchDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContactDoublonSearchDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ContactDoublonSearchDto\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactDoublonSearchDto\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactDoublonSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactDoublonSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContactDoublonSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactDoublonSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContactDoublonSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContactDoublonSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContactDoublonSearchDto interface.\n */\nexport function instanceOfContactDoublonSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactDoublonSearchDtoFromJSON(json: any): ContactDoublonSearchDto {\n return ContactDoublonSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ContactDoublonSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactDoublonSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContactDoublonSearchDtoToJSON(value?: ContactDoublonSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'registreNational': value.registreNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'codesexe': value.codesexe,\n 'idpersonne': value.idpersonne,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ContactEditDto\n */\nexport interface ContactEditDto {\n /**\n * \n * @type {number}\n * @memberof ContactEditDto\n */\n idcontact?: number;\n /**\n * \n * @type {boolean}\n * @memberof ContactEditDto\n */\n principal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactEditDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ContactEditDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactEditDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactEditDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactEditDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ContactEditDto\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactEditDto\n */\n photo?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContactEditDto\n */\n idfichierPhoto?: number | null;\n}\n\n/**\n * Check if a given object implements the ContactEditDto interface.\n */\nexport function instanceOfContactEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactEditDtoFromJSON(json: any): ContactEditDto {\n return ContactEditDtoFromJSONTyped(json, false);\n}\n\nexport function ContactEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'photo': !exists(json, 'photo') ? undefined : json['photo'],\n 'idfichierPhoto': !exists(json, 'idfichierPhoto') ? undefined : json['idfichierPhoto'],\n };\n}\n\nexport function ContactEditDtoToJSON(value?: ContactEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'principal': value.principal,\n 'fonction': value.fonction,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'codesexe': value.codesexe,\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n 'remarque': value.remarque,\n 'photo': value.photo,\n 'idfichierPhoto': value.idfichierPhoto,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContactGridDto\n */\nexport interface ContactGridDto {\n /**\n * \n * @type {number}\n * @memberof ContactGridDto\n */\n idcontact?: number;\n /**\n * \n * @type {string}\n * @memberof ContactGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactGridDto\n */\n lastSiegeSocial?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactGridDto\n */\n lastLieuFormation?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactGridDto\n */\n telephone?: string | null;\n}\n\n/**\n * Check if a given object implements the ContactGridDto interface.\n */\nexport function instanceOfContactGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactGridDtoFromJSON(json: any): ContactGridDto {\n return ContactGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContactGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'lastSiegeSocial': !exists(json, 'lastSiegeSocial') ? undefined : json['lastSiegeSocial'],\n 'lastLieuFormation': !exists(json, 'lastLieuFormation') ? undefined : json['lastLieuFormation'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n };\n}\n\nexport function ContactGridDtoToJSON(value?: ContactGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'lastSiegeSocial': value.lastSiegeSocial,\n 'lastLieuFormation': value.lastLieuFormation,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContactGridDto } from './ContactGridDto';\nimport {\n ContactGridDtoFromJSON,\n ContactGridDtoFromJSONTyped,\n ContactGridDtoToJSON,\n} from './ContactGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContactGridDtoPaginatedResults\n */\nexport interface ContactGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContactGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContactGridDtoPaginatedResults interface.\n */\nexport function instanceOfContactGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactGridDtoPaginatedResultsFromJSON(json: any): ContactGridDtoPaginatedResults {\n return ContactGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContactGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContactGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContactGridDtoPaginatedResultsToJSON(value?: ContactGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContactGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface ContactLieuDoublonGridDto\n */\nexport interface ContactLieuDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof ContactLieuDoublonGridDto\n */\n idcontact?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuDoublonGridDto\n */\n idcontactLieu?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof ContactLieuDoublonGridDto\n */\n adresseDto?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactLieuDoublonGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof ContactLieuDoublonGridDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactLieuDoublonGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonGridDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n isCollaborateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuDoublonGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the ContactLieuDoublonGridDto interface.\n */\nexport function instanceOfContactLieuDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuDoublonGridDtoFromJSON(json: any): ContactLieuDoublonGridDto {\n return ContactLieuDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContactLieuDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'idcontactLieu': !exists(json, 'idcontactLieu') ? undefined : json['idcontactLieu'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseDto': !exists(json, 'adresseDto') ? undefined : AdresseDtoFromJSON(json['adresseDto']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isCollaborateur': !exists(json, 'isCollaborateur') ? undefined : json['isCollaborateur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function ContactLieuDoublonGridDtoToJSON(value?: ContactLieuDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'idcontactLieu': value.idcontactLieu,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseDto': AdresseDtoToJSON(value.adresseDto),\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isTuteur': value.isTuteur,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isCollaborateur': value.isCollaborateur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContactLieuDoublonGridDto } from './ContactLieuDoublonGridDto';\nimport {\n ContactLieuDoublonGridDtoFromJSON,\n ContactLieuDoublonGridDtoFromJSONTyped,\n ContactLieuDoublonGridDtoToJSON,\n} from './ContactLieuDoublonGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContactLieuDoublonGridDtoPaginatedResults\n */\nexport interface ContactLieuDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContactLieuDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContactLieuDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfContactLieuDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuDoublonGridDtoPaginatedResultsFromJSON(json: any): ContactLieuDoublonGridDtoPaginatedResults {\n return ContactLieuDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContactLieuDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContactLieuDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContactLieuDoublonGridDtoPaginatedResultsToJSON(value?: ContactLieuDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContactLieuDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ContactLieuDoublonSearch\n */\nexport interface ContactLieuDoublonSearch {\n /**\n * \n * @type {number}\n * @memberof ContactLieuDoublonSearch\n */\n idcontact?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuDoublonSearch\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonSearch\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonSearch\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonSearch\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactLieuDoublonSearch\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonSearch\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonSearch\n */\n codesexe?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactLieuDoublonSearch\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactLieuDoublonSearch\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ContactLieuDoublonSearch\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonSearch\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuDoublonSearch\n */\n idpersonne?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuDoublonSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuDoublonSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuDoublonSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuDoublonSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuDoublonSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuDoublonSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContactLieuDoublonSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuDoublonSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContactLieuDoublonSearch interface.\n */\nexport function instanceOfContactLieuDoublonSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuDoublonSearchFromJSON(json: any): ContactLieuDoublonSearch {\n return ContactLieuDoublonSearchFromJSONTyped(json, false);\n}\n\nexport function ContactLieuDoublonSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuDoublonSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContactLieuDoublonSearchToJSON(value?: ContactLieuDoublonSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'idlieuFormation': value.idlieuFormation,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'registreNational': value.registreNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'codesexe': value.codesexe,\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'email': EmailDtoToJSON(value.email),\n 'remarque': value.remarque,\n 'idpersonne': value.idpersonne,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ContactLieuEditDto\n */\nexport interface ContactLieuEditDto {\n /**\n * \n * @type {number}\n * @memberof ContactLieuEditDto\n */\n idcontactLieu?: number;\n /**\n * \n * @type {number}\n * @memberof ContactLieuEditDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n remarqueLieu?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuEditDto\n */\n idcontact?: number;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuEditDto\n */\n principal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactLieuEditDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuEditDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactLieuEditDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactLieuEditDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactLieuEditDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ContactLieuEditDto\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuEditDto\n */\n photo?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuEditDto\n */\n idfichierPhoto?: number | null;\n}\n\n/**\n * Check if a given object implements the ContactLieuEditDto interface.\n */\nexport function instanceOfContactLieuEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuEditDtoFromJSON(json: any): ContactLieuEditDto {\n return ContactLieuEditDtoFromJSONTyped(json, false);\n}\n\nexport function ContactLieuEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontactLieu': !exists(json, 'idcontactLieu') ? undefined : json['idcontactLieu'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'remarqueLieu': !exists(json, 'remarqueLieu') ? undefined : json['remarqueLieu'],\n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'photo': !exists(json, 'photo') ? undefined : json['photo'],\n 'idfichierPhoto': !exists(json, 'idfichierPhoto') ? undefined : json['idfichierPhoto'],\n };\n}\n\nexport function ContactLieuEditDtoToJSON(value?: ContactLieuEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontactLieu': value.idcontactLieu,\n 'idlieuFormation': value.idlieuFormation,\n 'remarqueLieu': value.remarqueLieu,\n 'idcontact': value.idcontact,\n 'principal': value.principal,\n 'fonction': value.fonction,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'codesexe': value.codesexe,\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n 'remarque': value.remarque,\n 'photo': value.photo,\n 'idfichierPhoto': value.idfichierPhoto,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContactLieuFormationGridDto\n */\nexport interface ContactLieuFormationGridDto {\n /**\n * \n * @type {number}\n * @memberof ContactLieuFormationGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof ContactLieuFormationGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ContactLieuFormationGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuFormationGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuFormationGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuFormationGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuFormationGridDto\n */\n enseigne?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuFormationGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the ContactLieuFormationGridDto interface.\n */\nexport function instanceOfContactLieuFormationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuFormationGridDtoFromJSON(json: any): ContactLieuFormationGridDto {\n return ContactLieuFormationGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContactLieuFormationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuFormationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'enseigne': !exists(json, 'enseigne') ? undefined : json['enseigne'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function ContactLieuFormationGridDtoToJSON(value?: ContactLieuFormationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'telephone': value.telephone,\n 'email': value.email,\n 'localite': value.localite,\n 'enseigne': value.enseigne,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContactLieuFormationGridDto } from './ContactLieuFormationGridDto';\nimport {\n ContactLieuFormationGridDtoFromJSON,\n ContactLieuFormationGridDtoFromJSONTyped,\n ContactLieuFormationGridDtoToJSON,\n} from './ContactLieuFormationGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContactLieuFormationGridDtoPaginatedResults\n */\nexport interface ContactLieuFormationGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContactLieuFormationGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuFormationGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuFormationGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContactLieuFormationGridDtoPaginatedResults interface.\n */\nexport function instanceOfContactLieuFormationGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuFormationGridDtoPaginatedResultsFromJSON(json: any): ContactLieuFormationGridDtoPaginatedResults {\n return ContactLieuFormationGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContactLieuFormationGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuFormationGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContactLieuFormationGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContactLieuFormationGridDtoPaginatedResultsToJSON(value?: ContactLieuFormationGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContactLieuFormationGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ContactLieuFormationSearchDto\n */\nexport interface ContactLieuFormationSearchDto {\n /**\n * \n * @type {number}\n * @memberof ContactLieuFormationSearchDto\n */\n idcontact?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuFormationSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuFormationSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuFormationSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuFormationSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContactLieuFormationSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuFormationSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContactLieuFormationSearchDto interface.\n */\nexport function instanceOfContactLieuFormationSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuFormationSearchDtoFromJSON(json: any): ContactLieuFormationSearchDto {\n return ContactLieuFormationSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ContactLieuFormationSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuFormationSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContactLieuFormationSearchDtoToJSON(value?: ContactLieuFormationSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContactLieuGridDto\n */\nexport interface ContactLieuGridDto {\n /**\n * \n * @type {number}\n * @memberof ContactLieuGridDto\n */\n idcontactLieu?: number;\n /**\n * \n * @type {number}\n * @memberof ContactLieuGridDto\n */\n idcontact?: number;\n /**\n * \n * @type {number}\n * @memberof ContactLieuGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof ContactLieuGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuGridDto\n */\n dateNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuGridDto\n */\n fonction?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuGridDto\n */\n email?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContactLieuGridDto\n */\n principal?: boolean;\n}\n\n/**\n * Check if a given object implements the ContactLieuGridDto interface.\n */\nexport function instanceOfContactLieuGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuGridDtoFromJSON(json: any): ContactLieuGridDto {\n return ContactLieuGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContactLieuGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontactLieu': !exists(json, 'idcontactLieu') ? undefined : json['idcontactLieu'],\n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : json['dateNaissance'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n };\n}\n\nexport function ContactLieuGridDtoToJSON(value?: ContactLieuGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontactLieu': value.idcontactLieu,\n 'idcontact': value.idcontact,\n 'idlieuFormation': value.idlieuFormation,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance,\n 'fonction': value.fonction,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'email': value.email,\n 'principal': value.principal,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContactLieuGridDto } from './ContactLieuGridDto';\nimport {\n ContactLieuGridDtoFromJSON,\n ContactLieuGridDtoFromJSONTyped,\n ContactLieuGridDtoToJSON,\n} from './ContactLieuGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContactLieuGridDtoPaginatedResults\n */\nexport interface ContactLieuGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContactLieuGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContactLieuGridDtoPaginatedResults interface.\n */\nexport function instanceOfContactLieuGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuGridDtoPaginatedResultsFromJSON(json: any): ContactLieuGridDtoPaginatedResults {\n return ContactLieuGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContactLieuGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContactLieuGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContactLieuGridDtoPaginatedResultsToJSON(value?: ContactLieuGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContactLieuGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ContactLieuSearch\n */\nexport interface ContactLieuSearch {\n /**\n * \n * @type {number}\n * @memberof ContactLieuSearch\n */\n idlieuFormation?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactLieuSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactLieuSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContactLieuSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContactLieuSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContactLieuSearch interface.\n */\nexport function instanceOfContactLieuSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactLieuSearchFromJSON(json: any): ContactLieuSearch {\n return ContactLieuSearchFromJSONTyped(json, false);\n}\n\nexport function ContactLieuSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactLieuSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContactLieuSearchToJSON(value?: ContactLieuSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface ContactSearch\n */\nexport interface ContactSearch {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContactSearch\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContactSearch\n */\n prenom?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ContactSearch\n */\n telephone?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ContactSearch\n */\n gsm?: TextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContactSearch\n */\n siegeSocial?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContactSearch\n */\n lieuFormation?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContactSearch\n */\n enseigneLieuFormation?: UnaccentTextSearch;\n /**\n * \n * @type {Array}\n * @memberof ContactSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContactSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContactSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContactSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContactSearch interface.\n */\nexport function instanceOfContactSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSearchFromJSON(json: any): ContactSearch {\n return ContactSearchFromJSONTyped(json, false);\n}\n\nexport function ContactSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : UnaccentTextSearchFromJSON(json['prenom']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TextSearchFromJSON(json['gsm']),\n 'siegeSocial': !exists(json, 'siegeSocial') ? undefined : UnaccentTextSearchFromJSON(json['siegeSocial']),\n 'lieuFormation': !exists(json, 'lieuFormation') ? undefined : UnaccentTextSearchFromJSON(json['lieuFormation']),\n 'enseigneLieuFormation': !exists(json, 'enseigneLieuFormation') ? undefined : UnaccentTextSearchFromJSON(json['enseigneLieuFormation']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContactSearchToJSON(value?: ContactSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'prenom': UnaccentTextSearchToJSON(value.prenom),\n 'telephone': TextSearchToJSON(value.telephone),\n 'gsm': TextSearchToJSON(value.gsm),\n 'siegeSocial': UnaccentTextSearchToJSON(value.siegeSocial),\n 'lieuFormation': UnaccentTextSearchToJSON(value.lieuFormation),\n 'enseigneLieuFormation': UnaccentTextSearchToJSON(value.enseigneLieuFormation),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface ContactSiegeDoublonGridDto\n */\nexport interface ContactSiegeDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeDoublonGridDto\n */\n idcontact?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeDoublonGridDto\n */\n idcontactSiege?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof ContactSiegeDoublonGridDto\n */\n adresseDto?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactSiegeDoublonGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof ContactSiegeDoublonGridDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactSiegeDoublonGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonGridDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n isCollaborateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeDoublonGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the ContactSiegeDoublonGridDto interface.\n */\nexport function instanceOfContactSiegeDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeDoublonGridDtoFromJSON(json: any): ContactSiegeDoublonGridDto {\n return ContactSiegeDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'idcontactSiege': !exists(json, 'idcontactSiege') ? undefined : json['idcontactSiege'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseDto': !exists(json, 'adresseDto') ? undefined : AdresseDtoFromJSON(json['adresseDto']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isCollaborateur': !exists(json, 'isCollaborateur') ? undefined : json['isCollaborateur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function ContactSiegeDoublonGridDtoToJSON(value?: ContactSiegeDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'idcontactSiege': value.idcontactSiege,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseDto': AdresseDtoToJSON(value.adresseDto),\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isTuteur': value.isTuteur,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isCollaborateur': value.isCollaborateur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContactSiegeDoublonGridDto } from './ContactSiegeDoublonGridDto';\nimport {\n ContactSiegeDoublonGridDtoFromJSON,\n ContactSiegeDoublonGridDtoFromJSONTyped,\n ContactSiegeDoublonGridDtoToJSON,\n} from './ContactSiegeDoublonGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContactSiegeDoublonGridDtoPaginatedResults\n */\nexport interface ContactSiegeDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContactSiegeDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfContactSiegeDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeDoublonGridDtoPaginatedResultsFromJSON(json: any): ContactSiegeDoublonGridDtoPaginatedResults {\n return ContactSiegeDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContactSiegeDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContactSiegeDoublonGridDtoPaginatedResultsToJSON(value?: ContactSiegeDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContactSiegeDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ContactSiegeDoublonSearch\n */\nexport interface ContactSiegeDoublonSearch {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeDoublonSearch\n */\n idcontact?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeDoublonSearch\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonSearch\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonSearch\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonSearch\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactSiegeDoublonSearch\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonSearch\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonSearch\n */\n codesexe?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactSiegeDoublonSearch\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactSiegeDoublonSearch\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ContactSiegeDoublonSearch\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonSearch\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeDoublonSearch\n */\n idpersonne?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeDoublonSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeDoublonSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeDoublonSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeDoublonSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeDoublonSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeDoublonSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContactSiegeDoublonSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeDoublonSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContactSiegeDoublonSearch interface.\n */\nexport function instanceOfContactSiegeDoublonSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeDoublonSearchFromJSON(json: any): ContactSiegeDoublonSearch {\n return ContactSiegeDoublonSearchFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeDoublonSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeDoublonSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContactSiegeDoublonSearchToJSON(value?: ContactSiegeDoublonSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'registreNational': value.registreNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'codesexe': value.codesexe,\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'email': EmailDtoToJSON(value.email),\n 'remarque': value.remarque,\n 'idpersonne': value.idpersonne,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface ContactSiegeEditDto\n */\nexport interface ContactSiegeEditDto {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeEditDto\n */\n idcontactSiege?: number;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeEditDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n remarqueSiege?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeEditDto\n */\n idcontact?: number;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeEditDto\n */\n principal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactSiegeEditDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeEditDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContactSiegeEditDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactSiegeEditDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof ContactSiegeEditDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof ContactSiegeEditDto\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeEditDto\n */\n photo?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeEditDto\n */\n idfichierPhoto?: number | null;\n}\n\n/**\n * Check if a given object implements the ContactSiegeEditDto interface.\n */\nexport function instanceOfContactSiegeEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeEditDtoFromJSON(json: any): ContactSiegeEditDto {\n return ContactSiegeEditDtoFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontactSiege': !exists(json, 'idcontactSiege') ? undefined : json['idcontactSiege'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'remarqueSiege': !exists(json, 'remarqueSiege') ? undefined : json['remarqueSiege'],\n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'photo': !exists(json, 'photo') ? undefined : json['photo'],\n 'idfichierPhoto': !exists(json, 'idfichierPhoto') ? undefined : json['idfichierPhoto'],\n };\n}\n\nexport function ContactSiegeEditDtoToJSON(value?: ContactSiegeEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontactSiege': value.idcontactSiege,\n 'idsiegeSocial': value.idsiegeSocial,\n 'remarqueSiege': value.remarqueSiege,\n 'idcontact': value.idcontact,\n 'principal': value.principal,\n 'fonction': value.fonction,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'codesexe': value.codesexe,\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n 'remarque': value.remarque,\n 'photo': value.photo,\n 'idfichierPhoto': value.idfichierPhoto,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContactSiegeGridDto\n */\nexport interface ContactSiegeGridDto {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeGridDto\n */\n idcontactSiege?: number;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeGridDto\n */\n idcontact?: number;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeGridDto\n */\n dateNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeGridDto\n */\n fonction?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeGridDto\n */\n email?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeGridDto\n */\n principal?: boolean;\n}\n\n/**\n * Check if a given object implements the ContactSiegeGridDto interface.\n */\nexport function instanceOfContactSiegeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeGridDtoFromJSON(json: any): ContactSiegeGridDto {\n return ContactSiegeGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontactSiege': !exists(json, 'idcontactSiege') ? undefined : json['idcontactSiege'],\n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : json['dateNaissance'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n };\n}\n\nexport function ContactSiegeGridDtoToJSON(value?: ContactSiegeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontactSiege': value.idcontactSiege,\n 'idcontact': value.idcontact,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance,\n 'fonction': value.fonction,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'email': value.email,\n 'principal': value.principal,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContactSiegeGridDto } from './ContactSiegeGridDto';\nimport {\n ContactSiegeGridDtoFromJSON,\n ContactSiegeGridDtoFromJSONTyped,\n ContactSiegeGridDtoToJSON,\n} from './ContactSiegeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContactSiegeGridDtoPaginatedResults\n */\nexport interface ContactSiegeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContactSiegeGridDtoPaginatedResults interface.\n */\nexport function instanceOfContactSiegeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeGridDtoPaginatedResultsFromJSON(json: any): ContactSiegeGridDtoPaginatedResults {\n return ContactSiegeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContactSiegeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContactSiegeGridDtoPaginatedResultsToJSON(value?: ContactSiegeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContactSiegeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ContactSiegeSearch\n */\nexport interface ContactSiegeSearch {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeSearch\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContactSiegeSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContactSiegeSearch interface.\n */\nexport function instanceOfContactSiegeSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeSearchFromJSON(json: any): ContactSiegeSearch {\n return ContactSiegeSearchFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContactSiegeSearchToJSON(value?: ContactSiegeSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContactSiegeSocialGridDto\n */\nexport interface ContactSiegeSocialGridDto {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeSocialGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeSocialGridDto\n */\n denominationSociale?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeSocialGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeSocialGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeSocialGridDto\n */\n nomPatron?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeSocialGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeSocialGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeSocialGridDto\n */\n numeroBce?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContactSiegeSocialGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the ContactSiegeSocialGridDto interface.\n */\nexport function instanceOfContactSiegeSocialGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeSocialGridDtoFromJSON(json: any): ContactSiegeSocialGridDto {\n return ContactSiegeSocialGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeSocialGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeSocialGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : json['denominationSociale'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'nomPatron': !exists(json, 'nomPatron') ? undefined : json['nomPatron'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : json['numeroBce'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function ContactSiegeSocialGridDtoToJSON(value?: ContactSiegeSocialGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'denominationSociale': value.denominationSociale,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'nomPatron': value.nomPatron,\n 'email': value.email,\n 'localite': value.localite,\n 'numeroBce': value.numeroBce,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContactSiegeSocialGridDto } from './ContactSiegeSocialGridDto';\nimport {\n ContactSiegeSocialGridDtoFromJSON,\n ContactSiegeSocialGridDtoFromJSONTyped,\n ContactSiegeSocialGridDtoToJSON,\n} from './ContactSiegeSocialGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContactSiegeSocialGridDtoPaginatedResults\n */\nexport interface ContactSiegeSocialGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeSocialGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeSocialGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeSocialGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContactSiegeSocialGridDtoPaginatedResults interface.\n */\nexport function instanceOfContactSiegeSocialGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeSocialGridDtoPaginatedResultsFromJSON(json: any): ContactSiegeSocialGridDtoPaginatedResults {\n return ContactSiegeSocialGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeSocialGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeSocialGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContactSiegeSocialGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContactSiegeSocialGridDtoPaginatedResultsToJSON(value?: ContactSiegeSocialGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContactSiegeSocialGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ContactSiegeSocialSearchDto\n */\nexport interface ContactSiegeSocialSearchDto {\n /**\n * \n * @type {number}\n * @memberof ContactSiegeSocialSearchDto\n */\n idcontact?: number;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeSocialSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContactSiegeSocialSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeSocialSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContactSiegeSocialSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContactSiegeSocialSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContactSiegeSocialSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContactSiegeSocialSearchDto interface.\n */\nexport function instanceOfContactSiegeSocialSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContactSiegeSocialSearchDtoFromJSON(json: any): ContactSiegeSocialSearchDto {\n return ContactSiegeSocialSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ContactSiegeSocialSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContactSiegeSocialSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontact': !exists(json, 'idcontact') ? undefined : json['idcontact'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContactSiegeSocialSearchDtoToJSON(value?: ContactSiegeSocialSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontact': value.idcontact,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratAlternanceCommunDto\n */\nexport interface ContratAlternanceCommunDto {\n /**\n * \n * @type {number}\n * @memberof ContratAlternanceCommunDto\n */\n idcontratAlternanceCommun?: number;\n /**\n * \n * @type {number}\n * @memberof ContratAlternanceCommunDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratAlternanceCommunDto\n */\n idcontratStatutWalter?: number;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n nomLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n denominationSiege?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n adresse?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratAlternanceCommunDto\n */\n idcodePostal?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n codePostalText?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n chefEntreprise?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n fonction?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n numero?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n email?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratAlternanceCommunDto\n */\n dureeSousContrat?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n nomReferent?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratAlternanceCommunDto\n */\n prenomReferent?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratAlternanceCommunDto interface.\n */\nexport function instanceOfContratAlternanceCommunDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratAlternanceCommunDtoFromJSON(json: any): ContratAlternanceCommunDto {\n return ContratAlternanceCommunDtoFromJSONTyped(json, false);\n}\n\nexport function ContratAlternanceCommunDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratAlternanceCommunDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratAlternanceCommun': !exists(json, 'idcontratAlternanceCommun') ? undefined : json['idcontratAlternanceCommun'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idcontratStatutWalter': !exists(json, 'idcontratStatutWalter') ? undefined : json['idcontratStatutWalter'],\n 'nomLieu': !exists(json, 'nomLieu') ? undefined : json['nomLieu'],\n 'denominationSiege': !exists(json, 'denominationSiege') ? undefined : json['denominationSiege'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'codePostalText': !exists(json, 'codePostalText') ? undefined : json['codePostalText'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'chefEntreprise': !exists(json, 'chefEntreprise') ? undefined : json['chefEntreprise'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'dureeSousContrat': !exists(json, 'dureeSousContrat') ? undefined : json['dureeSousContrat'],\n 'nomReferent': !exists(json, 'nomReferent') ? undefined : json['nomReferent'],\n 'prenomReferent': !exists(json, 'prenomReferent') ? undefined : json['prenomReferent'],\n };\n}\n\nexport function ContratAlternanceCommunDtoToJSON(value?: ContratAlternanceCommunDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratAlternanceCommun': value.idcontratAlternanceCommun,\n 'idcontrat': value.idcontrat,\n 'idcontratStatutWalter': value.idcontratStatutWalter,\n 'nomLieu': value.nomLieu,\n 'denominationSiege': value.denominationSiege,\n 'adresse': value.adresse,\n 'idcodePostal': value.idcodePostal,\n 'codePostalText': value.codePostalText,\n 'localite': value.localite,\n 'commune': value.commune,\n 'chefEntreprise': value.chefEntreprise,\n 'fonction': value.fonction,\n 'numero': value.numero,\n 'email': value.email,\n 'dureeSousContrat': value.dureeSousContrat,\n 'nomReferent': value.nomReferent,\n 'prenomReferent': value.prenomReferent,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratAlternanceDto\n */\nexport interface ContratAlternanceDto {\n /**\n * \n * @type {number}\n * @memberof ContratAlternanceDto\n */\n idcontratAlternance?: number;\n /**\n * \n * @type {number}\n * @memberof ContratAlternanceDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratAlternanceDto\n */\n iddispenseChomage?: number | null;\n /**\n * \n * @type {Date}\n * @memberof ContratAlternanceDto\n */\n datePassageB?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratAlternanceDto\n */\n datePassageC?: Date | null;\n}\n\n/**\n * Check if a given object implements the ContratAlternanceDto interface.\n */\nexport function instanceOfContratAlternanceDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratAlternanceDtoFromJSON(json: any): ContratAlternanceDto {\n return ContratAlternanceDtoFromJSONTyped(json, false);\n}\n\nexport function ContratAlternanceDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratAlternanceDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratAlternance': !exists(json, 'idcontratAlternance') ? undefined : json['idcontratAlternance'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'iddispenseChomage': !exists(json, 'iddispenseChomage') ? undefined : json['iddispenseChomage'],\n 'datePassageB': !exists(json, 'datePassageB') ? undefined : (json['datePassageB'] === null ? null : new Date(json['datePassageB'])),\n 'datePassageC': !exists(json, 'datePassageC') ? undefined : (json['datePassageC'] === null ? null : new Date(json['datePassageC'])),\n };\n}\n\nexport function ContratAlternanceDtoToJSON(value?: ContratAlternanceDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratAlternance': value.idcontratAlternance,\n 'idcontrat': value.idcontrat,\n 'iddispenseChomage': value.iddispenseChomage,\n 'datePassageB': value.datePassageB === undefined ? undefined : (value.datePassageB === null ? null : value.datePassageB.toISOString()),\n 'datePassageC': value.datePassageC === undefined ? undefined : (value.datePassageC === null ? null : value.datePassageC.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\n\n/**\n * \n * @export\n * @interface ContratApprenantInfosDto\n */\nexport interface ContratApprenantInfosDto {\n /**\n * \n * @type {number}\n * @memberof ContratApprenantInfosDto\n */\n idpri?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratApprenantInfosDto\n */\n idari?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratApprenantInfosDto\n */\n apprenantStatut?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContratApprenantInfosDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof ContratApprenantInfosDto\n */\n adresse?: AdresseDto;\n}\n\n/**\n * Check if a given object implements the ContratApprenantInfosDto interface.\n */\nexport function instanceOfContratApprenantInfosDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratApprenantInfosDtoFromJSON(json: any): ContratApprenantInfosDto {\n return ContratApprenantInfosDtoFromJSONTyped(json, false);\n}\n\nexport function ContratApprenantInfosDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratApprenantInfosDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpri': !exists(json, 'idpri') ? undefined : json['idpri'],\n 'idari': !exists(json, 'idari') ? undefined : json['idari'],\n 'apprenantStatut': !exists(json, 'apprenantStatut') ? undefined : json['apprenantStatut'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'adresse': !exists(json, 'adresse') ? undefined : AdresseDtoFromJSON(json['adresse']),\n };\n}\n\nexport function ContratApprenantInfosDtoToJSON(value?: ContratApprenantInfosDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpri': value.idpri,\n 'idari': value.idari,\n 'apprenantStatut': value.apprenantStatut,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'adresse': AdresseDtoToJSON(value.adresse),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface ContratAvenantEditDto\n */\nexport interface ContratAvenantEditDto {\n /**\n * \n * @type {number}\n * @memberof ContratAvenantEditDto\n */\n idavenant?: number;\n /**\n * \n * @type {number}\n * @memberof ContratAvenantEditDto\n */\n idcontrat?: number;\n /**\n * \n * @type {number}\n * @memberof ContratAvenantEditDto\n */\n numero?: number;\n /**\n * \n * @type {Date}\n * @memberof ContratAvenantEditDto\n */\n datePriseEnCours?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratAvenantEditDto\n */\n dateSignature?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ContratAvenantEditDto\n */\n idcpSignature?: number | null;\n /**\n * \n * @type {Date}\n * @memberof ContratAvenantEditDto\n */\n dateCommissionTutelle?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContratAvenantEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContratAvenantEditDto\n */\n deletionDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ContratAvenantEditDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof ContratAvenantEditDto\n */\n fichier?: FileUploadDto;\n /**\n * \n * @type {Array}\n * @memberof ContratAvenantEditDto\n */\n idstypeAvenant?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof ContratAvenantEditDto\n */\n isContratCS?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContratAvenantEditDto\n */\n decisionInstitut?: boolean;\n /**\n * \n * @type {Date}\n * @memberof ContratAvenantEditDto\n */\n dateDecision?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ContratAvenantEditDto\n */\n idresponsableValidation?: number | null;\n}\n\n/**\n * Check if a given object implements the ContratAvenantEditDto interface.\n */\nexport function instanceOfContratAvenantEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratAvenantEditDtoFromJSON(json: any): ContratAvenantEditDto {\n return ContratAvenantEditDtoFromJSONTyped(json, false);\n}\n\nexport function ContratAvenantEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratAvenantEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idavenant': !exists(json, 'idavenant') ? undefined : json['idavenant'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'datePriseEnCours': !exists(json, 'datePriseEnCours') ? undefined : (json['datePriseEnCours'] === null ? null : new Date(json['datePriseEnCours'])),\n 'dateSignature': !exists(json, 'dateSignature') ? undefined : (json['dateSignature'] === null ? null : new Date(json['dateSignature'])),\n 'idcpSignature': !exists(json, 'idcpSignature') ? undefined : json['idcpSignature'],\n 'dateCommissionTutelle': !exists(json, 'dateCommissionTutelle') ? undefined : (json['dateCommissionTutelle'] === null ? null : new Date(json['dateCommissionTutelle'])),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'deletionDate': !exists(json, 'deletionDate') ? undefined : (json['deletionDate'] === null ? null : new Date(json['deletionDate'])),\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fichier': !exists(json, 'fichier') ? undefined : FileUploadDtoFromJSON(json['fichier']),\n 'idstypeAvenant': !exists(json, 'idstypeAvenant') ? undefined : json['idstypeAvenant'],\n 'isContratCS': !exists(json, 'isContratCS') ? undefined : json['isContratCS'],\n 'decisionInstitut': !exists(json, 'decisionInstitut') ? undefined : json['decisionInstitut'],\n 'dateDecision': !exists(json, 'dateDecision') ? undefined : (json['dateDecision'] === null ? null : new Date(json['dateDecision'])),\n 'idresponsableValidation': !exists(json, 'idresponsableValidation') ? undefined : json['idresponsableValidation'],\n };\n}\n\nexport function ContratAvenantEditDtoToJSON(value?: ContratAvenantEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idavenant': value.idavenant,\n 'idcontrat': value.idcontrat,\n 'numero': value.numero,\n 'datePriseEnCours': value.datePriseEnCours === undefined ? undefined : (value.datePriseEnCours === null ? null : value.datePriseEnCours.toISOString()),\n 'dateSignature': value.dateSignature === undefined ? undefined : (value.dateSignature === null ? null : value.dateSignature.toISOString()),\n 'idcpSignature': value.idcpSignature,\n 'dateCommissionTutelle': value.dateCommissionTutelle === undefined ? undefined : (value.dateCommissionTutelle === null ? null : value.dateCommissionTutelle.toISOString()),\n 'remarque': value.remarque,\n 'deletionDate': value.deletionDate === undefined ? undefined : (value.deletionDate === null ? null : value.deletionDate.toISOString()),\n 'idfichier': value.idfichier,\n 'fichier': FileUploadDtoToJSON(value.fichier),\n 'idstypeAvenant': value.idstypeAvenant,\n 'isContratCS': value.isContratCS,\n 'decisionInstitut': value.decisionInstitut,\n 'dateDecision': value.dateDecision === undefined ? undefined : (value.dateDecision === null ? null : value.dateDecision.toISOString()),\n 'idresponsableValidation': value.idresponsableValidation,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratAvenantGridDto\n */\nexport interface ContratAvenantGridDto {\n /**\n * \n * @type {number}\n * @memberof ContratAvenantGridDto\n */\n idavenant?: number;\n /**\n * \n * @type {Array}\n * @memberof ContratAvenantGridDto\n */\n types?: Array | null;\n /**\n * \n * @type {string}\n * @memberof ContratAvenantGridDto\n */\n numero?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContratAvenantGridDto\n */\n datePriseEnCours?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratAvenantGridDto\n */\n dateSignature?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContratAvenantGridDto\n */\n lieuSignature?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratAvenantGridDto interface.\n */\nexport function instanceOfContratAvenantGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratAvenantGridDtoFromJSON(json: any): ContratAvenantGridDto {\n return ContratAvenantGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContratAvenantGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratAvenantGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idavenant': !exists(json, 'idavenant') ? undefined : json['idavenant'],\n 'types': !exists(json, 'types') ? undefined : json['types'],\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'datePriseEnCours': !exists(json, 'datePriseEnCours') ? undefined : (json['datePriseEnCours'] === null ? null : new Date(json['datePriseEnCours'])),\n 'dateSignature': !exists(json, 'dateSignature') ? undefined : (json['dateSignature'] === null ? null : new Date(json['dateSignature'])),\n 'lieuSignature': !exists(json, 'lieuSignature') ? undefined : json['lieuSignature'],\n };\n}\n\nexport function ContratAvenantGridDtoToJSON(value?: ContratAvenantGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idavenant': value.idavenant,\n 'types': value.types,\n 'numero': value.numero,\n 'datePriseEnCours': value.datePriseEnCours === undefined ? undefined : (value.datePriseEnCours === null ? null : value.datePriseEnCours.toISOString()),\n 'dateSignature': value.dateSignature === undefined ? undefined : (value.dateSignature === null ? null : value.dateSignature.toISOString()),\n 'lieuSignature': value.lieuSignature,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContratAvenantGridDto } from './ContratAvenantGridDto';\nimport {\n ContratAvenantGridDtoFromJSON,\n ContratAvenantGridDtoFromJSONTyped,\n ContratAvenantGridDtoToJSON,\n} from './ContratAvenantGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContratAvenantGridDtoPaginatedResults\n */\nexport interface ContratAvenantGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContratAvenantGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContratAvenantGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratAvenantGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContratAvenantGridDtoPaginatedResults interface.\n */\nexport function instanceOfContratAvenantGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratAvenantGridDtoPaginatedResultsFromJSON(json: any): ContratAvenantGridDtoPaginatedResults {\n return ContratAvenantGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContratAvenantGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratAvenantGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContratAvenantGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContratAvenantGridDtoPaginatedResultsToJSON(value?: ContratAvenantGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContratAvenantGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ContratAvenantSearchDto\n */\nexport interface ContratAvenantSearchDto {\n /**\n * \n * @type {number}\n * @memberof ContratAvenantSearchDto\n */\n idcontrat?: number;\n /**\n * \n * @type {boolean}\n * @memberof ContratAvenantSearchDto\n */\n showDeleted?: boolean;\n /**\n * \n * @type {Array}\n * @memberof ContratAvenantSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratAvenantSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContratAvenantSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratAvenantSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContratAvenantSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContratAvenantSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratAvenantSearchDto interface.\n */\nexport function instanceOfContratAvenantSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratAvenantSearchDtoFromJSON(json: any): ContratAvenantSearchDto {\n return ContratAvenantSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ContratAvenantSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratAvenantSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'showDeleted': !exists(json, 'showDeleted') ? undefined : json['showDeleted'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContratAvenantSearchDtoToJSON(value?: ContratAvenantSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontrat': value.idcontrat,\n 'showDeleted': value.showDeleted,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratChefEntrepriseDto\n */\nexport interface ContratChefEntrepriseDto {\n /**\n * \n * @type {number}\n * @memberof ContratChefEntrepriseDto\n */\n idchefEntreprise?: number;\n /**\n * \n * @type {string}\n * @memberof ContratChefEntrepriseDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratChefEntrepriseDto\n */\n prenom?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratChefEntrepriseDto\n */\n idpersonne?: number | null;\n}\n\n/**\n * Check if a given object implements the ContratChefEntrepriseDto interface.\n */\nexport function instanceOfContratChefEntrepriseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratChefEntrepriseDtoFromJSON(json: any): ContratChefEntrepriseDto {\n return ContratChefEntrepriseDtoFromJSONTyped(json, false);\n}\n\nexport function ContratChefEntrepriseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratChefEntrepriseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n };\n}\n\nexport function ContratChefEntrepriseDtoToJSON(value?: ContratChefEntrepriseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntreprise': value.idchefEntreprise,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'idpersonne': value.idpersonne,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratClasseInfosDto\n */\nexport interface ContratClasseInfosDto {\n /**\n * \n * @type {number}\n * @memberof ContratClasseInfosDto\n */\n idclasse?: number;\n /**\n * \n * @type {string}\n * @memberof ContratClasseInfosDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratClasseInfosDto\n */\n statutInscription?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratClasseInfosDto interface.\n */\nexport function instanceOfContratClasseInfosDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratClasseInfosDtoFromJSON(json: any): ContratClasseInfosDto {\n return ContratClasseInfosDtoFromJSONTyped(json, false);\n}\n\nexport function ContratClasseInfosDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratClasseInfosDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'statutInscription': !exists(json, 'statutInscription') ? undefined : json['statutInscription'],\n };\n}\n\nexport function ContratClasseInfosDtoToJSON(value?: ContratClasseInfosDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasse': value.idclasse,\n 'centre': value.centre,\n 'statutInscription': value.statutInscription,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratConventionStageDto\n */\nexport interface ContratConventionStageDto {\n /**\n * \n * @type {number}\n * @memberof ContratConventionStageDto\n */\n idcontratConventionStage?: number;\n /**\n * \n * @type {number}\n * @memberof ContratConventionStageDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratConventionStageDto\n */\n iddispenseChomage?: number | null;\n /**\n * \n * @type {Date}\n * @memberof ContratConventionStageDto\n */\n dateValidation?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratConventionStageDto\n */\n dateRemise?: Date | null;\n}\n\n/**\n * Check if a given object implements the ContratConventionStageDto interface.\n */\nexport function instanceOfContratConventionStageDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratConventionStageDtoFromJSON(json: any): ContratConventionStageDto {\n return ContratConventionStageDtoFromJSONTyped(json, false);\n}\n\nexport function ContratConventionStageDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratConventionStageDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratConventionStage': !exists(json, 'idcontratConventionStage') ? undefined : json['idcontratConventionStage'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'iddispenseChomage': !exists(json, 'iddispenseChomage') ? undefined : json['iddispenseChomage'],\n 'dateValidation': !exists(json, 'dateValidation') ? undefined : (json['dateValidation'] === null ? null : new Date(json['dateValidation'])),\n 'dateRemise': !exists(json, 'dateRemise') ? undefined : (json['dateRemise'] === null ? null : new Date(json['dateRemise'])),\n };\n}\n\nexport function ContratConventionStageDtoToJSON(value?: ContratConventionStageDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratConventionStage': value.idcontratConventionStage,\n 'idcontrat': value.idcontrat,\n 'iddispenseChomage': value.iddispenseChomage,\n 'dateValidation': value.dateValidation === undefined ? undefined : (value.dateValidation === null ? null : value.dateValidation.toISOString()),\n 'dateRemise': value.dateRemise === undefined ? undefined : (value.dateRemise === null ? null : value.dateRemise.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratConventionStageExterneDto\n */\nexport interface ContratConventionStageExterneDto {\n /**\n * \n * @type {number}\n * @memberof ContratConventionStageExterneDto\n */\n idcontratConventionStageExterne?: number;\n /**\n * \n * @type {number}\n * @memberof ContratConventionStageExterneDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratConventionStageExterneDto\n */\n idcontratStatutWalter?: number;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n nomLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n denominationSiege?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n adresse?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratConventionStageExterneDto\n */\n idcodePostal?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n codePostalText?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n chefEntreprise?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n fonction?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n numero?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n email?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratConventionStageExterneDto\n */\n dureeSousContrat?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n nomReferent?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratConventionStageExterneDto\n */\n prenomReferent?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratConventionStageExterneDto interface.\n */\nexport function instanceOfContratConventionStageExterneDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratConventionStageExterneDtoFromJSON(json: any): ContratConventionStageExterneDto {\n return ContratConventionStageExterneDtoFromJSONTyped(json, false);\n}\n\nexport function ContratConventionStageExterneDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratConventionStageExterneDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratConventionStageExterne': !exists(json, 'idcontratConventionStageExterne') ? undefined : json['idcontratConventionStageExterne'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idcontratStatutWalter': !exists(json, 'idcontratStatutWalter') ? undefined : json['idcontratStatutWalter'],\n 'nomLieu': !exists(json, 'nomLieu') ? undefined : json['nomLieu'],\n 'denominationSiege': !exists(json, 'denominationSiege') ? undefined : json['denominationSiege'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'codePostalText': !exists(json, 'codePostalText') ? undefined : json['codePostalText'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'chefEntreprise': !exists(json, 'chefEntreprise') ? undefined : json['chefEntreprise'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'dureeSousContrat': !exists(json, 'dureeSousContrat') ? undefined : json['dureeSousContrat'],\n 'nomReferent': !exists(json, 'nomReferent') ? undefined : json['nomReferent'],\n 'prenomReferent': !exists(json, 'prenomReferent') ? undefined : json['prenomReferent'],\n };\n}\n\nexport function ContratConventionStageExterneDtoToJSON(value?: ContratConventionStageExterneDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratConventionStageExterne': value.idcontratConventionStageExterne,\n 'idcontrat': value.idcontrat,\n 'idcontratStatutWalter': value.idcontratStatutWalter,\n 'nomLieu': value.nomLieu,\n 'denominationSiege': value.denominationSiege,\n 'adresse': value.adresse,\n 'idcodePostal': value.idcodePostal,\n 'codePostalText': value.codePostalText,\n 'localite': value.localite,\n 'commune': value.commune,\n 'chefEntreprise': value.chefEntreprise,\n 'fonction': value.fonction,\n 'numero': value.numero,\n 'email': value.email,\n 'dureeSousContrat': value.dureeSousContrat,\n 'nomReferent': value.nomReferent,\n 'prenomReferent': value.prenomReferent,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratFaltDto\n */\nexport interface ContratFaltDto {\n /**\n * \n * @type {number}\n * @memberof ContratFaltDto\n */\n idcontratFalt?: number;\n /**\n * \n * @type {number}\n * @memberof ContratFaltDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratFaltDto\n */\n idoperateurFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratFaltDto\n */\n pcFormationEmployeur?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratFaltDto\n */\n pcFormationOperateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratFaltDto\n */\n interventionFinanciere?: number | null;\n /**\n * \n * @type {Date}\n * @memberof ContratFaltDto\n */\n dateTransmission?: Date | null;\n}\n\n/**\n * Check if a given object implements the ContratFaltDto interface.\n */\nexport function instanceOfContratFaltDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratFaltDtoFromJSON(json: any): ContratFaltDto {\n return ContratFaltDtoFromJSONTyped(json, false);\n}\n\nexport function ContratFaltDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratFaltDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratFalt': !exists(json, 'idcontratFalt') ? undefined : json['idcontratFalt'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idoperateurFormation': !exists(json, 'idoperateurFormation') ? undefined : json['idoperateurFormation'],\n 'pcFormationEmployeur': !exists(json, 'pcFormationEmployeur') ? undefined : json['pcFormationEmployeur'],\n 'pcFormationOperateur': !exists(json, 'pcFormationOperateur') ? undefined : json['pcFormationOperateur'],\n 'interventionFinanciere': !exists(json, 'interventionFinanciere') ? undefined : json['interventionFinanciere'],\n 'dateTransmission': !exists(json, 'dateTransmission') ? undefined : (json['dateTransmission'] === null ? null : new Date(json['dateTransmission'])),\n };\n}\n\nexport function ContratFaltDtoToJSON(value?: ContratFaltDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratFalt': value.idcontratFalt,\n 'idcontrat': value.idcontrat,\n 'idoperateurFormation': value.idoperateurFormation,\n 'pcFormationEmployeur': value.pcFormationEmployeur,\n 'pcFormationOperateur': value.pcFormationOperateur,\n 'interventionFinanciere': value.interventionFinanciere,\n 'dateTransmission': value.dateTransmission === undefined ? undefined : (value.dateTransmission === null ? null : value.dateTransmission.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratLieuFormationTuteurGridDto\n */\nexport interface ContratLieuFormationTuteurGridDto {\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n idcontratLieuFormationTuteur?: number;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n idcontratLieuFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n idtuteur?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n idtuteurLieu?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n principal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n actif?: boolean;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n nbContrats?: number;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n capaciteFormative?: number;\n /**\n * \n * @type {boolean}\n * @memberof ContratLieuFormationTuteurGridDto\n */\n readonly capaciteFormativeAtteinte?: boolean | null;\n}\n\n/**\n * Check if a given object implements the ContratLieuFormationTuteurGridDto interface.\n */\nexport function instanceOfContratLieuFormationTuteurGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratLieuFormationTuteurGridDtoFromJSON(json: any): ContratLieuFormationTuteurGridDto {\n return ContratLieuFormationTuteurGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContratLieuFormationTuteurGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratLieuFormationTuteurGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratLieuFormationTuteur': !exists(json, 'idcontratLieuFormationTuteur') ? undefined : json['idcontratLieuFormationTuteur'],\n 'idcontratLieuFormation': !exists(json, 'idcontratLieuFormation') ? undefined : json['idcontratLieuFormation'],\n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'idtuteurLieu': !exists(json, 'idtuteurLieu') ? undefined : json['idtuteurLieu'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'nbContrats': !exists(json, 'nbContrats') ? undefined : json['nbContrats'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n 'capaciteFormativeAtteinte': !exists(json, 'capaciteFormativeAtteinte') ? undefined : json['capaciteFormativeAtteinte'],\n };\n}\n\nexport function ContratLieuFormationTuteurGridDtoToJSON(value?: ContratLieuFormationTuteurGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratLieuFormationTuteur': value.idcontratLieuFormationTuteur,\n 'idcontratLieuFormation': value.idcontratLieuFormation,\n 'idtuteur': value.idtuteur,\n 'idtuteurLieu': value.idtuteurLieu,\n 'principal': value.principal,\n 'nom': value.nom,\n 'actif': value.actif,\n 'nbContrats': value.nbContrats,\n 'capaciteFormative': value.capaciteFormative,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContratLieuFormationTuteurGridDto } from './ContratLieuFormationTuteurGridDto';\nimport {\n ContratLieuFormationTuteurGridDtoFromJSON,\n ContratLieuFormationTuteurGridDtoFromJSONTyped,\n ContratLieuFormationTuteurGridDtoToJSON,\n} from './ContratLieuFormationTuteurGridDto';\n\n/**\n * \n * @export\n * @interface ContratLieuFormationGridDto\n */\nexport interface ContratLieuFormationGridDto {\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationGridDto\n */\n idcontratLieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationGridDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationGridDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ContratLieuFormationGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuFormationGridDto\n */\n enseigne?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuFormationGridDto\n */\n numeroUe?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ContratLieuFormationGridDto\n */\n principal?: boolean;\n /**\n * \n * @type {string}\n * @memberof ContratLieuFormationGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationGridDto\n */\n nbContrats?: number;\n /**\n * \n * @type {number}\n * @memberof ContratLieuFormationGridDto\n */\n capaciteFormative?: number;\n /**\n * \n * @type {boolean}\n * @memberof ContratLieuFormationGridDto\n */\n readonly capaciteFormativeAtteinte?: boolean | null;\n /**\n * \n * @type {Array}\n * @memberof ContratLieuFormationGridDto\n */\n tuteurs?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof ContratLieuFormationGridDto\n */\n actif?: boolean;\n}\n\n/**\n * Check if a given object implements the ContratLieuFormationGridDto interface.\n */\nexport function instanceOfContratLieuFormationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratLieuFormationGridDtoFromJSON(json: any): ContratLieuFormationGridDto {\n return ContratLieuFormationGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContratLieuFormationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratLieuFormationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratLieuFormation': !exists(json, 'idcontratLieuFormation') ? undefined : json['idcontratLieuFormation'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'enseigne': !exists(json, 'enseigne') ? undefined : json['enseigne'],\n 'numeroUe': !exists(json, 'numeroUe') ? undefined : json['numeroUe'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nbContrats': !exists(json, 'nbContrats') ? undefined : json['nbContrats'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n 'capaciteFormativeAtteinte': !exists(json, 'capaciteFormativeAtteinte') ? undefined : json['capaciteFormativeAtteinte'],\n 'tuteurs': !exists(json, 'tuteurs') ? undefined : (json['tuteurs'] === null ? null : (json['tuteurs'] as Array).map(ContratLieuFormationTuteurGridDtoFromJSON)),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function ContratLieuFormationGridDtoToJSON(value?: ContratLieuFormationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratLieuFormation': value.idcontratLieuFormation,\n 'idcontrat': value.idcontrat,\n 'idlieuFormation': value.idlieuFormation,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'enseigne': value.enseigne,\n 'numeroUe': value.numeroUe,\n 'principal': value.principal,\n 'localite': value.localite,\n 'nbContrats': value.nbContrats,\n 'capaciteFormative': value.capaciteFormative,\n 'tuteurs': value.tuteurs === undefined ? undefined : (value.tuteurs === null ? null : (value.tuteurs as Array).map(ContratLieuFormationTuteurGridDtoToJSON)),\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratSiegeSocialDto\n */\nexport interface ContratSiegeSocialDto {\n /**\n * \n * @type {number}\n * @memberof ContratSiegeSocialDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ContratSiegeSocialDto\n */\n denominationSociale?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratSiegeSocialDto\n */\n numeroBce?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratSiegeSocialDto\n */\n idtypeEntreprise?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratSiegeSocialDto\n */\n idformeJuridique?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof ContratSiegeSocialDto\n */\n sendToAdress?: boolean;\n /**\n * \n * @type {string}\n * @memberof ContratSiegeSocialDto\n */\n adresse?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratSiegeSocialDto\n */\n idcodePostal?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratSiegeSocialDto\n */\n codePostalText?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratSiegeSocialDto\n */\n boite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratSiegeSocialDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratSiegeSocialDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratSiegeSocialDto\n */\n pays?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratSiegeSocialDto interface.\n */\nexport function instanceOfContratSiegeSocialDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratSiegeSocialDtoFromJSON(json: any): ContratSiegeSocialDto {\n return ContratSiegeSocialDtoFromJSONTyped(json, false);\n}\n\nexport function ContratSiegeSocialDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratSiegeSocialDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : json['denominationSociale'],\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : json['numeroBce'],\n 'idtypeEntreprise': !exists(json, 'idtypeEntreprise') ? undefined : json['idtypeEntreprise'],\n 'idformeJuridique': !exists(json, 'idformeJuridique') ? undefined : json['idformeJuridique'],\n 'sendToAdress': !exists(json, 'sendToAdress') ? undefined : json['sendToAdress'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'codePostalText': !exists(json, 'codePostalText') ? undefined : json['codePostalText'],\n 'boite': !exists(json, 'boite') ? undefined : json['boite'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'pays': !exists(json, 'pays') ? undefined : json['pays'],\n };\n}\n\nexport function ContratSiegeSocialDtoToJSON(value?: ContratSiegeSocialDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'denominationSociale': value.denominationSociale,\n 'numeroBce': value.numeroBce,\n 'idtypeEntreprise': value.idtypeEntreprise,\n 'idformeJuridique': value.idformeJuridique,\n 'sendToAdress': value.sendToAdress,\n 'adresse': value.adresse,\n 'idcodePostal': value.idcodePostal,\n 'codePostalText': value.codePostalText,\n 'boite': value.boite,\n 'localite': value.localite,\n 'commune': value.commune,\n 'pays': value.pays,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContratChefEntrepriseDto } from './ContratChefEntrepriseDto';\nimport {\n ContratChefEntrepriseDtoFromJSON,\n ContratChefEntrepriseDtoFromJSONTyped,\n ContratChefEntrepriseDtoToJSON,\n} from './ContratChefEntrepriseDto';\nimport type { ContratSiegeSocialDto } from './ContratSiegeSocialDto';\nimport {\n ContratSiegeSocialDtoFromJSON,\n ContratSiegeSocialDtoFromJSONTyped,\n ContratSiegeSocialDtoToJSON,\n} from './ContratSiegeSocialDto';\n\n/**\n * \n * @export\n * @interface ContratStageObservationDto\n */\nexport interface ContratStageObservationDto {\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n idcontratStageObservation?: number;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n idsiegeSocial?: number | null;\n /**\n * \n * @type {ContratSiegeSocialDto}\n * @memberof ContratStageObservationDto\n */\n siegeSocial?: ContratSiegeSocialDto;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n idchefEntreprise?: number | null;\n /**\n * \n * @type {ContratChefEntrepriseDto}\n * @memberof ContratStageObservationDto\n */\n chefEntreprise?: ContratChefEntrepriseDto;\n /**\n * \n * @type {string}\n * @memberof ContratStageObservationDto\n */\n fonction?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratStageObservationDto\n */\n maitreStage?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratStageObservationDto\n */\n fonctionMaitreStage?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n dureeExpPro?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n age?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratStageObservationDto\n */\n numero?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n nbMaxHeures?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n anneeFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n nbMinHeures?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n nbHeuresPrevues?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratStageObservationDto\n */\n nbHeuresPrestees?: number | null;\n}\n\n/**\n * Check if a given object implements the ContratStageObservationDto interface.\n */\nexport function instanceOfContratStageObservationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratStageObservationDtoFromJSON(json: any): ContratStageObservationDto {\n return ContratStageObservationDtoFromJSONTyped(json, false);\n}\n\nexport function ContratStageObservationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratStageObservationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratStageObservation': !exists(json, 'idcontratStageObservation') ? undefined : json['idcontratStageObservation'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'siegeSocial': !exists(json, 'siegeSocial') ? undefined : ContratSiegeSocialDtoFromJSON(json['siegeSocial']),\n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'chefEntreprise': !exists(json, 'chefEntreprise') ? undefined : ContratChefEntrepriseDtoFromJSON(json['chefEntreprise']),\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'maitreStage': !exists(json, 'maitreStage') ? undefined : json['maitreStage'],\n 'fonctionMaitreStage': !exists(json, 'fonctionMaitreStage') ? undefined : json['fonctionMaitreStage'],\n 'dureeExpPro': !exists(json, 'dureeExpPro') ? undefined : json['dureeExpPro'],\n 'age': !exists(json, 'age') ? undefined : json['age'],\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'nbMaxHeures': !exists(json, 'nbMaxHeures') ? undefined : json['nbMaxHeures'],\n 'anneeFormation': !exists(json, 'anneeFormation') ? undefined : json['anneeFormation'],\n 'nbMinHeures': !exists(json, 'nbMinHeures') ? undefined : json['nbMinHeures'],\n 'nbHeuresPrevues': !exists(json, 'nbHeuresPrevues') ? undefined : json['nbHeuresPrevues'],\n 'nbHeuresPrestees': !exists(json, 'nbHeuresPrestees') ? undefined : json['nbHeuresPrestees'],\n };\n}\n\nexport function ContratStageObservationDtoToJSON(value?: ContratStageObservationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratStageObservation': value.idcontratStageObservation,\n 'idcontrat': value.idcontrat,\n 'idsiegeSocial': value.idsiegeSocial,\n 'siegeSocial': ContratSiegeSocialDtoToJSON(value.siegeSocial),\n 'idchefEntreprise': value.idchefEntreprise,\n 'chefEntreprise': ContratChefEntrepriseDtoToJSON(value.chefEntreprise),\n 'fonction': value.fonction,\n 'maitreStage': value.maitreStage,\n 'fonctionMaitreStage': value.fonctionMaitreStage,\n 'dureeExpPro': value.dureeExpPro,\n 'age': value.age,\n 'numero': value.numero,\n 'nbMaxHeures': value.nbMaxHeures,\n 'anneeFormation': value.anneeFormation,\n 'nbMinHeures': value.nbMinHeures,\n 'nbHeuresPrevues': value.nbHeuresPrevues,\n 'nbHeuresPrestees': value.nbHeuresPrestees,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DecouverteMetierDto\n */\nexport interface DecouverteMetierDto {\n /**\n * \n * @type {number}\n * @memberof DecouverteMetierDto\n */\n idcontratDecouverteMetier?: number;\n /**\n * \n * @type {number}\n * @memberof DecouverteMetierDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {Date}\n * @memberof DecouverteMetierDto\n */\n dateTransmission?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am1?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm1?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am2?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm2?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am3?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm3?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am4?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm4?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am5?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm5?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am6?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm6?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am7?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm7?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am8?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm8?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am9?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm9?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n am10?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DecouverteMetierDto\n */\n pm10?: boolean;\n}\n\n/**\n * Check if a given object implements the DecouverteMetierDto interface.\n */\nexport function instanceOfDecouverteMetierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DecouverteMetierDtoFromJSON(json: any): DecouverteMetierDto {\n return DecouverteMetierDtoFromJSONTyped(json, false);\n}\n\nexport function DecouverteMetierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DecouverteMetierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratDecouverteMetier': !exists(json, 'idcontratDecouverteMetier') ? undefined : json['idcontratDecouverteMetier'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'dateTransmission': !exists(json, 'dateTransmission') ? undefined : (json['dateTransmission'] === null ? null : new Date(json['dateTransmission'])),\n 'am1': !exists(json, 'am1') ? undefined : json['am1'],\n 'pm1': !exists(json, 'pm1') ? undefined : json['pm1'],\n 'am2': !exists(json, 'am2') ? undefined : json['am2'],\n 'pm2': !exists(json, 'pm2') ? undefined : json['pm2'],\n 'am3': !exists(json, 'am3') ? undefined : json['am3'],\n 'pm3': !exists(json, 'pm3') ? undefined : json['pm3'],\n 'am4': !exists(json, 'am4') ? undefined : json['am4'],\n 'pm4': !exists(json, 'pm4') ? undefined : json['pm4'],\n 'am5': !exists(json, 'am5') ? undefined : json['am5'],\n 'pm5': !exists(json, 'pm5') ? undefined : json['pm5'],\n 'am6': !exists(json, 'am6') ? undefined : json['am6'],\n 'pm6': !exists(json, 'pm6') ? undefined : json['pm6'],\n 'am7': !exists(json, 'am7') ? undefined : json['am7'],\n 'pm7': !exists(json, 'pm7') ? undefined : json['pm7'],\n 'am8': !exists(json, 'am8') ? undefined : json['am8'],\n 'pm8': !exists(json, 'pm8') ? undefined : json['pm8'],\n 'am9': !exists(json, 'am9') ? undefined : json['am9'],\n 'pm9': !exists(json, 'pm9') ? undefined : json['pm9'],\n 'am10': !exists(json, 'am10') ? undefined : json['am10'],\n 'pm10': !exists(json, 'pm10') ? undefined : json['pm10'],\n };\n}\n\nexport function DecouverteMetierDtoToJSON(value?: DecouverteMetierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratDecouverteMetier': value.idcontratDecouverteMetier,\n 'idcontrat': value.idcontrat,\n 'dateTransmission': value.dateTransmission === undefined ? undefined : (value.dateTransmission === null ? null : value.dateTransmission.toISOString()),\n 'am1': value.am1,\n 'pm1': value.pm1,\n 'am2': value.am2,\n 'pm2': value.pm2,\n 'am3': value.am3,\n 'pm3': value.pm3,\n 'am4': value.am4,\n 'pm4': value.pm4,\n 'am5': value.am5,\n 'pm5': value.pm5,\n 'am6': value.am6,\n 'pm6': value.pm6,\n 'am7': value.am7,\n 'pm7': value.pm7,\n 'am8': value.am8,\n 'pm8': value.pm8,\n 'am9': value.am9,\n 'pm9': value.pm9,\n 'am10': value.am10,\n 'pm10': value.pm10,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PratiqueProfessionnelleDto\n */\nexport interface PratiqueProfessionnelleDto {\n /**\n * \n * @type {number}\n * @memberof PratiqueProfessionnelleDto\n */\n idcontratPratiqueProfessionnelle?: number;\n /**\n * \n * @type {number}\n * @memberof PratiqueProfessionnelleDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof PratiqueProfessionnelleDto\n */\n iddispenseChomage?: number | null;\n /**\n * \n * @type {string}\n * @memberof PratiqueProfessionnelleDto\n */\n nbHeuresMax?: string | null;\n /**\n * \n * @type {number}\n * @memberof PratiqueProfessionnelleDto\n */\n nbHeuresMin?: number | null;\n /**\n * \n * @type {number}\n * @memberof PratiqueProfessionnelleDto\n */\n anneeFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof PratiqueProfessionnelleDto\n */\n nbHeuresPrevues?: number | null;\n /**\n * \n * @type {number}\n * @memberof PratiqueProfessionnelleDto\n */\n nbHeuresPrestees?: number | null;\n}\n\n/**\n * Check if a given object implements the PratiqueProfessionnelleDto interface.\n */\nexport function instanceOfPratiqueProfessionnelleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PratiqueProfessionnelleDtoFromJSON(json: any): PratiqueProfessionnelleDto {\n return PratiqueProfessionnelleDtoFromJSONTyped(json, false);\n}\n\nexport function PratiqueProfessionnelleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PratiqueProfessionnelleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratPratiqueProfessionnelle': !exists(json, 'idcontratPratiqueProfessionnelle') ? undefined : json['idcontratPratiqueProfessionnelle'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'iddispenseChomage': !exists(json, 'iddispenseChomage') ? undefined : json['iddispenseChomage'],\n 'nbHeuresMax': !exists(json, 'nbHeuresMax') ? undefined : json['nbHeuresMax'],\n 'nbHeuresMin': !exists(json, 'nbHeuresMin') ? undefined : json['nbHeuresMin'],\n 'anneeFormation': !exists(json, 'anneeFormation') ? undefined : json['anneeFormation'],\n 'nbHeuresPrevues': !exists(json, 'nbHeuresPrevues') ? undefined : json['nbHeuresPrevues'],\n 'nbHeuresPrestees': !exists(json, 'nbHeuresPrestees') ? undefined : json['nbHeuresPrestees'],\n };\n}\n\nexport function PratiqueProfessionnelleDtoToJSON(value?: PratiqueProfessionnelleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratPratiqueProfessionnelle': value.idcontratPratiqueProfessionnelle,\n 'idcontrat': value.idcontrat,\n 'iddispenseChomage': value.iddispenseChomage,\n 'nbHeuresMax': value.nbHeuresMax,\n 'nbHeuresMin': value.nbHeuresMin,\n 'anneeFormation': value.anneeFormation,\n 'nbHeuresPrevues': value.nbHeuresPrevues,\n 'nbHeuresPrestees': value.nbHeuresPrestees,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { BaremeTheoriqueDto } from './BaremeTheoriqueDto';\nimport {\n BaremeTheoriqueDtoFromJSON,\n BaremeTheoriqueDtoFromJSONTyped,\n BaremeTheoriqueDtoToJSON,\n} from './BaremeTheoriqueDto';\nimport type { ContratAlternanceCommunDto } from './ContratAlternanceCommunDto';\nimport {\n ContratAlternanceCommunDtoFromJSON,\n ContratAlternanceCommunDtoFromJSONTyped,\n ContratAlternanceCommunDtoToJSON,\n} from './ContratAlternanceCommunDto';\nimport type { ContratAlternanceDto } from './ContratAlternanceDto';\nimport {\n ContratAlternanceDtoFromJSON,\n ContratAlternanceDtoFromJSONTyped,\n ContratAlternanceDtoToJSON,\n} from './ContratAlternanceDto';\nimport type { ContratConventionStageDto } from './ContratConventionStageDto';\nimport {\n ContratConventionStageDtoFromJSON,\n ContratConventionStageDtoFromJSONTyped,\n ContratConventionStageDtoToJSON,\n} from './ContratConventionStageDto';\nimport type { ContratConventionStageExterneDto } from './ContratConventionStageExterneDto';\nimport {\n ContratConventionStageExterneDtoFromJSON,\n ContratConventionStageExterneDtoFromJSONTyped,\n ContratConventionStageExterneDtoToJSON,\n} from './ContratConventionStageExterneDto';\nimport type { ContratFaltDto } from './ContratFaltDto';\nimport {\n ContratFaltDtoFromJSON,\n ContratFaltDtoFromJSONTyped,\n ContratFaltDtoToJSON,\n} from './ContratFaltDto';\nimport type { ContratLieuFormationGridDto } from './ContratLieuFormationGridDto';\nimport {\n ContratLieuFormationGridDtoFromJSON,\n ContratLieuFormationGridDtoFromJSONTyped,\n ContratLieuFormationGridDtoToJSON,\n} from './ContratLieuFormationGridDto';\nimport type { ContratStageObservationDto } from './ContratStageObservationDto';\nimport {\n ContratStageObservationDtoFromJSON,\n ContratStageObservationDtoFromJSONTyped,\n ContratStageObservationDtoToJSON,\n} from './ContratStageObservationDto';\nimport type { DecouverteMetierDto } from './DecouverteMetierDto';\nimport {\n DecouverteMetierDtoFromJSON,\n DecouverteMetierDtoFromJSONTyped,\n DecouverteMetierDtoToJSON,\n} from './DecouverteMetierDto';\nimport type { EStatutContrat } from './EStatutContrat';\nimport {\n EStatutContratFromJSON,\n EStatutContratFromJSONTyped,\n EStatutContratToJSON,\n} from './EStatutContrat';\nimport type { ETypeContrat } from './ETypeContrat';\nimport {\n ETypeContratFromJSON,\n ETypeContratFromJSONTyped,\n ETypeContratToJSON,\n} from './ETypeContrat';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\nimport type { PratiqueProfessionnelleDto } from './PratiqueProfessionnelleDto';\nimport {\n PratiqueProfessionnelleDtoFromJSON,\n PratiqueProfessionnelleDtoFromJSONTyped,\n PratiqueProfessionnelleDtoToJSON,\n} from './PratiqueProfessionnelleDto';\n\n/**\n * \n * @export\n * @interface ContratEditDto\n */\nexport interface ContratEditDto {\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idcontrat?: number;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idserviceTutelle?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n service?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n iddureeContrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idcommissionParitaire?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idheureHebdoPossibleCommissionParitaire?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n customHeuresHebdo?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ContratEditDto\n */\n idsclause?: Array | null;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n metier?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idstade?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n stade?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n codeStade?: string | null;\n /**\n * \n * @type {ETypeContrat}\n * @memberof ContratEditDto\n */\n type?: ETypeContrat;\n /**\n * \n * @type {EStatutContrat}\n * @memberof ContratEditDto\n */\n statut?: EStatutContrat;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idpri?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idari?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n apprenant?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n apprenantStatut?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContratEditDto\n */\n marqueSansSuiteLe?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratEditDto\n */\n rompuLe?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n motifRupturePatron?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n motifRuptureJeune?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idfichierRupture?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof ContratEditDto\n */\n fichierRupture?: FileUploadDto;\n /**\n * \n * @type {Date}\n * @memberof ContratEditDto\n */\n datePriseActe?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratEditDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratEditDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratEditDto\n */\n debutDerniereSuspension?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratEditDto\n */\n finDerniereSuspension?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratEditDto\n */\n dateSignature?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idlieuSignature?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idcontratInitiateurRupture?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idcontratMotifRupturePatron?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idcontratMotifRuptureJeune?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idcalcRiActant?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n remarqueRupture?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n idariane?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ContratEditDto\n */\n lieuxFormation?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratEditDto\n */\n baremes?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof ContratEditDto\n */\n rompreAgrementsActifs?: boolean | null;\n /**\n * \n * @type {ContratAlternanceDto}\n * @memberof ContratEditDto\n */\n contratAlternanceDto?: ContratAlternanceDto;\n /**\n * \n * @type {PratiqueProfessionnelleDto}\n * @memberof ContratEditDto\n */\n pratiqueProfessionnelleDto?: PratiqueProfessionnelleDto;\n /**\n * \n * @type {ContratConventionStageDto}\n * @memberof ContratEditDto\n */\n contratConventionStageDto?: ContratConventionStageDto;\n /**\n * \n * @type {ContratFaltDto}\n * @memberof ContratEditDto\n */\n contratFaltDto?: ContratFaltDto;\n /**\n * \n * @type {DecouverteMetierDto}\n * @memberof ContratEditDto\n */\n decouverteMetierDto?: DecouverteMetierDto;\n /**\n * \n * @type {ContratStageObservationDto}\n * @memberof ContratEditDto\n */\n contratStageObservationDto?: ContratStageObservationDto;\n /**\n * \n * @type {ContratAlternanceCommunDto}\n * @memberof ContratEditDto\n */\n contratAlternanceCommunDto?: ContratAlternanceCommunDto;\n /**\n * \n * @type {ContratConventionStageExterneDto}\n * @memberof ContratEditDto\n */\n contratConventionStageExterneDto?: ContratConventionStageExterneDto;\n /**\n * \n * @type {string}\n * @memberof ContratEditDto\n */\n code?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n capaciteFormativeAgrement?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratEditDto\n */\n nbContratsLf?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof ContratEditDto\n */\n readonly capaciteFormativeAgrementAtteinte?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ContratEditDto\n */\n mustDisableOffre?: boolean;\n}\n\n/**\n * Check if a given object implements the ContratEditDto interface.\n */\nexport function instanceOfContratEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratEditDtoFromJSON(json: any): ContratEditDto {\n return ContratEditDtoFromJSONTyped(json, false);\n}\n\nexport function ContratEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idserviceTutelle': !exists(json, 'idserviceTutelle') ? undefined : json['idserviceTutelle'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'service': !exists(json, 'service') ? undefined : json['service'],\n 'iddureeContrat': !exists(json, 'iddureeContrat') ? undefined : json['iddureeContrat'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idcommissionParitaire': !exists(json, 'idcommissionParitaire') ? undefined : json['idcommissionParitaire'],\n 'idheureHebdoPossibleCommissionParitaire': !exists(json, 'idheureHebdoPossibleCommissionParitaire') ? undefined : json['idheureHebdoPossibleCommissionParitaire'],\n 'customHeuresHebdo': !exists(json, 'customHeuresHebdo') ? undefined : json['customHeuresHebdo'],\n 'idsclause': !exists(json, 'idsclause') ? undefined : json['idsclause'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'codeStade': !exists(json, 'codeStade') ? undefined : json['codeStade'],\n 'type': !exists(json, 'type') ? undefined : ETypeContratFromJSON(json['type']),\n 'statut': !exists(json, 'statut') ? undefined : EStatutContratFromJSON(json['statut']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idpri': !exists(json, 'idpri') ? undefined : json['idpri'],\n 'idari': !exists(json, 'idari') ? undefined : json['idari'],\n 'apprenant': !exists(json, 'apprenant') ? undefined : json['apprenant'],\n 'apprenantStatut': !exists(json, 'apprenantStatut') ? undefined : json['apprenantStatut'],\n 'marqueSansSuiteLe': !exists(json, 'marqueSansSuiteLe') ? undefined : (json['marqueSansSuiteLe'] === null ? null : new Date(json['marqueSansSuiteLe'])),\n 'rompuLe': !exists(json, 'rompuLe') ? undefined : (json['rompuLe'] === null ? null : new Date(json['rompuLe'])),\n 'motifRupturePatron': !exists(json, 'motifRupturePatron') ? undefined : json['motifRupturePatron'],\n 'motifRuptureJeune': !exists(json, 'motifRuptureJeune') ? undefined : json['motifRuptureJeune'],\n 'idfichierRupture': !exists(json, 'idfichierRupture') ? undefined : json['idfichierRupture'],\n 'fichierRupture': !exists(json, 'fichierRupture') ? undefined : FileUploadDtoFromJSON(json['fichierRupture']),\n 'datePriseActe': !exists(json, 'datePriseActe') ? undefined : (json['datePriseActe'] === null ? null : new Date(json['datePriseActe'])),\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'debutDerniereSuspension': !exists(json, 'debutDerniereSuspension') ? undefined : (json['debutDerniereSuspension'] === null ? null : new Date(json['debutDerniereSuspension'])),\n 'finDerniereSuspension': !exists(json, 'finDerniereSuspension') ? undefined : (json['finDerniereSuspension'] === null ? null : new Date(json['finDerniereSuspension'])),\n 'dateSignature': !exists(json, 'dateSignature') ? undefined : (json['dateSignature'] === null ? null : new Date(json['dateSignature'])),\n 'idlieuSignature': !exists(json, 'idlieuSignature') ? undefined : json['idlieuSignature'],\n 'idcontratInitiateurRupture': !exists(json, 'idcontratInitiateurRupture') ? undefined : json['idcontratInitiateurRupture'],\n 'idcontratMotifRupturePatron': !exists(json, 'idcontratMotifRupturePatron') ? undefined : json['idcontratMotifRupturePatron'],\n 'idcontratMotifRuptureJeune': !exists(json, 'idcontratMotifRuptureJeune') ? undefined : json['idcontratMotifRuptureJeune'],\n 'idcalcRiActant': !exists(json, 'idcalcRiActant') ? undefined : json['idcalcRiActant'],\n 'remarqueRupture': !exists(json, 'remarqueRupture') ? undefined : json['remarqueRupture'],\n 'idariane': !exists(json, 'idariane') ? undefined : json['idariane'],\n 'lieuxFormation': !exists(json, 'lieuxFormation') ? undefined : (json['lieuxFormation'] === null ? null : (json['lieuxFormation'] as Array).map(ContratLieuFormationGridDtoFromJSON)),\n 'baremes': !exists(json, 'baremes') ? undefined : (json['baremes'] === null ? null : (json['baremes'] as Array).map(BaremeTheoriqueDtoFromJSON)),\n 'rompreAgrementsActifs': !exists(json, 'rompreAgrementsActifs') ? undefined : json['rompreAgrementsActifs'],\n 'contratAlternanceDto': !exists(json, 'contratAlternanceDto') ? undefined : ContratAlternanceDtoFromJSON(json['contratAlternanceDto']),\n 'pratiqueProfessionnelleDto': !exists(json, 'pratiqueProfessionnelleDto') ? undefined : PratiqueProfessionnelleDtoFromJSON(json['pratiqueProfessionnelleDto']),\n 'contratConventionStageDto': !exists(json, 'contratConventionStageDto') ? undefined : ContratConventionStageDtoFromJSON(json['contratConventionStageDto']),\n 'contratFaltDto': !exists(json, 'contratFaltDto') ? undefined : ContratFaltDtoFromJSON(json['contratFaltDto']),\n 'decouverteMetierDto': !exists(json, 'decouverteMetierDto') ? undefined : DecouverteMetierDtoFromJSON(json['decouverteMetierDto']),\n 'contratStageObservationDto': !exists(json, 'contratStageObservationDto') ? undefined : ContratStageObservationDtoFromJSON(json['contratStageObservationDto']),\n 'contratAlternanceCommunDto': !exists(json, 'contratAlternanceCommunDto') ? undefined : ContratAlternanceCommunDtoFromJSON(json['contratAlternanceCommunDto']),\n 'contratConventionStageExterneDto': !exists(json, 'contratConventionStageExterneDto') ? undefined : ContratConventionStageExterneDtoFromJSON(json['contratConventionStageExterneDto']),\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'capaciteFormativeAgrement': !exists(json, 'capaciteFormativeAgrement') ? undefined : json['capaciteFormativeAgrement'],\n 'nbContratsLf': !exists(json, 'nbContratsLf') ? undefined : json['nbContratsLf'],\n 'capaciteFormativeAgrementAtteinte': !exists(json, 'capaciteFormativeAgrementAtteinte') ? undefined : json['capaciteFormativeAgrementAtteinte'],\n 'mustDisableOffre': !exists(json, 'mustDisableOffre') ? undefined : json['mustDisableOffre'],\n };\n}\n\nexport function ContratEditDtoToJSON(value?: ContratEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontrat': value.idcontrat,\n 'idserviceTutelle': value.idserviceTutelle,\n 'idclasse': value.idclasse,\n 'service': value.service,\n 'iddureeContrat': value.iddureeContrat,\n 'idmetier': value.idmetier,\n 'idcommissionParitaire': value.idcommissionParitaire,\n 'idheureHebdoPossibleCommissionParitaire': value.idheureHebdoPossibleCommissionParitaire,\n 'customHeuresHebdo': value.customHeuresHebdo,\n 'idsclause': value.idsclause,\n 'metier': value.metier,\n 'idstade': value.idstade,\n 'stade': value.stade,\n 'codeStade': value.codeStade,\n 'type': ETypeContratToJSON(value.type),\n 'statut': EStatutContratToJSON(value.statut),\n 'idapprenant': value.idapprenant,\n 'idpri': value.idpri,\n 'idari': value.idari,\n 'apprenant': value.apprenant,\n 'apprenantStatut': value.apprenantStatut,\n 'marqueSansSuiteLe': value.marqueSansSuiteLe === undefined ? undefined : (value.marqueSansSuiteLe === null ? null : value.marqueSansSuiteLe.toISOString()),\n 'rompuLe': value.rompuLe === undefined ? undefined : (value.rompuLe === null ? null : value.rompuLe.toISOString()),\n 'motifRupturePatron': value.motifRupturePatron,\n 'motifRuptureJeune': value.motifRuptureJeune,\n 'idfichierRupture': value.idfichierRupture,\n 'fichierRupture': FileUploadDtoToJSON(value.fichierRupture),\n 'datePriseActe': value.datePriseActe === undefined ? undefined : (value.datePriseActe === null ? null : value.datePriseActe.toISOString()),\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'debutDerniereSuspension': value.debutDerniereSuspension === undefined ? undefined : (value.debutDerniereSuspension === null ? null : value.debutDerniereSuspension.toISOString()),\n 'finDerniereSuspension': value.finDerniereSuspension === undefined ? undefined : (value.finDerniereSuspension === null ? null : value.finDerniereSuspension.toISOString()),\n 'dateSignature': value.dateSignature === undefined ? undefined : (value.dateSignature === null ? null : value.dateSignature.toISOString()),\n 'idlieuSignature': value.idlieuSignature,\n 'idcontratInitiateurRupture': value.idcontratInitiateurRupture,\n 'idcontratMotifRupturePatron': value.idcontratMotifRupturePatron,\n 'idcontratMotifRuptureJeune': value.idcontratMotifRuptureJeune,\n 'idcalcRiActant': value.idcalcRiActant,\n 'remarqueRupture': value.remarqueRupture,\n 'idariane': value.idariane,\n 'lieuxFormation': value.lieuxFormation === undefined ? undefined : (value.lieuxFormation === null ? null : (value.lieuxFormation as Array).map(ContratLieuFormationGridDtoToJSON)),\n 'baremes': value.baremes === undefined ? undefined : (value.baremes === null ? null : (value.baremes as Array).map(BaremeTheoriqueDtoToJSON)),\n 'rompreAgrementsActifs': value.rompreAgrementsActifs,\n 'contratAlternanceDto': ContratAlternanceDtoToJSON(value.contratAlternanceDto),\n 'pratiqueProfessionnelleDto': PratiqueProfessionnelleDtoToJSON(value.pratiqueProfessionnelleDto),\n 'contratConventionStageDto': ContratConventionStageDtoToJSON(value.contratConventionStageDto),\n 'contratFaltDto': ContratFaltDtoToJSON(value.contratFaltDto),\n 'decouverteMetierDto': DecouverteMetierDtoToJSON(value.decouverteMetierDto),\n 'contratStageObservationDto': ContratStageObservationDtoToJSON(value.contratStageObservationDto),\n 'contratAlternanceCommunDto': ContratAlternanceCommunDtoToJSON(value.contratAlternanceCommunDto),\n 'contratConventionStageExterneDto': ContratConventionStageExterneDtoToJSON(value.contratConventionStageExterneDto),\n 'code': value.code,\n 'capaciteFormativeAgrement': value.capaciteFormativeAgrement,\n 'nbContratsLf': value.nbContratsLf,\n 'mustDisableOffre': value.mustDisableOffre,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratFichierDto\n */\nexport interface ContratFichierDto {\n /**\n * \n * @type {number}\n * @memberof ContratFichierDto\n */\n idcontratFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ContratFichierDto\n */\n idcontrat?: number;\n /**\n * \n * @type {number}\n * @memberof ContratFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof ContratFichierDto\n */\n idtypeContratFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ContratFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratFichierDto interface.\n */\nexport function instanceOfContratFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratFichierDtoFromJSON(json: any): ContratFichierDto {\n return ContratFichierDtoFromJSONTyped(json, false);\n}\n\nexport function ContratFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratFichier': !exists(json, 'idcontratFichier') ? undefined : json['idcontratFichier'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeContratFichier': !exists(json, 'idtypeContratFichier') ? undefined : json['idtypeContratFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function ContratFichierDtoToJSON(value?: ContratFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratFichier': value.idcontratFichier,\n 'idcontrat': value.idcontrat,\n 'idfichier': value.idfichier,\n 'idtypeContratFichier': value.idtypeContratFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratFichierGridDto\n */\nexport interface ContratFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof ContratFichierGridDto\n */\n idcontratFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ContratFichierGridDto\n */\n idtypeContratFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ContratFichierGridDto\n */\n typeContratFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContratFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the ContratFichierGridDto interface.\n */\nexport function instanceOfContratFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratFichierGridDtoFromJSON(json: any): ContratFichierGridDto {\n return ContratFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContratFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratFichier': !exists(json, 'idcontratFichier') ? undefined : json['idcontratFichier'],\n 'idtypeContratFichier': !exists(json, 'idtypeContratFichier') ? undefined : json['idtypeContratFichier'],\n 'typeContratFichier': !exists(json, 'typeContratFichier') ? undefined : json['typeContratFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function ContratFichierGridDtoToJSON(value?: ContratFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratFichier': value.idcontratFichier,\n 'idtypeContratFichier': value.idtypeContratFichier,\n 'typeContratFichier': value.typeContratFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContratFichierGridDto } from './ContratFichierGridDto';\nimport {\n ContratFichierGridDtoFromJSON,\n ContratFichierGridDtoFromJSONTyped,\n ContratFichierGridDtoToJSON,\n} from './ContratFichierGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContratFichierGridDtoPaginatedResults\n */\nexport interface ContratFichierGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContratFichierGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContratFichierGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratFichierGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContratFichierGridDtoPaginatedResults interface.\n */\nexport function instanceOfContratFichierGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratFichierGridDtoPaginatedResultsFromJSON(json: any): ContratFichierGridDtoPaginatedResults {\n return ContratFichierGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContratFichierGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratFichierGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContratFichierGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContratFichierGridDtoPaginatedResultsToJSON(value?: ContratFichierGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContratFichierGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface ContratFichierSearchDto\n */\nexport interface ContratFichierSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContratFichierSearchDto\n */\n fileName?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContratFichierSearchDto\n */\n uploadUser?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof ContratFichierSearchDto\n */\n uploadDate?: DateSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof ContratFichierSearchDto\n */\n idtypeContratFichier?: Int32NullableListSearch;\n /**\n * \n * @type {number}\n * @memberof ContratFichierSearchDto\n */\n idcontrat?: number;\n /**\n * \n * @type {Array}\n * @memberof ContratFichierSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratFichierSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContratFichierSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratFichierSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContratFichierSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContratFichierSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratFichierSearchDto interface.\n */\nexport function instanceOfContratFichierSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratFichierSearchDtoFromJSON(json: any): ContratFichierSearchDto {\n return ContratFichierSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ContratFichierSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratFichierSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'fileName': !exists(json, 'fileName') ? undefined : UnaccentTextSearchFromJSON(json['fileName']),\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : UnaccentTextSearchFromJSON(json['uploadUser']),\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : DateSearchFromJSON(json['uploadDate']),\n 'idtypeContratFichier': !exists(json, 'idtypeContratFichier') ? undefined : Int32NullableListSearchFromJSON(json['idtypeContratFichier']),\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContratFichierSearchDtoToJSON(value?: ContratFichierSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'fileName': UnaccentTextSearchToJSON(value.fileName),\n 'uploadUser': UnaccentTextSearchToJSON(value.uploadUser),\n 'uploadDate': DateSearchToJSON(value.uploadDate),\n 'idtypeContratFichier': Int32NullableListSearchToJSON(value.idtypeContratFichier),\n 'idcontrat': value.idcontrat,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface ContratFichierUploadDto\n */\nexport interface ContratFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof ContratFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof ContratFichierUploadDto\n */\n idcontratFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ContratFichierUploadDto\n */\n idcontrat?: number;\n /**\n * \n * @type {number}\n * @memberof ContratFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof ContratFichierUploadDto\n */\n idtypeContratFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ContratFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratFichierUploadDto interface.\n */\nexport function instanceOfContratFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratFichierUploadDtoFromJSON(json: any): ContratFichierUploadDto {\n return ContratFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function ContratFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idcontratFichier': !exists(json, 'idcontratFichier') ? undefined : json['idcontratFichier'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeContratFichier': !exists(json, 'idtypeContratFichier') ? undefined : json['idtypeContratFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function ContratFichierUploadDtoToJSON(value?: ContratFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idcontratFichier': value.idcontratFichier,\n 'idcontrat': value.idcontrat,\n 'idfichier': value.idfichier,\n 'idtypeContratFichier': value.idtypeContratFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ContratFormateurSearch\n */\nexport interface ContratFormateurSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ContratFormateurSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ContratFormateurSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ContratFormateurSearch\n */\n type?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ContratFormateurSearch\n */\n idGenre?: Int32ListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ContratFormateurSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof ContratFormateurSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratFormateurSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContratFormateurSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratFormateurSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContratFormateurSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContratFormateurSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratFormateurSearch interface.\n */\nexport function instanceOfContratFormateurSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratFormateurSearchFromJSON(json: any): ContratFormateurSearch {\n return ContratFormateurSearchFromJSONTyped(json, false);\n}\n\nexport function ContratFormateurSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratFormateurSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'type': !exists(json, 'type') ? undefined : Int32ListSearchFromJSON(json['type']),\n 'idGenre': !exists(json, 'idGenre') ? undefined : Int32ListSearchFromJSON(json['idGenre']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContratFormateurSearchToJSON(value?: ContratFormateurSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'libelle': TextSearchToJSON(value.libelle),\n 'type': Int32ListSearchToJSON(value.type),\n 'idGenre': Int32ListSearchToJSON(value.idGenre),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EStatutContrat } from './EStatutContrat';\nimport {\n EStatutContratFromJSON,\n EStatutContratFromJSONTyped,\n EStatutContratToJSON,\n} from './EStatutContrat';\nimport type { ETypeContrat } from './ETypeContrat';\nimport {\n ETypeContratFromJSON,\n ETypeContratFromJSONTyped,\n ETypeContratToJSON,\n} from './ETypeContrat';\n\n/**\n * \n * @export\n * @interface ContratGridDto\n */\nexport interface ContratGridDto {\n /**\n * \n * @type {number}\n * @memberof ContratGridDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {EStatutContrat}\n * @memberof ContratGridDto\n */\n statut?: EStatutContrat;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n service?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n serviceNom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n codeMetier?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n nomMetier?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n stade?: string | null;\n /**\n * \n * @type {ETypeContrat}\n * @memberof ContratGridDto\n */\n type?: ETypeContrat;\n /**\n * \n * @type {number}\n * @memberof ContratGridDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n apprenant?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n lieuPrincipal?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n tuteurPrincipal?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContratGridDto\n */\n marqueSansSuiteLe?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratGridDto\n */\n rompuLe?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratGridDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratGridDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratGridDto\n */\n debutDerniereSuspension?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratGridDto\n */\n finDerniereSuspension?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n lastLieuFormation?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratGridDto\n */\n idEditableCurrentSuspension?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratGridDto\n */\n code?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratGridDto\n */\n idpri?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratGridDto\n */\n idari?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratGridDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratGridDto\n */\n idtuteur?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof ContratGridDto\n */\n hasAvenants?: boolean | null;\n}\n\n/**\n * Check if a given object implements the ContratGridDto interface.\n */\nexport function instanceOfContratGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratGridDtoFromJSON(json: any): ContratGridDto {\n return ContratGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContratGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'statut': !exists(json, 'statut') ? undefined : EStatutContratFromJSON(json['statut']),\n 'service': !exists(json, 'service') ? undefined : json['service'],\n 'serviceNom': !exists(json, 'serviceNom') ? undefined : json['serviceNom'],\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : json['codeMetier'],\n 'nomMetier': !exists(json, 'nomMetier') ? undefined : json['nomMetier'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'type': !exists(json, 'type') ? undefined : ETypeContratFromJSON(json['type']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'apprenant': !exists(json, 'apprenant') ? undefined : json['apprenant'],\n 'lieuPrincipal': !exists(json, 'lieuPrincipal') ? undefined : json['lieuPrincipal'],\n 'tuteurPrincipal': !exists(json, 'tuteurPrincipal') ? undefined : json['tuteurPrincipal'],\n 'marqueSansSuiteLe': !exists(json, 'marqueSansSuiteLe') ? undefined : (json['marqueSansSuiteLe'] === null ? null : new Date(json['marqueSansSuiteLe'])),\n 'rompuLe': !exists(json, 'rompuLe') ? undefined : (json['rompuLe'] === null ? null : new Date(json['rompuLe'])),\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'debutDerniereSuspension': !exists(json, 'debutDerniereSuspension') ? undefined : (json['debutDerniereSuspension'] === null ? null : new Date(json['debutDerniereSuspension'])),\n 'finDerniereSuspension': !exists(json, 'finDerniereSuspension') ? undefined : (json['finDerniereSuspension'] === null ? null : new Date(json['finDerniereSuspension'])),\n 'lastLieuFormation': !exists(json, 'lastLieuFormation') ? undefined : json['lastLieuFormation'],\n 'idEditableCurrentSuspension': !exists(json, 'idEditableCurrentSuspension') ? undefined : json['idEditableCurrentSuspension'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'idpri': !exists(json, 'idpri') ? undefined : json['idpri'],\n 'idari': !exists(json, 'idari') ? undefined : json['idari'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'hasAvenants': !exists(json, 'hasAvenants') ? undefined : json['hasAvenants'],\n };\n}\n\nexport function ContratGridDtoToJSON(value?: ContratGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontrat': value.idcontrat,\n 'statut': EStatutContratToJSON(value.statut),\n 'service': value.service,\n 'serviceNom': value.serviceNom,\n 'codeMetier': value.codeMetier,\n 'nomMetier': value.nomMetier,\n 'stade': value.stade,\n 'type': ETypeContratToJSON(value.type),\n 'idapprenant': value.idapprenant,\n 'apprenant': value.apprenant,\n 'lieuPrincipal': value.lieuPrincipal,\n 'tuteurPrincipal': value.tuteurPrincipal,\n 'marqueSansSuiteLe': value.marqueSansSuiteLe === undefined ? undefined : (value.marqueSansSuiteLe === null ? null : value.marqueSansSuiteLe.toISOString()),\n 'rompuLe': value.rompuLe === undefined ? undefined : (value.rompuLe === null ? null : value.rompuLe.toISOString()),\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'debutDerniereSuspension': value.debutDerniereSuspension === undefined ? undefined : (value.debutDerniereSuspension === null ? null : value.debutDerniereSuspension.toISOString()),\n 'finDerniereSuspension': value.finDerniereSuspension === undefined ? undefined : (value.finDerniereSuspension === null ? null : value.finDerniereSuspension.toISOString()),\n 'lastLieuFormation': value.lastLieuFormation,\n 'idEditableCurrentSuspension': value.idEditableCurrentSuspension,\n 'code': value.code,\n 'idpri': value.idpri,\n 'idari': value.idari,\n 'idlieuFormation': value.idlieuFormation,\n 'idtuteur': value.idtuteur,\n 'hasAvenants': value.hasAvenants,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContratGridDto } from './ContratGridDto';\nimport {\n ContratGridDtoFromJSON,\n ContratGridDtoFromJSONTyped,\n ContratGridDtoToJSON,\n} from './ContratGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContratGridDtoPaginatedResults\n */\nexport interface ContratGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContratGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContratGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContratGridDtoPaginatedResults interface.\n */\nexport function instanceOfContratGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratGridDtoPaginatedResultsFromJSON(json: any): ContratGridDtoPaginatedResults {\n return ContratGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContratGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContratGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContratGridDtoPaginatedResultsToJSON(value?: ContratGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContratGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratHistoryGridDto\n */\nexport interface ContratHistoryGridDto {\n /**\n * \n * @type {number}\n * @memberof ContratHistoryGridDto\n */\n idcontratHistory?: number;\n /**\n * \n * @type {number}\n * @memberof ContratHistoryGridDto\n */\n iduser?: number;\n /**\n * \n * @type {number}\n * @memberof ContratHistoryGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {number}\n * @memberof ContratHistoryGridDto\n */\n idcontrat?: number;\n /**\n * \n * @type {string}\n * @memberof ContratHistoryGridDto\n */\n action?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratHistoryGridDto\n */\n actionType?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ContratHistoryGridDto\n */\n actionDate?: Date;\n /**\n * \n * @type {string}\n * @memberof ContratHistoryGridDto\n */\n userName?: string | null;\n /**\n * \n * @type {Array}\n * @memberof ContratHistoryGridDto\n */\n ifapmeSide?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContratHistoryGridDto interface.\n */\nexport function instanceOfContratHistoryGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratHistoryGridDtoFromJSON(json: any): ContratHistoryGridDto {\n return ContratHistoryGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContratHistoryGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratHistoryGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratHistory': !exists(json, 'idcontratHistory') ? undefined : json['idcontratHistory'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'actionType': !exists(json, 'actionType') ? undefined : json['actionType'],\n 'actionDate': !exists(json, 'actionDate') ? undefined : (new Date(json['actionDate'])),\n 'userName': !exists(json, 'userName') ? undefined : json['userName'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n };\n}\n\nexport function ContratHistoryGridDtoToJSON(value?: ContratHistoryGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratHistory': value.idcontratHistory,\n 'iduser': value.iduser,\n 'idpersonne': value.idpersonne,\n 'idcontrat': value.idcontrat,\n 'action': value.action,\n 'actionType': value.actionType,\n 'actionDate': value.actionDate === undefined ? undefined : (value.actionDate.toISOString()),\n 'userName': value.userName,\n 'ifapmeSide': value.ifapmeSide,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContratHistoryGridDto } from './ContratHistoryGridDto';\nimport {\n ContratHistoryGridDtoFromJSON,\n ContratHistoryGridDtoFromJSONTyped,\n ContratHistoryGridDtoToJSON,\n} from './ContratHistoryGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContratHistoryGridDtoPaginatedResults\n */\nexport interface ContratHistoryGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContratHistoryGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContratHistoryGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratHistoryGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContratHistoryGridDtoPaginatedResults interface.\n */\nexport function instanceOfContratHistoryGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratHistoryGridDtoPaginatedResultsFromJSON(json: any): ContratHistoryGridDtoPaginatedResults {\n return ContratHistoryGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContratHistoryGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratHistoryGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContratHistoryGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContratHistoryGridDtoPaginatedResultsToJSON(value?: ContratHistoryGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContratHistoryGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ContratHistorySearchDto\n */\nexport interface ContratHistorySearchDto {\n /**\n * \n * @type {number}\n * @memberof ContratHistorySearchDto\n */\n idcontrat?: number;\n /**\n * \n * @type {Array}\n * @memberof ContratHistorySearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratHistorySearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContratHistorySearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratHistorySearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContratHistorySearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContratHistorySearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratHistorySearchDto interface.\n */\nexport function instanceOfContratHistorySearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratHistorySearchDtoFromJSON(json: any): ContratHistorySearchDto {\n return ContratHistorySearchDtoFromJSONTyped(json, false);\n}\n\nexport function ContratHistorySearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratHistorySearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContratHistorySearchDtoToJSON(value?: ContratHistorySearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontrat': value.idcontrat,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ContratInfosForSuiviDto\n */\nexport interface ContratInfosForSuiviDto {\n /**\n * \n * @type {number}\n * @memberof ContratInfosForSuiviDto\n */\n idmetier?: number;\n /**\n * \n * @type {number}\n * @memberof ContratInfosForSuiviDto\n */\n idlieuFormation?: number;\n}\n\n/**\n * Check if a given object implements the ContratInfosForSuiviDto interface.\n */\nexport function instanceOfContratInfosForSuiviDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratInfosForSuiviDtoFromJSON(json: any): ContratInfosForSuiviDto {\n return ContratInfosForSuiviDtoFromJSONTyped(json, false);\n}\n\nexport function ContratInfosForSuiviDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratInfosForSuiviDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n };\n}\n\nexport function ContratInfosForSuiviDtoToJSON(value?: ContratInfosForSuiviDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idmetier': value.idmetier,\n 'idlieuFormation': value.idlieuFormation,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EStatutContrat } from './EStatutContrat';\nimport {\n EStatutContratFromJSON,\n EStatutContratFromJSONTyped,\n EStatutContratToJSON,\n} from './EStatutContrat';\nimport type { ETypeContrat } from './ETypeContrat';\nimport {\n ETypeContratFromJSON,\n ETypeContratFromJSONTyped,\n ETypeContratToJSON,\n} from './ETypeContrat';\n\n/**\n * \n * @export\n * @interface ContratLieuxFormationGridDto\n */\nexport interface ContratLieuxFormationGridDto {\n /**\n * \n * @type {number}\n * @memberof ContratLieuxFormationGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof ContratLieuxFormationGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {EStatutContrat}\n * @memberof ContratLieuxFormationGridDto\n */\n statut?: EStatutContrat;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n enseigne?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n denomination?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n service?: string | null;\n /**\n * \n * @type {ETypeContrat}\n * @memberof ContratLieuxFormationGridDto\n */\n type?: ETypeContrat;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n metier?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n stade?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n idcontrat?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationGridDto\n */\n code?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratLieuxFormationGridDto interface.\n */\nexport function instanceOfContratLieuxFormationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratLieuxFormationGridDtoFromJSON(json: any): ContratLieuxFormationGridDto {\n return ContratLieuxFormationGridDtoFromJSONTyped(json, false);\n}\n\nexport function ContratLieuxFormationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratLieuxFormationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'statut': !exists(json, 'statut') ? undefined : EStatutContratFromJSON(json['statut']),\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'enseigne': !exists(json, 'enseigne') ? undefined : json['enseigne'],\n 'denomination': !exists(json, 'denomination') ? undefined : json['denomination'],\n 'service': !exists(json, 'service') ? undefined : json['service'],\n 'type': !exists(json, 'type') ? undefined : ETypeContratFromJSON(json['type']),\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n };\n}\n\nexport function ContratLieuxFormationGridDtoToJSON(value?: ContratLieuxFormationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'statut': EStatutContratToJSON(value.statut),\n 'telephone': value.telephone,\n 'gsm': value.gsm,\n 'email': value.email,\n 'localite': value.localite,\n 'enseigne': value.enseigne,\n 'denomination': value.denomination,\n 'service': value.service,\n 'type': ETypeContratToJSON(value.type),\n 'metier': value.metier,\n 'stade': value.stade,\n 'idcontrat': value.idcontrat,\n 'code': value.code,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContratLieuxFormationGridDto } from './ContratLieuxFormationGridDto';\nimport {\n ContratLieuxFormationGridDtoFromJSON,\n ContratLieuxFormationGridDtoFromJSONTyped,\n ContratLieuxFormationGridDtoToJSON,\n} from './ContratLieuxFormationGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContratLieuxFormationGridDtoPaginatedResults\n */\nexport interface ContratLieuxFormationGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContratLieuxFormationGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContratLieuxFormationGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratLieuxFormationGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContratLieuxFormationGridDtoPaginatedResults interface.\n */\nexport function instanceOfContratLieuxFormationGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratLieuxFormationGridDtoPaginatedResultsFromJSON(json: any): ContratLieuxFormationGridDtoPaginatedResults {\n return ContratLieuxFormationGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContratLieuxFormationGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratLieuxFormationGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContratLieuxFormationGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContratLieuxFormationGridDtoPaginatedResultsToJSON(value?: ContratLieuxFormationGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContratLieuxFormationGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ContratLieuxFormationSearchDto\n */\nexport interface ContratLieuxFormationSearchDto {\n /**\n * \n * @type {number}\n * @memberof ContratLieuxFormationSearchDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ContratLieuxFormationSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratLieuxFormationSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContratLieuxFormationSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratLieuxFormationSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContratLieuxFormationSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContratLieuxFormationSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratLieuxFormationSearchDto interface.\n */\nexport function instanceOfContratLieuxFormationSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratLieuxFormationSearchDtoFromJSON(json: any): ContratLieuxFormationSearchDto {\n return ContratLieuxFormationSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ContratLieuxFormationSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratLieuxFormationSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContratLieuxFormationSearchDtoToJSON(value?: ContratLieuxFormationSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EStatutContrat } from './EStatutContrat';\nimport {\n EStatutContratFromJSON,\n EStatutContratFromJSONTyped,\n EStatutContratToJSON,\n} from './EStatutContrat';\n\n/**\n * \n * @export\n * @interface EListSearchTypeEStatutContratCombinableCriteria\n */\nexport interface EListSearchTypeEStatutContratCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeEStatutContratCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {EStatutContrat}\n * @memberof EListSearchTypeEStatutContratCombinableCriteria\n */\n value?: EStatutContrat;\n /**\n * \n * @type {EStatutContrat}\n * @memberof EListSearchTypeEStatutContratCombinableCriteria\n */\n secondaryValue?: EStatutContrat;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeEStatutContratCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeEStatutContratCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeEStatutContratCombinableCriteriaFromJSON(json: any): EListSearchTypeEStatutContratCombinableCriteria {\n return EListSearchTypeEStatutContratCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeEStatutContratCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeEStatutContratCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : EStatutContratFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : EStatutContratFromJSON(json['secondaryValue']),\n };\n}\n\nexport function EListSearchTypeEStatutContratCombinableCriteriaToJSON(value?: EListSearchTypeEStatutContratCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': EStatutContratToJSON(value.value),\n 'secondaryValue': EStatutContratToJSON(value.secondaryValue),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeEStatutContratCombinableCriteria } from './EListSearchTypeEStatutContratCombinableCriteria';\nimport {\n EListSearchTypeEStatutContratCombinableCriteriaFromJSON,\n EListSearchTypeEStatutContratCombinableCriteriaFromJSONTyped,\n EListSearchTypeEStatutContratCombinableCriteriaToJSON,\n} from './EListSearchTypeEStatutContratCombinableCriteria';\nimport type { EStatutContrat } from './EStatutContrat';\nimport {\n EStatutContratFromJSON,\n EStatutContratFromJSONTyped,\n EStatutContratToJSON,\n} from './EStatutContrat';\n\n/**\n * \n * @export\n * @interface EStatutContratListSearch\n */\nexport interface EStatutContratListSearch {\n /**\n * \n * @type {Array}\n * @memberof EStatutContratListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof EStatutContratListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {EStatutContrat}\n * @memberof EStatutContratListSearch\n */\n value?: EStatutContrat;\n /**\n * \n * @type {EStatutContrat}\n * @memberof EStatutContratListSearch\n */\n secondaryValue?: EStatutContrat;\n /**\n * \n * @type {Array}\n * @memberof EStatutContratListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof EStatutContratListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the EStatutContratListSearch interface.\n */\nexport function instanceOfEStatutContratListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EStatutContratListSearchFromJSON(json: any): EStatutContratListSearch {\n return EStatutContratListSearchFromJSONTyped(json, false);\n}\n\nexport function EStatutContratListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): EStatutContratListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeEStatutContratCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : EStatutContratFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : EStatutContratFromJSON(json['secondaryValue']),\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function EStatutContratListSearchToJSON(value?: EStatutContratListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeEStatutContratCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': EStatutContratToJSON(value.value),\n 'secondaryValue': EStatutContratToJSON(value.secondaryValue),\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { ETypeContrat } from './ETypeContrat';\nimport {\n ETypeContratFromJSON,\n ETypeContratFromJSONTyped,\n ETypeContratToJSON,\n} from './ETypeContrat';\n\n/**\n * \n * @export\n * @interface EListSearchTypeETypeContratNullableCombinableCriteria\n */\nexport interface EListSearchTypeETypeContratNullableCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeETypeContratNullableCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {ETypeContrat}\n * @memberof EListSearchTypeETypeContratNullableCombinableCriteria\n */\n value?: ETypeContrat;\n /**\n * \n * @type {ETypeContrat}\n * @memberof EListSearchTypeETypeContratNullableCombinableCriteria\n */\n secondaryValue?: ETypeContrat;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeETypeContratNullableCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeETypeContratNullableCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeETypeContratNullableCombinableCriteriaFromJSON(json: any): EListSearchTypeETypeContratNullableCombinableCriteria {\n return EListSearchTypeETypeContratNullableCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeETypeContratNullableCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeETypeContratNullableCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : ETypeContratFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : ETypeContratFromJSON(json['secondaryValue']),\n };\n}\n\nexport function EListSearchTypeETypeContratNullableCombinableCriteriaToJSON(value?: EListSearchTypeETypeContratNullableCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': ETypeContratToJSON(value.value),\n 'secondaryValue': ETypeContratToJSON(value.secondaryValue),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeETypeContratNullableCombinableCriteria } from './EListSearchTypeETypeContratNullableCombinableCriteria';\nimport {\n EListSearchTypeETypeContratNullableCombinableCriteriaFromJSON,\n EListSearchTypeETypeContratNullableCombinableCriteriaFromJSONTyped,\n EListSearchTypeETypeContratNullableCombinableCriteriaToJSON,\n} from './EListSearchTypeETypeContratNullableCombinableCriteria';\nimport type { ETypeContrat } from './ETypeContrat';\nimport {\n ETypeContratFromJSON,\n ETypeContratFromJSONTyped,\n ETypeContratToJSON,\n} from './ETypeContrat';\n\n/**\n * \n * @export\n * @interface ETypeContratNullableListSearch\n */\nexport interface ETypeContratNullableListSearch {\n /**\n * \n * @type {Array}\n * @memberof ETypeContratNullableListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof ETypeContratNullableListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {ETypeContrat}\n * @memberof ETypeContratNullableListSearch\n */\n value?: ETypeContrat;\n /**\n * \n * @type {ETypeContrat}\n * @memberof ETypeContratNullableListSearch\n */\n secondaryValue?: ETypeContrat;\n /**\n * \n * @type {Array}\n * @memberof ETypeContratNullableListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof ETypeContratNullableListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the ETypeContratNullableListSearch interface.\n */\nexport function instanceOfETypeContratNullableListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ETypeContratNullableListSearchFromJSON(json: any): ETypeContratNullableListSearch {\n return ETypeContratNullableListSearchFromJSONTyped(json, false);\n}\n\nexport function ETypeContratNullableListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETypeContratNullableListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeETypeContratNullableCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : ETypeContratFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : ETypeContratFromJSON(json['secondaryValue']),\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function ETypeContratNullableListSearchToJSON(value?: ETypeContratNullableListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeETypeContratNullableCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': ETypeContratToJSON(value.value),\n 'secondaryValue': ETypeContratToJSON(value.secondaryValue),\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { EStatutContratListSearch } from './EStatutContratListSearch';\nimport {\n EStatutContratListSearchFromJSON,\n EStatutContratListSearchFromJSONTyped,\n EStatutContratListSearchToJSON,\n} from './EStatutContratListSearch';\nimport type { ETypeContratNullableListSearch } from './ETypeContratNullableListSearch';\nimport {\n ETypeContratNullableListSearchFromJSON,\n ETypeContratNullableListSearchFromJSONTyped,\n ETypeContratNullableListSearchToJSON,\n} from './ETypeContratNullableListSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface ContratSearchDto\n */\nexport interface ContratSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContratSearchDto\n */\n apprenant?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ContratSearchDto\n */\n code?: TextSearch;\n /**\n * \n * @type {ETypeContratNullableListSearch}\n * @memberof ContratSearchDto\n */\n type?: ETypeContratNullableListSearch;\n /**\n * \n * @type {EStatutContratListSearch}\n * @memberof ContratSearchDto\n */\n statut?: EStatutContratListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ContratSearchDto\n */\n stade?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ContratSearchDto\n */\n codeMetier?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ContratSearchDto\n */\n nomMetier?: TextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContratSearchDto\n */\n lieuPrincipal?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ContratSearchDto\n */\n tuteurPrincipal?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ContratSearchDto\n */\n serviceNom?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ContratSearchDto\n */\n mesContrats?: BooleanSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ContratSearchDto\n */\n idpri?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ContratSearchDto\n */\n idari?: Int32ListSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof ContratSearchDto\n */\n dateDebut?: DateSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof ContratSearchDto\n */\n dateFin?: DateSearch;\n /**\n * \n * @type {number}\n * @memberof ContratSearchDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratSearchDto\n */\n idtuteur?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratSearchDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ContratSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContratSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContratSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContratSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratSearchDto interface.\n */\nexport function instanceOfContratSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratSearchDtoFromJSON(json: any): ContratSearchDto {\n return ContratSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ContratSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'apprenant': !exists(json, 'apprenant') ? undefined : UnaccentTextSearchFromJSON(json['apprenant']),\n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'type': !exists(json, 'type') ? undefined : ETypeContratNullableListSearchFromJSON(json['type']),\n 'statut': !exists(json, 'statut') ? undefined : EStatutContratListSearchFromJSON(json['statut']),\n 'stade': !exists(json, 'stade') ? undefined : TextSearchFromJSON(json['stade']),\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : TextSearchFromJSON(json['codeMetier']),\n 'nomMetier': !exists(json, 'nomMetier') ? undefined : TextSearchFromJSON(json['nomMetier']),\n 'lieuPrincipal': !exists(json, 'lieuPrincipal') ? undefined : UnaccentTextSearchFromJSON(json['lieuPrincipal']),\n 'tuteurPrincipal': !exists(json, 'tuteurPrincipal') ? undefined : UnaccentTextSearchFromJSON(json['tuteurPrincipal']),\n 'serviceNom': !exists(json, 'serviceNom') ? undefined : TextSearchFromJSON(json['serviceNom']),\n 'mesContrats': !exists(json, 'mesContrats') ? undefined : BooleanSearchFromJSON(json['mesContrats']),\n 'idpri': !exists(json, 'idpri') ? undefined : Int32ListSearchFromJSON(json['idpri']),\n 'idari': !exists(json, 'idari') ? undefined : Int32ListSearchFromJSON(json['idari']),\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : DateSearchFromJSON(json['dateDebut']),\n 'dateFin': !exists(json, 'dateFin') ? undefined : DateSearchFromJSON(json['dateFin']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContratSearchDtoToJSON(value?: ContratSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'apprenant': UnaccentTextSearchToJSON(value.apprenant),\n 'code': TextSearchToJSON(value.code),\n 'type': ETypeContratNullableListSearchToJSON(value.type),\n 'statut': EStatutContratListSearchToJSON(value.statut),\n 'stade': TextSearchToJSON(value.stade),\n 'codeMetier': TextSearchToJSON(value.codeMetier),\n 'nomMetier': TextSearchToJSON(value.nomMetier),\n 'lieuPrincipal': UnaccentTextSearchToJSON(value.lieuPrincipal),\n 'tuteurPrincipal': UnaccentTextSearchToJSON(value.tuteurPrincipal),\n 'serviceNom': TextSearchToJSON(value.serviceNom),\n 'mesContrats': BooleanSearchToJSON(value.mesContrats),\n 'idpri': Int32ListSearchToJSON(value.idpri),\n 'idari': Int32ListSearchToJSON(value.idari),\n 'dateDebut': DateSearchToJSON(value.dateDebut),\n 'dateFin': DateSearchToJSON(value.dateFin),\n 'idapprenant': value.idapprenant,\n 'idtuteur': value.idtuteur,\n 'idlieuFormation': value.idlieuFormation,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface ContratSuspensionDto\n */\nexport interface ContratSuspensionDto {\n /**\n * \n * @type {number}\n * @memberof ContratSuspensionDto\n */\n idcontratSuspension?: number;\n /**\n * \n * @type {number}\n * @memberof ContratSuspensionDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {Date}\n * @memberof ContratSuspensionDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ContratSuspensionDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ContratSuspensionDto\n */\n idmotifSuspension?: number | null;\n /**\n * \n * @type {string}\n * @memberof ContratSuspensionDto\n */\n motif?: string | null;\n /**\n * \n * @type {string}\n * @memberof ContratSuspensionDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof ContratSuspensionDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof ContratSuspensionDto\n */\n fichier?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the ContratSuspensionDto interface.\n */\nexport function instanceOfContratSuspensionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratSuspensionDtoFromJSON(json: any): ContratSuspensionDto {\n return ContratSuspensionDtoFromJSONTyped(json, false);\n}\n\nexport function ContratSuspensionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratSuspensionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratSuspension': !exists(json, 'idcontratSuspension') ? undefined : json['idcontratSuspension'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'idmotifSuspension': !exists(json, 'idmotifSuspension') ? undefined : json['idmotifSuspension'],\n 'motif': !exists(json, 'motif') ? undefined : json['motif'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fichier': !exists(json, 'fichier') ? undefined : FileUploadDtoFromJSON(json['fichier']),\n };\n}\n\nexport function ContratSuspensionDtoToJSON(value?: ContratSuspensionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratSuspension': value.idcontratSuspension,\n 'idcontrat': value.idcontrat,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'idmotifSuspension': value.idmotifSuspension,\n 'motif': value.motif,\n 'remarque': value.remarque,\n 'idfichier': value.idfichier,\n 'fichier': FileUploadDtoToJSON(value.fichier),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ContratSuspensionDto } from './ContratSuspensionDto';\nimport {\n ContratSuspensionDtoFromJSON,\n ContratSuspensionDtoFromJSONTyped,\n ContratSuspensionDtoToJSON,\n} from './ContratSuspensionDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ContratSuspensionDtoPaginatedResults\n */\nexport interface ContratSuspensionDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ContratSuspensionDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ContratSuspensionDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratSuspensionDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ContratSuspensionDtoPaginatedResults interface.\n */\nexport function instanceOfContratSuspensionDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratSuspensionDtoPaginatedResultsFromJSON(json: any): ContratSuspensionDtoPaginatedResults {\n return ContratSuspensionDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ContratSuspensionDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratSuspensionDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ContratSuspensionDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ContratSuspensionDtoPaginatedResultsToJSON(value?: ContratSuspensionDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ContratSuspensionDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ContratSuspensionSearchDto\n */\nexport interface ContratSuspensionSearchDto {\n /**\n * \n * @type {number}\n * @memberof ContratSuspensionSearchDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {Array}\n * @memberof ContratSuspensionSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ContratSuspensionSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ContratSuspensionSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ContratSuspensionSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ContratSuspensionSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ContratSuspensionSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ContratSuspensionSearchDto interface.\n */\nexport function instanceOfContratSuspensionSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ContratSuspensionSearchDtoFromJSON(json: any): ContratSuspensionSearchDto {\n return ContratSuspensionSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ContratSuspensionSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContratSuspensionSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ContratSuspensionSearchDtoToJSON(value?: ContratSuspensionSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontrat': value.idcontrat,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CopReassignmentDto\n */\nexport interface CopReassignmentDto {\n /**\n * \n * @type {Array}\n * @memberof CopReassignmentDto\n */\n cops?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof CopReassignmentDto\n */\n idsApprenant?: Array | null;\n /**\n * \n * @type {number}\n * @memberof CopReassignmentDto\n */\n newIdCop?: number | null;\n}\n\n/**\n * Check if a given object implements the CopReassignmentDto interface.\n */\nexport function instanceOfCopReassignmentDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CopReassignmentDtoFromJSON(json: any): CopReassignmentDto {\n return CopReassignmentDtoFromJSONTyped(json, false);\n}\n\nexport function CopReassignmentDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CopReassignmentDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'cops': !exists(json, 'cops') ? undefined : json['cops'],\n 'idsApprenant': !exists(json, 'idsApprenant') ? undefined : json['idsApprenant'],\n 'newIdCop': !exists(json, 'newIdCop') ? undefined : json['newIdCop'],\n };\n}\n\nexport function CopReassignmentDtoToJSON(value?: CopReassignmentDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'cops': value.cops,\n 'idsApprenant': value.idsApprenant,\n 'newIdCop': value.newIdCop,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ECustomSearchType {\n Equals = 'Equals',\n NotEquals = 'NotEquals'\n}\n\n\nexport function ECustomSearchTypeFromJSON(json: any): ECustomSearchType {\n return ECustomSearchTypeFromJSONTyped(json, false);\n}\n\nexport function ECustomSearchTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ECustomSearchType {\n return json as ECustomSearchType;\n}\n\nexport function ECustomSearchTypeToJSON(value?: ECustomSearchType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ECustomSearchType } from './ECustomSearchType';\nimport {\n ECustomSearchTypeFromJSON,\n ECustomSearchTypeFromJSONTyped,\n ECustomSearchTypeToJSON,\n} from './ECustomSearchType';\n\n/**\n * \n * @export\n * @interface ECustomSearchTypeStringCombinableCriteria\n */\nexport interface ECustomSearchTypeStringCombinableCriteria {\n /**\n * \n * @type {ECustomSearchType}\n * @memberof ECustomSearchTypeStringCombinableCriteria\n */\n searchMode?: ECustomSearchType;\n /**\n * \n * @type {string}\n * @memberof ECustomSearchTypeStringCombinableCriteria\n */\n value?: string | null;\n /**\n * \n * @type {string}\n * @memberof ECustomSearchTypeStringCombinableCriteria\n */\n secondaryValue?: string | null;\n}\n\n/**\n * Check if a given object implements the ECustomSearchTypeStringCombinableCriteria interface.\n */\nexport function instanceOfECustomSearchTypeStringCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ECustomSearchTypeStringCombinableCriteriaFromJSON(json: any): ECustomSearchTypeStringCombinableCriteria {\n return ECustomSearchTypeStringCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function ECustomSearchTypeStringCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): ECustomSearchTypeStringCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : ECustomSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n };\n}\n\nexport function ECustomSearchTypeStringCombinableCriteriaToJSON(value?: ECustomSearchTypeStringCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': ECustomSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ECustomSearchType } from './ECustomSearchType';\nimport {\n ECustomSearchTypeFromJSON,\n ECustomSearchTypeFromJSONTyped,\n ECustomSearchTypeToJSON,\n} from './ECustomSearchType';\nimport type { ECustomSearchTypeStringCombinableCriteria } from './ECustomSearchTypeStringCombinableCriteria';\nimport {\n ECustomSearchTypeStringCombinableCriteriaFromJSON,\n ECustomSearchTypeStringCombinableCriteriaFromJSONTyped,\n ECustomSearchTypeStringCombinableCriteriaToJSON,\n} from './ECustomSearchTypeStringCombinableCriteria';\n\n/**\n * \n * @export\n * @interface CustomSearch\n */\nexport interface CustomSearch {\n /**\n * \n * @type {Array}\n * @memberof CustomSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {ECustomSearchType}\n * @memberof CustomSearch\n */\n searchMode?: ECustomSearchType;\n /**\n * \n * @type {string}\n * @memberof CustomSearch\n * @deprecated\n */\n value?: string | null;\n /**\n * \n * @type {string}\n * @memberof CustomSearch\n * @deprecated\n */\n secondaryValue?: string | null;\n /**\n * \n * @type {Array}\n * @memberof CustomSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof CustomSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the CustomSearch interface.\n */\nexport function instanceOfCustomSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CustomSearchFromJSON(json: any): CustomSearch {\n return CustomSearchFromJSONTyped(json, false);\n}\n\nexport function CustomSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): CustomSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(ECustomSearchTypeStringCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : ECustomSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function CustomSearchToJSON(value?: CustomSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(ECustomSearchTypeStringCombinableCriteriaToJSON)),\n 'searchMode': ECustomSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ETypeDernierAvertissement {\n Avertissement = 'Avertissement',\n Convocation = 'Convocation'\n}\n\n\nexport function ETypeDernierAvertissementFromJSON(json: any): ETypeDernierAvertissement {\n return ETypeDernierAvertissementFromJSONTyped(json, false);\n}\n\nexport function ETypeDernierAvertissementFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETypeDernierAvertissement {\n return json as ETypeDernierAvertissement;\n}\n\nexport function ETypeDernierAvertissementToJSON(value?: ETypeDernierAvertissement | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ETypeDernierAvertissement } from './ETypeDernierAvertissement';\nimport {\n ETypeDernierAvertissementFromJSON,\n ETypeDernierAvertissementFromJSONTyped,\n ETypeDernierAvertissementToJSON,\n} from './ETypeDernierAvertissement';\n\n/**\n * \n * @export\n * @interface DashboardAbsenceDto\n */\nexport interface DashboardAbsenceDto {\n /**\n * \n * @type {number}\n * @memberof DashboardAbsenceDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsenceDto\n */\n apprenant?: string | null;\n /**\n * \n * @type {number}\n * @memberof DashboardAbsenceDto\n */\n absencesInjustifiees?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardAbsenceDto\n */\n deltaDernierAvertissement?: number | null;\n /**\n * \n * @type {ETypeDernierAvertissement}\n * @memberof DashboardAbsenceDto\n */\n typeDernierAvertissement?: ETypeDernierAvertissement;\n /**\n * \n * @type {Date}\n * @memberof DashboardAbsenceDto\n */\n dernierAvertissement?: Date | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsenceDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof DashboardAbsenceDto\n */\n idpri?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardAbsenceDto\n */\n idari?: number | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsenceDto\n */\n idsuserMasquage?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsenceDto\n */\n metierStade?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsenceDto\n */\n emailsRepresentantsLegaux?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsenceDto\n */\n emailsContactsPrincipaux?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DashboardAbsenceDto\n */\n dateAction?: Date | null;\n /**\n * \n * @type {ETypeDernierAvertissement}\n * @memberof DashboardAbsenceDto\n */\n typeAvertissement?: ETypeDernierAvertissement;\n}\n\n/**\n * Check if a given object implements the DashboardAbsenceDto interface.\n */\nexport function instanceOfDashboardAbsenceDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardAbsenceDtoFromJSON(json: any): DashboardAbsenceDto {\n return DashboardAbsenceDtoFromJSONTyped(json, false);\n}\n\nexport function DashboardAbsenceDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardAbsenceDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'apprenant': !exists(json, 'apprenant') ? undefined : json['apprenant'],\n 'absencesInjustifiees': !exists(json, 'absencesInjustifiees') ? undefined : json['absencesInjustifiees'],\n 'deltaDernierAvertissement': !exists(json, 'deltaDernierAvertissement') ? undefined : json['deltaDernierAvertissement'],\n 'typeDernierAvertissement': !exists(json, 'typeDernierAvertissement') ? undefined : ETypeDernierAvertissementFromJSON(json['typeDernierAvertissement']),\n 'dernierAvertissement': !exists(json, 'dernierAvertissement') ? undefined : (json['dernierAvertissement'] === null ? null : new Date(json['dernierAvertissement'])),\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idpri': !exists(json, 'idpri') ? undefined : json['idpri'],\n 'idari': !exists(json, 'idari') ? undefined : json['idari'],\n 'idsuserMasquage': !exists(json, 'idsuserMasquage') ? undefined : json['idsuserMasquage'],\n 'metierStade': !exists(json, 'metierStade') ? undefined : json['metierStade'],\n 'emailsRepresentantsLegaux': !exists(json, 'emailsRepresentantsLegaux') ? undefined : json['emailsRepresentantsLegaux'],\n 'emailsContactsPrincipaux': !exists(json, 'emailsContactsPrincipaux') ? undefined : json['emailsContactsPrincipaux'],\n 'dateAction': !exists(json, 'dateAction') ? undefined : (json['dateAction'] === null ? null : new Date(json['dateAction'])),\n 'typeAvertissement': !exists(json, 'typeAvertissement') ? undefined : ETypeDernierAvertissementFromJSON(json['typeAvertissement']),\n };\n}\n\nexport function DashboardAbsenceDtoToJSON(value?: DashboardAbsenceDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'apprenant': value.apprenant,\n 'absencesInjustifiees': value.absencesInjustifiees,\n 'deltaDernierAvertissement': value.deltaDernierAvertissement,\n 'typeDernierAvertissement': ETypeDernierAvertissementToJSON(value.typeDernierAvertissement),\n 'dernierAvertissement': value.dernierAvertissement === undefined ? undefined : (value.dernierAvertissement === null ? null : value.dernierAvertissement.toISOString()),\n 'anneeScolaire': value.anneeScolaire,\n 'idpri': value.idpri,\n 'idari': value.idari,\n 'idsuserMasquage': value.idsuserMasquage,\n 'metierStade': value.metierStade,\n 'emailsRepresentantsLegaux': value.emailsRepresentantsLegaux,\n 'emailsContactsPrincipaux': value.emailsContactsPrincipaux,\n 'dateAction': value.dateAction === undefined ? undefined : (value.dateAction === null ? null : value.dateAction.toISOString()),\n 'typeAvertissement': ETypeDernierAvertissementToJSON(value.typeAvertissement),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DashboardAbsenceDto } from './DashboardAbsenceDto';\nimport {\n DashboardAbsenceDtoFromJSON,\n DashboardAbsenceDtoFromJSONTyped,\n DashboardAbsenceDtoToJSON,\n} from './DashboardAbsenceDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface DashboardAbsenceDtoPaginatedResults\n */\nexport interface DashboardAbsenceDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof DashboardAbsenceDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof DashboardAbsenceDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardAbsenceDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the DashboardAbsenceDtoPaginatedResults interface.\n */\nexport function instanceOfDashboardAbsenceDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardAbsenceDtoPaginatedResultsFromJSON(json: any): DashboardAbsenceDtoPaginatedResults {\n return DashboardAbsenceDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function DashboardAbsenceDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardAbsenceDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(DashboardAbsenceDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function DashboardAbsenceDtoPaginatedResultsToJSON(value?: DashboardAbsenceDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(DashboardAbsenceDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface DashboardAbsenceSearch\n */\nexport interface DashboardAbsenceSearch {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DashboardAbsenceSearch\n */\n apprenant?: UnaccentTextSearch;\n /**\n * \n * @type {boolean}\n * @memberof DashboardAbsenceSearch\n */\n hideMasquees?: boolean;\n /**\n * \n * @type {Array}\n * @memberof DashboardAbsenceSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardAbsenceSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DashboardAbsenceSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardAbsenceSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DashboardAbsenceSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsenceSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DashboardAbsenceSearch interface.\n */\nexport function instanceOfDashboardAbsenceSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardAbsenceSearchFromJSON(json: any): DashboardAbsenceSearch {\n return DashboardAbsenceSearchFromJSONTyped(json, false);\n}\n\nexport function DashboardAbsenceSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardAbsenceSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'apprenant': !exists(json, 'apprenant') ? undefined : UnaccentTextSearchFromJSON(json['apprenant']),\n 'hideMasquees': !exists(json, 'hideMasquees') ? undefined : json['hideMasquees'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DashboardAbsenceSearchToJSON(value?: DashboardAbsenceSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'apprenant': UnaccentTextSearchToJSON(value.apprenant),\n 'hideMasquees': value.hideMasquees,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DashboardAbsencesVuReturnDto\n */\nexport interface DashboardAbsencesVuReturnDto {\n /**\n * \n * @type {number}\n * @memberof DashboardAbsencesVuReturnDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsencesVuReturnDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsencesVuReturnDto\n */\n emailIfapme?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardAbsencesVuReturnDto\n */\n emailPerso?: string | null;\n /**\n * \n * @type {number}\n * @memberof DashboardAbsencesVuReturnDto\n */\n idrapportHope?: number | null;\n}\n\n/**\n * Check if a given object implements the DashboardAbsencesVuReturnDto interface.\n */\nexport function instanceOfDashboardAbsencesVuReturnDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardAbsencesVuReturnDtoFromJSON(json: any): DashboardAbsencesVuReturnDto {\n return DashboardAbsencesVuReturnDtoFromJSONTyped(json, false);\n}\n\nexport function DashboardAbsencesVuReturnDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardAbsencesVuReturnDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'emailIfapme': !exists(json, 'emailIfapme') ? undefined : json['emailIfapme'],\n 'emailPerso': !exists(json, 'emailPerso') ? undefined : json['emailPerso'],\n 'idrapportHope': !exists(json, 'idrapportHope') ? undefined : json['idrapportHope'],\n };\n}\n\nexport function DashboardAbsencesVuReturnDtoToJSON(value?: DashboardAbsencesVuReturnDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'anneeScolaire': value.anneeScolaire,\n 'emailIfapme': value.emailIfapme,\n 'emailPerso': value.emailPerso,\n 'idrapportHope': value.idrapportHope,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EOrigineDossier {\n Hope = 'Hope',\n Walter = 'Walter'\n}\n\n\nexport function EOrigineDossierFromJSON(json: any): EOrigineDossier {\n return EOrigineDossierFromJSONTyped(json, false);\n}\n\nexport function EOrigineDossierFromJSONTyped(json: any, ignoreDiscriminator: boolean): EOrigineDossier {\n return json as EOrigineDossier;\n}\n\nexport function EOrigineDossierToJSON(value?: EOrigineDossier | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ETargetDossier {\n Centres = 'Centres',\n Services = 'Services'\n}\n\n\nexport function ETargetDossierFromJSON(json: any): ETargetDossier {\n return ETargetDossierFromJSONTyped(json, false);\n}\n\nexport function ETargetDossierFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETargetDossier {\n return json as ETargetDossier;\n}\n\nexport function ETargetDossierToJSON(value?: ETargetDossier | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EOrigineDossier } from './EOrigineDossier';\nimport {\n EOrigineDossierFromJSON,\n EOrigineDossierFromJSONTyped,\n EOrigineDossierToJSON,\n} from './EOrigineDossier';\nimport type { ETargetDossier } from './ETargetDossier';\nimport {\n ETargetDossierFromJSON,\n ETargetDossierFromJSONTyped,\n ETargetDossierToJSON,\n} from './ETargetDossier';\n\n/**\n * \n * @export\n * @interface DashboardDossierDto\n */\nexport interface DashboardDossierDto {\n /**\n * \n * @type {number}\n * @memberof DashboardDossierDto\n */\n id?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardDossierDto\n */\n idconcerne?: number | null;\n /**\n * \n * @type {string}\n * @memberof DashboardDossierDto\n */\n concerne?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardDossierDto\n */\n information?: string | null;\n /**\n * \n * @type {EOrigineDossier}\n * @memberof DashboardDossierDto\n */\n origine?: EOrigineDossier;\n /**\n * \n * @type {ETargetDossier}\n * @memberof DashboardDossierDto\n */\n target?: ETargetDossier;\n /**\n * \n * @type {boolean}\n * @memberof DashboardDossierDto\n */\n masquee?: boolean;\n /**\n * \n * @type {string}\n * @memberof DashboardDossierDto\n */\n metierStade?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardDossierDto\n */\n currentPri?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardDossierDto\n */\n remarqueRefus?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DashboardDossierDto\n */\n dateSortie?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof DashboardDossierDto\n */\n dateReception?: Date | null;\n}\n\n/**\n * Check if a given object implements the DashboardDossierDto interface.\n */\nexport function instanceOfDashboardDossierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardDossierDtoFromJSON(json: any): DashboardDossierDto {\n return DashboardDossierDtoFromJSONTyped(json, false);\n}\n\nexport function DashboardDossierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardDossierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'idconcerne': !exists(json, 'idconcerne') ? undefined : json['idconcerne'],\n 'concerne': !exists(json, 'concerne') ? undefined : json['concerne'],\n 'information': !exists(json, 'information') ? undefined : json['information'],\n 'origine': !exists(json, 'origine') ? undefined : EOrigineDossierFromJSON(json['origine']),\n 'target': !exists(json, 'target') ? undefined : ETargetDossierFromJSON(json['target']),\n 'masquee': !exists(json, 'masquee') ? undefined : json['masquee'],\n 'metierStade': !exists(json, 'metierStade') ? undefined : json['metierStade'],\n 'currentPri': !exists(json, 'currentPri') ? undefined : json['currentPri'],\n 'remarqueRefus': !exists(json, 'remarqueRefus') ? undefined : json['remarqueRefus'],\n 'dateSortie': !exists(json, 'dateSortie') ? undefined : (json['dateSortie'] === null ? null : new Date(json['dateSortie'])),\n 'dateReception': !exists(json, 'dateReception') ? undefined : (json['dateReception'] === null ? null : new Date(json['dateReception'])),\n };\n}\n\nexport function DashboardDossierDtoToJSON(value?: DashboardDossierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'id': value.id,\n 'idconcerne': value.idconcerne,\n 'concerne': value.concerne,\n 'information': value.information,\n 'origine': EOrigineDossierToJSON(value.origine),\n 'target': ETargetDossierToJSON(value.target),\n 'masquee': value.masquee,\n 'metierStade': value.metierStade,\n 'currentPri': value.currentPri,\n 'remarqueRefus': value.remarqueRefus,\n 'dateSortie': value.dateSortie === undefined ? undefined : (value.dateSortie === null ? null : value.dateSortie.toISOString()),\n 'dateReception': value.dateReception === undefined ? undefined : (value.dateReception === null ? null : value.dateReception.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DashboardDossierDto } from './DashboardDossierDto';\nimport {\n DashboardDossierDtoFromJSON,\n DashboardDossierDtoFromJSONTyped,\n DashboardDossierDtoToJSON,\n} from './DashboardDossierDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface DashboardDossierDtoPaginatedResults\n */\nexport interface DashboardDossierDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof DashboardDossierDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof DashboardDossierDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardDossierDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the DashboardDossierDtoPaginatedResults interface.\n */\nexport function instanceOfDashboardDossierDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardDossierDtoPaginatedResultsFromJSON(json: any): DashboardDossierDtoPaginatedResults {\n return DashboardDossierDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function DashboardDossierDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardDossierDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(DashboardDossierDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function DashboardDossierDtoPaginatedResultsToJSON(value?: DashboardDossierDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(DashboardDossierDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ETypeDashboardDossier {\n SortieApprenant = 'SortieApprenant',\n StatutPostFormation = 'StatutPostFormation',\n FinAgrementProvisoire = 'FinAgrementProvisoire'\n}\n\n\nexport function ETypeDashboardDossierFromJSON(json: any): ETypeDashboardDossier {\n return ETypeDashboardDossierFromJSONTyped(json, false);\n}\n\nexport function ETypeDashboardDossierFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETypeDashboardDossier {\n return json as ETypeDashboardDossier;\n}\n\nexport function ETypeDashboardDossierToJSON(value?: ETypeDashboardDossier | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { ETargetDossier } from './ETargetDossier';\nimport {\n ETargetDossierFromJSON,\n ETargetDossierFromJSONTyped,\n ETargetDossierToJSON,\n} from './ETargetDossier';\nimport type { ETypeDashboardDossier } from './ETypeDashboardDossier';\nimport {\n ETypeDashboardDossierFromJSON,\n ETypeDashboardDossierFromJSONTyped,\n ETypeDashboardDossierToJSON,\n} from './ETypeDashboardDossier';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface DashboardDossierSearch\n */\nexport interface DashboardDossierSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardDossierSearch\n */\n concerne?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardDossierSearch\n */\n currentPri?: TextSearch;\n /**\n * \n * @type {ETargetDossier}\n * @memberof DashboardDossierSearch\n */\n target?: ETargetDossier;\n /**\n * \n * @type {boolean}\n * @memberof DashboardDossierSearch\n */\n hideMasquees?: boolean;\n /**\n * \n * @type {ETypeDashboardDossier}\n * @memberof DashboardDossierSearch\n */\n type?: ETypeDashboardDossier;\n /**\n * \n * @type {Array}\n * @memberof DashboardDossierSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardDossierSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DashboardDossierSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardDossierSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DashboardDossierSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DashboardDossierSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DashboardDossierSearch interface.\n */\nexport function instanceOfDashboardDossierSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardDossierSearchFromJSON(json: any): DashboardDossierSearch {\n return DashboardDossierSearchFromJSONTyped(json, false);\n}\n\nexport function DashboardDossierSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardDossierSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'concerne': !exists(json, 'concerne') ? undefined : TextSearchFromJSON(json['concerne']),\n 'currentPri': !exists(json, 'currentPri') ? undefined : TextSearchFromJSON(json['currentPri']),\n 'target': !exists(json, 'target') ? undefined : ETargetDossierFromJSON(json['target']),\n 'hideMasquees': !exists(json, 'hideMasquees') ? undefined : json['hideMasquees'],\n 'type': !exists(json, 'type') ? undefined : ETypeDashboardDossierFromJSON(json['type']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DashboardDossierSearchToJSON(value?: DashboardDossierSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'concerne': TextSearchToJSON(value.concerne),\n 'currentPri': TextSearchToJSON(value.currentPri),\n 'target': ETargetDossierToJSON(value.target),\n 'hideMasquees': value.hideMasquees,\n 'type': ETypeDashboardDossierToJSON(value.type),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EOrigineInscription {\n Walter = 'Walter',\n Hope = 'Hope'\n}\n\n\nexport function EOrigineInscriptionFromJSON(json: any): EOrigineInscription {\n return EOrigineInscriptionFromJSONTyped(json, false);\n}\n\nexport function EOrigineInscriptionFromJSONTyped(json: any, ignoreDiscriminator: boolean): EOrigineInscription {\n return json as EOrigineInscription;\n}\n\nexport function EOrigineInscriptionToJSON(value?: EOrigineInscription | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EOrigineInscription } from './EOrigineInscription';\nimport {\n EOrigineInscriptionFromJSON,\n EOrigineInscriptionFromJSONTyped,\n EOrigineInscriptionToJSON,\n} from './EOrigineInscription';\nimport type { EStatutDemande } from './EStatutDemande';\nimport {\n EStatutDemandeFromJSON,\n EStatutDemandeFromJSONTyped,\n EStatutDemandeToJSON,\n} from './EStatutDemande';\n\n/**\n * \n * @export\n * @interface DashboardInscriptionGridDto\n */\nexport interface DashboardInscriptionGridDto {\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionGridDto\n */\n iddemandeInscription?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionGridDto\n */\n idparcoursFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionGridDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n apprenant?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n formation?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n degre?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n metier?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionGridDto\n */\n idstatut?: number;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n statut?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n type?: string | null;\n /**\n * \n * @type {EStatutDemande}\n * @memberof DashboardInscriptionGridDto\n */\n codeStatut?: EStatutDemande;\n /**\n * \n * @type {Date}\n * @memberof DashboardInscriptionGridDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {EOrigineInscription}\n * @memberof DashboardInscriptionGridDto\n */\n origine?: EOrigineInscription;\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionGridDto\n */\n idserviceTutelle?: number;\n /**\n * \n * @type {boolean}\n * @memberof DashboardInscriptionGridDto\n */\n masquee?: boolean;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n encodeur?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n envoyeur?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionGridDto\n */\n ancienneClasse?: string | null;\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionGridDto\n */\n idenvoyeur?: number | null;\n}\n\n/**\n * Check if a given object implements the DashboardInscriptionGridDto interface.\n */\nexport function instanceOfDashboardInscriptionGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardInscriptionGridDtoFromJSON(json: any): DashboardInscriptionGridDto {\n return DashboardInscriptionGridDtoFromJSONTyped(json, false);\n}\n\nexport function DashboardInscriptionGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardInscriptionGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddemandeInscription': !exists(json, 'iddemandeInscription') ? undefined : json['iddemandeInscription'],\n 'idparcoursFormation': !exists(json, 'idparcoursFormation') ? undefined : json['idparcoursFormation'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'apprenant': !exists(json, 'apprenant') ? undefined : json['apprenant'],\n 'formation': !exists(json, 'formation') ? undefined : json['formation'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'idstatut': !exists(json, 'idstatut') ? undefined : json['idstatut'],\n 'statut': !exists(json, 'statut') ? undefined : json['statut'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'codeStatut': !exists(json, 'codeStatut') ? undefined : EStatutDemandeFromJSON(json['codeStatut']),\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'origine': !exists(json, 'origine') ? undefined : EOrigineInscriptionFromJSON(json['origine']),\n 'idserviceTutelle': !exists(json, 'idserviceTutelle') ? undefined : json['idserviceTutelle'],\n 'masquee': !exists(json, 'masquee') ? undefined : json['masquee'],\n 'encodeur': !exists(json, 'encodeur') ? undefined : json['encodeur'],\n 'envoyeur': !exists(json, 'envoyeur') ? undefined : json['envoyeur'],\n 'ancienneClasse': !exists(json, 'ancienneClasse') ? undefined : json['ancienneClasse'],\n 'idenvoyeur': !exists(json, 'idenvoyeur') ? undefined : json['idenvoyeur'],\n };\n}\n\nexport function DashboardInscriptionGridDtoToJSON(value?: DashboardInscriptionGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddemandeInscription': value.iddemandeInscription,\n 'idparcoursFormation': value.idparcoursFormation,\n 'idinscription': value.idinscription,\n 'idapprenant': value.idapprenant,\n 'apprenant': value.apprenant,\n 'formation': value.formation,\n 'anneeAcademique': value.anneeAcademique,\n 'typeCours': value.typeCours,\n 'degre': value.degre,\n 'metier': value.metier,\n 'centre': value.centre,\n 'idstatut': value.idstatut,\n 'statut': value.statut,\n 'type': value.type,\n 'codeStatut': EStatutDemandeToJSON(value.codeStatut),\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'origine': EOrigineInscriptionToJSON(value.origine),\n 'idserviceTutelle': value.idserviceTutelle,\n 'masquee': value.masquee,\n 'encodeur': value.encodeur,\n 'envoyeur': value.envoyeur,\n 'ancienneClasse': value.ancienneClasse,\n 'idenvoyeur': value.idenvoyeur,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DashboardInscriptionGridDto } from './DashboardInscriptionGridDto';\nimport {\n DashboardInscriptionGridDtoFromJSON,\n DashboardInscriptionGridDtoFromJSONTyped,\n DashboardInscriptionGridDtoToJSON,\n} from './DashboardInscriptionGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface DashboardInscriptionGridDtoPaginatedResults\n */\nexport interface DashboardInscriptionGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof DashboardInscriptionGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardInscriptionGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the DashboardInscriptionGridDtoPaginatedResults interface.\n */\nexport function instanceOfDashboardInscriptionGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardInscriptionGridDtoPaginatedResultsFromJSON(json: any): DashboardInscriptionGridDtoPaginatedResults {\n return DashboardInscriptionGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function DashboardInscriptionGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardInscriptionGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(DashboardInscriptionGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function DashboardInscriptionGridDtoPaginatedResultsToJSON(value?: DashboardInscriptionGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(DashboardInscriptionGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EIfapmeSide {\n Walter = 'Walter',\n Hope = 'Hope'\n}\n\n\nexport function EIfapmeSideFromJSON(json: any): EIfapmeSide {\n return EIfapmeSideFromJSONTyped(json, false);\n}\n\nexport function EIfapmeSideFromJSONTyped(json: any, ignoreDiscriminator: boolean): EIfapmeSide {\n return json as EIfapmeSide;\n}\n\nexport function EIfapmeSideToJSON(value?: EIfapmeSide | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { EIfapmeSide } from './EIfapmeSide';\nimport {\n EIfapmeSideFromJSON,\n EIfapmeSideFromJSONTyped,\n EIfapmeSideToJSON,\n} from './EIfapmeSide';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface DashboardInscriptionSearch\n */\nexport interface DashboardInscriptionSearch {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DashboardInscriptionSearch\n */\n apprenant?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DashboardInscriptionSearch\n */\n formation?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardInscriptionSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardInscriptionSearch\n */\n typeCours?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardInscriptionSearch\n */\n degre?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardInscriptionSearch\n */\n metier?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardInscriptionSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardInscriptionSearch\n */\n type?: TextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DashboardInscriptionSearch\n */\n envoyeur?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DashboardInscriptionSearch\n */\n encodeur?: UnaccentTextSearch;\n /**\n * \n * @type {EIfapmeSide}\n * @memberof DashboardInscriptionSearch\n */\n ifapmeSide?: EIfapmeSide;\n /**\n * \n * @type {boolean}\n * @memberof DashboardInscriptionSearch\n */\n onlyUserDashboard?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DashboardInscriptionSearch\n */\n hideMasquees?: boolean;\n /**\n * \n * @type {Array}\n * @memberof DashboardInscriptionSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardInscriptionSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardInscriptionSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DashboardInscriptionSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DashboardInscriptionSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DashboardInscriptionSearch interface.\n */\nexport function instanceOfDashboardInscriptionSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardInscriptionSearchFromJSON(json: any): DashboardInscriptionSearch {\n return DashboardInscriptionSearchFromJSONTyped(json, false);\n}\n\nexport function DashboardInscriptionSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardInscriptionSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'apprenant': !exists(json, 'apprenant') ? undefined : UnaccentTextSearchFromJSON(json['apprenant']),\n 'formation': !exists(json, 'formation') ? undefined : UnaccentTextSearchFromJSON(json['formation']),\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'typeCours': !exists(json, 'typeCours') ? undefined : TextSearchFromJSON(json['typeCours']),\n 'degre': !exists(json, 'degre') ? undefined : TextSearchFromJSON(json['degre']),\n 'metier': !exists(json, 'metier') ? undefined : TextSearchFromJSON(json['metier']),\n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'type': !exists(json, 'type') ? undefined : TextSearchFromJSON(json['type']),\n 'envoyeur': !exists(json, 'envoyeur') ? undefined : UnaccentTextSearchFromJSON(json['envoyeur']),\n 'encodeur': !exists(json, 'encodeur') ? undefined : UnaccentTextSearchFromJSON(json['encodeur']),\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : EIfapmeSideFromJSON(json['ifapmeSide']),\n 'onlyUserDashboard': !exists(json, 'onlyUserDashboard') ? undefined : json['onlyUserDashboard'],\n 'hideMasquees': !exists(json, 'hideMasquees') ? undefined : json['hideMasquees'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DashboardInscriptionSearchToJSON(value?: DashboardInscriptionSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'apprenant': UnaccentTextSearchToJSON(value.apprenant),\n 'formation': UnaccentTextSearchToJSON(value.formation),\n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'typeCours': TextSearchToJSON(value.typeCours),\n 'degre': TextSearchToJSON(value.degre),\n 'metier': TextSearchToJSON(value.metier),\n 'centre': TextSearchToJSON(value.centre),\n 'type': TextSearchToJSON(value.type),\n 'envoyeur': UnaccentTextSearchToJSON(value.envoyeur),\n 'encodeur': UnaccentTextSearchToJSON(value.encodeur),\n 'ifapmeSide': EIfapmeSideToJSON(value.ifapmeSide),\n 'onlyUserDashboard': value.onlyUserDashboard,\n 'hideMasquees': value.hideMasquees,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DashboardPratiqueProDto\n */\nexport interface DashboardPratiqueProDto {\n /**\n * \n * @type {number}\n * @memberof DashboardPratiqueProDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProDto\n */\n code?: string | null;\n /**\n * \n * @type {number}\n * @memberof DashboardPratiqueProDto\n */\n idtypeContrat?: number | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProDto\n */\n type?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProDto\n */\n typeCode?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProDto\n */\n periode?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProDto\n */\n statut?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProDto\n */\n referent?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProDto\n */\n idsuserMasquage?: string | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProDto\n */\n idsuser?: string | null;\n /**\n * \n * @type {number}\n * @memberof DashboardPratiqueProDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProDto\n */\n apprenant?: string | null;\n}\n\n/**\n * Check if a given object implements the DashboardPratiqueProDto interface.\n */\nexport function instanceOfDashboardPratiqueProDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardPratiqueProDtoFromJSON(json: any): DashboardPratiqueProDto {\n return DashboardPratiqueProDtoFromJSONTyped(json, false);\n}\n\nexport function DashboardPratiqueProDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardPratiqueProDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'idtypeContrat': !exists(json, 'idtypeContrat') ? undefined : json['idtypeContrat'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'typeCode': !exists(json, 'typeCode') ? undefined : json['typeCode'],\n 'periode': !exists(json, 'periode') ? undefined : json['periode'],\n 'statut': !exists(json, 'statut') ? undefined : json['statut'],\n 'referent': !exists(json, 'referent') ? undefined : json['referent'],\n 'idsuserMasquage': !exists(json, 'idsuserMasquage') ? undefined : json['idsuserMasquage'],\n 'idsuser': !exists(json, 'idsuser') ? undefined : json['idsuser'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'apprenant': !exists(json, 'apprenant') ? undefined : json['apprenant'],\n };\n}\n\nexport function DashboardPratiqueProDtoToJSON(value?: DashboardPratiqueProDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontrat': value.idcontrat,\n 'code': value.code,\n 'idtypeContrat': value.idtypeContrat,\n 'type': value.type,\n 'typeCode': value.typeCode,\n 'periode': value.periode,\n 'statut': value.statut,\n 'referent': value.referent,\n 'idsuserMasquage': value.idsuserMasquage,\n 'idsuser': value.idsuser,\n 'idapprenant': value.idapprenant,\n 'apprenant': value.apprenant,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DashboardPratiqueProDto } from './DashboardPratiqueProDto';\nimport {\n DashboardPratiqueProDtoFromJSON,\n DashboardPratiqueProDtoFromJSONTyped,\n DashboardPratiqueProDtoToJSON,\n} from './DashboardPratiqueProDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface DashboardPratiqueProDtoPaginatedResults\n */\nexport interface DashboardPratiqueProDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof DashboardPratiqueProDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof DashboardPratiqueProDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardPratiqueProDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the DashboardPratiqueProDtoPaginatedResults interface.\n */\nexport function instanceOfDashboardPratiqueProDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardPratiqueProDtoPaginatedResultsFromJSON(json: any): DashboardPratiqueProDtoPaginatedResults {\n return DashboardPratiqueProDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function DashboardPratiqueProDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardPratiqueProDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(DashboardPratiqueProDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function DashboardPratiqueProDtoPaginatedResultsToJSON(value?: DashboardPratiqueProDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(DashboardPratiqueProDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface DashboardPratiqueProSearch\n */\nexport interface DashboardPratiqueProSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardPratiqueProSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DashboardPratiqueProSearch\n */\n idtypeContrat?: Int32ListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardPratiqueProSearch\n */\n referent?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DashboardPratiqueProSearch\n */\n apprenant?: TextSearch;\n /**\n * \n * @type {boolean}\n * @memberof DashboardPratiqueProSearch\n */\n hideMasquees?: boolean;\n /**\n * \n * @type {Array}\n * @memberof DashboardPratiqueProSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardPratiqueProSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DashboardPratiqueProSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardPratiqueProSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DashboardPratiqueProSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DashboardPratiqueProSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DashboardPratiqueProSearch interface.\n */\nexport function instanceOfDashboardPratiqueProSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardPratiqueProSearchFromJSON(json: any): DashboardPratiqueProSearch {\n return DashboardPratiqueProSearchFromJSONTyped(json, false);\n}\n\nexport function DashboardPratiqueProSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardPratiqueProSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'idtypeContrat': !exists(json, 'idtypeContrat') ? undefined : Int32ListSearchFromJSON(json['idtypeContrat']),\n 'referent': !exists(json, 'referent') ? undefined : TextSearchFromJSON(json['referent']),\n 'apprenant': !exists(json, 'apprenant') ? undefined : TextSearchFromJSON(json['apprenant']),\n 'hideMasquees': !exists(json, 'hideMasquees') ? undefined : json['hideMasquees'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DashboardPratiqueProSearchToJSON(value?: DashboardPratiqueProSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'idtypeContrat': Int32ListSearchToJSON(value.idtypeContrat),\n 'referent': TextSearchToJSON(value.referent),\n 'apprenant': TextSearchToJSON(value.apprenant),\n 'hideMasquees': value.hideMasquees,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\n\n/**\n * \n * @export\n * @interface EListSearchTypeDoubleCombinableCriteria\n */\nexport interface EListSearchTypeDoubleCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeDoubleCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {number}\n * @memberof EListSearchTypeDoubleCombinableCriteria\n */\n value?: number;\n /**\n * \n * @type {number}\n * @memberof EListSearchTypeDoubleCombinableCriteria\n */\n secondaryValue?: number;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeDoubleCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeDoubleCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeDoubleCombinableCriteriaFromJSON(json: any): EListSearchTypeDoubleCombinableCriteria {\n return EListSearchTypeDoubleCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeDoubleCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeDoubleCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n };\n}\n\nexport function EListSearchTypeDoubleCombinableCriteriaToJSON(value?: EListSearchTypeDoubleCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeDoubleCombinableCriteria } from './EListSearchTypeDoubleCombinableCriteria';\nimport {\n EListSearchTypeDoubleCombinableCriteriaFromJSON,\n EListSearchTypeDoubleCombinableCriteriaFromJSONTyped,\n EListSearchTypeDoubleCombinableCriteriaToJSON,\n} from './EListSearchTypeDoubleCombinableCriteria';\n\n/**\n * \n * @export\n * @interface DoubleListSearch\n */\nexport interface DoubleListSearch {\n /**\n * \n * @type {Array}\n * @memberof DoubleListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof DoubleListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {number}\n * @memberof DoubleListSearch\n * @deprecated\n */\n value?: number;\n /**\n * \n * @type {number}\n * @memberof DoubleListSearch\n * @deprecated\n */\n secondaryValue?: number;\n /**\n * \n * @type {Array}\n * @memberof DoubleListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof DoubleListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the DoubleListSearch interface.\n */\nexport function instanceOfDoubleListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DoubleListSearchFromJSON(json: any): DoubleListSearch {\n return DoubleListSearchFromJSONTyped(json, false);\n}\n\nexport function DoubleListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DoubleListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeDoubleCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : json['secondaryValue'],\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function DoubleListSearchToJSON(value?: DoubleListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeDoubleCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': value.value,\n 'secondaryValue': value.secondaryValue,\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EOrigineSuivi {\n Centres = 'Centres',\n Services = 'Services'\n}\n\n\nexport function EOrigineSuiviFromJSON(json: any): EOrigineSuivi {\n return EOrigineSuiviFromJSONTyped(json, false);\n}\n\nexport function EOrigineSuiviFromJSONTyped(json: any, ignoreDiscriminator: boolean): EOrigineSuivi {\n return json as EOrigineSuivi;\n}\n\nexport function EOrigineSuiviToJSON(value?: EOrigineSuivi | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EOrigineSuivi } from './EOrigineSuivi';\nimport {\n EOrigineSuiviFromJSON,\n EOrigineSuiviFromJSONTyped,\n EOrigineSuiviToJSON,\n} from './EOrigineSuivi';\n\n/**\n * \n * @export\n * @interface EListSearchTypeEOrigineSuiviCombinableCriteria\n */\nexport interface EListSearchTypeEOrigineSuiviCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeEOrigineSuiviCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {EOrigineSuivi}\n * @memberof EListSearchTypeEOrigineSuiviCombinableCriteria\n */\n value?: EOrigineSuivi;\n /**\n * \n * @type {EOrigineSuivi}\n * @memberof EListSearchTypeEOrigineSuiviCombinableCriteria\n */\n secondaryValue?: EOrigineSuivi;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeEOrigineSuiviCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeEOrigineSuiviCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeEOrigineSuiviCombinableCriteriaFromJSON(json: any): EListSearchTypeEOrigineSuiviCombinableCriteria {\n return EListSearchTypeEOrigineSuiviCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeEOrigineSuiviCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeEOrigineSuiviCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : EOrigineSuiviFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : EOrigineSuiviFromJSON(json['secondaryValue']),\n };\n}\n\nexport function EListSearchTypeEOrigineSuiviCombinableCriteriaToJSON(value?: EListSearchTypeEOrigineSuiviCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': EOrigineSuiviToJSON(value.value),\n 'secondaryValue': EOrigineSuiviToJSON(value.secondaryValue),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeEOrigineSuiviCombinableCriteria } from './EListSearchTypeEOrigineSuiviCombinableCriteria';\nimport {\n EListSearchTypeEOrigineSuiviCombinableCriteriaFromJSON,\n EListSearchTypeEOrigineSuiviCombinableCriteriaFromJSONTyped,\n EListSearchTypeEOrigineSuiviCombinableCriteriaToJSON,\n} from './EListSearchTypeEOrigineSuiviCombinableCriteria';\nimport type { EOrigineSuivi } from './EOrigineSuivi';\nimport {\n EOrigineSuiviFromJSON,\n EOrigineSuiviFromJSONTyped,\n EOrigineSuiviToJSON,\n} from './EOrigineSuivi';\n\n/**\n * \n * @export\n * @interface EOrigineSuiviListSearch\n */\nexport interface EOrigineSuiviListSearch {\n /**\n * \n * @type {Array}\n * @memberof EOrigineSuiviListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof EOrigineSuiviListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {EOrigineSuivi}\n * @memberof EOrigineSuiviListSearch\n */\n value?: EOrigineSuivi;\n /**\n * \n * @type {EOrigineSuivi}\n * @memberof EOrigineSuiviListSearch\n */\n secondaryValue?: EOrigineSuivi;\n /**\n * \n * @type {Array}\n * @memberof EOrigineSuiviListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof EOrigineSuiviListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the EOrigineSuiviListSearch interface.\n */\nexport function instanceOfEOrigineSuiviListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EOrigineSuiviListSearchFromJSON(json: any): EOrigineSuiviListSearch {\n return EOrigineSuiviListSearchFromJSONTyped(json, false);\n}\n\nexport function EOrigineSuiviListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): EOrigineSuiviListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeEOrigineSuiviCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : EOrigineSuiviFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : EOrigineSuiviFromJSON(json['secondaryValue']),\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function EOrigineSuiviListSearchToJSON(value?: EOrigineSuiviListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeEOrigineSuiviCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': EOrigineSuiviToJSON(value.value),\n 'secondaryValue': EOrigineSuiviToJSON(value.secondaryValue),\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { DoubleListSearch } from './DoubleListSearch';\nimport {\n DoubleListSearchFromJSON,\n DoubleListSearchFromJSONTyped,\n DoubleListSearchToJSON,\n} from './DoubleListSearch';\nimport type { EIfapmeSide } from './EIfapmeSide';\nimport {\n EIfapmeSideFromJSON,\n EIfapmeSideFromJSONTyped,\n EIfapmeSideToJSON,\n} from './EIfapmeSide';\nimport type { EOrigineSuiviListSearch } from './EOrigineSuiviListSearch';\nimport {\n EOrigineSuiviListSearchFromJSON,\n EOrigineSuiviListSearchFromJSONTyped,\n EOrigineSuiviListSearchToJSON,\n} from './EOrigineSuiviListSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { NumericSearch } from './NumericSearch';\nimport {\n NumericSearchFromJSON,\n NumericSearchFromJSONTyped,\n NumericSearchToJSON,\n} from './NumericSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface DashboardSuiviSearch\n */\nexport interface DashboardSuiviSearch {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DashboardSuiviSearch\n */\n nomApprenant?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DashboardSuiviSearch\n */\n prenomApprenant?: UnaccentTextSearch;\n /**\n * \n * @type {NumericSearch}\n * @memberof DashboardSuiviSearch\n */\n idapprenant?: NumericSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DashboardSuiviSearch\n */\n idrealisateurSuivi?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DashboardSuiviSearch\n */\n idencodeur?: Int32ListSearch;\n /**\n * \n * @type {EOrigineSuiviListSearch}\n * @memberof DashboardSuiviSearch\n */\n origineSuivi?: EOrigineSuiviListSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof DashboardSuiviSearch\n */\n dateSuivi?: DateSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DashboardSuiviSearch\n */\n idtypeSuivi?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DashboardSuiviSearch\n */\n idsousTypeSuivi?: Int32ListSearch;\n /**\n * \n * @type {DoubleListSearch}\n * @memberof DashboardSuiviSearch\n */\n idservice?: DoubleListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DashboardSuiviSearch\n */\n idpri?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DashboardSuiviSearch\n */\n idari?: Int32ListSearch;\n /**\n * \n * @type {EIfapmeSide}\n * @memberof DashboardSuiviSearch\n */\n ifapmeSide?: EIfapmeSide;\n /**\n * \n * @type {boolean}\n * @memberof DashboardSuiviSearch\n */\n onlyUserDashboard?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DashboardSuiviSearch\n */\n hideMasquees?: boolean;\n /**\n * \n * @type {Array}\n * @memberof DashboardSuiviSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardSuiviSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DashboardSuiviSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardSuiviSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DashboardSuiviSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DashboardSuiviSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DashboardSuiviSearch interface.\n */\nexport function instanceOfDashboardSuiviSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardSuiviSearchFromJSON(json: any): DashboardSuiviSearch {\n return DashboardSuiviSearchFromJSONTyped(json, false);\n}\n\nexport function DashboardSuiviSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardSuiviSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nomApprenant': !exists(json, 'nomApprenant') ? undefined : UnaccentTextSearchFromJSON(json['nomApprenant']),\n 'prenomApprenant': !exists(json, 'prenomApprenant') ? undefined : UnaccentTextSearchFromJSON(json['prenomApprenant']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : NumericSearchFromJSON(json['idapprenant']),\n 'idrealisateurSuivi': !exists(json, 'idrealisateurSuivi') ? undefined : Int32ListSearchFromJSON(json['idrealisateurSuivi']),\n 'idencodeur': !exists(json, 'idencodeur') ? undefined : Int32ListSearchFromJSON(json['idencodeur']),\n 'origineSuivi': !exists(json, 'origineSuivi') ? undefined : EOrigineSuiviListSearchFromJSON(json['origineSuivi']),\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : DateSearchFromJSON(json['dateSuivi']),\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : Int32ListSearchFromJSON(json['idtypeSuivi']),\n 'idsousTypeSuivi': !exists(json, 'idsousTypeSuivi') ? undefined : Int32ListSearchFromJSON(json['idsousTypeSuivi']),\n 'idservice': !exists(json, 'idservice') ? undefined : DoubleListSearchFromJSON(json['idservice']),\n 'idpri': !exists(json, 'idpri') ? undefined : Int32ListSearchFromJSON(json['idpri']),\n 'idari': !exists(json, 'idari') ? undefined : Int32ListSearchFromJSON(json['idari']),\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : EIfapmeSideFromJSON(json['ifapmeSide']),\n 'onlyUserDashboard': !exists(json, 'onlyUserDashboard') ? undefined : json['onlyUserDashboard'],\n 'hideMasquees': !exists(json, 'hideMasquees') ? undefined : json['hideMasquees'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DashboardSuiviSearchToJSON(value?: DashboardSuiviSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nomApprenant': UnaccentTextSearchToJSON(value.nomApprenant),\n 'prenomApprenant': UnaccentTextSearchToJSON(value.prenomApprenant),\n 'idapprenant': NumericSearchToJSON(value.idapprenant),\n 'idrealisateurSuivi': Int32ListSearchToJSON(value.idrealisateurSuivi),\n 'idencodeur': Int32ListSearchToJSON(value.idencodeur),\n 'origineSuivi': EOrigineSuiviListSearchToJSON(value.origineSuivi),\n 'dateSuivi': DateSearchToJSON(value.dateSuivi),\n 'idtypeSuivi': Int32ListSearchToJSON(value.idtypeSuivi),\n 'idsousTypeSuivi': Int32ListSearchToJSON(value.idsousTypeSuivi),\n 'idservice': DoubleListSearchToJSON(value.idservice),\n 'idpri': Int32ListSearchToJSON(value.idpri),\n 'idari': Int32ListSearchToJSON(value.idari),\n 'ifapmeSide': EIfapmeSideToJSON(value.ifapmeSide),\n 'onlyUserDashboard': value.onlyUserDashboard,\n 'hideMasquees': value.hideMasquees,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\n\n/**\n * \n * @export\n * @interface DashboardSuiviSiegeLieuSearch\n */\nexport interface DashboardSuiviSiegeLieuSearch {\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n idsiegeSocial?: Int32NullableListSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n idlieuFormation?: Int32NullableListSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n idencodeur?: Int32NullableListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n idservice?: Int32ListSearch;\n /**\n * \n * @type {boolean}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n onlyUserDashboard?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n hideMasquees?: boolean;\n /**\n * \n * @type {Array}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DashboardSuiviSiegeLieuSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DashboardSuiviSiegeLieuSearch interface.\n */\nexport function instanceOfDashboardSuiviSiegeLieuSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DashboardSuiviSiegeLieuSearchFromJSON(json: any): DashboardSuiviSiegeLieuSearch {\n return DashboardSuiviSiegeLieuSearchFromJSONTyped(json, false);\n}\n\nexport function DashboardSuiviSiegeLieuSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DashboardSuiviSiegeLieuSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : Int32NullableListSearchFromJSON(json['idsiegeSocial']),\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : Int32NullableListSearchFromJSON(json['idlieuFormation']),\n 'idencodeur': !exists(json, 'idencodeur') ? undefined : Int32NullableListSearchFromJSON(json['idencodeur']),\n 'idservice': !exists(json, 'idservice') ? undefined : Int32ListSearchFromJSON(json['idservice']),\n 'onlyUserDashboard': !exists(json, 'onlyUserDashboard') ? undefined : json['onlyUserDashboard'],\n 'hideMasquees': !exists(json, 'hideMasquees') ? undefined : json['hideMasquees'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DashboardSuiviSiegeLieuSearchToJSON(value?: DashboardSuiviSiegeLieuSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': Int32NullableListSearchToJSON(value.idsiegeSocial),\n 'idlieuFormation': Int32NullableListSearchToJSON(value.idlieuFormation),\n 'idencodeur': Int32NullableListSearchToJSON(value.idencodeur),\n 'idservice': Int32ListSearchToJSON(value.idservice),\n 'onlyUserDashboard': value.onlyUserDashboard,\n 'hideMasquees': value.hideMasquees,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DateDuringContratDto\n */\nexport interface DateDuringContratDto {\n /**\n * \n * @type {Date}\n * @memberof DateDuringContratDto\n */\n dateSortie?: Date;\n /**\n * \n * @type {number}\n * @memberof DateDuringContratDto\n */\n idtuteurLieu?: number;\n}\n\n/**\n * Check if a given object implements the DateDuringContratDto interface.\n */\nexport function instanceOfDateDuringContratDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DateDuringContratDtoFromJSON(json: any): DateDuringContratDto {\n return DateDuringContratDtoFromJSONTyped(json, false);\n}\n\nexport function DateDuringContratDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DateDuringContratDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'dateSortie': !exists(json, 'dateSortie') ? undefined : (new Date(json['dateSortie'])),\n 'idtuteurLieu': !exists(json, 'idtuteurLieu') ? undefined : json['idtuteurLieu'],\n };\n}\n\nexport function DateDuringContratDtoToJSON(value?: DateDuringContratDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'dateSortie': value.dateSortie === undefined ? undefined : (value.dateSortie.toISOString()),\n 'idtuteurLieu': value.idtuteurLieu,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface DegreSearch\n */\nexport interface DegreSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof DegreSearch\n */\n idDegre?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DegreSearch\n */\n stade?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DegreSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof DegreSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof DegreSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DegreSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DegreSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DegreSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DegreSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DegreSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DegreSearch interface.\n */\nexport function instanceOfDegreSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DegreSearchFromJSON(json: any): DegreSearch {\n return DegreSearchFromJSONTyped(json, false);\n}\n\nexport function DegreSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DegreSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idDegre': !exists(json, 'idDegre') ? undefined : TextSearchFromJSON(json['idDegre']),\n 'stade': !exists(json, 'stade') ? undefined : TextSearchFromJSON(json['stade']),\n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DegreSearchToJSON(value?: DegreSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idDegre': TextSearchToJSON(value.idDegre),\n 'stade': TextSearchToJSON(value.stade),\n 'libelle': TextSearchToJSON(value.libelle),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { NumericSearch } from './NumericSearch';\nimport {\n NumericSearchFromJSON,\n NumericSearchFromJSONTyped,\n NumericSearchToJSON,\n} from './NumericSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface DeliberationMasseSearch\n */\nexport interface DeliberationMasseSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationMasseSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationMasseSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof DeliberationMasseSearch\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationMasseSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationMasseSearch\n */\n degre?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationMasseSearch\n */\n metier?: TextSearch;\n /**\n * \n * @type {NumericSearch}\n * @memberof DeliberationMasseSearch\n */\n idclasse?: NumericSearch;\n /**\n * \n * @type {Array}\n * @memberof DeliberationMasseSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DeliberationMasseSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DeliberationMasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DeliberationMasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DeliberationMasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DeliberationMasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DeliberationMasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DeliberationMasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DeliberationMasseSearch interface.\n */\nexport function instanceOfDeliberationMasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DeliberationMasseSearchFromJSON(json: any): DeliberationMasseSearch {\n return DeliberationMasseSearchFromJSONTyped(json, false);\n}\n\nexport function DeliberationMasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DeliberationMasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'degre': !exists(json, 'degre') ? undefined : TextSearchFromJSON(json['degre']),\n 'metier': !exists(json, 'metier') ? undefined : TextSearchFromJSON(json['metier']),\n 'idclasse': !exists(json, 'idclasse') ? undefined : NumericSearchFromJSON(json['idclasse']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DeliberationMasseSearchToJSON(value?: DeliberationMasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'degre': TextSearchToJSON(value.degre),\n 'metier': TextSearchToJSON(value.metier),\n 'idclasse': NumericSearchToJSON(value.idclasse),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { NumericSearch } from './NumericSearch';\nimport {\n NumericSearchFromJSON,\n NumericSearchFromJSONTyped,\n NumericSearchToJSON,\n} from './NumericSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface DeliberationTypeSearch\n */\nexport interface DeliberationTypeSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationTypeSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationTypeSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof DeliberationTypeSearch\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof DeliberationTypeSearch\n */\n anneeScolaire?: StringListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationTypeSearch\n */\n idtypeCours?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationTypeSearch\n */\n deliberation?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationTypeSearch\n */\n deliberation2sess?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DeliberationTypeSearch\n */\n metier?: TextSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof DeliberationTypeSearch\n */\n degre?: StringListSearch;\n /**\n * \n * @type {NumericSearch}\n * @memberof DeliberationTypeSearch\n */\n idclasse?: NumericSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DeliberationTypeSearch\n */\n idstade?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DeliberationTypeSearch\n */\n idcentre?: Int32ListSearch;\n /**\n * \n * @type {boolean}\n * @memberof DeliberationTypeSearch\n */\n canPrintBulletin?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof DeliberationTypeSearch\n */\n has2Sess?: boolean;\n /**\n * \n * @type {number}\n * @memberof DeliberationTypeSearch\n */\n idbulletinApprenantType?: number | null;\n /**\n * \n * @type {Array}\n * @memberof DeliberationTypeSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DeliberationTypeSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DeliberationTypeSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DeliberationTypeSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DeliberationTypeSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DeliberationTypeSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DeliberationTypeSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DeliberationTypeSearch interface.\n */\nexport function instanceOfDeliberationTypeSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DeliberationTypeSearchFromJSON(json: any): DeliberationTypeSearch {\n return DeliberationTypeSearchFromJSONTyped(json, false);\n}\n\nexport function DeliberationTypeSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DeliberationTypeSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : StringListSearchFromJSON(json['anneeScolaire']),\n 'idtypeCours': !exists(json, 'idtypeCours') ? undefined : TextSearchFromJSON(json['idtypeCours']),\n 'deliberation': !exists(json, 'deliberation') ? undefined : TextSearchFromJSON(json['deliberation']),\n 'deliberation2sess': !exists(json, 'deliberation2sess') ? undefined : TextSearchFromJSON(json['deliberation2sess']),\n 'metier': !exists(json, 'metier') ? undefined : TextSearchFromJSON(json['metier']),\n 'degre': !exists(json, 'degre') ? undefined : StringListSearchFromJSON(json['degre']),\n 'idclasse': !exists(json, 'idclasse') ? undefined : NumericSearchFromJSON(json['idclasse']),\n 'idstade': !exists(json, 'idstade') ? undefined : Int32ListSearchFromJSON(json['idstade']),\n 'idcentre': !exists(json, 'idcentre') ? undefined : Int32ListSearchFromJSON(json['idcentre']),\n 'canPrintBulletin': !exists(json, 'canPrintBulletin') ? undefined : json['canPrintBulletin'],\n 'has2Sess': !exists(json, 'has2Sess') ? undefined : json['has2Sess'],\n 'idbulletinApprenantType': !exists(json, 'idbulletinApprenantType') ? undefined : json['idbulletinApprenantType'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DeliberationTypeSearchToJSON(value?: DeliberationTypeSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'anneeScolaire': StringListSearchToJSON(value.anneeScolaire),\n 'idtypeCours': TextSearchToJSON(value.idtypeCours),\n 'deliberation': TextSearchToJSON(value.deliberation),\n 'deliberation2sess': TextSearchToJSON(value.deliberation2sess),\n 'metier': TextSearchToJSON(value.metier),\n 'degre': StringListSearchToJSON(value.degre),\n 'idclasse': NumericSearchToJSON(value.idclasse),\n 'idstade': Int32ListSearchToJSON(value.idstade),\n 'idcentre': Int32ListSearchToJSON(value.idcentre),\n 'canPrintBulletin': value.canPrintBulletin,\n 'has2Sess': value.has2Sess,\n 'idbulletinApprenantType': value.idbulletinApprenantType,\n 'selectedIds': value.selectedIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DeliberationValidateIdsDto\n */\nexport interface DeliberationValidateIdsDto {\n /**\n * \n * @type {Array}\n * @memberof DeliberationValidateIdsDto\n */\n allIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DeliberationValidateIdsDto\n */\n idsToValidate?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DeliberationValidateIdsDto\n */\n ids1SessToInvalidate?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DeliberationValidateIdsDto\n */\n ids2SessToInvalidate?: Array | null;\n}\n\n/**\n * Check if a given object implements the DeliberationValidateIdsDto interface.\n */\nexport function instanceOfDeliberationValidateIdsDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DeliberationValidateIdsDtoFromJSON(json: any): DeliberationValidateIdsDto {\n return DeliberationValidateIdsDtoFromJSONTyped(json, false);\n}\n\nexport function DeliberationValidateIdsDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DeliberationValidateIdsDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'allIds': !exists(json, 'allIds') ? undefined : json['allIds'],\n 'idsToValidate': !exists(json, 'idsToValidate') ? undefined : json['idsToValidate'],\n 'ids1SessToInvalidate': !exists(json, 'ids1SessToInvalidate') ? undefined : json['ids1SessToInvalidate'],\n 'ids2SessToInvalidate': !exists(json, 'ids2SessToInvalidate') ? undefined : json['ids2SessToInvalidate'],\n };\n}\n\nexport function DeliberationValidateIdsDtoToJSON(value?: DeliberationValidateIdsDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'allIds': value.allIds,\n 'idsToValidate': value.idsToValidate,\n 'ids1SessToInvalidate': value.ids1SessToInvalidate,\n 'ids2SessToInvalidate': value.ids2SessToInvalidate,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface DemandeApprenantSearch\n */\nexport interface DemandeApprenantSearch {\n /**\n * \n * @type {number}\n * @memberof DemandeApprenantSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof DemandeApprenantSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DemandeApprenantSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DemandeApprenantSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeApprenantSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DemandeApprenantSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DemandeApprenantSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DemandeApprenantSearch interface.\n */\nexport function instanceOfDemandeApprenantSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DemandeApprenantSearchFromJSON(json: any): DemandeApprenantSearch {\n return DemandeApprenantSearchFromJSONTyped(json, false);\n}\n\nexport function DemandeApprenantSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DemandeApprenantSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DemandeApprenantSearchToJSON(value?: DemandeApprenantSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DemandeInscriptionEditDto } from './DemandeInscriptionEditDto';\nimport {\n DemandeInscriptionEditDtoFromJSON,\n DemandeInscriptionEditDtoFromJSONTyped,\n DemandeInscriptionEditDtoToJSON,\n} from './DemandeInscriptionEditDto';\nimport type { EStatutDemande } from './EStatutDemande';\nimport {\n EStatutDemandeFromJSON,\n EStatutDemandeFromJSONTyped,\n EStatutDemandeToJSON,\n} from './EStatutDemande';\n\n/**\n * \n * @export\n * @interface DemandeInscriptionCreateDto\n */\nexport interface DemandeInscriptionCreateDto {\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionCreateDto\n */\n idService?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionCreateDto\n */\n idParcoursFormation?: number;\n /**\n * \n * @type {EStatutDemande}\n * @memberof DemandeInscriptionCreateDto\n */\n statutToSend?: EStatutDemande;\n /**\n * \n * @type {Array}\n * @memberof DemandeInscriptionCreateDto\n */\n demandes?: Array | null;\n}\n\n/**\n * Check if a given object implements the DemandeInscriptionCreateDto interface.\n */\nexport function instanceOfDemandeInscriptionCreateDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DemandeInscriptionCreateDtoFromJSON(json: any): DemandeInscriptionCreateDto {\n return DemandeInscriptionCreateDtoFromJSONTyped(json, false);\n}\n\nexport function DemandeInscriptionCreateDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DemandeInscriptionCreateDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idService': !exists(json, 'idService') ? undefined : json['idService'],\n 'idParcoursFormation': !exists(json, 'idParcoursFormation') ? undefined : json['idParcoursFormation'],\n 'statutToSend': !exists(json, 'statutToSend') ? undefined : EStatutDemandeFromJSON(json['statutToSend']),\n 'demandes': !exists(json, 'demandes') ? undefined : (json['demandes'] === null ? null : (json['demandes'] as Array).map(DemandeInscriptionEditDtoFromJSON)),\n };\n}\n\nexport function DemandeInscriptionCreateDtoToJSON(value?: DemandeInscriptionCreateDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idService': value.idService,\n 'idParcoursFormation': value.idParcoursFormation,\n 'statutToSend': EStatutDemandeToJSON(value.statutToSend),\n 'demandes': value.demandes === undefined ? undefined : (value.demandes === null ? null : (value.demandes as Array).map(DemandeInscriptionEditDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DemandeInscriptionFichierDto\n */\nexport interface DemandeInscriptionFichierDto {\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionFichierDto\n */\n iddemandeInscriptionFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionFichierDto\n */\n iddemandeInscription?: number;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the DemandeInscriptionFichierDto interface.\n */\nexport function instanceOfDemandeInscriptionFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DemandeInscriptionFichierDtoFromJSON(json: any): DemandeInscriptionFichierDto {\n return DemandeInscriptionFichierDtoFromJSONTyped(json, false);\n}\n\nexport function DemandeInscriptionFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DemandeInscriptionFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddemandeInscriptionFichier': !exists(json, 'iddemandeInscriptionFichier') ? undefined : json['iddemandeInscriptionFichier'],\n 'iddemandeInscription': !exists(json, 'iddemandeInscription') ? undefined : json['iddemandeInscription'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function DemandeInscriptionFichierDtoToJSON(value?: DemandeInscriptionFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddemandeInscriptionFichier': value.iddemandeInscriptionFichier,\n 'iddemandeInscription': value.iddemandeInscription,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface DemandeInscriptionFichierUploadDto\n */\nexport interface DemandeInscriptionFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof DemandeInscriptionFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionFichierUploadDto\n */\n iddemandeInscriptionFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionFichierUploadDto\n */\n iddemandeInscription?: number;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the DemandeInscriptionFichierUploadDto interface.\n */\nexport function instanceOfDemandeInscriptionFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DemandeInscriptionFichierUploadDtoFromJSON(json: any): DemandeInscriptionFichierUploadDto {\n return DemandeInscriptionFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function DemandeInscriptionFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DemandeInscriptionFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'iddemandeInscriptionFichier': !exists(json, 'iddemandeInscriptionFichier') ? undefined : json['iddemandeInscriptionFichier'],\n 'iddemandeInscription': !exists(json, 'iddemandeInscription') ? undefined : json['iddemandeInscription'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function DemandeInscriptionFichierUploadDtoToJSON(value?: DemandeInscriptionFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'iddemandeInscriptionFichier': value.iddemandeInscriptionFichier,\n 'iddemandeInscription': value.iddemandeInscription,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EStatutDemande } from './EStatutDemande';\nimport {\n EStatutDemandeFromJSON,\n EStatutDemandeFromJSONTyped,\n EStatutDemandeToJSON,\n} from './EStatutDemande';\n\n/**\n * \n * @export\n * @interface DemandeInscriptionGridDto\n */\nexport interface DemandeInscriptionGridDto {\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionGridDto\n */\n iddemandeInscription?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionGridDto\n */\n idparcoursFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionGridDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n typeCoursLibelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n degre?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n codeDegre?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n metier?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n stade?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n service?: string | null;\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionGridDto\n */\n idstatutDemande?: number | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n deliberationType?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n nomClasse?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof DemandeInscriptionGridDto\n */\n editable?: boolean | null;\n /**\n * \n * @type {EStatutDemande}\n * @memberof DemandeInscriptionGridDto\n */\n codeStatut?: EStatutDemande;\n /**\n * \n * @type {boolean}\n * @memberof DemandeInscriptionGridDto\n */\n centreExterieur?: boolean;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionGridDto\n */\n statutInscription?: string | null;\n}\n\n/**\n * Check if a given object implements the DemandeInscriptionGridDto interface.\n */\nexport function instanceOfDemandeInscriptionGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DemandeInscriptionGridDtoFromJSON(json: any): DemandeInscriptionGridDto {\n return DemandeInscriptionGridDtoFromJSONTyped(json, false);\n}\n\nexport function DemandeInscriptionGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DemandeInscriptionGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddemandeInscription': !exists(json, 'iddemandeInscription') ? undefined : json['iddemandeInscription'],\n 'idparcoursFormation': !exists(json, 'idparcoursFormation') ? undefined : json['idparcoursFormation'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'typeCoursLibelle': !exists(json, 'typeCoursLibelle') ? undefined : json['typeCoursLibelle'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'codeDegre': !exists(json, 'codeDegre') ? undefined : json['codeDegre'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'service': !exists(json, 'service') ? undefined : json['service'],\n 'idstatutDemande': !exists(json, 'idstatutDemande') ? undefined : json['idstatutDemande'],\n 'deliberationType': !exists(json, 'deliberationType') ? undefined : json['deliberationType'],\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'nomClasse': !exists(json, 'nomClasse') ? undefined : json['nomClasse'],\n 'editable': !exists(json, 'editable') ? undefined : json['editable'],\n 'codeStatut': !exists(json, 'codeStatut') ? undefined : EStatutDemandeFromJSON(json['codeStatut']),\n 'centreExterieur': !exists(json, 'centreExterieur') ? undefined : json['centreExterieur'],\n 'statutInscription': !exists(json, 'statutInscription') ? undefined : json['statutInscription'],\n };\n}\n\nexport function DemandeInscriptionGridDtoToJSON(value?: DemandeInscriptionGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddemandeInscription': value.iddemandeInscription,\n 'idparcoursFormation': value.idparcoursFormation,\n 'idinscription': value.idinscription,\n 'typeCours': value.typeCours,\n 'typeCoursLibelle': value.typeCoursLibelle,\n 'degre': value.degre,\n 'codeDegre': value.codeDegre,\n 'metier': value.metier,\n 'stade': value.stade,\n 'centre': value.centre,\n 'anneeScolaire': value.anneeScolaire,\n 'service': value.service,\n 'idstatutDemande': value.idstatutDemande,\n 'deliberationType': value.deliberationType,\n 'classe': value.classe,\n 'nomClasse': value.nomClasse,\n 'editable': value.editable,\n 'codeStatut': EStatutDemandeToJSON(value.codeStatut),\n 'centreExterieur': value.centreExterieur,\n 'statutInscription': value.statutInscription,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DemandeInscriptionGridDto } from './DemandeInscriptionGridDto';\nimport {\n DemandeInscriptionGridDtoFromJSON,\n DemandeInscriptionGridDtoFromJSONTyped,\n DemandeInscriptionGridDtoToJSON,\n} from './DemandeInscriptionGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface DemandeInscriptionGridDtoPaginatedResults\n */\nexport interface DemandeInscriptionGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof DemandeInscriptionGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DemandeInscriptionGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the DemandeInscriptionGridDtoPaginatedResults interface.\n */\nexport function instanceOfDemandeInscriptionGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DemandeInscriptionGridDtoPaginatedResultsFromJSON(json: any): DemandeInscriptionGridDtoPaginatedResults {\n return DemandeInscriptionGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function DemandeInscriptionGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): DemandeInscriptionGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(DemandeInscriptionGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function DemandeInscriptionGridDtoPaginatedResultsToJSON(value?: DemandeInscriptionGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(DemandeInscriptionGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DemandeInscriptionInvalidationDto\n */\nexport interface DemandeInscriptionInvalidationDto {\n /**\n * \n * @type {number}\n * @memberof DemandeInscriptionInvalidationDto\n */\n iddemandeInscription?: number;\n /**\n * \n * @type {string}\n * @memberof DemandeInscriptionInvalidationDto\n */\n remarqueInvalidation?: string | null;\n}\n\n/**\n * Check if a given object implements the DemandeInscriptionInvalidationDto interface.\n */\nexport function instanceOfDemandeInscriptionInvalidationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DemandeInscriptionInvalidationDtoFromJSON(json: any): DemandeInscriptionInvalidationDto {\n return DemandeInscriptionInvalidationDtoFromJSONTyped(json, false);\n}\n\nexport function DemandeInscriptionInvalidationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DemandeInscriptionInvalidationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddemandeInscription': !exists(json, 'iddemandeInscription') ? undefined : json['iddemandeInscription'],\n 'remarqueInvalidation': !exists(json, 'remarqueInvalidation') ? undefined : json['remarqueInvalidation'],\n };\n}\n\nexport function DemandeInscriptionInvalidationDtoToJSON(value?: DemandeInscriptionInvalidationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddemandeInscription': value.iddemandeInscription,\n 'remarqueInvalidation': value.remarqueInvalidation,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DiplomeCertificationFichierGridDto\n */\nexport interface DiplomeCertificationFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierGridDto\n */\n iddiplomeCertificationFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierGridDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationFichierGridDto\n */\n typeAcquisFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DiplomeCertificationFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the DiplomeCertificationFichierGridDto interface.\n */\nexport function instanceOfDiplomeCertificationFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DiplomeCertificationFichierGridDtoFromJSON(json: any): DiplomeCertificationFichierGridDto {\n return DiplomeCertificationFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function DiplomeCertificationFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiplomeCertificationFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplomeCertificationFichier': !exists(json, 'iddiplomeCertificationFichier') ? undefined : json['iddiplomeCertificationFichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'typeAcquisFichier': !exists(json, 'typeAcquisFichier') ? undefined : json['typeAcquisFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function DiplomeCertificationFichierGridDtoToJSON(value?: DiplomeCertificationFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplomeCertificationFichier': value.iddiplomeCertificationFichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'typeAcquisFichier': value.typeAcquisFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DiplomeCertificationFichierGridDto } from './DiplomeCertificationFichierGridDto';\nimport {\n DiplomeCertificationFichierGridDtoFromJSON,\n DiplomeCertificationFichierGridDtoFromJSONTyped,\n DiplomeCertificationFichierGridDtoToJSON,\n} from './DiplomeCertificationFichierGridDto';\n\n/**\n * \n * @export\n * @interface DiplomeCertificationEditDto\n */\nexport interface DiplomeCertificationEditDto {\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationEditDto\n */\n iddiplomeCertification?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationEditDto\n */\n anneeDeFormation?: string | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationEditDto\n */\n operateur?: string | null;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationEditDto\n */\n titre?: number | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationEditDto\n */\n libelle?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DiplomeCertificationEditDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationEditDto\n */\n typeAcquis?: string | null;\n /**\n * \n * @type {Array}\n * @memberof DiplomeCertificationEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the DiplomeCertificationEditDto interface.\n */\nexport function instanceOfDiplomeCertificationEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DiplomeCertificationEditDtoFromJSON(json: any): DiplomeCertificationEditDto {\n return DiplomeCertificationEditDtoFromJSONTyped(json, false);\n}\n\nexport function DiplomeCertificationEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiplomeCertificationEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplomeCertification': !exists(json, 'iddiplomeCertification') ? undefined : json['iddiplomeCertification'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'anneeDeFormation': !exists(json, 'anneeDeFormation') ? undefined : json['anneeDeFormation'],\n 'operateur': !exists(json, 'operateur') ? undefined : json['operateur'],\n 'titre': !exists(json, 'titre') ? undefined : json['titre'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'typeAcquis': !exists(json, 'typeAcquis') ? undefined : json['typeAcquis'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(DiplomeCertificationFichierGridDtoFromJSON)),\n };\n}\n\nexport function DiplomeCertificationEditDtoToJSON(value?: DiplomeCertificationEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplomeCertification': value.iddiplomeCertification,\n 'idpersonne': value.idpersonne,\n 'anneeDeFormation': value.anneeDeFormation,\n 'operateur': value.operateur,\n 'titre': value.titre,\n 'libelle': value.libelle,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'remarque': value.remarque,\n 'typeAcquis': value.typeAcquis,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(DiplomeCertificationFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DiplomeCertificationFichierDto\n */\nexport interface DiplomeCertificationFichierDto {\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierDto\n */\n iddiplomeCertificationFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierDto\n */\n iddiplomeCertification?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the DiplomeCertificationFichierDto interface.\n */\nexport function instanceOfDiplomeCertificationFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DiplomeCertificationFichierDtoFromJSON(json: any): DiplomeCertificationFichierDto {\n return DiplomeCertificationFichierDtoFromJSONTyped(json, false);\n}\n\nexport function DiplomeCertificationFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiplomeCertificationFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplomeCertificationFichier': !exists(json, 'iddiplomeCertificationFichier') ? undefined : json['iddiplomeCertificationFichier'],\n 'iddiplomeCertification': !exists(json, 'iddiplomeCertification') ? undefined : json['iddiplomeCertification'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function DiplomeCertificationFichierDtoToJSON(value?: DiplomeCertificationFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplomeCertificationFichier': value.iddiplomeCertificationFichier,\n 'iddiplomeCertification': value.iddiplomeCertification,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface DiplomeCertificationFichierUploadDto\n */\nexport interface DiplomeCertificationFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof DiplomeCertificationFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierUploadDto\n */\n iddiplomeCertificationFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierUploadDto\n */\n iddiplomeCertification?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationFichierUploadDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the DiplomeCertificationFichierUploadDto interface.\n */\nexport function instanceOfDiplomeCertificationFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DiplomeCertificationFichierUploadDtoFromJSON(json: any): DiplomeCertificationFichierUploadDto {\n return DiplomeCertificationFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function DiplomeCertificationFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiplomeCertificationFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'iddiplomeCertificationFichier': !exists(json, 'iddiplomeCertificationFichier') ? undefined : json['iddiplomeCertificationFichier'],\n 'iddiplomeCertification': !exists(json, 'iddiplomeCertification') ? undefined : json['iddiplomeCertification'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function DiplomeCertificationFichierUploadDtoToJSON(value?: DiplomeCertificationFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'iddiplomeCertificationFichier': value.iddiplomeCertificationFichier,\n 'iddiplomeCertification': value.iddiplomeCertification,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DiplomeCertificationIfapmeFichierGridDto\n */\nexport interface DiplomeCertificationIfapmeFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierGridDto\n */\n iddiplomeCertificationIfapmeFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierGridDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationIfapmeFichierGridDto\n */\n typeAcquisFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationIfapmeFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationIfapmeFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DiplomeCertificationIfapmeFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the DiplomeCertificationIfapmeFichierGridDto interface.\n */\nexport function instanceOfDiplomeCertificationIfapmeFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DiplomeCertificationIfapmeFichierGridDtoFromJSON(json: any): DiplomeCertificationIfapmeFichierGridDto {\n return DiplomeCertificationIfapmeFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function DiplomeCertificationIfapmeFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiplomeCertificationIfapmeFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplomeCertificationIfapmeFichier': !exists(json, 'iddiplomeCertificationIfapmeFichier') ? undefined : json['iddiplomeCertificationIfapmeFichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'typeAcquisFichier': !exists(json, 'typeAcquisFichier') ? undefined : json['typeAcquisFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function DiplomeCertificationIfapmeFichierGridDtoToJSON(value?: DiplomeCertificationIfapmeFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplomeCertificationIfapmeFichier': value.iddiplomeCertificationIfapmeFichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'typeAcquisFichier': value.typeAcquisFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DiplomeCertificationIfapmeFichierGridDto } from './DiplomeCertificationIfapmeFichierGridDto';\nimport {\n DiplomeCertificationIfapmeFichierGridDtoFromJSON,\n DiplomeCertificationIfapmeFichierGridDtoFromJSONTyped,\n DiplomeCertificationIfapmeFichierGridDtoToJSON,\n} from './DiplomeCertificationIfapmeFichierGridDto';\n\n/**\n * \n * @export\n * @interface DiplomeCertificationIfapmeEditDto\n */\nexport interface DiplomeCertificationIfapmeEditDto {\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeEditDto\n */\n iddiplomeCertificationIfapme?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationIfapmeEditDto\n */\n anneeDeFormation?: string | null;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeEditDto\n */\n acquis?: number | null;\n /**\n * \n * @type {Date}\n * @memberof DiplomeCertificationIfapmeEditDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationIfapmeEditDto\n */\n typeAcquis?: string | null;\n /**\n * \n * @type {Array}\n * @memberof DiplomeCertificationIfapmeEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the DiplomeCertificationIfapmeEditDto interface.\n */\nexport function instanceOfDiplomeCertificationIfapmeEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DiplomeCertificationIfapmeEditDtoFromJSON(json: any): DiplomeCertificationIfapmeEditDto {\n return DiplomeCertificationIfapmeEditDtoFromJSONTyped(json, false);\n}\n\nexport function DiplomeCertificationIfapmeEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiplomeCertificationIfapmeEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplomeCertificationIfapme': !exists(json, 'iddiplomeCertificationIfapme') ? undefined : json['iddiplomeCertificationIfapme'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'anneeDeFormation': !exists(json, 'anneeDeFormation') ? undefined : json['anneeDeFormation'],\n 'acquis': !exists(json, 'acquis') ? undefined : json['acquis'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'typeAcquis': !exists(json, 'typeAcquis') ? undefined : json['typeAcquis'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(DiplomeCertificationIfapmeFichierGridDtoFromJSON)),\n };\n}\n\nexport function DiplomeCertificationIfapmeEditDtoToJSON(value?: DiplomeCertificationIfapmeEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplomeCertificationIfapme': value.iddiplomeCertificationIfapme,\n 'idpersonne': value.idpersonne,\n 'anneeDeFormation': value.anneeDeFormation,\n 'acquis': value.acquis,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'typeAcquis': value.typeAcquis,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(DiplomeCertificationIfapmeFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DiplomeCertificationIfapmeFichierDto\n */\nexport interface DiplomeCertificationIfapmeFichierDto {\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierDto\n */\n iddiplomeCertificationIfapmeFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierDto\n */\n iddiplomeCertificationIfapme?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationIfapmeFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the DiplomeCertificationIfapmeFichierDto interface.\n */\nexport function instanceOfDiplomeCertificationIfapmeFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DiplomeCertificationIfapmeFichierDtoFromJSON(json: any): DiplomeCertificationIfapmeFichierDto {\n return DiplomeCertificationIfapmeFichierDtoFromJSONTyped(json, false);\n}\n\nexport function DiplomeCertificationIfapmeFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiplomeCertificationIfapmeFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplomeCertificationIfapmeFichier': !exists(json, 'iddiplomeCertificationIfapmeFichier') ? undefined : json['iddiplomeCertificationIfapmeFichier'],\n 'iddiplomeCertificationIfapme': !exists(json, 'iddiplomeCertificationIfapme') ? undefined : json['iddiplomeCertificationIfapme'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function DiplomeCertificationIfapmeFichierDtoToJSON(value?: DiplomeCertificationIfapmeFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplomeCertificationIfapmeFichier': value.iddiplomeCertificationIfapmeFichier,\n 'iddiplomeCertificationIfapme': value.iddiplomeCertificationIfapme,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface DiplomeCertificationIfapmeFichierUploadDto\n */\nexport interface DiplomeCertificationIfapmeFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof DiplomeCertificationIfapmeFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierUploadDto\n */\n iddiplomeCertificationIfapmeFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierUploadDto\n */\n iddiplomeCertificationIfapme?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof DiplomeCertificationIfapmeFichierUploadDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof DiplomeCertificationIfapmeFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the DiplomeCertificationIfapmeFichierUploadDto interface.\n */\nexport function instanceOfDiplomeCertificationIfapmeFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DiplomeCertificationIfapmeFichierUploadDtoFromJSON(json: any): DiplomeCertificationIfapmeFichierUploadDto {\n return DiplomeCertificationIfapmeFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function DiplomeCertificationIfapmeFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiplomeCertificationIfapmeFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'iddiplomeCertificationIfapmeFichier': !exists(json, 'iddiplomeCertificationIfapmeFichier') ? undefined : json['iddiplomeCertificationIfapmeFichier'],\n 'iddiplomeCertificationIfapme': !exists(json, 'iddiplomeCertificationIfapme') ? undefined : json['iddiplomeCertificationIfapme'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function DiplomeCertificationIfapmeFichierUploadDtoToJSON(value?: DiplomeCertificationIfapmeFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'iddiplomeCertificationIfapmeFichier': value.iddiplomeCertificationIfapmeFichier,\n 'iddiplomeCertificationIfapme': value.iddiplomeCertificationIfapme,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface DiplomeSearch\n */\nexport interface DiplomeSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof DiplomeSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof DiplomeSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof DiplomeSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DiplomeSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DiplomeSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DiplomeSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DiplomeSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DiplomeSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DiplomeSearch interface.\n */\nexport function instanceOfDiplomeSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DiplomeSearchFromJSON(json: any): DiplomeSearch {\n return DiplomeSearchFromJSONTyped(json, false);\n}\n\nexport function DiplomeSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiplomeSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DiplomeSearchToJSON(value?: DiplomeSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface DirectionTerritorialeSearch\n */\nexport interface DirectionTerritorialeSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof DirectionTerritorialeSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof DirectionTerritorialeSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof DirectionTerritorialeSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DirectionTerritorialeSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DirectionTerritorialeSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DirectionTerritorialeSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DirectionTerritorialeSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DirectionTerritorialeSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DirectionTerritorialeSearch interface.\n */\nexport function instanceOfDirectionTerritorialeSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DirectionTerritorialeSearchFromJSON(json: any): DirectionTerritorialeSearch {\n return DirectionTerritorialeSearchFromJSONTyped(json, false);\n}\n\nexport function DirectionTerritorialeSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DirectionTerritorialeSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DirectionTerritorialeSearchToJSON(value?: DirectionTerritorialeSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface DispenseSearch\n */\nexport interface DispenseSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof DispenseSearch\n */\n classe?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DispenseSearch\n */\n matiere?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof DispenseSearch\n */\n dateDemande?: DateSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof DispenseSearch\n */\n dateAcceptation?: DateSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof DispenseSearch\n */\n typeDispense?: Int32ListSearch;\n /**\n * \n * @type {number}\n * @memberof DispenseSearch\n */\n idinscription?: number;\n /**\n * \n * @type {Array}\n * @memberof DispenseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DispenseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DispenseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DispenseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DispenseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DispenseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DispenseSearch interface.\n */\nexport function instanceOfDispenseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DispenseSearchFromJSON(json: any): DispenseSearch {\n return DispenseSearchFromJSONTyped(json, false);\n}\n\nexport function DispenseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): DispenseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'classe': !exists(json, 'classe') ? undefined : TextSearchFromJSON(json['classe']),\n 'matiere': !exists(json, 'matiere') ? undefined : TextSearchFromJSON(json['matiere']),\n 'dateDemande': !exists(json, 'dateDemande') ? undefined : DateSearchFromJSON(json['dateDemande']),\n 'dateAcceptation': !exists(json, 'dateAcceptation') ? undefined : DateSearchFromJSON(json['dateAcceptation']),\n 'typeDispense': !exists(json, 'typeDispense') ? undefined : Int32ListSearchFromJSON(json['typeDispense']),\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DispenseSearchToJSON(value?: DispenseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'classe': TextSearchToJSON(value.classe),\n 'matiere': TextSearchToJSON(value.matiere),\n 'dateDemande': DateSearchToJSON(value.dateDemande),\n 'dateAcceptation': DateSearchToJSON(value.dateAcceptation),\n 'typeDispense': Int32ListSearchToJSON(value.typeDispense),\n 'idinscription': value.idinscription,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DisplayNameDto\n */\nexport interface DisplayNameDto {\n /**\n * \n * @type {number}\n * @memberof DisplayNameDto\n */\n id?: number;\n /**\n * \n * @type {string}\n * @memberof DisplayNameDto\n */\n text?: string | null;\n}\n\n/**\n * Check if a given object implements the DisplayNameDto interface.\n */\nexport function instanceOfDisplayNameDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DisplayNameDtoFromJSON(json: any): DisplayNameDto {\n return DisplayNameDtoFromJSONTyped(json, false);\n}\n\nexport function DisplayNameDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DisplayNameDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'text': !exists(json, 'text') ? undefined : json['text'],\n };\n}\n\nexport function DisplayNameDtoToJSON(value?: DisplayNameDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'id': value.id,\n 'text': value.text,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DossierAdmissionFichierGridDto\n */\nexport interface DossierAdmissionFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierGridDto\n */\n iddossierAdmissionFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierGridDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof DossierAdmissionFichierGridDto\n */\n typeAcquisFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof DossierAdmissionFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof DossierAdmissionFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DossierAdmissionFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the DossierAdmissionFichierGridDto interface.\n */\nexport function instanceOfDossierAdmissionFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DossierAdmissionFichierGridDtoFromJSON(json: any): DossierAdmissionFichierGridDto {\n return DossierAdmissionFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function DossierAdmissionFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DossierAdmissionFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddossierAdmissionFichier': !exists(json, 'iddossierAdmissionFichier') ? undefined : json['iddossierAdmissionFichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'typeAcquisFichier': !exists(json, 'typeAcquisFichier') ? undefined : json['typeAcquisFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function DossierAdmissionFichierGridDtoToJSON(value?: DossierAdmissionFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddossierAdmissionFichier': value.iddossierAdmissionFichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'typeAcquisFichier': value.typeAcquisFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DossierAdmissionFichierGridDto } from './DossierAdmissionFichierGridDto';\nimport {\n DossierAdmissionFichierGridDtoFromJSON,\n DossierAdmissionFichierGridDtoFromJSONTyped,\n DossierAdmissionFichierGridDtoToJSON,\n} from './DossierAdmissionFichierGridDto';\n\n/**\n * \n * @export\n * @interface DossierAdmissionEditDto\n */\nexport interface DossierAdmissionEditDto {\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionEditDto\n */\n iddossierAdmission?: number;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof DossierAdmissionEditDto\n */\n idanneeDeFormation?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DossierAdmissionEditDto\n */\n date?: Date | null;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionEditDto\n */\n idresultat?: number | null;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionEditDto\n */\n idexaminateur?: number | null;\n /**\n * \n * @type {string}\n * @memberof DossierAdmissionEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof DossierAdmissionEditDto\n */\n typeAcquis?: string | null;\n /**\n * \n * @type {Array}\n * @memberof DossierAdmissionEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the DossierAdmissionEditDto interface.\n */\nexport function instanceOfDossierAdmissionEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DossierAdmissionEditDtoFromJSON(json: any): DossierAdmissionEditDto {\n return DossierAdmissionEditDtoFromJSONTyped(json, false);\n}\n\nexport function DossierAdmissionEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DossierAdmissionEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddossierAdmission': !exists(json, 'iddossierAdmission') ? undefined : json['iddossierAdmission'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idanneeDeFormation': !exists(json, 'idanneeDeFormation') ? undefined : json['idanneeDeFormation'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'idresultat': !exists(json, 'idresultat') ? undefined : json['idresultat'],\n 'idexaminateur': !exists(json, 'idexaminateur') ? undefined : json['idexaminateur'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'typeAcquis': !exists(json, 'typeAcquis') ? undefined : json['typeAcquis'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(DossierAdmissionFichierGridDtoFromJSON)),\n };\n}\n\nexport function DossierAdmissionEditDtoToJSON(value?: DossierAdmissionEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddossierAdmission': value.iddossierAdmission,\n 'idpersonne': value.idpersonne,\n 'idanneeDeFormation': value.idanneeDeFormation,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'idresultat': value.idresultat,\n 'idexaminateur': value.idexaminateur,\n 'remarque': value.remarque,\n 'typeAcquis': value.typeAcquis,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(DossierAdmissionFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DossierAdmissionFichierDto\n */\nexport interface DossierAdmissionFichierDto {\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierDto\n */\n iddossierAdmissionFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierDto\n */\n iddossierAdmission?: number;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof DossierAdmissionFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the DossierAdmissionFichierDto interface.\n */\nexport function instanceOfDossierAdmissionFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DossierAdmissionFichierDtoFromJSON(json: any): DossierAdmissionFichierDto {\n return DossierAdmissionFichierDtoFromJSONTyped(json, false);\n}\n\nexport function DossierAdmissionFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DossierAdmissionFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddossierAdmissionFichier': !exists(json, 'iddossierAdmissionFichier') ? undefined : json['iddossierAdmissionFichier'],\n 'iddossierAdmission': !exists(json, 'iddossierAdmission') ? undefined : json['iddossierAdmission'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function DossierAdmissionFichierDtoToJSON(value?: DossierAdmissionFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddossierAdmissionFichier': value.iddossierAdmissionFichier,\n 'iddossierAdmission': value.iddossierAdmission,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface DossierAdmissionFichierUploadDto\n */\nexport interface DossierAdmissionFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof DossierAdmissionFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierUploadDto\n */\n iddossierAdmissionFichier?: number;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierUploadDto\n */\n iddossierAdmission?: number;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof DossierAdmissionFichierUploadDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof DossierAdmissionFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the DossierAdmissionFichierUploadDto interface.\n */\nexport function instanceOfDossierAdmissionFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DossierAdmissionFichierUploadDtoFromJSON(json: any): DossierAdmissionFichierUploadDto {\n return DossierAdmissionFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function DossierAdmissionFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DossierAdmissionFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'iddossierAdmissionFichier': !exists(json, 'iddossierAdmissionFichier') ? undefined : json['iddossierAdmissionFichier'],\n 'iddossierAdmission': !exists(json, 'iddossierAdmission') ? undefined : json['iddossierAdmission'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function DossierAdmissionFichierUploadDtoToJSON(value?: DossierAdmissionFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'iddossierAdmissionFichier': value.iddossierAdmissionFichier,\n 'iddossierAdmission': value.iddossierAdmission,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FormateurDoublonAdministratifDto\n */\nexport interface FormateurDoublonAdministratifDto {\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonAdministratifDto\n */\n idcivilite?: number | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonAdministratifDto\n */\n civilite?: string | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonAdministratifDto\n */\n precompte?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonAdministratifDto\n */\n enfantCharge?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FormateurDoublonAdministratifDto\n */\n conjointCharge?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonAdministratifDto\n */\n autreCharge?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonAdministratifDto\n */\n enfantHandicape?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonAdministratifDto\n */\n autreHandicape?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FormateurDoublonAdministratifDto\n */\n handicape?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonAdministratifDto\n */\n ancienMatricule?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FormateurDoublonAdministratifDto\n */\n datePremierContrat?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FormateurDoublonAdministratifDto\n */\n jure?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FormateurDoublonAdministratifDto interface.\n */\nexport function instanceOfFormateurDoublonAdministratifDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurDoublonAdministratifDtoFromJSON(json: any): FormateurDoublonAdministratifDto {\n return FormateurDoublonAdministratifDtoFromJSONTyped(json, false);\n}\n\nexport function FormateurDoublonAdministratifDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurDoublonAdministratifDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcivilite': !exists(json, 'idcivilite') ? undefined : json['idcivilite'],\n 'civilite': !exists(json, 'civilite') ? undefined : json['civilite'],\n 'precompte': !exists(json, 'precompte') ? undefined : json['precompte'],\n 'enfantCharge': !exists(json, 'enfantCharge') ? undefined : json['enfantCharge'],\n 'conjointCharge': !exists(json, 'conjointCharge') ? undefined : json['conjointCharge'],\n 'autreCharge': !exists(json, 'autreCharge') ? undefined : json['autreCharge'],\n 'enfantHandicape': !exists(json, 'enfantHandicape') ? undefined : json['enfantHandicape'],\n 'autreHandicape': !exists(json, 'autreHandicape') ? undefined : json['autreHandicape'],\n 'handicape': !exists(json, 'handicape') ? undefined : json['handicape'],\n 'ancienMatricule': !exists(json, 'ancienMatricule') ? undefined : json['ancienMatricule'],\n 'datePremierContrat': !exists(json, 'datePremierContrat') ? undefined : (json['datePremierContrat'] === null ? null : new Date(json['datePremierContrat'])),\n 'jure': !exists(json, 'jure') ? undefined : json['jure'],\n };\n}\n\nexport function FormateurDoublonAdministratifDtoToJSON(value?: FormateurDoublonAdministratifDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcivilite': value.idcivilite,\n 'civilite': value.civilite,\n 'precompte': value.precompte,\n 'enfantCharge': value.enfantCharge,\n 'conjointCharge': value.conjointCharge,\n 'autreCharge': value.autreCharge,\n 'enfantHandicape': value.enfantHandicape,\n 'autreHandicape': value.autreHandicape,\n 'handicape': value.handicape,\n 'ancienMatricule': value.ancienMatricule,\n 'datePremierContrat': value.datePremierContrat === undefined ? undefined : (value.datePremierContrat === null ? null : value.datePremierContrat.toISOString()),\n 'jure': value.jure,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface FcbFormateurDiplomeDto\n */\nexport interface FcbFormateurDiplomeDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDiplomeDto\n */\n iddiplome?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDiplomeDto\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDiplomeDto\n */\n type?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDiplomeDto\n */\n libelle?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDiplomeDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDiplomeDto\n */\n url?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDiplomeDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof FcbFormateurDiplomeDto\n */\n fichier?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDiplomeDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDiplomeDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDiplomeDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDiplomeDto\n */\n modificationDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDiplomeDto interface.\n */\nexport function instanceOfFcbFormateurDiplomeDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDiplomeDtoFromJSON(json: any): FcbFormateurDiplomeDto {\n return FcbFormateurDiplomeDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDiplomeDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDiplomeDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplome': !exists(json, 'iddiplome') ? undefined : json['iddiplome'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'url': !exists(json, 'url') ? undefined : json['url'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fichier': !exists(json, 'fichier') ? undefined : FileUploadDtoFromJSON(json['fichier']),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n };\n}\n\nexport function FcbFormateurDiplomeDtoToJSON(value?: FcbFormateurDiplomeDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplome': value.iddiplome,\n 'idformateur': value.idformateur,\n 'type': value.type,\n 'libelle': value.libelle,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'url': value.url,\n 'idfichier': value.idfichier,\n 'fichier': FileUploadDtoToJSON(value.fichier),\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface FcbFormateurProfessionDto\n */\nexport interface FcbFormateurProfessionDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurProfessionDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurProfessionDto\n */\n idprofession?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurProfessionDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurProfessionDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurProfessionDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof FcbFormateurProfessionDto\n */\n fichier?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the FcbFormateurProfessionDto interface.\n */\nexport function instanceOfFcbFormateurProfessionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurProfessionDtoFromJSON(json: any): FcbFormateurProfessionDto {\n return FcbFormateurProfessionDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurProfessionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurProfessionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idprofession': !exists(json, 'idprofession') ? undefined : json['idprofession'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fichier': !exists(json, 'fichier') ? undefined : FileUploadDtoFromJSON(json['fichier']),\n };\n}\n\nexport function FcbFormateurProfessionDtoToJSON(value?: FcbFormateurProfessionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'idprofession': value.idprofession,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'libelle': value.libelle,\n 'idfichier': value.idfichier,\n 'fichier': FileUploadDtoToJSON(value.fichier),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface FcbFormateurTitreDto\n */\nexport interface FcbFormateurTitreDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreDto\n */\n idtitreFormateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreDto\n */\n idtitre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurTitreDto\n */\n libelle?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurTitreDto\n */\n date?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurTitreDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurTitreDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof FcbFormateurTitreDto\n */\n fichier?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the FcbFormateurTitreDto interface.\n */\nexport function instanceOfFcbFormateurTitreDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurTitreDtoFromJSON(json: any): FcbFormateurTitreDto {\n return FcbFormateurTitreDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurTitreDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurTitreDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtitreFormateur': !exists(json, 'idtitreFormateur') ? undefined : json['idtitreFormateur'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idtitre': !exists(json, 'idtitre') ? undefined : json['idtitre'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fichier': !exists(json, 'fichier') ? undefined : FileUploadDtoFromJSON(json['fichier']),\n };\n}\n\nexport function FcbFormateurTitreDtoToJSON(value?: FcbFormateurTitreDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtitreFormateur': value.idtitreFormateur,\n 'idformateur': value.idformateur,\n 'idtitre': value.idtitre,\n 'libelle': value.libelle,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idfichier': value.idfichier,\n 'fichier': FileUploadDtoToJSON(value.fichier),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { FcbFormateurDiplomeDto } from './FcbFormateurDiplomeDto';\nimport {\n FcbFormateurDiplomeDtoFromJSON,\n FcbFormateurDiplomeDtoFromJSONTyped,\n FcbFormateurDiplomeDtoToJSON,\n} from './FcbFormateurDiplomeDto';\nimport type { FcbFormateurProfessionDto } from './FcbFormateurProfessionDto';\nimport {\n FcbFormateurProfessionDtoFromJSON,\n FcbFormateurProfessionDtoFromJSONTyped,\n FcbFormateurProfessionDtoToJSON,\n} from './FcbFormateurProfessionDto';\nimport type { FcbFormateurTitreDto } from './FcbFormateurTitreDto';\nimport {\n FcbFormateurTitreDtoFromJSON,\n FcbFormateurTitreDtoFromJSONTyped,\n FcbFormateurTitreDtoToJSON,\n} from './FcbFormateurTitreDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface FormateurDoublonProfessionnelDto\n */\nexport interface FormateurDoublonProfessionnelDto {\n /**\n * \n * @type {TelephoneDto}\n * @memberof FormateurDoublonProfessionnelDto\n */\n telephoneProfFormateur?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FormateurDoublonProfessionnelDto\n */\n gsmProfFormateur?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof FormateurDoublonProfessionnelDto\n */\n emailProfFormateur?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonProfessionnelDto\n */\n activite?: string | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonProfessionnelDto\n */\n identreprise?: number | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonProfessionnelDto\n */\n entreprise?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurDoublonProfessionnelDto\n */\n professions?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurDoublonProfessionnelDto\n */\n titres?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurDoublonProfessionnelDto\n */\n diplomes?: Array | null;\n}\n\n/**\n * Check if a given object implements the FormateurDoublonProfessionnelDto interface.\n */\nexport function instanceOfFormateurDoublonProfessionnelDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurDoublonProfessionnelDtoFromJSON(json: any): FormateurDoublonProfessionnelDto {\n return FormateurDoublonProfessionnelDtoFromJSONTyped(json, false);\n}\n\nexport function FormateurDoublonProfessionnelDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurDoublonProfessionnelDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'telephoneProfFormateur': !exists(json, 'telephoneProfFormateur') ? undefined : TelephoneDtoFromJSON(json['telephoneProfFormateur']),\n 'gsmProfFormateur': !exists(json, 'gsmProfFormateur') ? undefined : TelephoneDtoFromJSON(json['gsmProfFormateur']),\n 'emailProfFormateur': !exists(json, 'emailProfFormateur') ? undefined : EmailDtoFromJSON(json['emailProfFormateur']),\n 'activite': !exists(json, 'activite') ? undefined : json['activite'],\n 'identreprise': !exists(json, 'identreprise') ? undefined : json['identreprise'],\n 'entreprise': !exists(json, 'entreprise') ? undefined : json['entreprise'],\n 'professions': !exists(json, 'professions') ? undefined : (json['professions'] === null ? null : (json['professions'] as Array).map(FcbFormateurProfessionDtoFromJSON)),\n 'titres': !exists(json, 'titres') ? undefined : (json['titres'] === null ? null : (json['titres'] as Array).map(FcbFormateurTitreDtoFromJSON)),\n 'diplomes': !exists(json, 'diplomes') ? undefined : (json['diplomes'] === null ? null : (json['diplomes'] as Array).map(FcbFormateurDiplomeDtoFromJSON)),\n };\n}\n\nexport function FormateurDoublonProfessionnelDtoToJSON(value?: FormateurDoublonProfessionnelDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'telephoneProfFormateur': TelephoneDtoToJSON(value.telephoneProfFormateur),\n 'gsmProfFormateur': TelephoneDtoToJSON(value.gsmProfFormateur),\n 'emailProfFormateur': EmailDtoToJSON(value.emailProfFormateur),\n 'activite': value.activite,\n 'identreprise': value.identreprise,\n 'entreprise': value.entreprise,\n 'professions': value.professions === undefined ? undefined : (value.professions === null ? null : (value.professions as Array).map(FcbFormateurProfessionDtoToJSON)),\n 'titres': value.titres === undefined ? undefined : (value.titres === null ? null : (value.titres as Array).map(FcbFormateurTitreDtoToJSON)),\n 'diplomes': value.diplomes === undefined ? undefined : (value.diplomes === null ? null : (value.diplomes as Array).map(FcbFormateurDiplomeDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { FormateurDoublonAdministratifDto } from './FormateurDoublonAdministratifDto';\nimport {\n FormateurDoublonAdministratifDtoFromJSON,\n FormateurDoublonAdministratifDtoFromJSONTyped,\n FormateurDoublonAdministratifDtoToJSON,\n} from './FormateurDoublonAdministratifDto';\nimport type { FormateurDoublonProfessionnelDto } from './FormateurDoublonProfessionnelDto';\nimport {\n FormateurDoublonProfessionnelDtoFromJSON,\n FormateurDoublonProfessionnelDtoFromJSONTyped,\n FormateurDoublonProfessionnelDtoToJSON,\n} from './FormateurDoublonProfessionnelDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface FormateurDoublonEditDto\n */\nexport interface FormateurDoublonEditDto {\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonEditDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonEditDto\n */\n nbLocalisations?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonEditDto\n */\n nbAgrements?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonEditDto\n */\n nbSuivis?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonEditDto\n */\n nbRemplacements?: number;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonEditDto\n */\n azureEmail?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FormateurDoublonEditDto\n */\n azureCreatedOn?: Date | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FormateurDoublonEditDto\n */\n telephoneFormateur?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FormateurDoublonEditDto\n */\n gsmFormateur?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof FormateurDoublonEditDto\n */\n emailFormateur?: EmailDto;\n /**\n * \n * @type {FormateurDoublonAdministratifDto}\n * @memberof FormateurDoublonEditDto\n */\n donneesAdministratives?: FormateurDoublonAdministratifDto;\n /**\n * \n * @type {FormateurDoublonProfessionnelDto}\n * @memberof FormateurDoublonEditDto\n */\n donneesProfessionnelles?: FormateurDoublonProfessionnelDto;\n}\n\n/**\n * Check if a given object implements the FormateurDoublonEditDto interface.\n */\nexport function instanceOfFormateurDoublonEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurDoublonEditDtoFromJSON(json: any): FormateurDoublonEditDto {\n return FormateurDoublonEditDtoFromJSONTyped(json, false);\n}\n\nexport function FormateurDoublonEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurDoublonEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'nbLocalisations': !exists(json, 'nbLocalisations') ? undefined : json['nbLocalisations'],\n 'nbAgrements': !exists(json, 'nbAgrements') ? undefined : json['nbAgrements'],\n 'nbSuivis': !exists(json, 'nbSuivis') ? undefined : json['nbSuivis'],\n 'nbRemplacements': !exists(json, 'nbRemplacements') ? undefined : json['nbRemplacements'],\n 'azureEmail': !exists(json, 'azureEmail') ? undefined : json['azureEmail'],\n 'azureCreatedOn': !exists(json, 'azureCreatedOn') ? undefined : (json['azureCreatedOn'] === null ? null : new Date(json['azureCreatedOn'])),\n 'telephoneFormateur': !exists(json, 'telephoneFormateur') ? undefined : TelephoneDtoFromJSON(json['telephoneFormateur']),\n 'gsmFormateur': !exists(json, 'gsmFormateur') ? undefined : TelephoneDtoFromJSON(json['gsmFormateur']),\n 'emailFormateur': !exists(json, 'emailFormateur') ? undefined : EmailDtoFromJSON(json['emailFormateur']),\n 'donneesAdministratives': !exists(json, 'donneesAdministratives') ? undefined : FormateurDoublonAdministratifDtoFromJSON(json['donneesAdministratives']),\n 'donneesProfessionnelles': !exists(json, 'donneesProfessionnelles') ? undefined : FormateurDoublonProfessionnelDtoFromJSON(json['donneesProfessionnelles']),\n };\n}\n\nexport function FormateurDoublonEditDtoToJSON(value?: FormateurDoublonEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'nbLocalisations': value.nbLocalisations,\n 'nbAgrements': value.nbAgrements,\n 'nbSuivis': value.nbSuivis,\n 'nbRemplacements': value.nbRemplacements,\n 'azureEmail': value.azureEmail,\n 'azureCreatedOn': value.azureCreatedOn === undefined ? undefined : (value.azureCreatedOn === null ? null : value.azureCreatedOn.toISOString()),\n 'telephoneFormateur': TelephoneDtoToJSON(value.telephoneFormateur),\n 'gsmFormateur': TelephoneDtoToJSON(value.gsmFormateur),\n 'emailFormateur': EmailDtoToJSON(value.emailFormateur),\n 'donneesAdministratives': FormateurDoublonAdministratifDtoToJSON(value.donneesAdministratives),\n 'donneesProfessionnelles': FormateurDoublonProfessionnelDtoToJSON(value.donneesProfessionnelles),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface PersonneDoublonEditDto\n */\nexport interface PersonneDoublonEditDto {\n /**\n * \n * @type {number}\n * @memberof PersonneDoublonEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n prenom2?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n sexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n paysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof PersonneDoublonEditDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneDoublonEditDto\n */\n photo?: string | null;\n /**\n * \n * @type {number}\n * @memberof PersonneDoublonEditDto\n */\n idfichierPhoto?: number | null;\n /**\n * \n * @type {Date}\n * @memberof PersonneDoublonEditDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneDoublonEditDto\n */\n remarques?: Array | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof PersonneDoublonEditDto\n */\n adresseDomicile?: AdresseDto;\n /**\n * \n * @type {AdresseDto}\n * @memberof PersonneDoublonEditDto\n */\n adresseCourrier?: AdresseDto;\n /**\n * \n * @type {AdresseDto}\n * @memberof PersonneDoublonEditDto\n */\n adresseAutre?: AdresseDto;\n /**\n * \n * @type {Array}\n * @memberof PersonneDoublonEditDto\n */\n comptesBancaires?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneDoublonEditDto\n */\n telephones?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneDoublonEditDto\n */\n emails?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PersonneDoublonEditDto\n */\n nbAcquis?: number;\n}\n\n/**\n * Check if a given object implements the PersonneDoublonEditDto interface.\n */\nexport function instanceOfPersonneDoublonEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PersonneDoublonEditDtoFromJSON(json: any): PersonneDoublonEditDto {\n return PersonneDoublonEditDtoFromJSONTyped(json, false);\n}\n\nexport function PersonneDoublonEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonneDoublonEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'prenom2': !exists(json, 'prenom2') ? undefined : json['prenom2'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'sexe': !exists(json, 'sexe') ? undefined : json['sexe'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'paysNaissance': !exists(json, 'paysNaissance') ? undefined : json['paysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'photo': !exists(json, 'photo') ? undefined : json['photo'],\n 'idfichierPhoto': !exists(json, 'idfichierPhoto') ? undefined : json['idfichierPhoto'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'remarques': !exists(json, 'remarques') ? undefined : json['remarques'],\n 'adresseDomicile': !exists(json, 'adresseDomicile') ? undefined : AdresseDtoFromJSON(json['adresseDomicile']),\n 'adresseCourrier': !exists(json, 'adresseCourrier') ? undefined : AdresseDtoFromJSON(json['adresseCourrier']),\n 'adresseAutre': !exists(json, 'adresseAutre') ? undefined : AdresseDtoFromJSON(json['adresseAutre']),\n 'comptesBancaires': !exists(json, 'comptesBancaires') ? undefined : (json['comptesBancaires'] === null ? null : (json['comptesBancaires'] as Array).map(CompteBancaireDtoFromJSON)),\n 'telephones': !exists(json, 'telephones') ? undefined : (json['telephones'] === null ? null : (json['telephones'] as Array).map(TelephoneDtoFromJSON)),\n 'emails': !exists(json, 'emails') ? undefined : (json['emails'] === null ? null : (json['emails'] as Array).map(EmailDtoFromJSON)),\n 'nbAcquis': !exists(json, 'nbAcquis') ? undefined : json['nbAcquis'],\n };\n}\n\nexport function PersonneDoublonEditDtoToJSON(value?: PersonneDoublonEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'prenom2': value.prenom2,\n 'codesexe': value.codesexe,\n 'sexe': value.sexe,\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'paysNaissance': value.paysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'photo': value.photo,\n 'idfichierPhoto': value.idfichierPhoto,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'remarques': value.remarques,\n 'adresseDomicile': AdresseDtoToJSON(value.adresseDomicile),\n 'adresseCourrier': AdresseDtoToJSON(value.adresseCourrier),\n 'adresseAutre': AdresseDtoToJSON(value.adresseAutre),\n 'comptesBancaires': value.comptesBancaires === undefined ? undefined : (value.comptesBancaires === null ? null : (value.comptesBancaires as Array).map(CompteBancaireDtoToJSON)),\n 'telephones': value.telephones === undefined ? undefined : (value.telephones === null ? null : (value.telephones as Array).map(TelephoneDtoToJSON)),\n 'emails': value.emails === undefined ? undefined : (value.emails === null ? null : (value.emails as Array).map(EmailDtoToJSON)),\n 'nbAcquis': value.nbAcquis,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface RepresentantDoublonEditDto\n */\nexport interface RepresentantDoublonEditDto {\n /**\n * \n * @type {number}\n * @memberof RepresentantDoublonEditDto\n */\n idrepresentant?: number;\n /**\n * \n * @type {TelephoneDto}\n * @memberof RepresentantDoublonEditDto\n */\n telephoneRepresentant?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof RepresentantDoublonEditDto\n */\n telephoneProRepresentant?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof RepresentantDoublonEditDto\n */\n gsmRepresentant?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof RepresentantDoublonEditDto\n */\n emailRepresentant?: EmailDto;\n}\n\n/**\n * Check if a given object implements the RepresentantDoublonEditDto interface.\n */\nexport function instanceOfRepresentantDoublonEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RepresentantDoublonEditDtoFromJSON(json: any): RepresentantDoublonEditDto {\n return RepresentantDoublonEditDtoFromJSONTyped(json, false);\n}\n\nexport function RepresentantDoublonEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RepresentantDoublonEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'telephoneRepresentant': !exists(json, 'telephoneRepresentant') ? undefined : TelephoneDtoFromJSON(json['telephoneRepresentant']),\n 'telephoneProRepresentant': !exists(json, 'telephoneProRepresentant') ? undefined : TelephoneDtoFromJSON(json['telephoneProRepresentant']),\n 'gsmRepresentant': !exists(json, 'gsmRepresentant') ? undefined : TelephoneDtoFromJSON(json['gsmRepresentant']),\n 'emailRepresentant': !exists(json, 'emailRepresentant') ? undefined : EmailDtoFromJSON(json['emailRepresentant']),\n };\n}\n\nexport function RepresentantDoublonEditDtoToJSON(value?: RepresentantDoublonEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrepresentant': value.idrepresentant,\n 'telephoneRepresentant': TelephoneDtoToJSON(value.telephoneRepresentant),\n 'telephoneProRepresentant': TelephoneDtoToJSON(value.telephoneProRepresentant),\n 'gsmRepresentant': TelephoneDtoToJSON(value.gsmRepresentant),\n 'emailRepresentant': EmailDtoToJSON(value.emailRepresentant),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ReferentialItemDto\n */\nexport interface ReferentialItemDto {\n /**\n * \n * @type {string}\n * @memberof ReferentialItemDto\n */\n keyValue?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ReferentialItemDto\n */\n disabled?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof ReferentialItemDto\n */\n idValue?: string | null;\n /**\n * \n * @type {string}\n * @memberof ReferentialItemDto\n */\n displayValue?: string | null;\n}\n\n/**\n * Check if a given object implements the ReferentialItemDto interface.\n */\nexport function instanceOfReferentialItemDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ReferentialItemDtoFromJSON(json: any): ReferentialItemDto {\n return ReferentialItemDtoFromJSONTyped(json, false);\n}\n\nexport function ReferentialItemDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReferentialItemDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'keyValue': !exists(json, 'keyValue') ? undefined : json['keyValue'],\n 'disabled': !exists(json, 'disabled') ? undefined : json['disabled'],\n 'idValue': !exists(json, 'idValue') ? undefined : json['idValue'],\n 'displayValue': !exists(json, 'displayValue') ? undefined : json['displayValue'],\n };\n}\n\nexport function ReferentialItemDtoToJSON(value?: ReferentialItemDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'keyValue': value.keyValue,\n 'disabled': value.disabled,\n 'idValue': value.idValue,\n 'displayValue': value.displayValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TuteurDoublonLieuFormationDto\n */\nexport interface TuteurDoublonLieuFormationDto {\n /**\n * \n * @type {number}\n * @memberof TuteurDoublonLieuFormationDto\n */\n idtuteurLieu?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurDoublonLieuFormationDto\n */\n idtuteur?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurDoublonLieuFormationDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof TuteurDoublonLieuFormationDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurDoublonLieuFormationDto\n */\n enseigne?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurDoublonLieuFormationDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof TuteurDoublonLieuFormationDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurDoublonLieuFormationDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurDoublonLieuFormationDto\n */\n contactPrincipal?: boolean;\n /**\n * \n * @type {number}\n * @memberof TuteurDoublonLieuFormationDto\n */\n capaciteFormative?: number | null;\n}\n\n/**\n * Check if a given object implements the TuteurDoublonLieuFormationDto interface.\n */\nexport function instanceOfTuteurDoublonLieuFormationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurDoublonLieuFormationDtoFromJSON(json: any): TuteurDoublonLieuFormationDto {\n return TuteurDoublonLieuFormationDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurDoublonLieuFormationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurDoublonLieuFormationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteurLieu': !exists(json, 'idtuteurLieu') ? undefined : json['idtuteurLieu'],\n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'enseigne': !exists(json, 'enseigne') ? undefined : json['enseigne'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'contactPrincipal': !exists(json, 'contactPrincipal') ? undefined : json['contactPrincipal'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n };\n}\n\nexport function TuteurDoublonLieuFormationDtoToJSON(value?: TuteurDoublonLieuFormationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteurLieu': value.idtuteurLieu,\n 'idtuteur': value.idtuteur,\n 'idlieuFormation': value.idlieuFormation,\n 'nom': value.nom,\n 'enseigne': value.enseigne,\n 'actif': value.actif,\n 'fonction': value.fonction,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'contactPrincipal': value.contactPrincipal,\n 'capaciteFormative': value.capaciteFormative,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ReferentialItemDto } from './ReferentialItemDto';\nimport {\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoFromJSONTyped,\n ReferentialItemDtoToJSON,\n} from './ReferentialItemDto';\nimport type { TuteurDoublonLieuFormationDto } from './TuteurDoublonLieuFormationDto';\nimport {\n TuteurDoublonLieuFormationDtoFromJSON,\n TuteurDoublonLieuFormationDtoFromJSONTyped,\n TuteurDoublonLieuFormationDtoToJSON,\n} from './TuteurDoublonLieuFormationDto';\n\n/**\n * \n * @export\n * @interface TuteurDoublonEditDto\n */\nexport interface TuteurDoublonEditDto {\n /**\n * \n * @type {number}\n * @memberof TuteurDoublonEditDto\n */\n idtuteur?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurDoublonEditDto\n */\n nbContrats?: number;\n /**\n * \n * @type {Array}\n * @memberof TuteurDoublonEditDto\n */\n idsmetier?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurDoublonEditDto\n */\n lieuxFormation?: Array | null;\n}\n\n/**\n * Check if a given object implements the TuteurDoublonEditDto interface.\n */\nexport function instanceOfTuteurDoublonEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurDoublonEditDtoFromJSON(json: any): TuteurDoublonEditDto {\n return TuteurDoublonEditDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurDoublonEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurDoublonEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'nbContrats': !exists(json, 'nbContrats') ? undefined : json['nbContrats'],\n 'idsmetier': !exists(json, 'idsmetier') ? undefined : (json['idsmetier'] === null ? null : (json['idsmetier'] as Array).map(ReferentialItemDtoFromJSON)),\n 'lieuxFormation': !exists(json, 'lieuxFormation') ? undefined : (json['lieuxFormation'] === null ? null : (json['lieuxFormation'] as Array).map(TuteurDoublonLieuFormationDtoFromJSON)),\n };\n}\n\nexport function TuteurDoublonEditDtoToJSON(value?: TuteurDoublonEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteur': value.idtuteur,\n 'nbContrats': value.nbContrats,\n 'idsmetier': value.idsmetier === undefined ? undefined : (value.idsmetier === null ? null : (value.idsmetier as Array).map(ReferentialItemDtoToJSON)),\n 'lieuxFormation': value.lieuxFormation === undefined ? undefined : (value.lieuxFormation === null ? null : (value.lieuxFormation as Array).map(TuteurDoublonLieuFormationDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ApprenantDoublonEditDto } from './ApprenantDoublonEditDto';\nimport {\n ApprenantDoublonEditDtoFromJSON,\n ApprenantDoublonEditDtoFromJSONTyped,\n ApprenantDoublonEditDtoToJSON,\n} from './ApprenantDoublonEditDto';\nimport type { ChefEntrepriseDoublonEditDto } from './ChefEntrepriseDoublonEditDto';\nimport {\n ChefEntrepriseDoublonEditDtoFromJSON,\n ChefEntrepriseDoublonEditDtoFromJSONTyped,\n ChefEntrepriseDoublonEditDtoToJSON,\n} from './ChefEntrepriseDoublonEditDto';\nimport type { ContactDoublonEditDto } from './ContactDoublonEditDto';\nimport {\n ContactDoublonEditDtoFromJSON,\n ContactDoublonEditDtoFromJSONTyped,\n ContactDoublonEditDtoToJSON,\n} from './ContactDoublonEditDto';\nimport type { FormateurDoublonEditDto } from './FormateurDoublonEditDto';\nimport {\n FormateurDoublonEditDtoFromJSON,\n FormateurDoublonEditDtoFromJSONTyped,\n FormateurDoublonEditDtoToJSON,\n} from './FormateurDoublonEditDto';\nimport type { PersonneDoublonEditDto } from './PersonneDoublonEditDto';\nimport {\n PersonneDoublonEditDtoFromJSON,\n PersonneDoublonEditDtoFromJSONTyped,\n PersonneDoublonEditDtoToJSON,\n} from './PersonneDoublonEditDto';\nimport type { RepresentantDoublonEditDto } from './RepresentantDoublonEditDto';\nimport {\n RepresentantDoublonEditDtoFromJSON,\n RepresentantDoublonEditDtoFromJSONTyped,\n RepresentantDoublonEditDtoToJSON,\n} from './RepresentantDoublonEditDto';\nimport type { TuteurDoublonEditDto } from './TuteurDoublonEditDto';\nimport {\n TuteurDoublonEditDtoFromJSON,\n TuteurDoublonEditDtoFromJSONTyped,\n TuteurDoublonEditDtoToJSON,\n} from './TuteurDoublonEditDto';\n\n/**\n * \n * @export\n * @interface DoublonEditDto\n */\nexport interface DoublonEditDto {\n /**\n * \n * @type {Array}\n * @memberof DoublonEditDto\n */\n personnes?: Array | null;\n /**\n * \n * @type {PersonneDoublonEditDto}\n * @memberof DoublonEditDto\n */\n personneFinal?: PersonneDoublonEditDto;\n /**\n * \n * @type {Array}\n * @memberof DoublonEditDto\n */\n apprenants?: Array | null;\n /**\n * \n * @type {ApprenantDoublonEditDto}\n * @memberof DoublonEditDto\n */\n apprenantFinal?: ApprenantDoublonEditDto;\n /**\n * \n * @type {Array}\n * @memberof DoublonEditDto\n */\n chefEntreprises?: Array | null;\n /**\n * \n * @type {ChefEntrepriseDoublonEditDto}\n * @memberof DoublonEditDto\n */\n chefEntrepriseFinal?: ChefEntrepriseDoublonEditDto;\n /**\n * \n * @type {Array}\n * @memberof DoublonEditDto\n */\n contacts?: Array | null;\n /**\n * \n * @type {ContactDoublonEditDto}\n * @memberof DoublonEditDto\n */\n contactFinal?: ContactDoublonEditDto;\n /**\n * \n * @type {Array}\n * @memberof DoublonEditDto\n */\n formateurs?: Array | null;\n /**\n * \n * @type {FormateurDoublonEditDto}\n * @memberof DoublonEditDto\n */\n formateurFinal?: FormateurDoublonEditDto;\n /**\n * \n * @type {Array}\n * @memberof DoublonEditDto\n */\n representants?: Array | null;\n /**\n * \n * @type {RepresentantDoublonEditDto}\n * @memberof DoublonEditDto\n */\n representantFinal?: RepresentantDoublonEditDto;\n /**\n * \n * @type {Array}\n * @memberof DoublonEditDto\n */\n tuteurs?: Array | null;\n /**\n * \n * @type {TuteurDoublonEditDto}\n * @memberof DoublonEditDto\n */\n tuteurFinal?: TuteurDoublonEditDto;\n}\n\n/**\n * Check if a given object implements the DoublonEditDto interface.\n */\nexport function instanceOfDoublonEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DoublonEditDtoFromJSON(json: any): DoublonEditDto {\n return DoublonEditDtoFromJSONTyped(json, false);\n}\n\nexport function DoublonEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DoublonEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'personnes': !exists(json, 'personnes') ? undefined : (json['personnes'] === null ? null : (json['personnes'] as Array).map(PersonneDoublonEditDtoFromJSON)),\n 'personneFinal': !exists(json, 'personneFinal') ? undefined : PersonneDoublonEditDtoFromJSON(json['personneFinal']),\n 'apprenants': !exists(json, 'apprenants') ? undefined : (json['apprenants'] === null ? null : (json['apprenants'] as Array).map(ApprenantDoublonEditDtoFromJSON)),\n 'apprenantFinal': !exists(json, 'apprenantFinal') ? undefined : ApprenantDoublonEditDtoFromJSON(json['apprenantFinal']),\n 'chefEntreprises': !exists(json, 'chefEntreprises') ? undefined : (json['chefEntreprises'] === null ? null : (json['chefEntreprises'] as Array).map(ChefEntrepriseDoublonEditDtoFromJSON)),\n 'chefEntrepriseFinal': !exists(json, 'chefEntrepriseFinal') ? undefined : ChefEntrepriseDoublonEditDtoFromJSON(json['chefEntrepriseFinal']),\n 'contacts': !exists(json, 'contacts') ? undefined : (json['contacts'] === null ? null : (json['contacts'] as Array).map(ContactDoublonEditDtoFromJSON)),\n 'contactFinal': !exists(json, 'contactFinal') ? undefined : ContactDoublonEditDtoFromJSON(json['contactFinal']),\n 'formateurs': !exists(json, 'formateurs') ? undefined : (json['formateurs'] === null ? null : (json['formateurs'] as Array).map(FormateurDoublonEditDtoFromJSON)),\n 'formateurFinal': !exists(json, 'formateurFinal') ? undefined : FormateurDoublonEditDtoFromJSON(json['formateurFinal']),\n 'representants': !exists(json, 'representants') ? undefined : (json['representants'] === null ? null : (json['representants'] as Array).map(RepresentantDoublonEditDtoFromJSON)),\n 'representantFinal': !exists(json, 'representantFinal') ? undefined : RepresentantDoublonEditDtoFromJSON(json['representantFinal']),\n 'tuteurs': !exists(json, 'tuteurs') ? undefined : (json['tuteurs'] === null ? null : (json['tuteurs'] as Array).map(TuteurDoublonEditDtoFromJSON)),\n 'tuteurFinal': !exists(json, 'tuteurFinal') ? undefined : TuteurDoublonEditDtoFromJSON(json['tuteurFinal']),\n };\n}\n\nexport function DoublonEditDtoToJSON(value?: DoublonEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'personnes': value.personnes === undefined ? undefined : (value.personnes === null ? null : (value.personnes as Array).map(PersonneDoublonEditDtoToJSON)),\n 'personneFinal': PersonneDoublonEditDtoToJSON(value.personneFinal),\n 'apprenants': value.apprenants === undefined ? undefined : (value.apprenants === null ? null : (value.apprenants as Array).map(ApprenantDoublonEditDtoToJSON)),\n 'apprenantFinal': ApprenantDoublonEditDtoToJSON(value.apprenantFinal),\n 'chefEntreprises': value.chefEntreprises === undefined ? undefined : (value.chefEntreprises === null ? null : (value.chefEntreprises as Array).map(ChefEntrepriseDoublonEditDtoToJSON)),\n 'chefEntrepriseFinal': ChefEntrepriseDoublonEditDtoToJSON(value.chefEntrepriseFinal),\n 'contacts': value.contacts === undefined ? undefined : (value.contacts === null ? null : (value.contacts as Array).map(ContactDoublonEditDtoToJSON)),\n 'contactFinal': ContactDoublonEditDtoToJSON(value.contactFinal),\n 'formateurs': value.formateurs === undefined ? undefined : (value.formateurs === null ? null : (value.formateurs as Array).map(FormateurDoublonEditDtoToJSON)),\n 'formateurFinal': FormateurDoublonEditDtoToJSON(value.formateurFinal),\n 'representants': value.representants === undefined ? undefined : (value.representants === null ? null : (value.representants as Array).map(RepresentantDoublonEditDtoToJSON)),\n 'representantFinal': RepresentantDoublonEditDtoToJSON(value.representantFinal),\n 'tuteurs': value.tuteurs === undefined ? undefined : (value.tuteurs === null ? null : (value.tuteurs as Array).map(TuteurDoublonEditDtoToJSON)),\n 'tuteurFinal': TuteurDoublonEditDtoToJSON(value.tuteurFinal),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DoublonsGridDto\n */\nexport interface DoublonsGridDto {\n /**\n * \n * @type {number}\n * @memberof DoublonsGridDto\n */\n idpersonne1?: number | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsGridDto\n */\n idpersonne2?: number | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsGridDto\n */\n nom1?: string | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsGridDto\n */\n nom2?: string | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsGridDto\n */\n prenom1?: string | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsGridDto\n */\n prenom2?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DoublonsGridDto\n */\n dateNaissance1?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof DoublonsGridDto\n */\n dateNaissance2?: Date | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsGridDto\n */\n registreNational1?: string | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsGridDto\n */\n registreNational2?: string | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsGridDto\n */\n doublonApprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsGridDto\n */\n doublonRepresentant?: number | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsGridDto\n */\n doublonFormateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsGridDto\n */\n doublonChefEntreprise?: number | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsGridDto\n */\n doublonTuteur?: number | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsGridDto\n */\n doublonContact?: number | null;\n}\n\n/**\n * Check if a given object implements the DoublonsGridDto interface.\n */\nexport function instanceOfDoublonsGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DoublonsGridDtoFromJSON(json: any): DoublonsGridDto {\n return DoublonsGridDtoFromJSONTyped(json, false);\n}\n\nexport function DoublonsGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DoublonsGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne1': !exists(json, 'idpersonne1') ? undefined : json['idpersonne1'],\n 'idpersonne2': !exists(json, 'idpersonne2') ? undefined : json['idpersonne2'],\n 'nom1': !exists(json, 'nom1') ? undefined : json['nom1'],\n 'nom2': !exists(json, 'nom2') ? undefined : json['nom2'],\n 'prenom1': !exists(json, 'prenom1') ? undefined : json['prenom1'],\n 'prenom2': !exists(json, 'prenom2') ? undefined : json['prenom2'],\n 'dateNaissance1': !exists(json, 'dateNaissance1') ? undefined : (json['dateNaissance1'] === null ? null : new Date(json['dateNaissance1'])),\n 'dateNaissance2': !exists(json, 'dateNaissance2') ? undefined : (json['dateNaissance2'] === null ? null : new Date(json['dateNaissance2'])),\n 'registreNational1': !exists(json, 'registreNational1') ? undefined : json['registreNational1'],\n 'registreNational2': !exists(json, 'registreNational2') ? undefined : json['registreNational2'],\n 'doublonApprenant': !exists(json, 'doublonApprenant') ? undefined : json['doublonApprenant'],\n 'doublonRepresentant': !exists(json, 'doublonRepresentant') ? undefined : json['doublonRepresentant'],\n 'doublonFormateur': !exists(json, 'doublonFormateur') ? undefined : json['doublonFormateur'],\n 'doublonChefEntreprise': !exists(json, 'doublonChefEntreprise') ? undefined : json['doublonChefEntreprise'],\n 'doublonTuteur': !exists(json, 'doublonTuteur') ? undefined : json['doublonTuteur'],\n 'doublonContact': !exists(json, 'doublonContact') ? undefined : json['doublonContact'],\n };\n}\n\nexport function DoublonsGridDtoToJSON(value?: DoublonsGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne1': value.idpersonne1,\n 'idpersonne2': value.idpersonne2,\n 'nom1': value.nom1,\n 'nom2': value.nom2,\n 'prenom1': value.prenom1,\n 'prenom2': value.prenom2,\n 'dateNaissance1': value.dateNaissance1 === undefined ? undefined : (value.dateNaissance1 === null ? null : value.dateNaissance1.toISOString()),\n 'dateNaissance2': value.dateNaissance2 === undefined ? undefined : (value.dateNaissance2 === null ? null : value.dateNaissance2.toISOString()),\n 'registreNational1': value.registreNational1,\n 'registreNational2': value.registreNational2,\n 'doublonApprenant': value.doublonApprenant,\n 'doublonRepresentant': value.doublonRepresentant,\n 'doublonFormateur': value.doublonFormateur,\n 'doublonChefEntreprise': value.doublonChefEntreprise,\n 'doublonTuteur': value.doublonTuteur,\n 'doublonContact': value.doublonContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DoublonsGridDto } from './DoublonsGridDto';\nimport {\n DoublonsGridDtoFromJSON,\n DoublonsGridDtoFromJSONTyped,\n DoublonsGridDtoToJSON,\n} from './DoublonsGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface DoublonsGridDtoPaginatedResults\n */\nexport interface DoublonsGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof DoublonsGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof DoublonsGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DoublonsGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the DoublonsGridDtoPaginatedResults interface.\n */\nexport function instanceOfDoublonsGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DoublonsGridDtoPaginatedResultsFromJSON(json: any): DoublonsGridDtoPaginatedResults {\n return DoublonsGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function DoublonsGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): DoublonsGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(DoublonsGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function DoublonsGridDtoPaginatedResultsToJSON(value?: DoublonsGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(DoublonsGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DoublonsPersonneGridDto\n */\nexport interface DoublonsPersonneGridDto {\n /**\n * \n * @type {number}\n * @memberof DoublonsPersonneGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof DoublonsPersonneGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsPersonneGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof DoublonsPersonneGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsPersonneGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof DoublonsPersonneGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DoublonsPersonneGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DoublonsPersonneGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DoublonsPersonneGridDto\n */\n isUser?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DoublonsPersonneGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DoublonsPersonneGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DoublonsPersonneGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof DoublonsPersonneGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the DoublonsPersonneGridDto interface.\n */\nexport function instanceOfDoublonsPersonneGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DoublonsPersonneGridDtoFromJSON(json: any): DoublonsPersonneGridDto {\n return DoublonsPersonneGridDtoFromJSONTyped(json, false);\n}\n\nexport function DoublonsPersonneGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DoublonsPersonneGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isUser': !exists(json, 'isUser') ? undefined : json['isUser'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function DoublonsPersonneGridDtoToJSON(value?: DoublonsPersonneGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isUser': value.isUser,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isTuteur': value.isTuteur,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { DoublonsPersonneGridDto } from './DoublonsPersonneGridDto';\nimport {\n DoublonsPersonneGridDtoFromJSON,\n DoublonsPersonneGridDtoFromJSONTyped,\n DoublonsPersonneGridDtoToJSON,\n} from './DoublonsPersonneGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface DoublonsPersonneGridDtoPaginatedResults\n */\nexport interface DoublonsPersonneGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof DoublonsPersonneGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof DoublonsPersonneGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DoublonsPersonneGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the DoublonsPersonneGridDtoPaginatedResults interface.\n */\nexport function instanceOfDoublonsPersonneGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DoublonsPersonneGridDtoPaginatedResultsFromJSON(json: any): DoublonsPersonneGridDtoPaginatedResults {\n return DoublonsPersonneGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function DoublonsPersonneGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): DoublonsPersonneGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(DoublonsPersonneGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function DoublonsPersonneGridDtoPaginatedResultsToJSON(value?: DoublonsPersonneGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(DoublonsPersonneGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface DoublonsPersonneSearchDto\n */\nexport interface DoublonsPersonneSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DoublonsPersonneSearchDto\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DoublonsPersonneSearchDto\n */\n prenom?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof DoublonsPersonneSearchDto\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DoublonsPersonneSearchDto\n */\n registreNational?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof DoublonsPersonneSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DoublonsPersonneSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsPersonneSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsPersonneSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DoublonsPersonneSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsPersonneSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DoublonsPersonneSearchDto interface.\n */\nexport function instanceOfDoublonsPersonneSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DoublonsPersonneSearchDtoFromJSON(json: any): DoublonsPersonneSearchDto {\n return DoublonsPersonneSearchDtoFromJSONTyped(json, false);\n}\n\nexport function DoublonsPersonneSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DoublonsPersonneSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : UnaccentTextSearchFromJSON(json['prenom']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'registreNational': !exists(json, 'registreNational') ? undefined : TextSearchFromJSON(json['registreNational']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DoublonsPersonneSearchDtoToJSON(value?: DoublonsPersonneSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'prenom': UnaccentTextSearchToJSON(value.prenom),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'registreNational': TextSearchToJSON(value.registreNational),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface DoublonsSearchDto\n */\nexport interface DoublonsSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DoublonsSearchDto\n */\n nom1?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DoublonsSearchDto\n */\n nom2?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DoublonsSearchDto\n */\n prenom1?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof DoublonsSearchDto\n */\n prenom2?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof DoublonsSearchDto\n */\n dateNaissance1?: DateSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof DoublonsSearchDto\n */\n dateNaissance2?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DoublonsSearchDto\n */\n registreNational1?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof DoublonsSearchDto\n */\n registreNational2?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof DoublonsSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof DoublonsSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof DoublonsSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof DoublonsSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof DoublonsSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the DoublonsSearchDto interface.\n */\nexport function instanceOfDoublonsSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function DoublonsSearchDtoFromJSON(json: any): DoublonsSearchDto {\n return DoublonsSearchDtoFromJSONTyped(json, false);\n}\n\nexport function DoublonsSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DoublonsSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom1': !exists(json, 'nom1') ? undefined : UnaccentTextSearchFromJSON(json['nom1']),\n 'nom2': !exists(json, 'nom2') ? undefined : UnaccentTextSearchFromJSON(json['nom2']),\n 'prenom1': !exists(json, 'prenom1') ? undefined : UnaccentTextSearchFromJSON(json['prenom1']),\n 'prenom2': !exists(json, 'prenom2') ? undefined : UnaccentTextSearchFromJSON(json['prenom2']),\n 'dateNaissance1': !exists(json, 'dateNaissance1') ? undefined : DateSearchFromJSON(json['dateNaissance1']),\n 'dateNaissance2': !exists(json, 'dateNaissance2') ? undefined : DateSearchFromJSON(json['dateNaissance2']),\n 'registreNational1': !exists(json, 'registreNational1') ? undefined : TextSearchFromJSON(json['registreNational1']),\n 'registreNational2': !exists(json, 'registreNational2') ? undefined : TextSearchFromJSON(json['registreNational2']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function DoublonsSearchDtoToJSON(value?: DoublonsSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom1': UnaccentTextSearchToJSON(value.nom1),\n 'nom2': UnaccentTextSearchToJSON(value.nom2),\n 'prenom1': UnaccentTextSearchToJSON(value.prenom1),\n 'prenom2': UnaccentTextSearchToJSON(value.prenom2),\n 'dateNaissance1': DateSearchToJSON(value.dateNaissance1),\n 'dateNaissance2': DateSearchToJSON(value.dateNaissance2),\n 'registreNational1': TextSearchToJSON(value.registreNational1),\n 'registreNational2': TextSearchToJSON(value.registreNational2),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EContentHidingMode {\n NONE = 'NONE',\n CENTRES = 'CENTRES',\n SERVICES = 'SERVICES',\n ALL = 'ALL'\n}\n\n\nexport function EContentHidingModeFromJSON(json: any): EContentHidingMode {\n return EContentHidingModeFromJSONTyped(json, false);\n}\n\nexport function EContentHidingModeFromJSONTyped(json: any, ignoreDiscriminator: boolean): EContentHidingMode {\n return json as EContentHidingMode;\n}\n\nexport function EContentHidingModeToJSON(value?: EContentHidingMode | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ECriteriaType {\n Text = 'Text',\n List = 'List',\n Date = 'Date',\n Boolean = 'Boolean',\n Numeric = 'Numeric',\n Float = 'Float'\n}\n\n\nexport function ECriteriaTypeFromJSON(json: any): ECriteriaType {\n return ECriteriaTypeFromJSONTyped(json, false);\n}\n\nexport function ECriteriaTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ECriteriaType {\n return json as ECriteriaType;\n}\n\nexport function ECriteriaTypeToJSON(value?: ECriteriaType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EDashboard {\n Inscriptions = 'Inscriptions',\n Suivis = 'Suivis',\n SuivisSL = 'SuivisSL',\n Absence = 'Absence',\n DossiersPostFormation = 'DossiersPostFormation',\n DossiersSorties = 'DossiersSorties',\n DossiersFinAgrement = 'DossiersFinAgrement',\n PratiquePro = 'PratiquePro'\n}\n\n\nexport function EDashboardFromJSON(json: any): EDashboard {\n return EDashboardFromJSONTyped(json, false);\n}\n\nexport function EDashboardFromJSONTyped(json: any, ignoreDiscriminator: boolean): EDashboard {\n return json as EDashboard;\n}\n\nexport function EDashboardToJSON(value?: EDashboard | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EErrorCode {\n GeneralError = 'GeneralError',\n DbEntityReferenceException = 'DbEntityReferenceException',\n EntityExists = 'EntityExists',\n ConstraintViolation = 'ConstraintViolation',\n DataError = 'DataError',\n InvalidQuery = 'InvalidQuery',\n SmsSendError = 'SmsSendError',\n SmsRequestError = 'SmsRequestError',\n DuplicateExist = 'DuplicateExist',\n ClasseMatiereLinkedToCourse = 'ClasseMatiereLinkedToCourse',\n ClasseMatiereLinkedToHoraire = 'ClasseMatiereLinkedToHoraire',\n FormateurLinked = 'FormateurLinked',\n LoginAlreadyExists = 'LoginAlreadyExists',\n CannotDeleteAgrement = 'CannotDeleteAgrement',\n LocalisationLinked = 'LocalisationLinked',\n FeuillePresenceStartDateGreaterThanEndDate = 'FeuillePresenceStartDateGreaterThanEndDate',\n NoCourseForPeriod = 'NoCourseForPeriod',\n NoApprenantForClasse = 'NoApprenantForClasse',\n RemplacementCannotBeUpdated = 'RemplacementCannotBeUpdated',\n RemplacementClasseHoraireLinkedToGap = 'RemplacementClasseHoraireLinkedToGap',\n DateCannotBeInferior = 'DateCannotBeInferior',\n ActiveReportAlreadyExists = 'ActiveReportAlreadyExists',\n CannotModifyChangeClasse = 'CannotModifyChangeClasse',\n InscriptionDoesntHaveClasse = 'InscriptionDoesntHaveClasse',\n NoValidatedLocalisation = 'NoValidatedLocalisation',\n ClasseDoesNotExist = 'ClasseDoesNotExist',\n MetierNotCompatibleWithDegre = 'MetierNotCompatibleWithDegre',\n ClasseLinkedToInscription = 'ClasseLinkedToInscription',\n ClasseLinkedToEvaluation = 'ClasseLinkedToEvaluation',\n ClasseLinkedToPresence = 'ClasseLinkedToPresence',\n ClasseResultatLocked = 'ClasseResultatLocked',\n InscriptionUsedByAnotherTable = 'InscriptionUsedByAnotherTable',\n ClasseMatiereLinkedToDispense = 'ClasseMatiereLinkedToDispense',\n ClasseMatiereLinkedToClasseHoraire = 'ClasseMatiereLinkedToClasseHoraire',\n EntityDoesntExist = 'EntityDoesntExist',\n NoApprenantSelected = 'NoApprenantSelected',\n FormationLinkedToInscription = 'FormationLinkedToInscription',\n DateCoursNotInAnyAnneeScolaire = 'DateCoursNotInAnyAnneeScolaire',\n ClasseHoraireRemplacementCannotBeUpdated = 'ClasseHoraireRemplacementCannotBeUpdated',\n Required = 'Required',\n PersonneTypeEmailAlreadyExists = 'PersonneTypeEmailAlreadyExists',\n PersonneTypeTelephoneAlreadyExists = 'PersonneTypeTelephoneAlreadyExists',\n PersonneTypeAdresseAlreadyExists = 'PersonneTypeAdresseAlreadyExists',\n CannotCreatePersonne = 'CannotCreatePersonne',\n AnotherTuteurIsMain = 'AnotherTuteurIsMain',\n AnotherContactIsMain = 'AnotherContactIsMain',\n SuspensionIntersection = 'SuspensionIntersection',\n MetierNotCorrespondingAgrements = 'MetierNotCorrespondingAgrements',\n MetierNotCorrespondingTuteurs = 'MetierNotCorrespondingTuteurs',\n OnlyOneMainLf = 'OnlyOneMainLf',\n OnlyOneMainTuteur = 'OnlyOneMainTuteur',\n BaremesRequired = 'BaremesRequired',\n TuteursCannotBeSpp = 'TuteursCannotBeSpp',\n RequiredWhereDecisionSelected = 'RequiredWhereDecisionSelected',\n LieuFormationContratsMustCorrespondToDecision = 'LieuFormationContratsMustCorrespondToDecision',\n LieuFormationDoesNotHaveAnyValidAgrements = 'LieuFormationDoesNotHaveAnyValidAgrements',\n DateMustBeWithinRange = 'DateMustBeWithinRange',\n AgrementWithSameMetierAlreadyActive = 'AgrementWithSameMetierAlreadyActive',\n HeureHebdoWithSameValueAlreadyExists = 'HeureHebdoWithSameValueAlreadyExists',\n BceAlreadyExists = 'BceAlreadyExists',\n RegistreNationalAlreadyExists = 'RegistreNationalAlreadyExists',\n AgrementPourOffreMustBeChanged = 'AgrementPourOffreMustBeChanged',\n AnAgrementIsSPPButContratIsNotPP = 'AnAgrementIsSPPButContratIsNotPP',\n CannotDeleteLfAgrementContratsLinked = 'CannotDeleteLfAgrementContratsLinked',\n NumeroIdentificationAlreadyExists = 'NumeroIdentificationAlreadyExists',\n InscriptionDejaCreeAPartirDemandeInscription = 'InscriptionDejaCreeAPartirDemandeInscription',\n ApprenantAlreadyInARE = 'ApprenantAlreadyInARE',\n CannotDisableSiege = 'CannotDisableSiege',\n CannotDisableLieu = 'CannotDisableLieu',\n DemandeAlreadyExists = 'DemandeAlreadyExists',\n NumeroUeAlreadyExists = 'NumeroUeAlreadyExists',\n SiegeIsInactif = 'SiegeIsInactif',\n CannotDeleteLfSuiviFilesLinked = 'CannotDeleteLfSuiviFilesLinked',\n InvalidDatesCombination = 'InvalidDatesCombination',\n CurrentCalcAlreadyExisting = 'CurrentCalcAlreadyExisting',\n UserNotAuthorizedForMerge = 'UserNotAuthorizedForMerge',\n TuteurAlreadyLinkedToLieu = 'TuteurAlreadyLinkedToLieu',\n InscriptionLinkedToAnneeFormationSuivieIfapme = 'InscriptionLinkedToAnneeFormationSuivieIfapme',\n InscriptionLinkedToAnneeFormationSuivie = 'InscriptionLinkedToAnneeFormationSuivie',\n InscriptionLinkedToApprenantFichier = 'InscriptionLinkedToApprenantFichier',\n InscriptionLinkedToBilanCompetence = 'InscriptionLinkedToBilanCompetence',\n InscriptionLinkedToBulletinApprenantType = 'InscriptionLinkedToBulletinApprenantType',\n InscriptionLinkedToDemandeInscription = 'InscriptionLinkedToDemandeInscription',\n InscriptionLinkedToDiplomeCertificationIfapme = 'InscriptionLinkedToDiplomeCertificationIfapme',\n InscriptionLinkedToDiplomeCertification = 'InscriptionLinkedToDiplomeCertification',\n InscriptionLinkedToDossierAdmission = 'InscriptionLinkedToDossierAdmission',\n InscriptionLinkedToEnveloppeProjetFinancement = 'InscriptionLinkedToEnveloppeProjetFinancement',\n InscriptionLinkedToEnveloppeTypeFinancement = 'InscriptionLinkedToEnveloppeTypeFinancement',\n InscriptionLinkedToExamenEntreeFce = 'InscriptionLinkedToExamenEntreeFce',\n InscriptionLinkedToExamenEntree = 'InscriptionLinkedToExamenEntree',\n InscriptionLinkedToForfaitAuditeur = 'InscriptionLinkedToForfaitAuditeur',\n InscriptionLinkedToUniteActivite = 'InscriptionLinkedToUniteActivite',\n CannotDeleteRepresentant = 'CannotDeleteRepresentant',\n ClasseMatiereLinkedToEvaluations = 'ClasseMatiereLinkedToEvaluations',\n UserNotInCentres = 'UserNotInCentres',\n InscriptionVisibleBulletin = 'InscriptionVisibleBulletin',\n NoValidInscriptions = 'NoValidInscriptions',\n AnneeScolaireMustBeBefore2024 = 'AnneeScolaireMustBeBefore2024',\n TypeBulletinMissingInClasse = 'TypeBulletinMissingInClasse'\n}\n\n\nexport function EErrorCodeFromJSON(json: any): EErrorCode {\n return EErrorCodeFromJSONTyped(json, false);\n}\n\nexport function EErrorCodeFromJSONTyped(json: any, ignoreDiscriminator: boolean): EErrorCode {\n return json as EErrorCode;\n}\n\nexport function EErrorCodeToJSON(value?: EErrorCode | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EJours {\n DimShortName = 'DimShortName',\n LunShortName = 'LunShortName',\n MarShortName = 'MarShortName',\n MerShortName = 'MerShortName',\n JeuShortName = 'JeuShortName',\n VenShortName = 'VenShortName',\n SamShortName = 'SamShortName'\n}\n\n\nexport function EJoursFromJSON(json: any): EJours {\n return EJoursFromJSONTyped(json, false);\n}\n\nexport function EJoursFromJSONTyped(json: any, ignoreDiscriminator: boolean): EJours {\n return json as EJours;\n}\n\nexport function EJoursToJSON(value?: EJours | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ELevelName {\n RI = 'RI',\n ARI = 'ARI',\n COP = 'COP',\n CALC = 'CALC'\n}\n\n\nexport function ELevelNameFromJSON(json: any): ELevelName {\n return ELevelNameFromJSONTyped(json, false);\n}\n\nexport function ELevelNameFromJSONTyped(json: any, ignoreDiscriminator: boolean): ELevelName {\n return json as ELevelName;\n}\n\nexport function ELevelNameToJSON(value?: ELevelName | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ELieuFormationAgrementStatut {\n PourOffre = 'PourOffre',\n EnInstance = 'EnInstance',\n Provisoire = 'Provisoire',\n Agree = 'Agree',\n NonAgree = 'NonAgree',\n Suspendu = 'Suspendu',\n Retrait = 'Retrait',\n SansSuite = 'SansSuite'\n}\n\n\nexport function ELieuFormationAgrementStatutFromJSON(json: any): ELieuFormationAgrementStatut {\n return ELieuFormationAgrementStatutFromJSONTyped(json, false);\n}\n\nexport function ELieuFormationAgrementStatutFromJSONTyped(json: any, ignoreDiscriminator: boolean): ELieuFormationAgrementStatut {\n return json as ELieuFormationAgrementStatut;\n}\n\nexport function ELieuFormationAgrementStatutToJSON(value?: ELieuFormationAgrementStatut | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EPrintingQueueStatus {\n GENERATING = 'GENERATING',\n DONE = 'DONE',\n ERROR = 'ERROR',\n CANCELLED = 'CANCELLED',\n WAITING = 'WAITING'\n}\n\n\nexport function EPrintingQueueStatusFromJSON(json: any): EPrintingQueueStatus {\n return EPrintingQueueStatusFromJSONTyped(json, false);\n}\n\nexport function EPrintingQueueStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): EPrintingQueueStatus {\n return json as EPrintingQueueStatus;\n}\n\nexport function EPrintingQueueStatusToJSON(value?: EPrintingQueueStatus | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EPrintingQueueStatus } from './EPrintingQueueStatus';\nimport {\n EPrintingQueueStatusFromJSON,\n EPrintingQueueStatusFromJSONTyped,\n EPrintingQueueStatusToJSON,\n} from './EPrintingQueueStatus';\n\n/**\n * \n * @export\n * @interface EListSearchTypeEPrintingQueueStatusCombinableCriteria\n */\nexport interface EListSearchTypeEPrintingQueueStatusCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeEPrintingQueueStatusCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {EPrintingQueueStatus}\n * @memberof EListSearchTypeEPrintingQueueStatusCombinableCriteria\n */\n value?: EPrintingQueueStatus;\n /**\n * \n * @type {EPrintingQueueStatus}\n * @memberof EListSearchTypeEPrintingQueueStatusCombinableCriteria\n */\n secondaryValue?: EPrintingQueueStatus;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeEPrintingQueueStatusCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeEPrintingQueueStatusCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeEPrintingQueueStatusCombinableCriteriaFromJSON(json: any): EListSearchTypeEPrintingQueueStatusCombinableCriteria {\n return EListSearchTypeEPrintingQueueStatusCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeEPrintingQueueStatusCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeEPrintingQueueStatusCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : EPrintingQueueStatusFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : EPrintingQueueStatusFromJSON(json['secondaryValue']),\n };\n}\n\nexport function EListSearchTypeEPrintingQueueStatusCombinableCriteriaToJSON(value?: EListSearchTypeEPrintingQueueStatusCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': EPrintingQueueStatusToJSON(value.value),\n 'secondaryValue': EPrintingQueueStatusToJSON(value.secondaryValue),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ESuiviAction {\n Realisee = 'Realisee',\n ARealiser = 'ARealiser',\n Aucune = 'Aucune'\n}\n\n\nexport function ESuiviActionFromJSON(json: any): ESuiviAction {\n return ESuiviActionFromJSONTyped(json, false);\n}\n\nexport function ESuiviActionFromJSONTyped(json: any, ignoreDiscriminator: boolean): ESuiviAction {\n return json as ESuiviAction;\n}\n\nexport function ESuiviActionToJSON(value?: ESuiviAction | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { ESuiviAction } from './ESuiviAction';\nimport {\n ESuiviActionFromJSON,\n ESuiviActionFromJSONTyped,\n ESuiviActionToJSON,\n} from './ESuiviAction';\n\n/**\n * \n * @export\n * @interface EListSearchTypeESuiviActionCombinableCriteria\n */\nexport interface EListSearchTypeESuiviActionCombinableCriteria {\n /**\n * \n * @type {EListSearchType}\n * @memberof EListSearchTypeESuiviActionCombinableCriteria\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {ESuiviAction}\n * @memberof EListSearchTypeESuiviActionCombinableCriteria\n */\n value?: ESuiviAction;\n /**\n * \n * @type {ESuiviAction}\n * @memberof EListSearchTypeESuiviActionCombinableCriteria\n */\n secondaryValue?: ESuiviAction;\n}\n\n/**\n * Check if a given object implements the EListSearchTypeESuiviActionCombinableCriteria interface.\n */\nexport function instanceOfEListSearchTypeESuiviActionCombinableCriteria(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EListSearchTypeESuiviActionCombinableCriteriaFromJSON(json: any): EListSearchTypeESuiviActionCombinableCriteria {\n return EListSearchTypeESuiviActionCombinableCriteriaFromJSONTyped(json, false);\n}\n\nexport function EListSearchTypeESuiviActionCombinableCriteriaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EListSearchTypeESuiviActionCombinableCriteria {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : ESuiviActionFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : ESuiviActionFromJSON(json['secondaryValue']),\n };\n}\n\nexport function EListSearchTypeESuiviActionCombinableCriteriaToJSON(value?: EListSearchTypeESuiviActionCombinableCriteria | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': ESuiviActionToJSON(value.value),\n 'secondaryValue': ESuiviActionToJSON(value.secondaryValue),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EPermis {\n B = 'B',\n AM = 'AM'\n}\n\n\nexport function EPermisFromJSON(json: any): EPermis {\n return EPermisFromJSONTyped(json, false);\n}\n\nexport function EPermisFromJSONTyped(json: any, ignoreDiscriminator: boolean): EPermis {\n return json as EPermis;\n}\n\nexport function EPermisToJSON(value?: EPermis | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeEPrintingQueueStatusCombinableCriteria } from './EListSearchTypeEPrintingQueueStatusCombinableCriteria';\nimport {\n EListSearchTypeEPrintingQueueStatusCombinableCriteriaFromJSON,\n EListSearchTypeEPrintingQueueStatusCombinableCriteriaFromJSONTyped,\n EListSearchTypeEPrintingQueueStatusCombinableCriteriaToJSON,\n} from './EListSearchTypeEPrintingQueueStatusCombinableCriteria';\nimport type { EPrintingQueueStatus } from './EPrintingQueueStatus';\nimport {\n EPrintingQueueStatusFromJSON,\n EPrintingQueueStatusFromJSONTyped,\n EPrintingQueueStatusToJSON,\n} from './EPrintingQueueStatus';\n\n/**\n * \n * @export\n * @interface EPrintingQueueStatusListSearch\n */\nexport interface EPrintingQueueStatusListSearch {\n /**\n * \n * @type {Array}\n * @memberof EPrintingQueueStatusListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof EPrintingQueueStatusListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {EPrintingQueueStatus}\n * @memberof EPrintingQueueStatusListSearch\n */\n value?: EPrintingQueueStatus;\n /**\n * \n * @type {EPrintingQueueStatus}\n * @memberof EPrintingQueueStatusListSearch\n */\n secondaryValue?: EPrintingQueueStatus;\n /**\n * \n * @type {Array}\n * @memberof EPrintingQueueStatusListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof EPrintingQueueStatusListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the EPrintingQueueStatusListSearch interface.\n */\nexport function instanceOfEPrintingQueueStatusListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EPrintingQueueStatusListSearchFromJSON(json: any): EPrintingQueueStatusListSearch {\n return EPrintingQueueStatusListSearchFromJSONTyped(json, false);\n}\n\nexport function EPrintingQueueStatusListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): EPrintingQueueStatusListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeEPrintingQueueStatusCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : EPrintingQueueStatusFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : EPrintingQueueStatusFromJSON(json['secondaryValue']),\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function EPrintingQueueStatusListSearchToJSON(value?: EPrintingQueueStatusListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeEPrintingQueueStatusCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': EPrintingQueueStatusToJSON(value.value),\n 'secondaryValue': EPrintingQueueStatusToJSON(value.secondaryValue),\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EPrintingType {\n CRYSTAL = 'CRYSTAL',\n SSRS = 'SSRS',\n EXCEL = 'EXCEL'\n}\n\n\nexport function EPrintingTypeFromJSON(json: any): EPrintingType {\n return EPrintingTypeFromJSONTyped(json, false);\n}\n\nexport function EPrintingTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): EPrintingType {\n return json as EPrintingType;\n}\n\nexport function EPrintingTypeToJSON(value?: EPrintingType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ERapportHopeParameterType {\n Boolean = 'Boolean',\n DateTime = 'DateTime',\n Integer = 'Integer',\n Float = 'Float',\n String = 'String'\n}\n\n\nexport function ERapportHopeParameterTypeFromJSON(json: any): ERapportHopeParameterType {\n return ERapportHopeParameterTypeFromJSONTyped(json, false);\n}\n\nexport function ERapportHopeParameterTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ERapportHopeParameterType {\n return json as ERapportHopeParameterType;\n}\n\nexport function ERapportHopeParameterTypeToJSON(value?: ERapportHopeParameterType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ERapportHopeType {\n ENTITE = 'ENTITE',\n PUBLI = 'PUBLI',\n EXPORT = 'EXPORT'\n}\n\n\nexport function ERapportHopeTypeFromJSON(json: any): ERapportHopeType {\n return ERapportHopeTypeFromJSONTyped(json, false);\n}\n\nexport function ERapportHopeTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ERapportHopeType {\n return json as ERapportHopeType;\n}\n\nexport function ERapportHopeTypeToJSON(value?: ERapportHopeType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EListSearchType } from './EListSearchType';\nimport {\n EListSearchTypeFromJSON,\n EListSearchTypeFromJSONTyped,\n EListSearchTypeToJSON,\n} from './EListSearchType';\nimport type { EListSearchTypeESuiviActionCombinableCriteria } from './EListSearchTypeESuiviActionCombinableCriteria';\nimport {\n EListSearchTypeESuiviActionCombinableCriteriaFromJSON,\n EListSearchTypeESuiviActionCombinableCriteriaFromJSONTyped,\n EListSearchTypeESuiviActionCombinableCriteriaToJSON,\n} from './EListSearchTypeESuiviActionCombinableCriteria';\nimport type { ESuiviAction } from './ESuiviAction';\nimport {\n ESuiviActionFromJSON,\n ESuiviActionFromJSONTyped,\n ESuiviActionToJSON,\n} from './ESuiviAction';\n\n/**\n * \n * @export\n * @interface ESuiviActionListSearch\n */\nexport interface ESuiviActionListSearch {\n /**\n * \n * @type {Array}\n * @memberof ESuiviActionListSearch\n */\n criterias?: Array | null;\n /**\n * \n * @type {EListSearchType}\n * @memberof ESuiviActionListSearch\n */\n searchMode?: EListSearchType;\n /**\n * \n * @type {ESuiviAction}\n * @memberof ESuiviActionListSearch\n */\n value?: ESuiviAction;\n /**\n * \n * @type {ESuiviAction}\n * @memberof ESuiviActionListSearch\n */\n secondaryValue?: ESuiviAction;\n /**\n * \n * @type {Array}\n * @memberof ESuiviActionListSearch\n */\n readonly availableSearchTypes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof ESuiviActionListSearch\n */\n defaultSearchType?: string | null;\n}\n\n/**\n * Check if a given object implements the ESuiviActionListSearch interface.\n */\nexport function instanceOfESuiviActionListSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ESuiviActionListSearchFromJSON(json: any): ESuiviActionListSearch {\n return ESuiviActionListSearchFromJSONTyped(json, false);\n}\n\nexport function ESuiviActionListSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ESuiviActionListSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criterias': !exists(json, 'criterias') ? undefined : (json['criterias'] === null ? null : (json['criterias'] as Array).map(EListSearchTypeESuiviActionCombinableCriteriaFromJSON)),\n 'searchMode': !exists(json, 'searchMode') ? undefined : EListSearchTypeFromJSON(json['searchMode']),\n 'value': !exists(json, 'value') ? undefined : ESuiviActionFromJSON(json['value']),\n 'secondaryValue': !exists(json, 'secondaryValue') ? undefined : ESuiviActionFromJSON(json['secondaryValue']),\n 'availableSearchTypes': !exists(json, 'availableSearchTypes') ? undefined : json['availableSearchTypes'],\n 'defaultSearchType': !exists(json, 'defaultSearchType') ? undefined : json['defaultSearchType'],\n };\n}\n\nexport function ESuiviActionListSearchToJSON(value?: ESuiviActionListSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criterias': value.criterias === undefined ? undefined : (value.criterias === null ? null : (value.criterias as Array).map(EListSearchTypeESuiviActionCombinableCriteriaToJSON)),\n 'searchMode': EListSearchTypeToJSON(value.searchMode),\n 'value': ESuiviActionToJSON(value.value),\n 'secondaryValue': ESuiviActionToJSON(value.secondaryValue),\n 'defaultSearchType': value.defaultSearchType,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ETypeDeliberation {\n Bulletin1Session = 'Bulletin1Session',\n Bulletin2Session = 'Bulletin2Session',\n Matiere = 'Matiere'\n}\n\n\nexport function ETypeDeliberationFromJSON(json: any): ETypeDeliberation {\n return ETypeDeliberationFromJSONTyped(json, false);\n}\n\nexport function ETypeDeliberationFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETypeDeliberation {\n return json as ETypeDeliberation;\n}\n\nexport function ETypeDeliberationToJSON(value?: ETypeDeliberation | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ETypeDestinataireSms {\n Etudiant = 'Etudiant',\n Formateur = 'Formateur',\n Representant = 'Representant',\n Patron = 'Patron'\n}\n\n\nexport function ETypeDestinataireSmsFromJSON(json: any): ETypeDestinataireSms {\n return ETypeDestinataireSmsFromJSONTyped(json, false);\n}\n\nexport function ETypeDestinataireSmsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ETypeDestinataireSms {\n return json as ETypeDestinataireSms;\n}\n\nexport function ETypeDestinataireSmsToJSON(value?: ETypeDestinataireSms | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EValidationError {\n ClasseMatiereSaveContratNotNullFormateurNull = 'ClasseMatiereSaveContratNotNullFormateurNull',\n ClasseMatiereSaveContratFormateurIncompatible = 'ClasseMatiereSaveContratFormateurIncompatible',\n ClasseMatiereSaveTravailRequired = 'ClasseMatiereSaveTravailRequired',\n ClasseMatiereSaveExamenRequired = 'ClasseMatiereSaveExamenRequired',\n ClasseMatiereSaveRemplacementExisting = 'ClasseMatiereSaveRemplacementExisting',\n ClasseMatiereSaveExportGapExisting = 'ClasseMatiereSaveExportGapExisting',\n QueryMustStartWithSelect = 'QueryMustStartWithSelect',\n QueryParamNotOpened = 'QueryParamNotOpened',\n QueryParamNotClosed = 'QueryParamNotClosed',\n QueryInvalid = 'QueryInvalid',\n RemplacementClasseHoraireLinkedToGap = 'RemplacementClasseHoraireLinkedToGap'\n}\n\n\nexport function EValidationErrorFromJSON(json: any): EValidationError {\n return EValidationErrorFromJSONTyped(json, false);\n}\n\nexport function EValidationErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): EValidationError {\n return json as EValidationError;\n}\n\nexport function EValidationErrorToJSON(value?: EValidationError | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface EcoleSearch\n */\nexport interface EcoleSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof EcoleSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof EcoleSearch\n */\n adresse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof EcoleSearch\n */\n codePostal?: TextSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof EcoleSearch\n */\n codePays?: StringListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof EcoleSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof EcoleSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof EcoleSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof EcoleSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof EcoleSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof EcoleSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof EcoleSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the EcoleSearch interface.\n */\nexport function instanceOfEcoleSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EcoleSearchFromJSON(json: any): EcoleSearch {\n return EcoleSearchFromJSONTyped(json, false);\n}\n\nexport function EcoleSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): EcoleSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'adresse': !exists(json, 'adresse') ? undefined : TextSearchFromJSON(json['adresse']),\n 'codePostal': !exists(json, 'codePostal') ? undefined : TextSearchFromJSON(json['codePostal']),\n 'codePays': !exists(json, 'codePays') ? undefined : StringListSearchFromJSON(json['codePays']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function EcoleSearchToJSON(value?: EcoleSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'adresse': TextSearchToJSON(value.adresse),\n 'codePostal': TextSearchToJSON(value.codePostal),\n 'codePays': StringListSearchToJSON(value.codePays),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EmailAdressesDto\n */\nexport interface EmailAdressesDto {\n /**\n * \n * @type {string}\n * @memberof EmailAdressesDto\n */\n azureEmails?: string | null;\n /**\n * \n * @type {string}\n * @memberof EmailAdressesDto\n */\n emails?: string | null;\n}\n\n/**\n * Check if a given object implements the EmailAdressesDto interface.\n */\nexport function instanceOfEmailAdressesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EmailAdressesDtoFromJSON(json: any): EmailAdressesDto {\n return EmailAdressesDtoFromJSONTyped(json, false);\n}\n\nexport function EmailAdressesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): EmailAdressesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'azureEmails': !exists(json, 'azureEmails') ? undefined : json['azureEmails'],\n 'emails': !exists(json, 'emails') ? undefined : json['emails'],\n };\n}\n\nexport function EmailAdressesDtoToJSON(value?: EmailAdressesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'azureEmails': value.azureEmails,\n 'emails': value.emails,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EmailReplaceDto\n */\nexport interface EmailReplaceDto {\n /**\n * \n * @type {number}\n * @memberof EmailReplaceDto\n */\n oldIdemail?: number;\n /**\n * \n * @type {number}\n * @memberof EmailReplaceDto\n */\n newIdemail?: number | null;\n /**\n * \n * @type {string}\n * @memberof EmailReplaceDto\n */\n adresseEmail?: string | null;\n /**\n * \n * @type {number}\n * @memberof EmailReplaceDto\n */\n idtypeEmail?: number | null;\n /**\n * \n * @type {number}\n * @memberof EmailReplaceDto\n */\n idpersonne?: number;\n /**\n * \n * @type {boolean}\n * @memberof EmailReplaceDto\n */\n isNew?: boolean;\n}\n\n/**\n * Check if a given object implements the EmailReplaceDto interface.\n */\nexport function instanceOfEmailReplaceDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EmailReplaceDtoFromJSON(json: any): EmailReplaceDto {\n return EmailReplaceDtoFromJSONTyped(json, false);\n}\n\nexport function EmailReplaceDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): EmailReplaceDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'oldIdemail': !exists(json, 'oldIdemail') ? undefined : json['oldIdemail'],\n 'newIdemail': !exists(json, 'newIdemail') ? undefined : json['newIdemail'],\n 'adresseEmail': !exists(json, 'adresseEmail') ? undefined : json['adresseEmail'],\n 'idtypeEmail': !exists(json, 'idtypeEmail') ? undefined : json['idtypeEmail'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'isNew': !exists(json, 'isNew') ? undefined : json['isNew'],\n };\n}\n\nexport function EmailReplaceDtoToJSON(value?: EmailReplaceDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'oldIdemail': value.oldIdemail,\n 'newIdemail': value.newIdemail,\n 'adresseEmail': value.adresseEmail,\n 'idtypeEmail': value.idtypeEmail,\n 'idpersonne': value.idpersonne,\n 'isNew': value.isNew,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface EntiteCentreSearch\n */\nexport interface EntiteCentreSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof EntiteCentreSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof EntiteCentreSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof EntiteCentreSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof EntiteCentreSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof EntiteCentreSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof EntiteCentreSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof EntiteCentreSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the EntiteCentreSearch interface.\n */\nexport function instanceOfEntiteCentreSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EntiteCentreSearchFromJSON(json: any): EntiteCentreSearch {\n return EntiteCentreSearchFromJSONTyped(json, false);\n}\n\nexport function EntiteCentreSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): EntiteCentreSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function EntiteCentreSearchToJSON(value?: EntiteCentreSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\n\n/**\n * \n * @export\n * @interface EnveloppeProjetFinancementSearch\n */\nexport interface EnveloppeProjetFinancementSearch {\n /**\n * \n * @type {StringListSearch}\n * @memberof EnveloppeProjetFinancementSearch\n */\n idanneeScolaire?: StringListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof EnveloppeProjetFinancementSearch\n */\n identite?: Int32ListSearch;\n /**\n * \n * @type {number}\n * @memberof EnveloppeProjetFinancementSearch\n */\n idprojetFinancement?: number;\n /**\n * \n * @type {Array}\n * @memberof EnveloppeProjetFinancementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof EnveloppeProjetFinancementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof EnveloppeProjetFinancementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof EnveloppeProjetFinancementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof EnveloppeProjetFinancementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof EnveloppeProjetFinancementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the EnveloppeProjetFinancementSearch interface.\n */\nexport function instanceOfEnveloppeProjetFinancementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EnveloppeProjetFinancementSearchFromJSON(json: any): EnveloppeProjetFinancementSearch {\n return EnveloppeProjetFinancementSearchFromJSONTyped(json, false);\n}\n\nexport function EnveloppeProjetFinancementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnveloppeProjetFinancementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeScolaire': !exists(json, 'idanneeScolaire') ? undefined : StringListSearchFromJSON(json['idanneeScolaire']),\n 'identite': !exists(json, 'identite') ? undefined : Int32ListSearchFromJSON(json['identite']),\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function EnveloppeProjetFinancementSearchToJSON(value?: EnveloppeProjetFinancementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeScolaire': StringListSearchToJSON(value.idanneeScolaire),\n 'identite': Int32ListSearchToJSON(value.identite),\n 'idprojetFinancement': value.idprojetFinancement,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\n\n/**\n * \n * @export\n * @interface EnveloppeTypeFinancementSearch\n */\nexport interface EnveloppeTypeFinancementSearch {\n /**\n * \n * @type {StringListSearch}\n * @memberof EnveloppeTypeFinancementSearch\n */\n idanneeScolaire?: StringListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof EnveloppeTypeFinancementSearch\n */\n identite?: Int32ListSearch;\n /**\n * \n * @type {number}\n * @memberof EnveloppeTypeFinancementSearch\n */\n idfinancementType?: number;\n /**\n * \n * @type {Array}\n * @memberof EnveloppeTypeFinancementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof EnveloppeTypeFinancementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof EnveloppeTypeFinancementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof EnveloppeTypeFinancementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof EnveloppeTypeFinancementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof EnveloppeTypeFinancementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the EnveloppeTypeFinancementSearch interface.\n */\nexport function instanceOfEnveloppeTypeFinancementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EnveloppeTypeFinancementSearchFromJSON(json: any): EnveloppeTypeFinancementSearch {\n return EnveloppeTypeFinancementSearchFromJSONTyped(json, false);\n}\n\nexport function EnveloppeTypeFinancementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnveloppeTypeFinancementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeScolaire': !exists(json, 'idanneeScolaire') ? undefined : StringListSearchFromJSON(json['idanneeScolaire']),\n 'identite': !exists(json, 'identite') ? undefined : Int32ListSearchFromJSON(json['identite']),\n 'idfinancementType': !exists(json, 'idfinancementType') ? undefined : json['idfinancementType'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function EnveloppeTypeFinancementSearchToJSON(value?: EnveloppeTypeFinancementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeScolaire': StringListSearchToJSON(value.idanneeScolaire),\n 'identite': Int32ListSearchToJSON(value.identite),\n 'idfinancementType': value.idfinancementType,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EErrorCode } from './EErrorCode';\nimport {\n EErrorCodeFromJSON,\n EErrorCodeFromJSONTyped,\n EErrorCodeToJSON,\n} from './EErrorCode';\nimport type { EValidationError } from './EValidationError';\nimport {\n EValidationErrorFromJSON,\n EValidationErrorFromJSONTyped,\n EValidationErrorToJSON,\n} from './EValidationError';\n\n/**\n * \n * @export\n * @interface ErrorDetails\n */\nexport interface ErrorDetails {\n /**\n * \n * @type {number}\n * @memberof ErrorDetails\n */\n statusCode?: number;\n /**\n * \n * @type {string}\n * @memberof ErrorDetails\n */\n message?: string | null;\n /**\n * \n * @type {string}\n * @memberof ErrorDetails\n */\n stackTrace?: string | null;\n /**\n * \n * @type {string}\n * @memberof ErrorDetails\n */\n exceptionType?: string | null;\n /**\n * \n * @type {EErrorCode}\n * @memberof ErrorDetails\n */\n errorCode?: EErrorCode;\n /**\n * \n * @type {{ [key: string]: Array; }}\n * @memberof ErrorDetails\n */\n validationErrors?: { [key: string]: Array; } | null;\n}\n\n/**\n * Check if a given object implements the ErrorDetails interface.\n */\nexport function instanceOfErrorDetails(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ErrorDetailsFromJSON(json: any): ErrorDetails {\n return ErrorDetailsFromJSONTyped(json, false);\n}\n\nexport function ErrorDetailsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ErrorDetails {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'statusCode': !exists(json, 'statusCode') ? undefined : json['statusCode'],\n 'message': !exists(json, 'message') ? undefined : json['message'],\n 'stackTrace': !exists(json, 'stackTrace') ? undefined : json['stackTrace'],\n 'exceptionType': !exists(json, 'exceptionType') ? undefined : json['exceptionType'],\n 'errorCode': !exists(json, 'errorCode') ? undefined : EErrorCodeFromJSON(json['errorCode']),\n 'validationErrors': !exists(json, 'validationErrors') ? undefined : json['validationErrors'],\n };\n}\n\nexport function ErrorDetailsToJSON(value?: ErrorDetails | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'statusCode': value.statusCode,\n 'message': value.message,\n 'stackTrace': value.stackTrace,\n 'exceptionType': value.exceptionType,\n 'errorCode': EErrorCodeToJSON(value.errorCode),\n 'validationErrors': value.validationErrors,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EvaluationEditableDto\n */\nexport interface EvaluationEditableDto {\n /**\n * \n * @type {boolean}\n * @memberof EvaluationEditableDto\n */\n isEditable?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof EvaluationEditableDto\n */\n isDeletable?: boolean;\n}\n\n/**\n * Check if a given object implements the EvaluationEditableDto interface.\n */\nexport function instanceOfEvaluationEditableDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EvaluationEditableDtoFromJSON(json: any): EvaluationEditableDto {\n return EvaluationEditableDtoFromJSONTyped(json, false);\n}\n\nexport function EvaluationEditableDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): EvaluationEditableDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'isEditable': !exists(json, 'isEditable') ? undefined : json['isEditable'],\n 'isDeletable': !exists(json, 'isDeletable') ? undefined : json['isDeletable'],\n };\n}\n\nexport function EvaluationEditableDtoToJSON(value?: EvaluationEditableDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'isEditable': value.isEditable,\n 'isDeletable': value.isDeletable,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface EvaluationSearch\n */\nexport interface EvaluationSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof EvaluationSearch\n */\n annee?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof EvaluationSearch\n */\n codeClasse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof EvaluationSearch\n */\n libelleClasse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof EvaluationSearch\n */\n codeMatiere?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof EvaluationSearch\n */\n formateur?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof EvaluationSearch\n */\n type?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof EvaluationSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof EvaluationSearch\n */\n valide?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof EvaluationSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof EvaluationSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof EvaluationSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof EvaluationSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof EvaluationSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof EvaluationSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the EvaluationSearch interface.\n */\nexport function instanceOfEvaluationSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EvaluationSearchFromJSON(json: any): EvaluationSearch {\n return EvaluationSearchFromJSONTyped(json, false);\n}\n\nexport function EvaluationSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): EvaluationSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'annee': !exists(json, 'annee') ? undefined : TextSearchFromJSON(json['annee']),\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : TextSearchFromJSON(json['codeClasse']),\n 'libelleClasse': !exists(json, 'libelleClasse') ? undefined : TextSearchFromJSON(json['libelleClasse']),\n 'codeMatiere': !exists(json, 'codeMatiere') ? undefined : TextSearchFromJSON(json['codeMatiere']),\n 'formateur': !exists(json, 'formateur') ? undefined : TextSearchFromJSON(json['formateur']),\n 'type': !exists(json, 'type') ? undefined : TextSearchFromJSON(json['type']),\n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'valide': !exists(json, 'valide') ? undefined : BooleanSearchFromJSON(json['valide']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function EvaluationSearchToJSON(value?: EvaluationSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'annee': TextSearchToJSON(value.annee),\n 'codeClasse': TextSearchToJSON(value.codeClasse),\n 'libelleClasse': TextSearchToJSON(value.libelleClasse),\n 'codeMatiere': TextSearchToJSON(value.codeMatiere),\n 'formateur': TextSearchToJSON(value.formateur),\n 'type': TextSearchToJSON(value.type),\n 'libelle': TextSearchToJSON(value.libelle),\n 'valide': BooleanSearchToJSON(value.valide),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ExamenEntreeFichierGridDto\n */\nexport interface ExamenEntreeFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierGridDto\n */\n idexamenEntreeFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierGridDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFichierGridDto\n */\n typeAcquisFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ExamenEntreeFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the ExamenEntreeFichierGridDto interface.\n */\nexport function instanceOfExamenEntreeFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExamenEntreeFichierGridDtoFromJSON(json: any): ExamenEntreeFichierGridDto {\n return ExamenEntreeFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function ExamenEntreeFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExamenEntreeFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexamenEntreeFichier': !exists(json, 'idexamenEntreeFichier') ? undefined : json['idexamenEntreeFichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'typeAcquisFichier': !exists(json, 'typeAcquisFichier') ? undefined : json['typeAcquisFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function ExamenEntreeFichierGridDtoToJSON(value?: ExamenEntreeFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexamenEntreeFichier': value.idexamenEntreeFichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'typeAcquisFichier': value.typeAcquisFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ExamenEntreeFichierGridDto } from './ExamenEntreeFichierGridDto';\nimport {\n ExamenEntreeFichierGridDtoFromJSON,\n ExamenEntreeFichierGridDtoFromJSONTyped,\n ExamenEntreeFichierGridDtoToJSON,\n} from './ExamenEntreeFichierGridDto';\n\n/**\n * \n * @export\n * @interface ExamenEntreeEditDto\n */\nexport interface ExamenEntreeEditDto {\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeEditDto\n */\n idexamenEntree?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeEditDto\n */\n pointsmath?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeEditDto\n */\n pointsfrancais?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeEditDto\n */\n pointslogique?: number | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeEditDto\n */\n annee?: string | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeEditDto\n */\n resultat?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeEditDto\n */\n examinateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeEditDto\n */\n commentaire?: number | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeEditDto\n */\n idanneeDeFormation?: string | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeEditDto\n */\n typeAcquis?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ExamenEntreeEditDto\n */\n date?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof ExamenEntreeEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the ExamenEntreeEditDto interface.\n */\nexport function instanceOfExamenEntreeEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExamenEntreeEditDtoFromJSON(json: any): ExamenEntreeEditDto {\n return ExamenEntreeEditDtoFromJSONTyped(json, false);\n}\n\nexport function ExamenEntreeEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExamenEntreeEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexamenEntree': !exists(json, 'idexamenEntree') ? undefined : json['idexamenEntree'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'pointsmath': !exists(json, 'pointsmath') ? undefined : json['pointsmath'],\n 'pointsfrancais': !exists(json, 'pointsfrancais') ? undefined : json['pointsfrancais'],\n 'pointslogique': !exists(json, 'pointslogique') ? undefined : json['pointslogique'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'resultat': !exists(json, 'resultat') ? undefined : json['resultat'],\n 'examinateur': !exists(json, 'examinateur') ? undefined : json['examinateur'],\n 'commentaire': !exists(json, 'commentaire') ? undefined : json['commentaire'],\n 'idanneeDeFormation': !exists(json, 'idanneeDeFormation') ? undefined : json['idanneeDeFormation'],\n 'typeAcquis': !exists(json, 'typeAcquis') ? undefined : json['typeAcquis'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(ExamenEntreeFichierGridDtoFromJSON)),\n };\n}\n\nexport function ExamenEntreeEditDtoToJSON(value?: ExamenEntreeEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexamenEntree': value.idexamenEntree,\n 'idpersonne': value.idpersonne,\n 'pointsmath': value.pointsmath,\n 'pointsfrancais': value.pointsfrancais,\n 'pointslogique': value.pointslogique,\n 'annee': value.annee,\n 'remarque': value.remarque,\n 'resultat': value.resultat,\n 'examinateur': value.examinateur,\n 'commentaire': value.commentaire,\n 'idanneeDeFormation': value.idanneeDeFormation,\n 'typeAcquis': value.typeAcquis,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(ExamenEntreeFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ExamenEntreeFceFichierGridDto\n */\nexport interface ExamenEntreeFceFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierGridDto\n */\n idexamenEntreeFceFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierGridDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFceFichierGridDto\n */\n typeAcquisFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFceFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFceFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ExamenEntreeFceFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the ExamenEntreeFceFichierGridDto interface.\n */\nexport function instanceOfExamenEntreeFceFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExamenEntreeFceFichierGridDtoFromJSON(json: any): ExamenEntreeFceFichierGridDto {\n return ExamenEntreeFceFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function ExamenEntreeFceFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExamenEntreeFceFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexamenEntreeFceFichier': !exists(json, 'idexamenEntreeFceFichier') ? undefined : json['idexamenEntreeFceFichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'typeAcquisFichier': !exists(json, 'typeAcquisFichier') ? undefined : json['typeAcquisFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function ExamenEntreeFceFichierGridDtoToJSON(value?: ExamenEntreeFceFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexamenEntreeFceFichier': value.idexamenEntreeFceFichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'typeAcquisFichier': value.typeAcquisFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ExamenEntreeFceFichierGridDto } from './ExamenEntreeFceFichierGridDto';\nimport {\n ExamenEntreeFceFichierGridDtoFromJSON,\n ExamenEntreeFceFichierGridDtoFromJSONTyped,\n ExamenEntreeFceFichierGridDtoToJSON,\n} from './ExamenEntreeFceFichierGridDto';\n\n/**\n * \n * @export\n * @interface ExamenEntreeFceEditDto\n */\nexport interface ExamenEntreeFceEditDto {\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceEditDto\n */\n idexamenEntreeFce?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFceEditDto\n */\n anneeDeFormation?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ExamenEntreeFceEditDto\n */\n date?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceEditDto\n */\n pointsMath?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceEditDto\n */\n pointsFrancais?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceEditDto\n */\n decisionDossierAdmission?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceEditDto\n */\n examinateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceEditDto\n */\n resultatFinal?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceEditDto\n */\n commentaire?: number | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFceEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFceEditDto\n */\n typeAcquis?: string | null;\n /**\n * \n * @type {Array}\n * @memberof ExamenEntreeFceEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the ExamenEntreeFceEditDto interface.\n */\nexport function instanceOfExamenEntreeFceEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExamenEntreeFceEditDtoFromJSON(json: any): ExamenEntreeFceEditDto {\n return ExamenEntreeFceEditDtoFromJSONTyped(json, false);\n}\n\nexport function ExamenEntreeFceEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExamenEntreeFceEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexamenEntreeFce': !exists(json, 'idexamenEntreeFce') ? undefined : json['idexamenEntreeFce'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'anneeDeFormation': !exists(json, 'anneeDeFormation') ? undefined : json['anneeDeFormation'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'pointsMath': !exists(json, 'pointsMath') ? undefined : json['pointsMath'],\n 'pointsFrancais': !exists(json, 'pointsFrancais') ? undefined : json['pointsFrancais'],\n 'decisionDossierAdmission': !exists(json, 'decisionDossierAdmission') ? undefined : json['decisionDossierAdmission'],\n 'examinateur': !exists(json, 'examinateur') ? undefined : json['examinateur'],\n 'resultatFinal': !exists(json, 'resultatFinal') ? undefined : json['resultatFinal'],\n 'commentaire': !exists(json, 'commentaire') ? undefined : json['commentaire'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'typeAcquis': !exists(json, 'typeAcquis') ? undefined : json['typeAcquis'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(ExamenEntreeFceFichierGridDtoFromJSON)),\n };\n}\n\nexport function ExamenEntreeFceEditDtoToJSON(value?: ExamenEntreeFceEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexamenEntreeFce': value.idexamenEntreeFce,\n 'idpersonne': value.idpersonne,\n 'anneeDeFormation': value.anneeDeFormation,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'pointsMath': value.pointsMath,\n 'pointsFrancais': value.pointsFrancais,\n 'decisionDossierAdmission': value.decisionDossierAdmission,\n 'examinateur': value.examinateur,\n 'resultatFinal': value.resultatFinal,\n 'commentaire': value.commentaire,\n 'remarque': value.remarque,\n 'typeAcquis': value.typeAcquis,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(ExamenEntreeFceFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ExamenEntreeFceFichierDto\n */\nexport interface ExamenEntreeFceFichierDto {\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierDto\n */\n idexamenEntreeFceFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierDto\n */\n idexamenEntreeFce?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFceFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the ExamenEntreeFceFichierDto interface.\n */\nexport function instanceOfExamenEntreeFceFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExamenEntreeFceFichierDtoFromJSON(json: any): ExamenEntreeFceFichierDto {\n return ExamenEntreeFceFichierDtoFromJSONTyped(json, false);\n}\n\nexport function ExamenEntreeFceFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExamenEntreeFceFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexamenEntreeFceFichier': !exists(json, 'idexamenEntreeFceFichier') ? undefined : json['idexamenEntreeFceFichier'],\n 'idexamenEntreeFce': !exists(json, 'idexamenEntreeFce') ? undefined : json['idexamenEntreeFce'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function ExamenEntreeFceFichierDtoToJSON(value?: ExamenEntreeFceFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexamenEntreeFceFichier': value.idexamenEntreeFceFichier,\n 'idexamenEntreeFce': value.idexamenEntreeFce,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface ExamenEntreeFceFichierUploadDto\n */\nexport interface ExamenEntreeFceFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof ExamenEntreeFceFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierUploadDto\n */\n idexamenEntreeFceFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierUploadDto\n */\n idexamenEntreeFce?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFceFichierUploadDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFceFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the ExamenEntreeFceFichierUploadDto interface.\n */\nexport function instanceOfExamenEntreeFceFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExamenEntreeFceFichierUploadDtoFromJSON(json: any): ExamenEntreeFceFichierUploadDto {\n return ExamenEntreeFceFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function ExamenEntreeFceFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExamenEntreeFceFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idexamenEntreeFceFichier': !exists(json, 'idexamenEntreeFceFichier') ? undefined : json['idexamenEntreeFceFichier'],\n 'idexamenEntreeFce': !exists(json, 'idexamenEntreeFce') ? undefined : json['idexamenEntreeFce'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function ExamenEntreeFceFichierUploadDtoToJSON(value?: ExamenEntreeFceFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idexamenEntreeFceFichier': value.idexamenEntreeFceFichier,\n 'idexamenEntreeFce': value.idexamenEntreeFce,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ExamenEntreeFichierDto\n */\nexport interface ExamenEntreeFichierDto {\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierDto\n */\n idexamenEntreeFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierDto\n */\n idexamenEntree?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the ExamenEntreeFichierDto interface.\n */\nexport function instanceOfExamenEntreeFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExamenEntreeFichierDtoFromJSON(json: any): ExamenEntreeFichierDto {\n return ExamenEntreeFichierDtoFromJSONTyped(json, false);\n}\n\nexport function ExamenEntreeFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExamenEntreeFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexamenEntreeFichier': !exists(json, 'idexamenEntreeFichier') ? undefined : json['idexamenEntreeFichier'],\n 'idexamenEntree': !exists(json, 'idexamenEntree') ? undefined : json['idexamenEntree'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function ExamenEntreeFichierDtoToJSON(value?: ExamenEntreeFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexamenEntreeFichier': value.idexamenEntreeFichier,\n 'idexamenEntree': value.idexamenEntree,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface ExamenEntreeFichierUploadDto\n */\nexport interface ExamenEntreeFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof ExamenEntreeFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierUploadDto\n */\n idexamenEntreeFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierUploadDto\n */\n idexamenEntree?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeFichierUploadDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the ExamenEntreeFichierUploadDto interface.\n */\nexport function instanceOfExamenEntreeFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExamenEntreeFichierUploadDtoFromJSON(json: any): ExamenEntreeFichierUploadDto {\n return ExamenEntreeFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function ExamenEntreeFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExamenEntreeFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idexamenEntreeFichier': !exists(json, 'idexamenEntreeFichier') ? undefined : json['idexamenEntreeFichier'],\n 'idexamenEntree': !exists(json, 'idexamenEntree') ? undefined : json['idexamenEntree'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function ExamenEntreeFichierUploadDtoToJSON(value?: ExamenEntreeFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idexamenEntreeFichier': value.idexamenEntreeFichier,\n 'idexamenEntree': value.idexamenEntree,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ExamenEntreeSearch\n */\nexport interface ExamenEntreeSearch {\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof ExamenEntreeSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ExamenEntreeSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExamenEntreeSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ExamenEntreeSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ExamenEntreeSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ExamenEntreeSearch interface.\n */\nexport function instanceOfExamenEntreeSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExamenEntreeSearchFromJSON(json: any): ExamenEntreeSearch {\n return ExamenEntreeSearchFromJSONTyped(json, false);\n}\n\nexport function ExamenEntreeSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExamenEntreeSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ExamenEntreeSearchToJSON(value?: ExamenEntreeSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ExperienceProfessionnelleFichierGridDto\n */\nexport interface ExperienceProfessionnelleFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierGridDto\n */\n idexperienceProfessionnelleFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierGridDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleFichierGridDto\n */\n typeAcquisFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ExperienceProfessionnelleFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the ExperienceProfessionnelleFichierGridDto interface.\n */\nexport function instanceOfExperienceProfessionnelleFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExperienceProfessionnelleFichierGridDtoFromJSON(json: any): ExperienceProfessionnelleFichierGridDto {\n return ExperienceProfessionnelleFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function ExperienceProfessionnelleFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExperienceProfessionnelleFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexperienceProfessionnelleFichier': !exists(json, 'idexperienceProfessionnelleFichier') ? undefined : json['idexperienceProfessionnelleFichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'typeAcquisFichier': !exists(json, 'typeAcquisFichier') ? undefined : json['typeAcquisFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function ExperienceProfessionnelleFichierGridDtoToJSON(value?: ExperienceProfessionnelleFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexperienceProfessionnelleFichier': value.idexperienceProfessionnelleFichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'typeAcquisFichier': value.typeAcquisFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ExperienceProfessionnelleFichierGridDto } from './ExperienceProfessionnelleFichierGridDto';\nimport {\n ExperienceProfessionnelleFichierGridDtoFromJSON,\n ExperienceProfessionnelleFichierGridDtoFromJSONTyped,\n ExperienceProfessionnelleFichierGridDtoToJSON,\n} from './ExperienceProfessionnelleFichierGridDto';\n\n/**\n * \n * @export\n * @interface ExperienceProfessionnelleEditDto\n */\nexport interface ExperienceProfessionnelleEditDto {\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleEditDto\n */\n idexperienceProfessionnelle?: number;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleEditDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ExperienceProfessionnelleEditDto\n */\n dateDeDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ExperienceProfessionnelleEditDto\n */\n dateDeFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleEditDto\n */\n entreprise?: string | null;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleEditDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Array}\n * @memberof ExperienceProfessionnelleEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the ExperienceProfessionnelleEditDto interface.\n */\nexport function instanceOfExperienceProfessionnelleEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExperienceProfessionnelleEditDtoFromJSON(json: any): ExperienceProfessionnelleEditDto {\n return ExperienceProfessionnelleEditDtoFromJSONTyped(json, false);\n}\n\nexport function ExperienceProfessionnelleEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExperienceProfessionnelleEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexperienceProfessionnelle': !exists(json, 'idexperienceProfessionnelle') ? undefined : json['idexperienceProfessionnelle'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'dateDeDebut': !exists(json, 'dateDeDebut') ? undefined : (json['dateDeDebut'] === null ? null : new Date(json['dateDeDebut'])),\n 'dateDeFin': !exists(json, 'dateDeFin') ? undefined : (json['dateDeFin'] === null ? null : new Date(json['dateDeFin'])),\n 'entreprise': !exists(json, 'entreprise') ? undefined : json['entreprise'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(ExperienceProfessionnelleFichierGridDtoFromJSON)),\n };\n}\n\nexport function ExperienceProfessionnelleEditDtoToJSON(value?: ExperienceProfessionnelleEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexperienceProfessionnelle': value.idexperienceProfessionnelle,\n 'idpersonne': value.idpersonne,\n 'fonction': value.fonction,\n 'dateDeDebut': value.dateDeDebut === undefined ? undefined : (value.dateDeDebut === null ? null : value.dateDeDebut.toISOString()),\n 'dateDeFin': value.dateDeFin === undefined ? undefined : (value.dateDeFin === null ? null : value.dateDeFin.toISOString()),\n 'entreprise': value.entreprise,\n 'description': value.description,\n 'remarque': value.remarque,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(ExperienceProfessionnelleFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ExperienceProfessionnelleFichierDto\n */\nexport interface ExperienceProfessionnelleFichierDto {\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierDto\n */\n idexperienceProfessionnelleFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierDto\n */\n idexperienceProfessionnelle?: number;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the ExperienceProfessionnelleFichierDto interface.\n */\nexport function instanceOfExperienceProfessionnelleFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExperienceProfessionnelleFichierDtoFromJSON(json: any): ExperienceProfessionnelleFichierDto {\n return ExperienceProfessionnelleFichierDtoFromJSONTyped(json, false);\n}\n\nexport function ExperienceProfessionnelleFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExperienceProfessionnelleFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexperienceProfessionnelleFichier': !exists(json, 'idexperienceProfessionnelleFichier') ? undefined : json['idexperienceProfessionnelleFichier'],\n 'idexperienceProfessionnelle': !exists(json, 'idexperienceProfessionnelle') ? undefined : json['idexperienceProfessionnelle'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function ExperienceProfessionnelleFichierDtoToJSON(value?: ExperienceProfessionnelleFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexperienceProfessionnelleFichier': value.idexperienceProfessionnelleFichier,\n 'idexperienceProfessionnelle': value.idexperienceProfessionnelle,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface ExperienceProfessionnelleFichierUploadDto\n */\nexport interface ExperienceProfessionnelleFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof ExperienceProfessionnelleFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierUploadDto\n */\n idexperienceProfessionnelleFichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierUploadDto\n */\n idexperienceProfessionnelle?: number;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleFichierUploadDto\n */\n idtypeAcquisFichier?: number;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the ExperienceProfessionnelleFichierUploadDto interface.\n */\nexport function instanceOfExperienceProfessionnelleFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExperienceProfessionnelleFichierUploadDtoFromJSON(json: any): ExperienceProfessionnelleFichierUploadDto {\n return ExperienceProfessionnelleFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function ExperienceProfessionnelleFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExperienceProfessionnelleFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idexperienceProfessionnelleFichier': !exists(json, 'idexperienceProfessionnelleFichier') ? undefined : json['idexperienceProfessionnelleFichier'],\n 'idexperienceProfessionnelle': !exists(json, 'idexperienceProfessionnelle') ? undefined : json['idexperienceProfessionnelle'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeAcquisFichier': !exists(json, 'idtypeAcquisFichier') ? undefined : json['idtypeAcquisFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function ExperienceProfessionnelleFichierUploadDtoToJSON(value?: ExperienceProfessionnelleFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idexperienceProfessionnelleFichier': value.idexperienceProfessionnelleFichier,\n 'idexperienceProfessionnelle': value.idexperienceProfessionnelle,\n 'idfichier': value.idfichier,\n 'idtypeAcquisFichier': value.idtypeAcquisFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ExperienceProfessionnelleGridDto\n */\nexport interface ExperienceProfessionnelleGridDto {\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleGridDto\n */\n idexperienceProfessionnelle?: number;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleGridDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof ExperienceProfessionnelleGridDto\n */\n dateDeDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ExperienceProfessionnelleGridDto\n */\n dateDeFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleGridDto\n */\n description?: string | null;\n}\n\n/**\n * Check if a given object implements the ExperienceProfessionnelleGridDto interface.\n */\nexport function instanceOfExperienceProfessionnelleGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExperienceProfessionnelleGridDtoFromJSON(json: any): ExperienceProfessionnelleGridDto {\n return ExperienceProfessionnelleGridDtoFromJSONTyped(json, false);\n}\n\nexport function ExperienceProfessionnelleGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExperienceProfessionnelleGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexperienceProfessionnelle': !exists(json, 'idexperienceProfessionnelle') ? undefined : json['idexperienceProfessionnelle'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'dateDeDebut': !exists(json, 'dateDeDebut') ? undefined : (json['dateDeDebut'] === null ? null : new Date(json['dateDeDebut'])),\n 'dateDeFin': !exists(json, 'dateDeFin') ? undefined : (json['dateDeFin'] === null ? null : new Date(json['dateDeFin'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n };\n}\n\nexport function ExperienceProfessionnelleGridDtoToJSON(value?: ExperienceProfessionnelleGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexperienceProfessionnelle': value.idexperienceProfessionnelle,\n 'idapprenant': value.idapprenant,\n 'fonction': value.fonction,\n 'dateDeDebut': value.dateDeDebut === undefined ? undefined : (value.dateDeDebut === null ? null : value.dateDeDebut.toISOString()),\n 'dateDeFin': value.dateDeFin === undefined ? undefined : (value.dateDeFin === null ? null : value.dateDeFin.toISOString()),\n 'description': value.description,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ExperienceProfessionnelleGridDto } from './ExperienceProfessionnelleGridDto';\nimport {\n ExperienceProfessionnelleGridDtoFromJSON,\n ExperienceProfessionnelleGridDtoFromJSONTyped,\n ExperienceProfessionnelleGridDtoToJSON,\n} from './ExperienceProfessionnelleGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface ExperienceProfessionnelleGridDtoPaginatedResults\n */\nexport interface ExperienceProfessionnelleGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ExperienceProfessionnelleGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ExperienceProfessionnelleGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ExperienceProfessionnelleGridDtoPaginatedResults interface.\n */\nexport function instanceOfExperienceProfessionnelleGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExperienceProfessionnelleGridDtoPaginatedResultsFromJSON(json: any): ExperienceProfessionnelleGridDtoPaginatedResults {\n return ExperienceProfessionnelleGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ExperienceProfessionnelleGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExperienceProfessionnelleGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ExperienceProfessionnelleGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ExperienceProfessionnelleGridDtoPaginatedResultsToJSON(value?: ExperienceProfessionnelleGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ExperienceProfessionnelleGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ExperienceProfessionnelleSearchDto\n */\nexport interface ExperienceProfessionnelleSearchDto {\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleSearchDto\n */\n idpersonne?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof ExperienceProfessionnelleSearchDto\n */\n fonction?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof ExperienceProfessionnelleSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ExperienceProfessionnelleSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExperienceProfessionnelleSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ExperienceProfessionnelleSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ExperienceProfessionnelleSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ExperienceProfessionnelleSearchDto interface.\n */\nexport function instanceOfExperienceProfessionnelleSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExperienceProfessionnelleSearchDtoFromJSON(json: any): ExperienceProfessionnelleSearchDto {\n return ExperienceProfessionnelleSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ExperienceProfessionnelleSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExperienceProfessionnelleSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'fonction': !exists(json, 'fonction') ? undefined : TextSearchFromJSON(json['fonction']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ExperienceProfessionnelleSearchDtoToJSON(value?: ExperienceProfessionnelleSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne': value.idpersonne,\n 'fonction': TextSearchToJSON(value.fonction),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ExportExcelParameterDto\n */\nexport interface ExportExcelParameterDto {\n /**\n * \n * @type {string}\n * @memberof ExportExcelParameterDto\n */\n key?: string | null;\n /**\n * \n * @type {string}\n * @memberof ExportExcelParameterDto\n */\n value?: string | null;\n}\n\n/**\n * Check if a given object implements the ExportExcelParameterDto interface.\n */\nexport function instanceOfExportExcelParameterDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExportExcelParameterDtoFromJSON(json: any): ExportExcelParameterDto {\n return ExportExcelParameterDtoFromJSONTyped(json, false);\n}\n\nexport function ExportExcelParameterDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExportExcelParameterDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'key': !exists(json, 'key') ? undefined : json['key'],\n 'value': !exists(json, 'value') ? undefined : json['value'],\n };\n}\n\nexport function ExportExcelParameterDtoToJSON(value?: ExportExcelParameterDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'key': value.key,\n 'value': value.value,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ExportExcelParameterDto } from './ExportExcelParameterDto';\nimport {\n ExportExcelParameterDtoFromJSON,\n ExportExcelParameterDtoFromJSONTyped,\n ExportExcelParameterDtoToJSON,\n} from './ExportExcelParameterDto';\n\n/**\n * \n * @export\n * @interface ExportExcelInfoDto\n */\nexport interface ExportExcelInfoDto {\n /**\n * \n * @type {Array}\n * @memberof ExportExcelInfoDto\n */\n parameters?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ExportExcelInfoDto\n */\n idExport?: number;\n}\n\n/**\n * Check if a given object implements the ExportExcelInfoDto interface.\n */\nexport function instanceOfExportExcelInfoDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExportExcelInfoDtoFromJSON(json: any): ExportExcelInfoDto {\n return ExportExcelInfoDtoFromJSONTyped(json, false);\n}\n\nexport function ExportExcelInfoDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExportExcelInfoDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'parameters': !exists(json, 'parameters') ? undefined : (json['parameters'] === null ? null : (json['parameters'] as Array).map(ExportExcelParameterDtoFromJSON)),\n 'idExport': !exists(json, 'idExport') ? undefined : json['idExport'],\n };\n}\n\nexport function ExportExcelInfoDtoToJSON(value?: ExportExcelInfoDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'parameters': value.parameters === undefined ? undefined : (value.parameters === null ? null : (value.parameters as Array).map(ExportExcelParameterDtoToJSON)),\n 'idExport': value.idExport,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ExportSearch\n */\nexport interface ExportSearch {\n /**\n * \n * @type {number}\n * @memberof ExportSearch\n */\n idModule?: number;\n /**\n * \n * @type {Array}\n * @memberof ExportSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ExportSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ExportSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ExportSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ExportSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ExportSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ExportSearch interface.\n */\nexport function instanceOfExportSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExportSearchFromJSON(json: any): ExportSearch {\n return ExportSearchFromJSONTyped(json, false);\n}\n\nexport function ExportSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExportSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idModule': !exists(json, 'idModule') ? undefined : json['idModule'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ExportSearchToJSON(value?: ExportSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idModule': value.idModule,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum ResultErrorLevel {\n None = 'None',\n Info = 'Info',\n Warning = 'Warning',\n NotFound = 'NotFound',\n Error = 'Error'\n}\n\n\nexport function ResultErrorLevelFromJSON(json: any): ResultErrorLevel {\n return ResultErrorLevelFromJSONTyped(json, false);\n}\n\nexport function ResultErrorLevelFromJSONTyped(json: any, ignoreDiscriminator: boolean): ResultErrorLevel {\n return json as ResultErrorLevel;\n}\n\nexport function ResultErrorLevelToJSON(value?: ResultErrorLevel | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ResultErrorLevel } from './ResultErrorLevel';\nimport {\n ResultErrorLevelFromJSON,\n ResultErrorLevelFromJSONTyped,\n ResultErrorLevelToJSON,\n} from './ResultErrorLevel';\n\n/**\n * \n * @export\n * @interface ResultError\n */\nexport interface ResultError {\n /**\n * \n * @type {string}\n * @memberof ResultError\n */\n readonly propertyName?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ResultError\n */\n readonly hasPropertyName?: boolean;\n /**\n * \n * @type {string}\n * @memberof ResultError\n */\n readonly errorCode?: string | null;\n /**\n * \n * @type {string}\n * @memberof ResultError\n */\n readonly errorMessage?: string | null;\n /**\n * \n * @type {ResultErrorLevel}\n * @memberof ResultError\n */\n errorLevel?: ResultErrorLevel;\n /**\n * \n * @type {any}\n * @memberof ResultError\n */\n readonly invalidValue?: any | null;\n}\n\n/**\n * Check if a given object implements the ResultError interface.\n */\nexport function instanceOfResultError(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ResultErrorFromJSON(json: any): ResultError {\n return ResultErrorFromJSONTyped(json, false);\n}\n\nexport function ResultErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): ResultError {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'propertyName': !exists(json, 'propertyName') ? undefined : json['propertyName'],\n 'hasPropertyName': !exists(json, 'hasPropertyName') ? undefined : json['hasPropertyName'],\n 'errorCode': !exists(json, 'errorCode') ? undefined : json['errorCode'],\n 'errorMessage': !exists(json, 'errorMessage') ? undefined : json['errorMessage'],\n 'errorLevel': !exists(json, 'errorLevel') ? undefined : ResultErrorLevelFromJSON(json['errorLevel']),\n 'invalidValue': !exists(json, 'invalidValue') ? undefined : json['invalidValue'],\n };\n}\n\nexport function ResultErrorToJSON(value?: ResultError | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'errorLevel': ResultErrorLevelToJSON(value.errorLevel),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ERapportHopeType } from './ERapportHopeType';\nimport {\n ERapportHopeTypeFromJSON,\n ERapportHopeTypeFromJSONTyped,\n ERapportHopeTypeToJSON,\n} from './ERapportHopeType';\nimport type { ErrorDetails } from './ErrorDetails';\nimport {\n ErrorDetailsFromJSON,\n ErrorDetailsFromJSONTyped,\n ErrorDetailsToJSON,\n} from './ErrorDetails';\nimport type { ResultError } from './ResultError';\nimport {\n ResultErrorFromJSON,\n ResultErrorFromJSONTyped,\n ResultErrorToJSON,\n} from './ResultError';\n\n/**\n * \n * @export\n * @interface ExposedTypes\n */\nexport interface ExposedTypes {\n /**\n * \n * @type {ErrorDetails}\n * @memberof ExposedTypes\n */\n errorDetails?: ErrorDetails;\n /**\n * \n * @type {ResultError}\n * @memberof ExposedTypes\n */\n errorResult?: ResultError;\n /**\n * \n * @type {Array}\n * @memberof ExposedTypes\n */\n resultErrors?: Array | null;\n /**\n * \n * @type {ERapportHopeType}\n * @memberof ExposedTypes\n */\n rapportTypes?: ERapportHopeType;\n}\n\n/**\n * Check if a given object implements the ExposedTypes interface.\n */\nexport function instanceOfExposedTypes(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ExposedTypesFromJSON(json: any): ExposedTypes {\n return ExposedTypesFromJSONTyped(json, false);\n}\n\nexport function ExposedTypesFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExposedTypes {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'errorDetails': !exists(json, 'errorDetails') ? undefined : ErrorDetailsFromJSON(json['errorDetails']),\n 'errorResult': !exists(json, 'errorResult') ? undefined : ResultErrorFromJSON(json['errorResult']),\n 'resultErrors': !exists(json, 'resultErrors') ? undefined : (json['resultErrors'] === null ? null : (json['resultErrors'] as Array).map(ResultErrorFromJSON)),\n 'rapportTypes': !exists(json, 'rapportTypes') ? undefined : ERapportHopeTypeFromJSON(json['rapportTypes']),\n };\n}\n\nexport function ExposedTypesToJSON(value?: ExposedTypes | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'errorDetails': ErrorDetailsToJSON(value.errorDetails),\n 'errorResult': ResultErrorToJSON(value.errorResult),\n 'resultErrors': value.resultErrors === undefined ? undefined : (value.resultErrors === null ? null : (value.resultErrors as Array).map(ResultErrorToJSON)),\n 'rapportTypes': ERapportHopeTypeToJSON(value.rapportTypes),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAcquisProfessionnelDto\n */\nexport interface FcbAcquisProfessionnelDto {\n /**\n * \n * @type {number}\n * @memberof FcbAcquisProfessionnelDto\n */\n idacquisProfessionnel?: number;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisProfessionnelDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelDto\n */\n entreprise?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelDto\n */\n localite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAcquisProfessionnelDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAcquisProfessionnelDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisProfessionnelDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbAcquisProfessionnelDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisProfessionnelDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAcquisProfessionnelDto\n */\n modificationDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbAcquisProfessionnelDto interface.\n */\nexport function instanceOfFcbAcquisProfessionnelDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAcquisProfessionnelDtoFromJSON(json: any): FcbAcquisProfessionnelDto {\n return FcbAcquisProfessionnelDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAcquisProfessionnelDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAcquisProfessionnelDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idacquisProfessionnel': !exists(json, 'idacquisProfessionnel') ? undefined : json['idacquisProfessionnel'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'entreprise': !exists(json, 'entreprise') ? undefined : json['entreprise'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n };\n}\n\nexport function FcbAcquisProfessionnelDtoToJSON(value?: FcbAcquisProfessionnelDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idacquisProfessionnel': value.idacquisProfessionnel,\n 'idapprenant': value.idapprenant,\n 'entreprise': value.entreprise,\n 'adresse': value.adresse,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'libelle': value.libelle,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAcquisProfessionnelGridDto\n */\nexport interface FcbAcquisProfessionnelGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbAcquisProfessionnelGridDto\n */\n idacquisProfessionnel?: number;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisProfessionnelGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelGridDto\n */\n entreprise?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelGridDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAcquisProfessionnelGridDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAcquisProfessionnelGridDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisProfessionnelGridDto\n */\n libelle?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbAcquisProfessionnelGridDto interface.\n */\nexport function instanceOfFcbAcquisProfessionnelGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAcquisProfessionnelGridDtoFromJSON(json: any): FcbAcquisProfessionnelGridDto {\n return FcbAcquisProfessionnelGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAcquisProfessionnelGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAcquisProfessionnelGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idacquisProfessionnel': !exists(json, 'idacquisProfessionnel') ? undefined : json['idacquisProfessionnel'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'entreprise': !exists(json, 'entreprise') ? undefined : json['entreprise'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n };\n}\n\nexport function FcbAcquisProfessionnelGridDtoToJSON(value?: FcbAcquisProfessionnelGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idacquisProfessionnel': value.idacquisProfessionnel,\n 'idapprenant': value.idapprenant,\n 'entreprise': value.entreprise,\n 'adresse': value.adresse,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'libelle': value.libelle,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbAcquisProfessionnelGridDto } from './FcbAcquisProfessionnelGridDto';\nimport {\n FcbAcquisProfessionnelGridDtoFromJSON,\n FcbAcquisProfessionnelGridDtoFromJSONTyped,\n FcbAcquisProfessionnelGridDtoToJSON,\n} from './FcbAcquisProfessionnelGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbAcquisProfessionnelGridDtoPaginatedResults\n */\nexport interface FcbAcquisProfessionnelGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbAcquisProfessionnelGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbAcquisProfessionnelGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbAcquisProfessionnelGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbAcquisProfessionnelGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbAcquisProfessionnelGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAcquisProfessionnelGridDtoPaginatedResultsFromJSON(json: any): FcbAcquisProfessionnelGridDtoPaginatedResults {\n return FcbAcquisProfessionnelGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbAcquisProfessionnelGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAcquisProfessionnelGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbAcquisProfessionnelGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbAcquisProfessionnelGridDtoPaginatedResultsToJSON(value?: FcbAcquisProfessionnelGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbAcquisProfessionnelGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAcquisScolaireDto\n */\nexport interface FcbAcquisScolaireDto {\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireDto\n */\n idacquis?: number;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireDto\n */\n idresultat?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisScolaireDto\n */\n certificat?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisScolaireDto\n */\n annee?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbAcquisScolaireDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAcquisScolaireDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisScolaireDto\n */\n acquis?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireDto\n */\n idecole?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireDto\n */\n iddiplome?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbAcquisScolaireDto interface.\n */\nexport function instanceOfFcbAcquisScolaireDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAcquisScolaireDtoFromJSON(json: any): FcbAcquisScolaireDto {\n return FcbAcquisScolaireDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAcquisScolaireDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAcquisScolaireDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idacquis': !exists(json, 'idacquis') ? undefined : json['idacquis'],\n 'idresultat': !exists(json, 'idresultat') ? undefined : json['idresultat'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'certificat': !exists(json, 'certificat') ? undefined : json['certificat'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'acquis': !exists(json, 'acquis') ? undefined : json['acquis'],\n 'idecole': !exists(json, 'idecole') ? undefined : json['idecole'],\n 'iddiplome': !exists(json, 'iddiplome') ? undefined : json['iddiplome'],\n };\n}\n\nexport function FcbAcquisScolaireDtoToJSON(value?: FcbAcquisScolaireDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idacquis': value.idacquis,\n 'idresultat': value.idresultat,\n 'idapprenant': value.idapprenant,\n 'certificat': value.certificat,\n 'annee': value.annee,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'acquis': value.acquis,\n 'idecole': value.idecole,\n 'iddiplome': value.iddiplome,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAcquisScolaireGridDto\n */\nexport interface FcbAcquisScolaireGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireGridDto\n */\n idacquis?: number;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireGridDto\n */\n idresultat?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisScolaireGridDto\n */\n certificat?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisScolaireGridDto\n */\n annee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisScolaireGridDto\n */\n acquis?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAcquisScolaireGridDto\n */\n resultat?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbAcquisScolaireGridDto interface.\n */\nexport function instanceOfFcbAcquisScolaireGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAcquisScolaireGridDtoFromJSON(json: any): FcbAcquisScolaireGridDto {\n return FcbAcquisScolaireGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAcquisScolaireGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAcquisScolaireGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idacquis': !exists(json, 'idacquis') ? undefined : json['idacquis'],\n 'idresultat': !exists(json, 'idresultat') ? undefined : json['idresultat'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'certificat': !exists(json, 'certificat') ? undefined : json['certificat'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'acquis': !exists(json, 'acquis') ? undefined : json['acquis'],\n 'resultat': !exists(json, 'resultat') ? undefined : json['resultat'],\n };\n}\n\nexport function FcbAcquisScolaireGridDtoToJSON(value?: FcbAcquisScolaireGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idacquis': value.idacquis,\n 'idresultat': value.idresultat,\n 'idapprenant': value.idapprenant,\n 'certificat': value.certificat,\n 'annee': value.annee,\n 'acquis': value.acquis,\n 'resultat': value.resultat,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbAcquisScolaireGridDto } from './FcbAcquisScolaireGridDto';\nimport {\n FcbAcquisScolaireGridDtoFromJSON,\n FcbAcquisScolaireGridDtoFromJSONTyped,\n FcbAcquisScolaireGridDtoToJSON,\n} from './FcbAcquisScolaireGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbAcquisScolaireGridDtoPaginatedResults\n */\nexport interface FcbAcquisScolaireGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbAcquisScolaireGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbAcquisScolaireGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbAcquisScolaireGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbAcquisScolaireGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbAcquisScolaireGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAcquisScolaireGridDtoPaginatedResultsFromJSON(json: any): FcbAcquisScolaireGridDtoPaginatedResults {\n return FcbAcquisScolaireGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbAcquisScolaireGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAcquisScolaireGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbAcquisScolaireGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbAcquisScolaireGridDtoPaginatedResultsToJSON(value?: FcbAcquisScolaireGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbAcquisScolaireGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAdjointGridDto\n */\nexport interface FcbAdjointGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbAdjointGridDto\n */\n titre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAdjointGridDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbAdjointGridDto interface.\n */\nexport function instanceOfFcbAdjointGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAdjointGridDtoFromJSON(json: any): FcbAdjointGridDto {\n return FcbAdjointGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAdjointGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAdjointGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'titre': !exists(json, 'titre') ? undefined : json['titre'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function FcbAdjointGridDtoToJSON(value?: FcbAdjointGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'titre': value.titre,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbAdjointGridDto } from './FcbAdjointGridDto';\nimport {\n FcbAdjointGridDtoFromJSON,\n FcbAdjointGridDtoFromJSONTyped,\n FcbAdjointGridDtoToJSON,\n} from './FcbAdjointGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbAdjointGridDtoPaginatedResults\n */\nexport interface FcbAdjointGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbAdjointGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbAdjointGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbAdjointGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbAdjointGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbAdjointGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAdjointGridDtoPaginatedResultsFromJSON(json: any): FcbAdjointGridDtoPaginatedResults {\n return FcbAdjointGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbAdjointGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAdjointGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbAdjointGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbAdjointGridDtoPaginatedResultsToJSON(value?: FcbAdjointGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbAdjointGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAgrementDto\n */\nexport interface FcbAgrementDto {\n /**\n * \n * @type {number}\n * @memberof FcbAgrementDto\n */\n idagrement?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbAgrementDto\n */\n dateDecision?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbAgrementDto\n */\n iddecision?: number;\n /**\n * \n * @type {number}\n * @memberof FcbAgrementDto\n */\n idformation?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbAgrementDto\n */\n derogation?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbAgrementDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbAgrementDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbAgrementDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbAgrementDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAgrementDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbAgrementDto\n */\n valide?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbAgrementDto\n */\n c8?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbAgrementDto interface.\n */\nexport function instanceOfFcbAgrementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAgrementDtoFromJSON(json: any): FcbAgrementDto {\n return FcbAgrementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAgrementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAgrementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idagrement': !exists(json, 'idagrement') ? undefined : json['idagrement'],\n 'dateDecision': !exists(json, 'dateDecision') ? undefined : (json['dateDecision'] === null ? null : new Date(json['dateDecision'])),\n 'iddecision': !exists(json, 'iddecision') ? undefined : json['iddecision'],\n 'idformation': !exists(json, 'idformation') ? undefined : json['idformation'],\n 'derogation': !exists(json, 'derogation') ? undefined : json['derogation'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'valide': !exists(json, 'valide') ? undefined : json['valide'],\n 'c8': !exists(json, 'c8') ? undefined : json['c8'],\n };\n}\n\nexport function FcbAgrementDtoToJSON(value?: FcbAgrementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idagrement': value.idagrement,\n 'dateDecision': value.dateDecision === undefined ? undefined : (value.dateDecision === null ? null : value.dateDecision.toISOString()),\n 'iddecision': value.iddecision,\n 'idformation': value.idformation,\n 'derogation': value.derogation,\n 'remarque': value.remarque,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'valide': value.valide,\n 'c8': value.c8,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAgrementGridDto\n */\nexport interface FcbAgrementGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbAgrementGridDto\n */\n formation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAgrementGridDto\n */\n decision?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbAgrementGridDto\n */\n idagrement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbAgrementGridDto\n */\n iddecision?: number;\n /**\n * \n * @type {number}\n * @memberof FcbAgrementGridDto\n */\n idformation?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbAgrementGridDto\n */\n derogation?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbAgrementGridDto\n */\n c8?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAgrementGridDto\n */\n dateDecision?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbAgrementGridDto interface.\n */\nexport function instanceOfFcbAgrementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAgrementGridDtoFromJSON(json: any): FcbAgrementGridDto {\n return FcbAgrementGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAgrementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAgrementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'formation': !exists(json, 'formation') ? undefined : json['formation'],\n 'decision': !exists(json, 'decision') ? undefined : json['decision'],\n 'idagrement': !exists(json, 'idagrement') ? undefined : json['idagrement'],\n 'iddecision': !exists(json, 'iddecision') ? undefined : json['iddecision'],\n 'idformation': !exists(json, 'idformation') ? undefined : json['idformation'],\n 'derogation': !exists(json, 'derogation') ? undefined : json['derogation'],\n 'c8': !exists(json, 'c8') ? undefined : json['c8'],\n 'dateDecision': !exists(json, 'dateDecision') ? undefined : (json['dateDecision'] === null ? null : new Date(json['dateDecision'])),\n };\n}\n\nexport function FcbAgrementGridDtoToJSON(value?: FcbAgrementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'formation': value.formation,\n 'decision': value.decision,\n 'idagrement': value.idagrement,\n 'iddecision': value.iddecision,\n 'idformation': value.idformation,\n 'derogation': value.derogation,\n 'c8': value.c8,\n 'dateDecision': value.dateDecision === undefined ? undefined : (value.dateDecision === null ? null : value.dateDecision.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbAgrementGridDto } from './FcbAgrementGridDto';\nimport {\n FcbAgrementGridDtoFromJSON,\n FcbAgrementGridDtoFromJSONTyped,\n FcbAgrementGridDtoToJSON,\n} from './FcbAgrementGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbAgrementGridDtoPaginatedResults\n */\nexport interface FcbAgrementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbAgrementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbAgrementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbAgrementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbAgrementGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbAgrementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAgrementGridDtoPaginatedResultsFromJSON(json: any): FcbAgrementGridDtoPaginatedResults {\n return FcbAgrementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbAgrementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAgrementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbAgrementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbAgrementGridDtoPaginatedResultsToJSON(value?: FcbAgrementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbAgrementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAgrementValidationMasseDto\n */\nexport interface FcbAgrementValidationMasseDto {\n /**\n * \n * @type {Date}\n * @memberof FcbAgrementValidationMasseDto\n */\n dateValidation?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbAgrementValidationMasseDto\n */\n idDecision?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbAgrementValidationMasseDto\n */\n derogation?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbAgrementValidationMasseDto\n */\n c8?: boolean;\n /**\n * \n * @type {string}\n * @memberof FcbAgrementValidationMasseDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FcbAgrementValidationMasseDto\n */\n formationIds?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbAgrementValidationMasseDto interface.\n */\nexport function instanceOfFcbAgrementValidationMasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAgrementValidationMasseDtoFromJSON(json: any): FcbAgrementValidationMasseDto {\n return FcbAgrementValidationMasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAgrementValidationMasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAgrementValidationMasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'dateValidation': !exists(json, 'dateValidation') ? undefined : (new Date(json['dateValidation'])),\n 'idDecision': !exists(json, 'idDecision') ? undefined : json['idDecision'],\n 'derogation': !exists(json, 'derogation') ? undefined : json['derogation'],\n 'c8': !exists(json, 'c8') ? undefined : json['c8'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'formationIds': !exists(json, 'formationIds') ? undefined : json['formationIds'],\n };\n}\n\nexport function FcbAgrementValidationMasseDtoToJSON(value?: FcbAgrementValidationMasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'dateValidation': value.dateValidation === undefined ? undefined : (value.dateValidation.toISOString()),\n 'idDecision': value.idDecision,\n 'derogation': value.derogation,\n 'c8': value.c8,\n 'remarque': value.remarque,\n 'formationIds': value.formationIds,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAnneeReussieDto\n */\nexport interface FcbAnneeReussieDto {\n /**\n * \n * @type {number}\n * @memberof FcbAnneeReussieDto\n */\n idanneeReussie?: number;\n /**\n * \n * @type {string}\n * @memberof FcbAnneeReussieDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAnneeReussieDto\n */\n idanneeReussieGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbAnneeReussieDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbAnneeReussieDto interface.\n */\nexport function instanceOfFcbAnneeReussieDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAnneeReussieDtoFromJSON(json: any): FcbAnneeReussieDto {\n return FcbAnneeReussieDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAnneeReussieDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAnneeReussieDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeReussie': !exists(json, 'idanneeReussie') ? undefined : json['idanneeReussie'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idanneeReussieGuid': !exists(json, 'idanneeReussieGuid') ? undefined : json['idanneeReussieGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbAnneeReussieDtoToJSON(value?: FcbAnneeReussieDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeReussie': value.idanneeReussie,\n 'libelle': value.libelle,\n 'idanneeReussieGuid': value.idanneeReussieGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbAnneeReussieDto } from './FcbAnneeReussieDto';\nimport {\n FcbAnneeReussieDtoFromJSON,\n FcbAnneeReussieDtoFromJSONTyped,\n FcbAnneeReussieDtoToJSON,\n} from './FcbAnneeReussieDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbAnneeReussieDtoPaginatedResults\n */\nexport interface FcbAnneeReussieDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbAnneeReussieDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbAnneeReussieDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbAnneeReussieDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbAnneeReussieDtoPaginatedResults interface.\n */\nexport function instanceOfFcbAnneeReussieDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAnneeReussieDtoPaginatedResultsFromJSON(json: any): FcbAnneeReussieDtoPaginatedResults {\n return FcbAnneeReussieDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbAnneeReussieDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAnneeReussieDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbAnneeReussieDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbAnneeReussieDtoPaginatedResultsToJSON(value?: FcbAnneeReussieDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbAnneeReussieDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAnneeScolaireDetailDto\n */\nexport interface FcbAnneeScolaireDetailDto {\n /**\n * \n * @type {number}\n * @memberof FcbAnneeScolaireDetailDto\n */\n anneeDebut?: number;\n /**\n * \n * @type {number}\n * @memberof FcbAnneeScolaireDetailDto\n */\n anneeFin?: number;\n /**\n * \n * @type {string}\n * @memberof FcbAnneeScolaireDetailDto\n */\n idanneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAnneeScolaireDetailDto\n */\n description?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAnneeScolaireDetailDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAnneeScolaireDetailDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbAnneeScolaireDetailDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbAnneeScolaireDetailDto interface.\n */\nexport function instanceOfFcbAnneeScolaireDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAnneeScolaireDetailDtoFromJSON(json: any): FcbAnneeScolaireDetailDto {\n return FcbAnneeScolaireDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAnneeScolaireDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAnneeScolaireDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeDebut': !exists(json, 'anneeDebut') ? undefined : json['anneeDebut'],\n 'anneeFin': !exists(json, 'anneeFin') ? undefined : json['anneeFin'],\n 'idanneeScolaire': !exists(json, 'idanneeScolaire') ? undefined : json['idanneeScolaire'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbAnneeScolaireDetailDtoToJSON(value?: FcbAnneeScolaireDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeDebut': value.anneeDebut,\n 'anneeFin': value.anneeFin,\n 'idanneeScolaire': value.idanneeScolaire,\n 'description': value.description,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbAnneeScolaireDto\n */\nexport interface FcbAnneeScolaireDto {\n /**\n * \n * @type {string}\n * @memberof FcbAnneeScolaireDto\n */\n idanneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbAnneeScolaireDto\n */\n description?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAnneeScolaireDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbAnneeScolaireDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbAnneeScolaireDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbAnneeScolaireDto interface.\n */\nexport function instanceOfFcbAnneeScolaireDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAnneeScolaireDtoFromJSON(json: any): FcbAnneeScolaireDto {\n return FcbAnneeScolaireDtoFromJSONTyped(json, false);\n}\n\nexport function FcbAnneeScolaireDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAnneeScolaireDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idanneeScolaire': !exists(json, 'idanneeScolaire') ? undefined : json['idanneeScolaire'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbAnneeScolaireDtoToJSON(value?: FcbAnneeScolaireDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idanneeScolaire': value.idanneeScolaire,\n 'description': value.description,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbAnneeScolaireDto } from './FcbAnneeScolaireDto';\nimport {\n FcbAnneeScolaireDtoFromJSON,\n FcbAnneeScolaireDtoFromJSONTyped,\n FcbAnneeScolaireDtoToJSON,\n} from './FcbAnneeScolaireDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbAnneeScolaireDtoPaginatedResults\n */\nexport interface FcbAnneeScolaireDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbAnneeScolaireDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbAnneeScolaireDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbAnneeScolaireDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbAnneeScolaireDtoPaginatedResults interface.\n */\nexport function instanceOfFcbAnneeScolaireDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbAnneeScolaireDtoPaginatedResultsFromJSON(json: any): FcbAnneeScolaireDtoPaginatedResults {\n return FcbAnneeScolaireDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbAnneeScolaireDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbAnneeScolaireDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbAnneeScolaireDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbAnneeScolaireDtoPaginatedResultsToJSON(value?: FcbAnneeScolaireDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbAnneeScolaireDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbApprenantAzureGridDto\n */\nexport interface FcbApprenantAzureGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantAzureGridDto\n */\n idApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantAzureGridDto\n */\n idCentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantAzureGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantAzureGridDto\n */\n azureActive?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbApprenantAzureGridDto interface.\n */\nexport function instanceOfFcbApprenantAzureGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantAzureGridDtoFromJSON(json: any): FcbApprenantAzureGridDto {\n return FcbApprenantAzureGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantAzureGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantAzureGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'idCentre': !exists(json, 'idCentre') ? undefined : json['idCentre'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'azureActive': !exists(json, 'azureActive') ? undefined : json['azureActive'],\n };\n}\n\nexport function FcbApprenantAzureGridDtoToJSON(value?: FcbApprenantAzureGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'idCentre': value.idCentre,\n 'centre': value.centre,\n 'azureActive': value.azureActive,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbApprenantAzureGridDto } from './FcbApprenantAzureGridDto';\nimport {\n FcbApprenantAzureGridDtoFromJSON,\n FcbApprenantAzureGridDtoFromJSONTyped,\n FcbApprenantAzureGridDtoToJSON,\n} from './FcbApprenantAzureGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbApprenantAzureGridDtoPaginatedResults\n */\nexport interface FcbApprenantAzureGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantAzureGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantAzureGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantAzureGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbApprenantAzureGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbApprenantAzureGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantAzureGridDtoPaginatedResultsFromJSON(json: any): FcbApprenantAzureGridDtoPaginatedResults {\n return FcbApprenantAzureGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantAzureGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantAzureGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbApprenantAzureGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbApprenantAzureGridDtoPaginatedResultsToJSON(value?: FcbApprenantAzureGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbApprenantAzureGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface FcbApprenantDoublonGridDto\n */\nexport interface FcbApprenantDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDoublonGridDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantDoublonGridDto\n */\n idsSocieteExterne?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbApprenantDoublonGridDto\n */\n adresseDto?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDoublonGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof FcbApprenantDoublonGridDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDoublonGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDoublonGridDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n isCollaborateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDoublonGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbApprenantDoublonGridDto interface.\n */\nexport function instanceOfFcbApprenantDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantDoublonGridDtoFromJSON(json: any): FcbApprenantDoublonGridDto {\n return FcbApprenantDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idsSocieteExterne': !exists(json, 'idsSocieteExterne') ? undefined : json['idsSocieteExterne'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseDto': !exists(json, 'adresseDto') ? undefined : AdresseDtoFromJSON(json['adresseDto']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isCollaborateur': !exists(json, 'isCollaborateur') ? undefined : json['isCollaborateur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function FcbApprenantDoublonGridDtoToJSON(value?: FcbApprenantDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'idsSocieteExterne': value.idsSocieteExterne,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseDto': AdresseDtoToJSON(value.adresseDto),\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isTuteur': value.isTuteur,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isCollaborateur': value.isCollaborateur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbApprenantDoublonGridDto } from './FcbApprenantDoublonGridDto';\nimport {\n FcbApprenantDoublonGridDtoFromJSON,\n FcbApprenantDoublonGridDtoFromJSONTyped,\n FcbApprenantDoublonGridDtoToJSON,\n} from './FcbApprenantDoublonGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbApprenantDoublonGridDtoPaginatedResults\n */\nexport interface FcbApprenantDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbApprenantDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbApprenantDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantDoublonGridDtoPaginatedResultsFromJSON(json: any): FcbApprenantDoublonGridDtoPaginatedResults {\n return FcbApprenantDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbApprenantDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbApprenantDoublonGridDtoPaginatedResultsToJSON(value?: FcbApprenantDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbApprenantDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { ApprenantContratDto } from './ApprenantContratDto';\nimport {\n ApprenantContratDtoFromJSON,\n ApprenantContratDtoFromJSONTyped,\n ApprenantContratDtoToJSON,\n} from './ApprenantContratDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface FcbApprenantDto\n */\nexport interface FcbApprenantDto {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idecole?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idanneeReussie?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n iddiplome?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbApprenantDto\n */\n telephoneApprenant?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbApprenantDto\n */\n gsmApprenant?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof FcbApprenantDto\n */\n emailApprenant?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n remarqueService?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n c2?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n forem?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n courrierPrincipal?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n courrierAutre?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n dossierUrl?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n photo?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idfichierPhoto?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n modificationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n anneeScolaireReussie?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n interne?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n searchNom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n searchPrenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n derniereAnneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n centres?: number | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof FcbApprenantDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n azureUserId?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n azureEmail?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n azureTemporaryPassword?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n azureActive?: boolean;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n emergencyContactPhone?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n emergencyContactId?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idPri?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idAri?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idCop?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n bankAccountBeneficiaryId?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantDto\n */\n bankAccountBeneficiaryName?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n isDeceased?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n permisB?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n permisAm?: boolean;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbApprenantDto\n */\n adresseApprenant?: AdresseDto;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbApprenantDto\n */\n adresseCourrierApprenant?: AdresseDto;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n securise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n hasAdresseDoublons?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n hasAdresseCourrierDoublons?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idParcoursFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idstatutEntree?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDto\n */\n lastDateSortie?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDto\n */\n dateEntree?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDto\n */\n dateEntreeReseau?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idstatutSortie?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDto\n */\n dateSortie?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idMotifSortie?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idtypeSortie?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idCategorieStatut?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n idStatut?: number | null;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantDto\n */\n idsSocieteExterne?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantDto\n */\n isSortieEnCours?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n iddureeInoccupation?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantDto\n */\n nbJoursRechercheEntreprise?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantDto\n */\n dateDebutRechercheEntreprise?: Date | null;\n /**\n * \n * @type {ApprenantContratDto}\n * @memberof FcbApprenantDto\n */\n contrat?: ApprenantContratDto;\n}\n\n/**\n * Check if a given object implements the FcbApprenantDto interface.\n */\nexport function instanceOfFcbApprenantDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantDtoFromJSON(json: any): FcbApprenantDto {\n return FcbApprenantDtoFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idecole': !exists(json, 'idecole') ? undefined : json['idecole'],\n 'idanneeReussie': !exists(json, 'idanneeReussie') ? undefined : json['idanneeReussie'],\n 'iddiplome': !exists(json, 'iddiplome') ? undefined : json['iddiplome'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'telephoneApprenant': !exists(json, 'telephoneApprenant') ? undefined : TelephoneDtoFromJSON(json['telephoneApprenant']),\n 'gsmApprenant': !exists(json, 'gsmApprenant') ? undefined : TelephoneDtoFromJSON(json['gsmApprenant']),\n 'emailApprenant': !exists(json, 'emailApprenant') ? undefined : EmailDtoFromJSON(json['emailApprenant']),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'remarqueService': !exists(json, 'remarqueService') ? undefined : json['remarqueService'],\n 'c2': !exists(json, 'c2') ? undefined : json['c2'],\n 'forem': !exists(json, 'forem') ? undefined : json['forem'],\n 'courrierPrincipal': !exists(json, 'courrierPrincipal') ? undefined : json['courrierPrincipal'],\n 'courrierAutre': !exists(json, 'courrierAutre') ? undefined : json['courrierAutre'],\n 'dossierUrl': !exists(json, 'dossierUrl') ? undefined : json['dossierUrl'],\n 'photo': !exists(json, 'photo') ? undefined : json['photo'],\n 'idfichierPhoto': !exists(json, 'idfichierPhoto') ? undefined : json['idfichierPhoto'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationUserName': !exists(json, 'modificationUserName') ? undefined : json['modificationUserName'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'anneeScolaireReussie': !exists(json, 'anneeScolaireReussie') ? undefined : json['anneeScolaireReussie'],\n 'interne': !exists(json, 'interne') ? undefined : json['interne'],\n 'searchNom': !exists(json, 'searchNom') ? undefined : json['searchNom'],\n 'searchPrenom': !exists(json, 'searchPrenom') ? undefined : json['searchPrenom'],\n 'derniereAnneeScolaire': !exists(json, 'derniereAnneeScolaire') ? undefined : json['derniereAnneeScolaire'],\n 'centres': !exists(json, 'centres') ? undefined : json['centres'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'azureUserId': !exists(json, 'azureUserId') ? undefined : json['azureUserId'],\n 'azureEmail': !exists(json, 'azureEmail') ? undefined : json['azureEmail'],\n 'azureTemporaryPassword': !exists(json, 'azureTemporaryPassword') ? undefined : json['azureTemporaryPassword'],\n 'azureActive': !exists(json, 'azureActive') ? undefined : json['azureActive'],\n 'emergencyContactPhone': !exists(json, 'emergencyContactPhone') ? undefined : json['emergencyContactPhone'],\n 'emergencyContactId': !exists(json, 'emergencyContactId') ? undefined : json['emergencyContactId'],\n 'idPri': !exists(json, 'idPri') ? undefined : json['idPri'],\n 'idAri': !exists(json, 'idAri') ? undefined : json['idAri'],\n 'idCop': !exists(json, 'idCop') ? undefined : json['idCop'],\n 'bankAccountBeneficiaryId': !exists(json, 'bankAccountBeneficiaryId') ? undefined : json['bankAccountBeneficiaryId'],\n 'bankAccountBeneficiaryName': !exists(json, 'bankAccountBeneficiaryName') ? undefined : json['bankAccountBeneficiaryName'],\n 'isDeceased': !exists(json, 'isDeceased') ? undefined : json['isDeceased'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'permisB': !exists(json, 'permisB') ? undefined : json['permisB'],\n 'permisAm': !exists(json, 'permisAm') ? undefined : json['permisAm'],\n 'adresseApprenant': !exists(json, 'adresseApprenant') ? undefined : AdresseDtoFromJSON(json['adresseApprenant']),\n 'adresseCourrierApprenant': !exists(json, 'adresseCourrierApprenant') ? undefined : AdresseDtoFromJSON(json['adresseCourrierApprenant']),\n 'securise': !exists(json, 'securise') ? undefined : json['securise'],\n 'hasAdresseDoublons': !exists(json, 'hasAdresseDoublons') ? undefined : json['hasAdresseDoublons'],\n 'hasAdresseCourrierDoublons': !exists(json, 'hasAdresseCourrierDoublons') ? undefined : json['hasAdresseCourrierDoublons'],\n 'idParcoursFormation': !exists(json, 'idParcoursFormation') ? undefined : json['idParcoursFormation'],\n 'idstatutEntree': !exists(json, 'idstatutEntree') ? undefined : json['idstatutEntree'],\n 'lastDateSortie': !exists(json, 'lastDateSortie') ? undefined : (json['lastDateSortie'] === null ? null : new Date(json['lastDateSortie'])),\n 'dateEntree': !exists(json, 'dateEntree') ? undefined : (json['dateEntree'] === null ? null : new Date(json['dateEntree'])),\n 'dateEntreeReseau': !exists(json, 'dateEntreeReseau') ? undefined : (json['dateEntreeReseau'] === null ? null : new Date(json['dateEntreeReseau'])),\n 'idstatutSortie': !exists(json, 'idstatutSortie') ? undefined : json['idstatutSortie'],\n 'dateSortie': !exists(json, 'dateSortie') ? undefined : (json['dateSortie'] === null ? null : new Date(json['dateSortie'])),\n 'idMotifSortie': !exists(json, 'idMotifSortie') ? undefined : json['idMotifSortie'],\n 'idtypeSortie': !exists(json, 'idtypeSortie') ? undefined : json['idtypeSortie'],\n 'idCategorieStatut': !exists(json, 'idCategorieStatut') ? undefined : json['idCategorieStatut'],\n 'idStatut': !exists(json, 'idStatut') ? undefined : json['idStatut'],\n 'idsSocieteExterne': !exists(json, 'idsSocieteExterne') ? undefined : json['idsSocieteExterne'],\n 'isSortieEnCours': !exists(json, 'isSortieEnCours') ? undefined : json['isSortieEnCours'],\n 'iddureeInoccupation': !exists(json, 'iddureeInoccupation') ? undefined : json['iddureeInoccupation'],\n 'nbJoursRechercheEntreprise': !exists(json, 'nbJoursRechercheEntreprise') ? undefined : json['nbJoursRechercheEntreprise'],\n 'dateDebutRechercheEntreprise': !exists(json, 'dateDebutRechercheEntreprise') ? undefined : (json['dateDebutRechercheEntreprise'] === null ? null : new Date(json['dateDebutRechercheEntreprise'])),\n 'contrat': !exists(json, 'contrat') ? undefined : ApprenantContratDtoFromJSON(json['contrat']),\n };\n}\n\nexport function FcbApprenantDtoToJSON(value?: FcbApprenantDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'idecole': value.idecole,\n 'idanneeReussie': value.idanneeReussie,\n 'iddiplome': value.iddiplome,\n 'codesexe': value.codesexe,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'telephoneApprenant': TelephoneDtoToJSON(value.telephoneApprenant),\n 'gsmApprenant': TelephoneDtoToJSON(value.gsmApprenant),\n 'emailApprenant': EmailDtoToJSON(value.emailApprenant),\n 'remarque': value.remarque,\n 'remarqueService': value.remarqueService,\n 'c2': value.c2,\n 'forem': value.forem,\n 'courrierPrincipal': value.courrierPrincipal,\n 'courrierAutre': value.courrierAutre,\n 'dossierUrl': value.dossierUrl,\n 'photo': value.photo,\n 'idfichierPhoto': value.idfichierPhoto,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationUserName': value.modificationUserName,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'anneeScolaireReussie': value.anneeScolaireReussie,\n 'interne': value.interne,\n 'searchNom': value.searchNom,\n 'searchPrenom': value.searchPrenom,\n 'derniereAnneeScolaire': value.derniereAnneeScolaire,\n 'centres': value.centres,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'actif': value.actif,\n 'azureUserId': value.azureUserId,\n 'azureEmail': value.azureEmail,\n 'azureTemporaryPassword': value.azureTemporaryPassword,\n 'azureActive': value.azureActive,\n 'emergencyContactPhone': value.emergencyContactPhone,\n 'emergencyContactId': value.emergencyContactId,\n 'idPri': value.idPri,\n 'idAri': value.idAri,\n 'idCop': value.idCop,\n 'bankAccountBeneficiaryId': value.bankAccountBeneficiaryId,\n 'bankAccountBeneficiaryName': value.bankAccountBeneficiaryName,\n 'isDeceased': value.isDeceased,\n 'idpersonne': value.idpersonne,\n 'permisB': value.permisB,\n 'permisAm': value.permisAm,\n 'adresseApprenant': AdresseDtoToJSON(value.adresseApprenant),\n 'adresseCourrierApprenant': AdresseDtoToJSON(value.adresseCourrierApprenant),\n 'securise': value.securise,\n 'hasAdresseDoublons': value.hasAdresseDoublons,\n 'hasAdresseCourrierDoublons': value.hasAdresseCourrierDoublons,\n 'idParcoursFormation': value.idParcoursFormation,\n 'idstatutEntree': value.idstatutEntree,\n 'lastDateSortie': value.lastDateSortie === undefined ? undefined : (value.lastDateSortie === null ? null : value.lastDateSortie.toISOString()),\n 'dateEntree': value.dateEntree === undefined ? undefined : (value.dateEntree === null ? null : value.dateEntree.toISOString()),\n 'dateEntreeReseau': value.dateEntreeReseau === undefined ? undefined : (value.dateEntreeReseau === null ? null : value.dateEntreeReseau.toISOString()),\n 'idstatutSortie': value.idstatutSortie,\n 'dateSortie': value.dateSortie === undefined ? undefined : (value.dateSortie === null ? null : value.dateSortie.toISOString()),\n 'idMotifSortie': value.idMotifSortie,\n 'idtypeSortie': value.idtypeSortie,\n 'idCategorieStatut': value.idCategorieStatut,\n 'idStatut': value.idStatut,\n 'idsSocieteExterne': value.idsSocieteExterne,\n 'isSortieEnCours': value.isSortieEnCours,\n 'iddureeInoccupation': value.iddureeInoccupation,\n 'nbJoursRechercheEntreprise': value.nbJoursRechercheEntreprise,\n 'dateDebutRechercheEntreprise': value.dateDebutRechercheEntreprise === undefined ? undefined : (value.dateDebutRechercheEntreprise === null ? null : value.dateDebutRechercheEntreprise.toISOString()),\n 'contrat': ApprenantContratDtoToJSON(value.contrat),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbApprenantHistoryGridDto\n */\nexport interface FcbApprenantHistoryGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantHistoryGridDto\n */\n idappenantHistory?: number;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantHistoryGridDto\n */\n iduser?: number;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantHistoryGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantHistoryGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantHistoryGridDto\n */\n action?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantHistoryGridDto\n */\n actionType?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantHistoryGridDto\n */\n actionDate?: Date;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantHistoryGridDto\n */\n userName?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantHistoryGridDto\n */\n ifapmeSide?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbApprenantHistoryGridDto interface.\n */\nexport function instanceOfFcbApprenantHistoryGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantHistoryGridDtoFromJSON(json: any): FcbApprenantHistoryGridDto {\n return FcbApprenantHistoryGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantHistoryGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantHistoryGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idappenantHistory': !exists(json, 'idappenantHistory') ? undefined : json['idappenantHistory'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'actionType': !exists(json, 'actionType') ? undefined : json['actionType'],\n 'actionDate': !exists(json, 'actionDate') ? undefined : (new Date(json['actionDate'])),\n 'userName': !exists(json, 'userName') ? undefined : json['userName'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n };\n}\n\nexport function FcbApprenantHistoryGridDtoToJSON(value?: FcbApprenantHistoryGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idappenantHistory': value.idappenantHistory,\n 'iduser': value.iduser,\n 'idpersonne': value.idpersonne,\n 'idapprenant': value.idapprenant,\n 'action': value.action,\n 'actionType': value.actionType,\n 'actionDate': value.actionDate === undefined ? undefined : (value.actionDate.toISOString()),\n 'userName': value.userName,\n 'ifapmeSide': value.ifapmeSide,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbApprenantHistoryGridDto } from './FcbApprenantHistoryGridDto';\nimport {\n FcbApprenantHistoryGridDtoFromJSON,\n FcbApprenantHistoryGridDtoFromJSONTyped,\n FcbApprenantHistoryGridDtoToJSON,\n} from './FcbApprenantHistoryGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbApprenantHistoryGridDtoPaginatedResults\n */\nexport interface FcbApprenantHistoryGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantHistoryGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantHistoryGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantHistoryGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbApprenantHistoryGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbApprenantHistoryGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantHistoryGridDtoPaginatedResultsFromJSON(json: any): FcbApprenantHistoryGridDtoPaginatedResults {\n return FcbApprenantHistoryGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantHistoryGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantHistoryGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbApprenantHistoryGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbApprenantHistoryGridDtoPaginatedResultsToJSON(value?: FcbApprenantHistoryGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbApprenantHistoryGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbApprenantPresenceDetailDto\n */\nexport interface FcbApprenantPresenceDetailDto {\n /**\n * \n * @type {string}\n * @memberof FcbApprenantPresenceDetailDto\n */\n contrat?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantPresenceDetailDto\n */\n apprenant?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantPresenceDetailDto\n */\n idInscription?: number;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantPresenceDetailDto\n */\n idApprenant?: number;\n /**\n * \n * @type {{ [key: string]: string; }}\n * @memberof FcbApprenantPresenceDetailDto\n */\n statutClasseHoraire?: { [key: string]: string; } | null;\n}\n\n/**\n * Check if a given object implements the FcbApprenantPresenceDetailDto interface.\n */\nexport function instanceOfFcbApprenantPresenceDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantPresenceDetailDtoFromJSON(json: any): FcbApprenantPresenceDetailDto {\n return FcbApprenantPresenceDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantPresenceDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantPresenceDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'apprenant': !exists(json, 'apprenant') ? undefined : json['apprenant'],\n 'idInscription': !exists(json, 'idInscription') ? undefined : json['idInscription'],\n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'statutClasseHoraire': !exists(json, 'statutClasseHoraire') ? undefined : json['statutClasseHoraire'],\n };\n}\n\nexport function FcbApprenantPresenceDetailDtoToJSON(value?: FcbApprenantPresenceDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'contrat': value.contrat,\n 'apprenant': value.apprenant,\n 'idInscription': value.idInscription,\n 'idApprenant': value.idApprenant,\n 'statutClasseHoraire': value.statutClasseHoraire,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbApprenantPresenceDetailSaveDto\n */\nexport interface FcbApprenantPresenceDetailSaveDto {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantPresenceDetailSaveDto\n */\n idInscription?: number;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantPresenceDetailSaveDto\n */\n statut?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantPresenceDetailSaveDto\n */\n idClasseHoraire?: number;\n}\n\n/**\n * Check if a given object implements the FcbApprenantPresenceDetailSaveDto interface.\n */\nexport function instanceOfFcbApprenantPresenceDetailSaveDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantPresenceDetailSaveDtoFromJSON(json: any): FcbApprenantPresenceDetailSaveDto {\n return FcbApprenantPresenceDetailSaveDtoFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantPresenceDetailSaveDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantPresenceDetailSaveDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idInscription': !exists(json, 'idInscription') ? undefined : json['idInscription'],\n 'statut': !exists(json, 'statut') ? undefined : json['statut'],\n 'idClasseHoraire': !exists(json, 'idClasseHoraire') ? undefined : json['idClasseHoraire'],\n };\n}\n\nexport function FcbApprenantPresenceDetailSaveDtoToJSON(value?: FcbApprenantPresenceDetailSaveDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idInscription': value.idInscription,\n 'statut': value.statut,\n 'idClasseHoraire': value.idClasseHoraire,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbApprenantRepresentantDto\n */\nexport interface FcbApprenantRepresentantDto {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantRepresentantDto\n */\n idrepresentant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantRepresentantDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantRepresentantDto\n */\n lienParente?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantRepresentantDto\n */\n courrier?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantRepresentantDto\n */\n isEmergencyContact?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantRepresentantDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantRepresentantDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantRepresentantDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantRepresentantDto\n */\n modificationDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbApprenantRepresentantDto interface.\n */\nexport function instanceOfFcbApprenantRepresentantDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantRepresentantDtoFromJSON(json: any): FcbApprenantRepresentantDto {\n return FcbApprenantRepresentantDtoFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantRepresentantDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantRepresentantDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'lienParente': !exists(json, 'lienParente') ? undefined : json['lienParente'],\n 'courrier': !exists(json, 'courrier') ? undefined : json['courrier'],\n 'isEmergencyContact': !exists(json, 'isEmergencyContact') ? undefined : json['isEmergencyContact'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n };\n}\n\nexport function FcbApprenantRepresentantDtoToJSON(value?: FcbApprenantRepresentantDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrepresentant': value.idrepresentant,\n 'idapprenant': value.idapprenant,\n 'lienParente': value.lienParente,\n 'courrier': value.courrier,\n 'isEmergencyContact': value.isEmergencyContact,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbApprenantRepresentantGridDto\n */\nexport interface FcbApprenantRepresentantGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantRepresentantGridDto\n */\n idrepresentant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbApprenantRepresentantGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbApprenantRepresentantGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantRepresentantGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantRepresentantGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbApprenantRepresentantGridDto\n */\n lienParente?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantRepresentantGridDto\n */\n courrier?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbApprenantRepresentantGridDto\n */\n isEmergencyContact?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbApprenantRepresentantGridDto interface.\n */\nexport function instanceOfFcbApprenantRepresentantGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantRepresentantGridDtoFromJSON(json: any): FcbApprenantRepresentantGridDto {\n return FcbApprenantRepresentantGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantRepresentantGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantRepresentantGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'lienParente': !exists(json, 'lienParente') ? undefined : json['lienParente'],\n 'courrier': !exists(json, 'courrier') ? undefined : json['courrier'],\n 'isEmergencyContact': !exists(json, 'isEmergencyContact') ? undefined : json['isEmergencyContact'],\n };\n}\n\nexport function FcbApprenantRepresentantGridDtoToJSON(value?: FcbApprenantRepresentantGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrepresentant': value.idrepresentant,\n 'idapprenant': value.idapprenant,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'lienParente': value.lienParente,\n 'courrier': value.courrier,\n 'isEmergencyContact': value.isEmergencyContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbApprenantRepresentantGridDto } from './FcbApprenantRepresentantGridDto';\nimport {\n FcbApprenantRepresentantGridDtoFromJSON,\n FcbApprenantRepresentantGridDtoFromJSONTyped,\n FcbApprenantRepresentantGridDtoToJSON,\n} from './FcbApprenantRepresentantGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbApprenantRepresentantGridDtoPaginatedResults\n */\nexport interface FcbApprenantRepresentantGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbApprenantRepresentantGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantRepresentantGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbApprenantRepresentantGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbApprenantRepresentantGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbApprenantRepresentantGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbApprenantRepresentantGridDtoPaginatedResultsFromJSON(json: any): FcbApprenantRepresentantGridDtoPaginatedResults {\n return FcbApprenantRepresentantGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbApprenantRepresentantGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbApprenantRepresentantGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbApprenantRepresentantGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbApprenantRepresentantGridDtoPaginatedResultsToJSON(value?: FcbApprenantRepresentantGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbApprenantRepresentantGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbBulletinApprenantDto\n */\nexport interface FcbBulletinApprenantDto {\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n idbulletinApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n idgrade?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n totalGeneral?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n iddeliberationType?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantDto\n */\n modificationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantDto\n */\n degre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n idstade?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n max1sessSansDispense?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantDto\n */\n report?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantDto\n */\n isVisibleBulletin?: boolean;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantDto\n */\n classeName?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbBulletinApprenantDto interface.\n */\nexport function instanceOfFcbBulletinApprenantDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbBulletinApprenantDtoFromJSON(json: any): FcbBulletinApprenantDto {\n return FcbBulletinApprenantDtoFromJSONTyped(json, false);\n}\n\nexport function FcbBulletinApprenantDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbBulletinApprenantDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idbulletinApprenant': !exists(json, 'idbulletinApprenant') ? undefined : json['idbulletinApprenant'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idgrade': !exists(json, 'idgrade') ? undefined : json['idgrade'],\n 'totalGeneral': !exists(json, 'totalGeneral') ? undefined : json['totalGeneral'],\n 'iddeliberationType': !exists(json, 'iddeliberationType') ? undefined : json['iddeliberationType'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationUserName': !exists(json, 'modificationUserName') ? undefined : json['modificationUserName'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'max1sessSansDispense': !exists(json, 'max1sessSansDispense') ? undefined : json['max1sessSansDispense'],\n 'report': !exists(json, 'report') ? undefined : json['report'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'classeName': !exists(json, 'classeName') ? undefined : json['classeName'],\n };\n}\n\nexport function FcbBulletinApprenantDtoToJSON(value?: FcbBulletinApprenantDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idbulletinApprenant': value.idbulletinApprenant,\n 'idapprenant': value.idapprenant,\n 'idgrade': value.idgrade,\n 'totalGeneral': value.totalGeneral,\n 'iddeliberationType': value.iddeliberationType,\n 'idmetier': value.idmetier,\n 'modificationUser': value.modificationUser,\n 'modificationUserName': value.modificationUserName,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'degre': value.degre,\n 'idstade': value.idstade,\n 'max1sessSansDispense': value.max1sessSansDispense,\n 'report': value.report,\n 'anneeScolaire': value.anneeScolaire,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'classeName': value.classeName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbBulletinApprenantRecapitulatifGridDto\n */\nexport interface FcbBulletinApprenantRecapitulatifGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantRecapitulatifGridDto\n */\n idbulletinApprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantRecapitulatifGridDto\n */\n grade?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantRecapitulatifGridDto\n */\n idgrade?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantRecapitulatifGridDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantRecapitulatifGridDto\n */\n points?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantRecapitulatifGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantRecapitulatifGridDto\n */\n degre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantRecapitulatifGridDto\n */\n metier?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FcbBulletinApprenantRecapitulatifGridDto\n */\n isVisibleBulletin?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbBulletinApprenantRecapitulatifGridDto interface.\n */\nexport function instanceOfFcbBulletinApprenantRecapitulatifGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbBulletinApprenantRecapitulatifGridDtoFromJSON(json: any): FcbBulletinApprenantRecapitulatifGridDto {\n return FcbBulletinApprenantRecapitulatifGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbBulletinApprenantRecapitulatifGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbBulletinApprenantRecapitulatifGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idbulletinApprenant': !exists(json, 'idbulletinApprenant') ? undefined : json['idbulletinApprenant'],\n 'grade': !exists(json, 'grade') ? undefined : json['grade'],\n 'idgrade': !exists(json, 'idgrade') ? undefined : json['idgrade'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'points': !exists(json, 'points') ? undefined : json['points'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n };\n}\n\nexport function FcbBulletinApprenantRecapitulatifGridDtoToJSON(value?: FcbBulletinApprenantRecapitulatifGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idbulletinApprenant': value.idbulletinApprenant,\n 'grade': value.grade,\n 'idgrade': value.idgrade,\n 'idmetier': value.idmetier,\n 'points': value.points,\n 'anneeScolaire': value.anneeScolaire,\n 'degre': value.degre,\n 'metier': value.metier,\n 'isVisibleBulletin': value.isVisibleBulletin,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbBulletinApprenantRecapitulatifGridDto } from './FcbBulletinApprenantRecapitulatifGridDto';\nimport {\n FcbBulletinApprenantRecapitulatifGridDtoFromJSON,\n FcbBulletinApprenantRecapitulatifGridDtoFromJSONTyped,\n FcbBulletinApprenantRecapitulatifGridDtoToJSON,\n} from './FcbBulletinApprenantRecapitulatifGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults\n */\nexport interface FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbBulletinApprenantRecapitulatifGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsFromJSON(json: any): FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults {\n return FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbBulletinApprenantRecapitulatifGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbBulletinApprenantRecapitulatifGridDtoPaginatedResultsToJSON(value?: FcbBulletinApprenantRecapitulatifGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbBulletinApprenantRecapitulatifGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbResultatTypeBulletinSession2GridDto\n */\nexport interface FcbResultatTypeBulletinSession2GridDto {\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n matiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n idmatiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n codematiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n formateur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n exa?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n total?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n categorie?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n idbulletinInscriptionMatiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n idDeliberationType?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n idclasseMatiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n single?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n idinscription?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n idreferentiel?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n bulletinTotal?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n reussite?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbResultatTypeBulletinSession2GridDto\n */\n dispenseTotale?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbResultatTypeBulletinSession2GridDto interface.\n */\nexport function instanceOfFcbResultatTypeBulletinSession2GridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbResultatTypeBulletinSession2GridDtoFromJSON(json: any): FcbResultatTypeBulletinSession2GridDto {\n return FcbResultatTypeBulletinSession2GridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbResultatTypeBulletinSession2GridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbResultatTypeBulletinSession2GridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'matiere': !exists(json, 'matiere') ? undefined : json['matiere'],\n 'idmatiere': !exists(json, 'idmatiere') ? undefined : json['idmatiere'],\n 'codematiere': !exists(json, 'codematiere') ? undefined : json['codematiere'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'exa': !exists(json, 'exa') ? undefined : json['exa'],\n 'total': !exists(json, 'total') ? undefined : json['total'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'categorie': !exists(json, 'categorie') ? undefined : json['categorie'],\n 'idbulletinInscriptionMatiere': !exists(json, 'idbulletinInscriptionMatiere') ? undefined : json['idbulletinInscriptionMatiere'],\n 'idDeliberationType': !exists(json, 'idDeliberationType') ? undefined : json['idDeliberationType'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'single': !exists(json, 'single') ? undefined : json['single'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'bulletinTotal': !exists(json, 'bulletinTotal') ? undefined : json['bulletinTotal'],\n 'reussite': !exists(json, 'reussite') ? undefined : json['reussite'],\n 'dispenseTotale': !exists(json, 'dispenseTotale') ? undefined : json['dispenseTotale'],\n };\n}\n\nexport function FcbResultatTypeBulletinSession2GridDtoToJSON(value?: FcbResultatTypeBulletinSession2GridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'matiere': value.matiere,\n 'idmatiere': value.idmatiere,\n 'codematiere': value.codematiere,\n 'formateur': value.formateur,\n 'exa': value.exa,\n 'total': value.total,\n 'idclasse': value.idclasse,\n 'categorie': value.categorie,\n 'idbulletinInscriptionMatiere': value.idbulletinInscriptionMatiere,\n 'idDeliberationType': value.idDeliberationType,\n 'libelle': value.libelle,\n 'idclasseMatiere': value.idclasseMatiere,\n 'idapprenant': value.idapprenant,\n 'description': value.description,\n 'single': value.single,\n 'idinscription': value.idinscription,\n 'idreferentiel': value.idreferentiel,\n 'bulletinTotal': value.bulletinTotal,\n 'reussite': value.reussite,\n 'dispenseTotale': value.dispenseTotale,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbResultatTypeBulletinSession2GridDto } from './FcbResultatTypeBulletinSession2GridDto';\nimport {\n FcbResultatTypeBulletinSession2GridDtoFromJSON,\n FcbResultatTypeBulletinSession2GridDtoFromJSONTyped,\n FcbResultatTypeBulletinSession2GridDtoToJSON,\n} from './FcbResultatTypeBulletinSession2GridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbResultatTypeBulletinSession2GridDtoPaginatedResults\n */\nexport interface FcbResultatTypeBulletinSession2GridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeBulletinSession2GridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbResultatTypeBulletinSession2GridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbResultatTypeBulletinSession2GridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbResultatTypeBulletinSession2GridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbResultatTypeBulletinSession2GridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbResultatTypeBulletinSession2GridDtoPaginatedResultsFromJSON(json: any): FcbResultatTypeBulletinSession2GridDtoPaginatedResults {\n return FcbResultatTypeBulletinSession2GridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbResultatTypeBulletinSession2GridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbResultatTypeBulletinSession2GridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbResultatTypeBulletinSession2GridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbResultatTypeBulletinSession2GridDtoPaginatedResultsToJSON(value?: FcbResultatTypeBulletinSession2GridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbResultatTypeBulletinSession2GridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbResultatTypeEvaluationGridDto\n */\nexport interface FcbResultatTypeEvaluationGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n idclasseMatiere?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n typeEvaluation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n cote?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n coteRemediation?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n remediation?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n idevaluation?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n changeclasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n presence?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbResultatTypeEvaluationGridDto\n */\n neutralise?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbResultatTypeEvaluationGridDto interface.\n */\nexport function instanceOfFcbResultatTypeEvaluationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbResultatTypeEvaluationGridDtoFromJSON(json: any): FcbResultatTypeEvaluationGridDto {\n return FcbResultatTypeEvaluationGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbResultatTypeEvaluationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbResultatTypeEvaluationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'typeEvaluation': !exists(json, 'typeEvaluation') ? undefined : json['typeEvaluation'],\n 'cote': !exists(json, 'cote') ? undefined : json['cote'],\n 'coteRemediation': !exists(json, 'coteRemediation') ? undefined : json['coteRemediation'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'remediation': !exists(json, 'remediation') ? undefined : json['remediation'],\n 'idevaluation': !exists(json, 'idevaluation') ? undefined : json['idevaluation'],\n 'changeclasse': !exists(json, 'changeclasse') ? undefined : json['changeclasse'],\n 'presence': !exists(json, 'presence') ? undefined : json['presence'],\n 'neutralise': !exists(json, 'neutralise') ? undefined : json['neutralise'],\n };\n}\n\nexport function FcbResultatTypeEvaluationGridDtoToJSON(value?: FcbResultatTypeEvaluationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasseMatiere': value.idclasseMatiere,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'libelle': value.libelle,\n 'typeEvaluation': value.typeEvaluation,\n 'cote': value.cote,\n 'coteRemediation': value.coteRemediation,\n 'remarque': value.remarque,\n 'remediation': value.remediation,\n 'idevaluation': value.idevaluation,\n 'changeclasse': value.changeclasse,\n 'presence': value.presence,\n 'neutralise': value.neutralise,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbResultatTypeEvaluationGridDto } from './FcbResultatTypeEvaluationGridDto';\nimport {\n FcbResultatTypeEvaluationGridDtoFromJSON,\n FcbResultatTypeEvaluationGridDtoFromJSONTyped,\n FcbResultatTypeEvaluationGridDtoToJSON,\n} from './FcbResultatTypeEvaluationGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbResultatTypeEvaluationGridDtoPaginatedResults\n */\nexport interface FcbResultatTypeEvaluationGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeEvaluationGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbResultatTypeEvaluationGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbResultatTypeEvaluationGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbResultatTypeEvaluationGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbResultatTypeEvaluationGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbResultatTypeEvaluationGridDtoPaginatedResultsFromJSON(json: any): FcbResultatTypeEvaluationGridDtoPaginatedResults {\n return FcbResultatTypeEvaluationGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbResultatTypeEvaluationGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbResultatTypeEvaluationGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbResultatTypeEvaluationGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbResultatTypeEvaluationGridDtoPaginatedResultsToJSON(value?: FcbResultatTypeEvaluationGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbResultatTypeEvaluationGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbResultatTypeEvaluationGridDtoPaginatedResults } from './FcbResultatTypeEvaluationGridDtoPaginatedResults';\nimport {\n FcbResultatTypeEvaluationGridDtoPaginatedResultsFromJSON,\n FcbResultatTypeEvaluationGridDtoPaginatedResultsFromJSONTyped,\n FcbResultatTypeEvaluationGridDtoPaginatedResultsToJSON,\n} from './FcbResultatTypeEvaluationGridDtoPaginatedResults';\n\n/**\n * \n * @export\n * @interface FcbResultatTypeGridDto\n */\nexport interface FcbResultatTypeGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n matiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n codematiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n idmatiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n formateur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n tj?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n exa?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n total?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n categorie?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n idbulletininscriptionmatiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n idDeliberationType?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n idclassematiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n idinscription?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n bulletintotal?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n idreferentiel?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbResultatTypeGridDto\n */\n remediationconseil?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbResultatTypeGridDto\n */\n remediationobligatoire?: boolean;\n /**\n * \n * @type {Date}\n * @memberof FcbResultatTypeGridDto\n */\n date2sess?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n changeclasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbResultatTypeGridDto\n */\n totalmax?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n totaldenommax?: number;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n iddeliberationType?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n iddeliberationType2sess?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDto\n */\n reussite?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbResultatTypeGridDto\n */\n dispenseTotale?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbResultatTypeGridDto\n */\n readonly emptyEval?: boolean;\n /**\n * \n * @type {FcbResultatTypeEvaluationGridDtoPaginatedResults}\n * @memberof FcbResultatTypeGridDto\n */\n evaluations?: FcbResultatTypeEvaluationGridDtoPaginatedResults;\n}\n\n/**\n * Check if a given object implements the FcbResultatTypeGridDto interface.\n */\nexport function instanceOfFcbResultatTypeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbResultatTypeGridDtoFromJSON(json: any): FcbResultatTypeGridDto {\n return FcbResultatTypeGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbResultatTypeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbResultatTypeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'matiere': !exists(json, 'matiere') ? undefined : json['matiere'],\n 'codematiere': !exists(json, 'codematiere') ? undefined : json['codematiere'],\n 'idmatiere': !exists(json, 'idmatiere') ? undefined : json['idmatiere'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'tj': !exists(json, 'tj') ? undefined : json['tj'],\n 'exa': !exists(json, 'exa') ? undefined : json['exa'],\n 'total': !exists(json, 'total') ? undefined : json['total'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'categorie': !exists(json, 'categorie') ? undefined : json['categorie'],\n 'idbulletininscriptionmatiere': !exists(json, 'idbulletininscriptionmatiere') ? undefined : json['idbulletininscriptionmatiere'],\n 'idDeliberationType': !exists(json, 'idDeliberationType') ? undefined : json['idDeliberationType'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idclassematiere': !exists(json, 'idclassematiere') ? undefined : json['idclassematiere'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'bulletintotal': !exists(json, 'bulletintotal') ? undefined : json['bulletintotal'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'remediationconseil': !exists(json, 'remediationconseil') ? undefined : json['remediationconseil'],\n 'remediationobligatoire': !exists(json, 'remediationobligatoire') ? undefined : json['remediationobligatoire'],\n 'date2sess': !exists(json, 'date2sess') ? undefined : (json['date2sess'] === null ? null : new Date(json['date2sess'])),\n 'changeclasse': !exists(json, 'changeclasse') ? undefined : json['changeclasse'],\n 'totalmax': !exists(json, 'totalmax') ? undefined : json['totalmax'],\n 'totaldenommax': !exists(json, 'totaldenommax') ? undefined : json['totaldenommax'],\n 'iddeliberationType': !exists(json, 'iddeliberationType') ? undefined : json['iddeliberationType'],\n 'iddeliberationType2sess': !exists(json, 'iddeliberationType2sess') ? undefined : json['iddeliberationType2sess'],\n 'reussite': !exists(json, 'reussite') ? undefined : json['reussite'],\n 'dispenseTotale': !exists(json, 'dispenseTotale') ? undefined : json['dispenseTotale'],\n 'emptyEval': !exists(json, 'emptyEval') ? undefined : json['emptyEval'],\n 'evaluations': !exists(json, 'evaluations') ? undefined : FcbResultatTypeEvaluationGridDtoPaginatedResultsFromJSON(json['evaluations']),\n };\n}\n\nexport function FcbResultatTypeGridDtoToJSON(value?: FcbResultatTypeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'matiere': value.matiere,\n 'codematiere': value.codematiere,\n 'idmatiere': value.idmatiere,\n 'formateur': value.formateur,\n 'tj': value.tj,\n 'exa': value.exa,\n 'total': value.total,\n 'idclasse': value.idclasse,\n 'categorie': value.categorie,\n 'idbulletininscriptionmatiere': value.idbulletininscriptionmatiere,\n 'idDeliberationType': value.idDeliberationType,\n 'libelle': value.libelle,\n 'idclassematiere': value.idclassematiere,\n 'idapprenant': value.idapprenant,\n 'description': value.description,\n 'idinscription': value.idinscription,\n 'bulletintotal': value.bulletintotal,\n 'idreferentiel': value.idreferentiel,\n 'remediationconseil': value.remediationconseil,\n 'remediationobligatoire': value.remediationobligatoire,\n 'date2sess': value.date2sess === undefined ? undefined : (value.date2sess === null ? null : value.date2sess.toISOString()),\n 'changeclasse': value.changeclasse,\n 'totalmax': value.totalmax,\n 'totaldenommax': value.totaldenommax,\n 'iddeliberationType': value.iddeliberationType,\n 'iddeliberationType2sess': value.iddeliberationType2sess,\n 'reussite': value.reussite,\n 'dispenseTotale': value.dispenseTotale,\n 'evaluations': FcbResultatTypeEvaluationGridDtoPaginatedResultsToJSON(value.evaluations),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbResultatTypeGridDto } from './FcbResultatTypeGridDto';\nimport {\n FcbResultatTypeGridDtoFromJSON,\n FcbResultatTypeGridDtoFromJSONTyped,\n FcbResultatTypeGridDtoToJSON,\n} from './FcbResultatTypeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbResultatTypeGridDtoPaginatedResults\n */\nexport interface FcbResultatTypeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbResultatTypeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbResultatTypeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbResultatTypeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbResultatTypeGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbResultatTypeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbResultatTypeGridDtoPaginatedResultsFromJSON(json: any): FcbResultatTypeGridDtoPaginatedResults {\n return FcbResultatTypeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbResultatTypeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbResultatTypeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbResultatTypeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbResultatTypeGridDtoPaginatedResultsToJSON(value?: FcbResultatTypeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbResultatTypeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbResultatTypeBulletinSession2GridDtoPaginatedResults } from './FcbResultatTypeBulletinSession2GridDtoPaginatedResults';\nimport {\n FcbResultatTypeBulletinSession2GridDtoPaginatedResultsFromJSON,\n FcbResultatTypeBulletinSession2GridDtoPaginatedResultsFromJSONTyped,\n FcbResultatTypeBulletinSession2GridDtoPaginatedResultsToJSON,\n} from './FcbResultatTypeBulletinSession2GridDtoPaginatedResults';\nimport type { FcbResultatTypeGridDtoPaginatedResults } from './FcbResultatTypeGridDtoPaginatedResults';\nimport {\n FcbResultatTypeGridDtoPaginatedResultsFromJSON,\n FcbResultatTypeGridDtoPaginatedResultsFromJSONTyped,\n FcbResultatTypeGridDtoPaginatedResultsToJSON,\n} from './FcbResultatTypeGridDtoPaginatedResults';\n\n/**\n * \n * @export\n * @interface FcbBulletinApprenantTypeDetailDto\n */\nexport interface FcbBulletinApprenantTypeDetailDto {\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n userEncodage?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n totalTypeCours?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n readonly totalHeuresPresence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n readonly totalHeuresAbsences?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n readonly totalHeuresAbsencesJustifiees?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n readonly totalPointsSess1?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n readonly totalPointsDispenseSess1?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n readonly totalPointsApresDeliberationSess1?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n readonly totalPointsSess2?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n readonly totalPointsDispenseSess2?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n readonly totalPointsApresDeliberationSess2?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n isSecondeSession?: boolean;\n /**\n * \n * @type {Array}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n codeClasse?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n codeClasse2Sess?: Array | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n classeName?: string | null;\n /**\n * \n * @type {FcbResultatTypeGridDtoPaginatedResults}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n resultatsSession1?: FcbResultatTypeGridDtoPaginatedResults;\n /**\n * \n * @type {FcbResultatTypeBulletinSession2GridDtoPaginatedResults}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n resultatsSession2?: FcbResultatTypeBulletinSession2GridDtoPaginatedResults;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n sentToQueue?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n idbulletinApprenantType?: number;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n idtypeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n totalCalcule?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n totalDelibe?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n total1sess?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n max1sess?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n delibe1sess?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n totalCalcule2sess?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n totalDelibe2sess?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n total2sess?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n max2sess?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n delibe2sess?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n creationDate?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n max1sessSansDispense?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n modificationUserName?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n iddeliberationType?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n iddeliberationType2sess?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n remarqueDelibe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n remarqueDelibe2sess?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n dateRupture?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n dateAbandon?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n dateDeliberation?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n totalPresence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n pourcentagePresence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n pourcentageAbsence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n pourcentageAbsenceJustifiee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n totalPercent?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n totalAbsence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n totalAbsenceJustifiee?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n abandon?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n dateDeliberation2sess?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n degre?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n dispense?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n changementCentre?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n view2Sess?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n renvoi?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n isVisibleBulletin?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n validationDirection1sessBool?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n validationDirection2sessBool?: boolean;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n validationDirection1sess?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDetailDto\n */\n validationDirection2sess?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbBulletinApprenantTypeDetailDto interface.\n */\nexport function instanceOfFcbBulletinApprenantTypeDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbBulletinApprenantTypeDetailDtoFromJSON(json: any): FcbBulletinApprenantTypeDetailDto {\n return FcbBulletinApprenantTypeDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbBulletinApprenantTypeDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbBulletinApprenantTypeDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'userEncodage': !exists(json, 'userEncodage') ? undefined : json['userEncodage'],\n 'totalTypeCours': !exists(json, 'totalTypeCours') ? undefined : json['totalTypeCours'],\n 'totalHeuresPresence': !exists(json, 'totalHeuresPresence') ? undefined : json['totalHeuresPresence'],\n 'totalHeuresAbsences': !exists(json, 'totalHeuresAbsences') ? undefined : json['totalHeuresAbsences'],\n 'totalHeuresAbsencesJustifiees': !exists(json, 'totalHeuresAbsencesJustifiees') ? undefined : json['totalHeuresAbsencesJustifiees'],\n 'totalPointsSess1': !exists(json, 'totalPointsSess1') ? undefined : json['totalPointsSess1'],\n 'totalPointsDispenseSess1': !exists(json, 'totalPointsDispenseSess1') ? undefined : json['totalPointsDispenseSess1'],\n 'totalPointsApresDeliberationSess1': !exists(json, 'totalPointsApresDeliberationSess1') ? undefined : json['totalPointsApresDeliberationSess1'],\n 'totalPointsSess2': !exists(json, 'totalPointsSess2') ? undefined : json['totalPointsSess2'],\n 'totalPointsDispenseSess2': !exists(json, 'totalPointsDispenseSess2') ? undefined : json['totalPointsDispenseSess2'],\n 'totalPointsApresDeliberationSess2': !exists(json, 'totalPointsApresDeliberationSess2') ? undefined : json['totalPointsApresDeliberationSess2'],\n 'isSecondeSession': !exists(json, 'isSecondeSession') ? undefined : json['isSecondeSession'],\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : json['codeClasse'],\n 'codeClasse2Sess': !exists(json, 'codeClasse2Sess') ? undefined : json['codeClasse2Sess'],\n 'classeName': !exists(json, 'classeName') ? undefined : json['classeName'],\n 'resultatsSession1': !exists(json, 'resultatsSession1') ? undefined : FcbResultatTypeGridDtoPaginatedResultsFromJSON(json['resultatsSession1']),\n 'resultatsSession2': !exists(json, 'resultatsSession2') ? undefined : FcbResultatTypeBulletinSession2GridDtoPaginatedResultsFromJSON(json['resultatsSession2']),\n 'sentToQueue': !exists(json, 'sentToQueue') ? undefined : json['sentToQueue'],\n 'idbulletinApprenantType': !exists(json, 'idbulletinApprenantType') ? undefined : json['idbulletinApprenantType'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idtypeCours': !exists(json, 'idtypeCours') ? undefined : json['idtypeCours'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'totalCalcule': !exists(json, 'totalCalcule') ? undefined : json['totalCalcule'],\n 'totalDelibe': !exists(json, 'totalDelibe') ? undefined : json['totalDelibe'],\n 'total1sess': !exists(json, 'total1sess') ? undefined : json['total1sess'],\n 'max1sess': !exists(json, 'max1sess') ? undefined : json['max1sess'],\n 'delibe1sess': !exists(json, 'delibe1sess') ? undefined : json['delibe1sess'],\n 'totalCalcule2sess': !exists(json, 'totalCalcule2sess') ? undefined : json['totalCalcule2sess'],\n 'totalDelibe2sess': !exists(json, 'totalDelibe2sess') ? undefined : json['totalDelibe2sess'],\n 'total2sess': !exists(json, 'total2sess') ? undefined : json['total2sess'],\n 'max2sess': !exists(json, 'max2sess') ? undefined : json['max2sess'],\n 'delibe2sess': !exists(json, 'delibe2sess') ? undefined : json['delibe2sess'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'max1sessSansDispense': !exists(json, 'max1sessSansDispense') ? undefined : json['max1sessSansDispense'],\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationUserName': !exists(json, 'modificationUserName') ? undefined : json['modificationUserName'],\n 'iddeliberationType': !exists(json, 'iddeliberationType') ? undefined : json['iddeliberationType'],\n 'iddeliberationType2sess': !exists(json, 'iddeliberationType2sess') ? undefined : json['iddeliberationType2sess'],\n 'remarqueDelibe': !exists(json, 'remarqueDelibe') ? undefined : json['remarqueDelibe'],\n 'remarqueDelibe2sess': !exists(json, 'remarqueDelibe2sess') ? undefined : json['remarqueDelibe2sess'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'dateRupture': !exists(json, 'dateRupture') ? undefined : (json['dateRupture'] === null ? null : new Date(json['dateRupture'])),\n 'dateAbandon': !exists(json, 'dateAbandon') ? undefined : (json['dateAbandon'] === null ? null : new Date(json['dateAbandon'])),\n 'dateDeliberation': !exists(json, 'dateDeliberation') ? undefined : (json['dateDeliberation'] === null ? null : new Date(json['dateDeliberation'])),\n 'totalPresence': !exists(json, 'totalPresence') ? undefined : json['totalPresence'],\n 'pourcentagePresence': !exists(json, 'pourcentagePresence') ? undefined : json['pourcentagePresence'],\n 'pourcentageAbsence': !exists(json, 'pourcentageAbsence') ? undefined : json['pourcentageAbsence'],\n 'pourcentageAbsenceJustifiee': !exists(json, 'pourcentageAbsenceJustifiee') ? undefined : json['pourcentageAbsenceJustifiee'],\n 'totalPercent': !exists(json, 'totalPercent') ? undefined : json['totalPercent'],\n 'totalAbsence': !exists(json, 'totalAbsence') ? undefined : json['totalAbsence'],\n 'totalAbsenceJustifiee': !exists(json, 'totalAbsenceJustifiee') ? undefined : json['totalAbsenceJustifiee'],\n 'abandon': !exists(json, 'abandon') ? undefined : json['abandon'],\n 'dateDeliberation2sess': !exists(json, 'dateDeliberation2sess') ? undefined : (json['dateDeliberation2sess'] === null ? null : new Date(json['dateDeliberation2sess'])),\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'dispense': !exists(json, 'dispense') ? undefined : json['dispense'],\n 'changementCentre': !exists(json, 'changementCentre') ? undefined : json['changementCentre'],\n 'view2Sess': !exists(json, 'view2Sess') ? undefined : json['view2Sess'],\n 'renvoi': !exists(json, 'renvoi') ? undefined : json['renvoi'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'validationDirection1sessBool': !exists(json, 'validationDirection1sessBool') ? undefined : json['validationDirection1sessBool'],\n 'validationDirection2sessBool': !exists(json, 'validationDirection2sessBool') ? undefined : json['validationDirection2sessBool'],\n 'validationDirection1sess': !exists(json, 'validationDirection1sess') ? undefined : (json['validationDirection1sess'] === null ? null : new Date(json['validationDirection1sess'])),\n 'validationDirection2sess': !exists(json, 'validationDirection2sess') ? undefined : (json['validationDirection2sess'] === null ? null : new Date(json['validationDirection2sess'])),\n };\n}\n\nexport function FcbBulletinApprenantTypeDetailDtoToJSON(value?: FcbBulletinApprenantTypeDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'userEncodage': value.userEncodage,\n 'totalTypeCours': value.totalTypeCours,\n 'isSecondeSession': value.isSecondeSession,\n 'codeClasse': value.codeClasse,\n 'codeClasse2Sess': value.codeClasse2Sess,\n 'classeName': value.classeName,\n 'resultatsSession1': FcbResultatTypeGridDtoPaginatedResultsToJSON(value.resultatsSession1),\n 'resultatsSession2': FcbResultatTypeBulletinSession2GridDtoPaginatedResultsToJSON(value.resultatsSession2),\n 'sentToQueue': value.sentToQueue,\n 'idbulletinApprenantType': value.idbulletinApprenantType,\n 'idapprenant': value.idapprenant,\n 'idtypeCours': value.idtypeCours,\n 'anneeScolaire': value.anneeScolaire,\n 'totalCalcule': value.totalCalcule,\n 'totalDelibe': value.totalDelibe,\n 'total1sess': value.total1sess,\n 'max1sess': value.max1sess,\n 'delibe1sess': value.delibe1sess,\n 'totalCalcule2sess': value.totalCalcule2sess,\n 'totalDelibe2sess': value.totalDelibe2sess,\n 'total2sess': value.total2sess,\n 'max2sess': value.max2sess,\n 'delibe2sess': value.delibe2sess,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'max1sessSansDispense': value.max1sessSansDispense,\n 'modificationUser': value.modificationUser,\n 'modificationUserName': value.modificationUserName,\n 'iddeliberationType': value.iddeliberationType,\n 'iddeliberationType2sess': value.iddeliberationType2sess,\n 'remarqueDelibe': value.remarqueDelibe,\n 'remarqueDelibe2sess': value.remarqueDelibe2sess,\n 'idcentre': value.idcentre,\n 'dateRupture': value.dateRupture === undefined ? undefined : (value.dateRupture === null ? null : value.dateRupture.toISOString()),\n 'dateAbandon': value.dateAbandon === undefined ? undefined : (value.dateAbandon === null ? null : value.dateAbandon.toISOString()),\n 'dateDeliberation': value.dateDeliberation === undefined ? undefined : (value.dateDeliberation === null ? null : value.dateDeliberation.toISOString()),\n 'totalPresence': value.totalPresence,\n 'pourcentagePresence': value.pourcentagePresence,\n 'pourcentageAbsence': value.pourcentageAbsence,\n 'pourcentageAbsenceJustifiee': value.pourcentageAbsenceJustifiee,\n 'totalPercent': value.totalPercent,\n 'totalAbsence': value.totalAbsence,\n 'totalAbsenceJustifiee': value.totalAbsenceJustifiee,\n 'abandon': value.abandon,\n 'dateDeliberation2sess': value.dateDeliberation2sess === undefined ? undefined : (value.dateDeliberation2sess === null ? null : value.dateDeliberation2sess.toISOString()),\n 'idmetier': value.idmetier,\n 'degre': value.degre,\n 'dispense': value.dispense,\n 'changementCentre': value.changementCentre,\n 'view2Sess': value.view2Sess,\n 'renvoi': value.renvoi,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'validationDirection1sessBool': value.validationDirection1sessBool,\n 'validationDirection2sessBool': value.validationDirection2sessBool,\n 'validationDirection1sess': value.validationDirection1sess === undefined ? undefined : (value.validationDirection1sess === null ? null : value.validationDirection1sess.toISOString()),\n 'validationDirection2sess': value.validationDirection2sess === undefined ? undefined : (value.validationDirection2sess === null ? null : value.validationDirection2sess.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbBulletinApprenantTypeDto\n */\nexport interface FcbBulletinApprenantTypeDto {\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n idbulletinApprenantType?: number;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n idtypeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n totalCalcule?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n totalDelibe?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n total1sess?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n max1sess?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n delibe1sess?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n totalCalcule2sess?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n totalDelibe2sess?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n total2sess?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n max2sess?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n delibe2sess?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDto\n */\n creationDate?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n max1sessSansDispense?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n modificationUserName?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n iddeliberationType?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n iddeliberationType2sess?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n remarqueDelibe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n remarqueDelibe2sess?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDto\n */\n dateRupture?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDto\n */\n dateAbandon?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDto\n */\n dateDeliberation?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n totalPresence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n pourcentagePresence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n pourcentageAbsence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n pourcentageAbsenceJustifiee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n totalPercent?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n totalAbsence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n totalAbsenceJustifiee?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDto\n */\n abandon?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDto\n */\n dateDeliberation2sess?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeDto\n */\n degre?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDto\n */\n dispense?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDto\n */\n changementCentre?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDto\n */\n view2Sess?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDto\n */\n renvoi?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDto\n */\n isVisibleBulletin?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDto\n */\n validationDirection1sessBool?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeDto\n */\n validationDirection2sessBool?: boolean;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDto\n */\n validationDirection1sess?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeDto\n */\n validationDirection2sess?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbBulletinApprenantTypeDto interface.\n */\nexport function instanceOfFcbBulletinApprenantTypeDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbBulletinApprenantTypeDtoFromJSON(json: any): FcbBulletinApprenantTypeDto {\n return FcbBulletinApprenantTypeDtoFromJSONTyped(json, false);\n}\n\nexport function FcbBulletinApprenantTypeDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbBulletinApprenantTypeDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idbulletinApprenantType': !exists(json, 'idbulletinApprenantType') ? undefined : json['idbulletinApprenantType'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idtypeCours': !exists(json, 'idtypeCours') ? undefined : json['idtypeCours'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'totalCalcule': !exists(json, 'totalCalcule') ? undefined : json['totalCalcule'],\n 'totalDelibe': !exists(json, 'totalDelibe') ? undefined : json['totalDelibe'],\n 'total1sess': !exists(json, 'total1sess') ? undefined : json['total1sess'],\n 'max1sess': !exists(json, 'max1sess') ? undefined : json['max1sess'],\n 'delibe1sess': !exists(json, 'delibe1sess') ? undefined : json['delibe1sess'],\n 'totalCalcule2sess': !exists(json, 'totalCalcule2sess') ? undefined : json['totalCalcule2sess'],\n 'totalDelibe2sess': !exists(json, 'totalDelibe2sess') ? undefined : json['totalDelibe2sess'],\n 'total2sess': !exists(json, 'total2sess') ? undefined : json['total2sess'],\n 'max2sess': !exists(json, 'max2sess') ? undefined : json['max2sess'],\n 'delibe2sess': !exists(json, 'delibe2sess') ? undefined : json['delibe2sess'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'max1sessSansDispense': !exists(json, 'max1sessSansDispense') ? undefined : json['max1sessSansDispense'],\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationUserName': !exists(json, 'modificationUserName') ? undefined : json['modificationUserName'],\n 'iddeliberationType': !exists(json, 'iddeliberationType') ? undefined : json['iddeliberationType'],\n 'iddeliberationType2sess': !exists(json, 'iddeliberationType2sess') ? undefined : json['iddeliberationType2sess'],\n 'remarqueDelibe': !exists(json, 'remarqueDelibe') ? undefined : json['remarqueDelibe'],\n 'remarqueDelibe2sess': !exists(json, 'remarqueDelibe2sess') ? undefined : json['remarqueDelibe2sess'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'dateRupture': !exists(json, 'dateRupture') ? undefined : (json['dateRupture'] === null ? null : new Date(json['dateRupture'])),\n 'dateAbandon': !exists(json, 'dateAbandon') ? undefined : (json['dateAbandon'] === null ? null : new Date(json['dateAbandon'])),\n 'dateDeliberation': !exists(json, 'dateDeliberation') ? undefined : (json['dateDeliberation'] === null ? null : new Date(json['dateDeliberation'])),\n 'totalPresence': !exists(json, 'totalPresence') ? undefined : json['totalPresence'],\n 'pourcentagePresence': !exists(json, 'pourcentagePresence') ? undefined : json['pourcentagePresence'],\n 'pourcentageAbsence': !exists(json, 'pourcentageAbsence') ? undefined : json['pourcentageAbsence'],\n 'pourcentageAbsenceJustifiee': !exists(json, 'pourcentageAbsenceJustifiee') ? undefined : json['pourcentageAbsenceJustifiee'],\n 'totalPercent': !exists(json, 'totalPercent') ? undefined : json['totalPercent'],\n 'totalAbsence': !exists(json, 'totalAbsence') ? undefined : json['totalAbsence'],\n 'totalAbsenceJustifiee': !exists(json, 'totalAbsenceJustifiee') ? undefined : json['totalAbsenceJustifiee'],\n 'abandon': !exists(json, 'abandon') ? undefined : json['abandon'],\n 'dateDeliberation2sess': !exists(json, 'dateDeliberation2sess') ? undefined : (json['dateDeliberation2sess'] === null ? null : new Date(json['dateDeliberation2sess'])),\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'dispense': !exists(json, 'dispense') ? undefined : json['dispense'],\n 'changementCentre': !exists(json, 'changementCentre') ? undefined : json['changementCentre'],\n 'view2Sess': !exists(json, 'view2Sess') ? undefined : json['view2Sess'],\n 'renvoi': !exists(json, 'renvoi') ? undefined : json['renvoi'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'validationDirection1sessBool': !exists(json, 'validationDirection1sessBool') ? undefined : json['validationDirection1sessBool'],\n 'validationDirection2sessBool': !exists(json, 'validationDirection2sessBool') ? undefined : json['validationDirection2sessBool'],\n 'validationDirection1sess': !exists(json, 'validationDirection1sess') ? undefined : (json['validationDirection1sess'] === null ? null : new Date(json['validationDirection1sess'])),\n 'validationDirection2sess': !exists(json, 'validationDirection2sess') ? undefined : (json['validationDirection2sess'] === null ? null : new Date(json['validationDirection2sess'])),\n };\n}\n\nexport function FcbBulletinApprenantTypeDtoToJSON(value?: FcbBulletinApprenantTypeDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idbulletinApprenantType': value.idbulletinApprenantType,\n 'idapprenant': value.idapprenant,\n 'idtypeCours': value.idtypeCours,\n 'anneeScolaire': value.anneeScolaire,\n 'totalCalcule': value.totalCalcule,\n 'totalDelibe': value.totalDelibe,\n 'total1sess': value.total1sess,\n 'max1sess': value.max1sess,\n 'delibe1sess': value.delibe1sess,\n 'totalCalcule2sess': value.totalCalcule2sess,\n 'totalDelibe2sess': value.totalDelibe2sess,\n 'total2sess': value.total2sess,\n 'max2sess': value.max2sess,\n 'delibe2sess': value.delibe2sess,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'max1sessSansDispense': value.max1sessSansDispense,\n 'modificationUser': value.modificationUser,\n 'modificationUserName': value.modificationUserName,\n 'iddeliberationType': value.iddeliberationType,\n 'iddeliberationType2sess': value.iddeliberationType2sess,\n 'remarqueDelibe': value.remarqueDelibe,\n 'remarqueDelibe2sess': value.remarqueDelibe2sess,\n 'idcentre': value.idcentre,\n 'dateRupture': value.dateRupture === undefined ? undefined : (value.dateRupture === null ? null : value.dateRupture.toISOString()),\n 'dateAbandon': value.dateAbandon === undefined ? undefined : (value.dateAbandon === null ? null : value.dateAbandon.toISOString()),\n 'dateDeliberation': value.dateDeliberation === undefined ? undefined : (value.dateDeliberation === null ? null : value.dateDeliberation.toISOString()),\n 'totalPresence': value.totalPresence,\n 'pourcentagePresence': value.pourcentagePresence,\n 'pourcentageAbsence': value.pourcentageAbsence,\n 'pourcentageAbsenceJustifiee': value.pourcentageAbsenceJustifiee,\n 'totalPercent': value.totalPercent,\n 'totalAbsence': value.totalAbsence,\n 'totalAbsenceJustifiee': value.totalAbsenceJustifiee,\n 'abandon': value.abandon,\n 'dateDeliberation2sess': value.dateDeliberation2sess === undefined ? undefined : (value.dateDeliberation2sess === null ? null : value.dateDeliberation2sess.toISOString()),\n 'idmetier': value.idmetier,\n 'degre': value.degre,\n 'dispense': value.dispense,\n 'changementCentre': value.changementCentre,\n 'view2Sess': value.view2Sess,\n 'renvoi': value.renvoi,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'validationDirection1sessBool': value.validationDirection1sessBool,\n 'validationDirection2sessBool': value.validationDirection2sessBool,\n 'validationDirection1sess': value.validationDirection1sess === undefined ? undefined : (value.validationDirection1sess === null ? null : value.validationDirection1sess.toISOString()),\n 'validationDirection2sess': value.validationDirection2sess === undefined ? undefined : (value.validationDirection2sess === null ? null : value.validationDirection2sess.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbBulletinApprenantTypeSaveDto\n */\nexport interface FcbBulletinApprenantTypeSaveDto {\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n idbulletinApprenantType?: number;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n idtypeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n degre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n iddeliberationType?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n iddeliberationType2sess?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n remarqueDelibe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n remarqueDelibe2sess?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n dateDeliberation?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n dateDeliberation2sess?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n isSecondeSession?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n view2Sess?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n validationDirection1sessBool?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n validationDirection2sessBool?: boolean;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n validationDirection1sess?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbBulletinApprenantTypeSaveDto\n */\n validationDirection2sess?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbBulletinApprenantTypeSaveDto interface.\n */\nexport function instanceOfFcbBulletinApprenantTypeSaveDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbBulletinApprenantTypeSaveDtoFromJSON(json: any): FcbBulletinApprenantTypeSaveDto {\n return FcbBulletinApprenantTypeSaveDtoFromJSONTyped(json, false);\n}\n\nexport function FcbBulletinApprenantTypeSaveDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbBulletinApprenantTypeSaveDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idbulletinApprenantType': !exists(json, 'idbulletinApprenantType') ? undefined : json['idbulletinApprenantType'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idtypeCours': !exists(json, 'idtypeCours') ? undefined : json['idtypeCours'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'iddeliberationType': !exists(json, 'iddeliberationType') ? undefined : json['iddeliberationType'],\n 'iddeliberationType2sess': !exists(json, 'iddeliberationType2sess') ? undefined : json['iddeliberationType2sess'],\n 'remarqueDelibe': !exists(json, 'remarqueDelibe') ? undefined : json['remarqueDelibe'],\n 'remarqueDelibe2sess': !exists(json, 'remarqueDelibe2sess') ? undefined : json['remarqueDelibe2sess'],\n 'dateDeliberation': !exists(json, 'dateDeliberation') ? undefined : (json['dateDeliberation'] === null ? null : new Date(json['dateDeliberation'])),\n 'dateDeliberation2sess': !exists(json, 'dateDeliberation2sess') ? undefined : (json['dateDeliberation2sess'] === null ? null : new Date(json['dateDeliberation2sess'])),\n 'isSecondeSession': !exists(json, 'isSecondeSession') ? undefined : json['isSecondeSession'],\n 'view2Sess': !exists(json, 'view2Sess') ? undefined : json['view2Sess'],\n 'validationDirection1sessBool': !exists(json, 'validationDirection1sessBool') ? undefined : json['validationDirection1sessBool'],\n 'validationDirection2sessBool': !exists(json, 'validationDirection2sessBool') ? undefined : json['validationDirection2sessBool'],\n 'validationDirection1sess': !exists(json, 'validationDirection1sess') ? undefined : (json['validationDirection1sess'] === null ? null : new Date(json['validationDirection1sess'])),\n 'validationDirection2sess': !exists(json, 'validationDirection2sess') ? undefined : (json['validationDirection2sess'] === null ? null : new Date(json['validationDirection2sess'])),\n };\n}\n\nexport function FcbBulletinApprenantTypeSaveDtoToJSON(value?: FcbBulletinApprenantTypeSaveDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idbulletinApprenantType': value.idbulletinApprenantType,\n 'idapprenant': value.idapprenant,\n 'idtypeCours': value.idtypeCours,\n 'anneeScolaire': value.anneeScolaire,\n 'idcentre': value.idcentre,\n 'idmetier': value.idmetier,\n 'degre': value.degre,\n 'iddeliberationType': value.iddeliberationType,\n 'iddeliberationType2sess': value.iddeliberationType2sess,\n 'remarqueDelibe': value.remarqueDelibe,\n 'remarqueDelibe2sess': value.remarqueDelibe2sess,\n 'dateDeliberation': value.dateDeliberation === undefined ? undefined : (value.dateDeliberation === null ? null : value.dateDeliberation.toISOString()),\n 'dateDeliberation2sess': value.dateDeliberation2sess === undefined ? undefined : (value.dateDeliberation2sess === null ? null : value.dateDeliberation2sess.toISOString()),\n 'isSecondeSession': value.isSecondeSession,\n 'view2Sess': value.view2Sess,\n 'validationDirection1sessBool': value.validationDirection1sessBool,\n 'validationDirection2sessBool': value.validationDirection2sessBool,\n 'validationDirection1sess': value.validationDirection1sess === undefined ? undefined : (value.validationDirection1sess === null ? null : value.validationDirection1sess.toISOString()),\n 'validationDirection2sess': value.validationDirection2sess === undefined ? undefined : (value.validationDirection2sess === null ? null : value.validationDirection2sess.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbCalendrierDto\n */\nexport interface FcbCalendrierDto {\n /**\n * \n * @type {number}\n * @memberof FcbCalendrierDto\n */\n calendrierId?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbCalendrierDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbCalendrierDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbCalendrierDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbCalendrierDto\n */\n idCentre?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbCalendrierDto\n */\n conges?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbCalendrierDto interface.\n */\nexport function instanceOfFcbCalendrierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCalendrierDtoFromJSON(json: any): FcbCalendrierDto {\n return FcbCalendrierDtoFromJSONTyped(json, false);\n}\n\nexport function FcbCalendrierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCalendrierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'calendrierId': !exists(json, 'calendrierId') ? undefined : json['calendrierId'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idCentre': !exists(json, 'idCentre') ? undefined : json['idCentre'],\n 'conges': !exists(json, 'conges') ? undefined : json['conges'],\n };\n}\n\nexport function FcbCalendrierDtoToJSON(value?: FcbCalendrierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'calendrierId': value.calendrierId,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'libelle': value.libelle,\n 'idCentre': value.idCentre,\n 'conges': value.conges,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbCalendrierGridDto\n */\nexport interface FcbCalendrierGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbCalendrierGridDto\n */\n idcalendrier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbCalendrierGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCalendrierGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbCalendrierGridDto\n */\n dateDebut?: Date;\n /**\n * \n * @type {Date}\n * @memberof FcbCalendrierGridDto\n */\n dateFin?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbCalendrierGridDto\n */\n idcentre?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbCalendrierGridDto interface.\n */\nexport function instanceOfFcbCalendrierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCalendrierGridDtoFromJSON(json: any): FcbCalendrierGridDto {\n return FcbCalendrierGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbCalendrierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCalendrierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcalendrier': !exists(json, 'idcalendrier') ? undefined : json['idcalendrier'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (new Date(json['dateFin'])),\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n };\n}\n\nexport function FcbCalendrierGridDtoToJSON(value?: FcbCalendrierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcalendrier': value.idcalendrier,\n 'nom': value.nom,\n 'libelle': value.libelle,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin.toISOString()),\n 'idcentre': value.idcentre,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbCalendrierGridDto } from './FcbCalendrierGridDto';\nimport {\n FcbCalendrierGridDtoFromJSON,\n FcbCalendrierGridDtoFromJSONTyped,\n FcbCalendrierGridDtoToJSON,\n} from './FcbCalendrierGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbCalendrierGridDtoPaginatedResults\n */\nexport interface FcbCalendrierGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbCalendrierGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbCalendrierGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbCalendrierGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbCalendrierGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbCalendrierGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCalendrierGridDtoPaginatedResultsFromJSON(json: any): FcbCalendrierGridDtoPaginatedResults {\n return FcbCalendrierGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbCalendrierGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCalendrierGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbCalendrierGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbCalendrierGridDtoPaginatedResultsToJSON(value?: FcbCalendrierGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbCalendrierGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbCentreDto\n */\nexport interface FcbCentreDto {\n /**\n * \n * @type {number}\n * @memberof FcbCentreDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n code?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbCentreDto\n */\n iddirectionTerritoriale?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n telApp?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n telCe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n telFco?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n telCentral?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n telAutre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n faxApp?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n faxCe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n faxFo?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n faxAutre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n website?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n url?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n president?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n directeur?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbCentreDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbCentreDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbCentreDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbCentreDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n idcentreGuid?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreDto\n */\n signatureSms?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbCentreDto\n */\n identite?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbCentreDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbCentreDto\n */\n exterieur?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbCentreDto\n */\n iddirecteur?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbCentreDto interface.\n */\nexport function instanceOfFcbCentreDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCentreDtoFromJSON(json: any): FcbCentreDto {\n return FcbCentreDtoFromJSONTyped(json, false);\n}\n\nexport function FcbCentreDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCentreDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'iddirectionTerritoriale': !exists(json, 'iddirectionTerritoriale') ? undefined : json['iddirectionTerritoriale'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'telApp': !exists(json, 'telApp') ? undefined : json['telApp'],\n 'telCe': !exists(json, 'telCe') ? undefined : json['telCe'],\n 'telFco': !exists(json, 'telFco') ? undefined : json['telFco'],\n 'telCentral': !exists(json, 'telCentral') ? undefined : json['telCentral'],\n 'telAutre': !exists(json, 'telAutre') ? undefined : json['telAutre'],\n 'faxApp': !exists(json, 'faxApp') ? undefined : json['faxApp'],\n 'faxCe': !exists(json, 'faxCe') ? undefined : json['faxCe'],\n 'faxFo': !exists(json, 'faxFo') ? undefined : json['faxFo'],\n 'faxAutre': !exists(json, 'faxAutre') ? undefined : json['faxAutre'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'website': !exists(json, 'website') ? undefined : json['website'],\n 'url': !exists(json, 'url') ? undefined : json['url'],\n 'president': !exists(json, 'president') ? undefined : json['president'],\n 'directeur': !exists(json, 'directeur') ? undefined : json['directeur'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'idcentreGuid': !exists(json, 'idcentreGuid') ? undefined : json['idcentreGuid'],\n 'signatureSms': !exists(json, 'signatureSms') ? undefined : json['signatureSms'],\n 'identite': !exists(json, 'identite') ? undefined : json['identite'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'exterieur': !exists(json, 'exterieur') ? undefined : json['exterieur'],\n 'iddirecteur': !exists(json, 'iddirecteur') ? undefined : json['iddirecteur'],\n };\n}\n\nexport function FcbCentreDtoToJSON(value?: FcbCentreDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'codePays': value.codePays,\n 'code': value.code,\n 'iddirectionTerritoriale': value.iddirectionTerritoriale,\n 'localite': value.localite,\n 'nom': value.nom,\n 'adresse': value.adresse,\n 'codePostal': value.codePostal,\n 'commune': value.commune,\n 'telApp': value.telApp,\n 'telCe': value.telCe,\n 'telFco': value.telFco,\n 'telCentral': value.telCentral,\n 'telAutre': value.telAutre,\n 'faxApp': value.faxApp,\n 'faxCe': value.faxCe,\n 'faxFo': value.faxFo,\n 'faxAutre': value.faxAutre,\n 'email': value.email,\n 'website': value.website,\n 'url': value.url,\n 'president': value.president,\n 'directeur': value.directeur,\n 'creationUser': value.creationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'idcentreGuid': value.idcentreGuid,\n 'signatureSms': value.signatureSms,\n 'identite': value.identite,\n 'actif': value.actif,\n 'exterieur': value.exterieur,\n 'iddirecteur': value.iddirecteur,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbCentreGridDto\n */\nexport interface FcbCentreGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbCentreGridDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n telApp?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n telCe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n telFco?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n telCentral?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n telAutre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n faxApp?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n faxCe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n faxFo?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n faxAutre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n directeur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCentreGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbCentreGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbCentreGridDto interface.\n */\nexport function instanceOfFcbCentreGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCentreGridDtoFromJSON(json: any): FcbCentreGridDto {\n return FcbCentreGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbCentreGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCentreGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'telApp': !exists(json, 'telApp') ? undefined : json['telApp'],\n 'telCe': !exists(json, 'telCe') ? undefined : json['telCe'],\n 'telFco': !exists(json, 'telFco') ? undefined : json['telFco'],\n 'telCentral': !exists(json, 'telCentral') ? undefined : json['telCentral'],\n 'telAutre': !exists(json, 'telAutre') ? undefined : json['telAutre'],\n 'faxApp': !exists(json, 'faxApp') ? undefined : json['faxApp'],\n 'faxCe': !exists(json, 'faxCe') ? undefined : json['faxCe'],\n 'faxFo': !exists(json, 'faxFo') ? undefined : json['faxFo'],\n 'faxAutre': !exists(json, 'faxAutre') ? undefined : json['faxAutre'],\n 'directeur': !exists(json, 'directeur') ? undefined : json['directeur'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbCentreGridDtoToJSON(value?: FcbCentreGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'code': value.code,\n 'nom': value.nom,\n 'adresse': value.adresse,\n 'telApp': value.telApp,\n 'telCe': value.telCe,\n 'telFco': value.telFco,\n 'telCentral': value.telCentral,\n 'telAutre': value.telAutre,\n 'faxApp': value.faxApp,\n 'faxCe': value.faxCe,\n 'faxFo': value.faxFo,\n 'faxAutre': value.faxAutre,\n 'directeur': value.directeur,\n 'codePostal': value.codePostal,\n 'commune': value.commune,\n 'localite': value.localite,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbCentreGridDto } from './FcbCentreGridDto';\nimport {\n FcbCentreGridDtoFromJSON,\n FcbCentreGridDtoFromJSONTyped,\n FcbCentreGridDtoToJSON,\n} from './FcbCentreGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbCentreGridDtoPaginatedResults\n */\nexport interface FcbCentreGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbCentreGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbCentreGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbCentreGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbCentreGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbCentreGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCentreGridDtoPaginatedResultsFromJSON(json: any): FcbCentreGridDtoPaginatedResults {\n return FcbCentreGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbCentreGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCentreGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbCentreGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbCentreGridDtoPaginatedResultsToJSON(value?: FcbCentreGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbCentreGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbChangementClasseDto\n */\nexport interface FcbChangementClasseDto {\n /**\n * \n * @type {number}\n * @memberof FcbChangementClasseDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbChangementClasseDto\n */\n classesource?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbChangementClasseDto\n */\n classecible?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbChangementClasseDto\n */\n classecibleName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbChangementClasseDto\n */\n datechangement?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbChangementClasseDto\n */\n idchangementClasse?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbChangementClasseDto\n */\n datePrecedenteEntree?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbChangementClasseDto\n */\n isEditable?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbChangementClasseDto interface.\n */\nexport function instanceOfFcbChangementClasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbChangementClasseDtoFromJSON(json: any): FcbChangementClasseDto {\n return FcbChangementClasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbChangementClasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbChangementClasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'classesource': !exists(json, 'classesource') ? undefined : json['classesource'],\n 'classecible': !exists(json, 'classecible') ? undefined : json['classecible'],\n 'classecibleName': !exists(json, 'classecibleName') ? undefined : json['classecibleName'],\n 'datechangement': !exists(json, 'datechangement') ? undefined : (json['datechangement'] === null ? null : new Date(json['datechangement'])),\n 'idchangementClasse': !exists(json, 'idchangementClasse') ? undefined : json['idchangementClasse'],\n 'datePrecedenteEntree': !exists(json, 'datePrecedenteEntree') ? undefined : (json['datePrecedenteEntree'] === null ? null : new Date(json['datePrecedenteEntree'])),\n 'isEditable': !exists(json, 'isEditable') ? undefined : json['isEditable'],\n };\n}\n\nexport function FcbChangementClasseDtoToJSON(value?: FcbChangementClasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinscription': value.idinscription,\n 'classesource': value.classesource,\n 'classecible': value.classecible,\n 'classecibleName': value.classecibleName,\n 'datechangement': value.datechangement === undefined ? undefined : (value.datechangement === null ? null : value.datechangement.toISOString()),\n 'idchangementClasse': value.idchangementClasse,\n 'datePrecedenteEntree': value.datePrecedenteEntree === undefined ? undefined : (value.datePrecedenteEntree === null ? null : value.datePrecedenteEntree.toISOString()),\n 'isEditable': value.isEditable,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbChangementClasseGridDto\n */\nexport interface FcbChangementClasseGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbChangementClasseGridDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbChangementClasseGridDto\n */\n classesource?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbChangementClasseGridDto\n */\n classesourceLabel?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbChangementClasseGridDto\n */\n classecible?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbChangementClasseGridDto\n */\n classecibleLabel?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbChangementClasseGridDto\n */\n datechangement?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbChangementClasseGridDto\n */\n idchangementClasse?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbChangementClasseGridDto\n */\n isEditable?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbChangementClasseGridDto interface.\n */\nexport function instanceOfFcbChangementClasseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbChangementClasseGridDtoFromJSON(json: any): FcbChangementClasseGridDto {\n return FcbChangementClasseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbChangementClasseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbChangementClasseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'classesource': !exists(json, 'classesource') ? undefined : json['classesource'],\n 'classesourceLabel': !exists(json, 'classesourceLabel') ? undefined : json['classesourceLabel'],\n 'classecible': !exists(json, 'classecible') ? undefined : json['classecible'],\n 'classecibleLabel': !exists(json, 'classecibleLabel') ? undefined : json['classecibleLabel'],\n 'datechangement': !exists(json, 'datechangement') ? undefined : (json['datechangement'] === null ? null : new Date(json['datechangement'])),\n 'idchangementClasse': !exists(json, 'idchangementClasse') ? undefined : json['idchangementClasse'],\n 'isEditable': !exists(json, 'isEditable') ? undefined : json['isEditable'],\n };\n}\n\nexport function FcbChangementClasseGridDtoToJSON(value?: FcbChangementClasseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinscription': value.idinscription,\n 'classesource': value.classesource,\n 'classesourceLabel': value.classesourceLabel,\n 'classecible': value.classecible,\n 'classecibleLabel': value.classecibleLabel,\n 'datechangement': value.datechangement === undefined ? undefined : (value.datechangement === null ? null : value.datechangement.toISOString()),\n 'idchangementClasse': value.idchangementClasse,\n 'isEditable': value.isEditable,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbChangementClasseGridDto } from './FcbChangementClasseGridDto';\nimport {\n FcbChangementClasseGridDtoFromJSON,\n FcbChangementClasseGridDtoFromJSONTyped,\n FcbChangementClasseGridDtoToJSON,\n} from './FcbChangementClasseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbChangementClasseGridDtoPaginatedResults\n */\nexport interface FcbChangementClasseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbChangementClasseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbChangementClasseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbChangementClasseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbChangementClasseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbChangementClasseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbChangementClasseGridDtoPaginatedResultsFromJSON(json: any): FcbChangementClasseGridDtoPaginatedResults {\n return FcbChangementClasseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbChangementClasseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbChangementClasseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbChangementClasseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbChangementClasseGridDtoPaginatedResultsToJSON(value?: FcbChangementClasseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbChangementClasseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseApprenantGridDto\n */\nexport interface FcbClasseApprenantGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseApprenantGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseApprenantGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n codeInscription?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n statut?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseApprenantGridDto\n */\n gsm?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseApprenantGridDto interface.\n */\nexport function instanceOfFcbClasseApprenantGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseApprenantGridDtoFromJSON(json: any): FcbClasseApprenantGridDto {\n return FcbClasseApprenantGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseApprenantGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseApprenantGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'codeInscription': !exists(json, 'codeInscription') ? undefined : json['codeInscription'],\n 'statut': !exists(json, 'statut') ? undefined : json['statut'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n };\n}\n\nexport function FcbClasseApprenantGridDtoToJSON(value?: FcbClasseApprenantGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'codeInscription': value.codeInscription,\n 'statut': value.statut,\n 'adresse': value.adresse,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n 'commune': value.commune,\n 'telephone': value.telephone,\n 'gsm': value.gsm,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClasseApprenantGridDto } from './FcbClasseApprenantGridDto';\nimport {\n FcbClasseApprenantGridDtoFromJSON,\n FcbClasseApprenantGridDtoFromJSONTyped,\n FcbClasseApprenantGridDtoToJSON,\n} from './FcbClasseApprenantGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbClasseApprenantGridDtoPaginatedResults\n */\nexport interface FcbClasseApprenantGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbClasseApprenantGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseApprenantGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseApprenantGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseApprenantGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbClasseApprenantGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseApprenantGridDtoPaginatedResultsFromJSON(json: any): FcbClasseApprenantGridDtoPaginatedResults {\n return FcbClasseApprenantGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbClasseApprenantGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseApprenantGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbClasseApprenantGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbClasseApprenantGridDtoPaginatedResultsToJSON(value?: FcbClasseApprenantGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbClasseApprenantGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseCoutMatiereDto\n */\nexport interface FcbClasseCoutMatiereDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseCoutMatiereDto\n */\n coutInitial?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseCoutMatiereDto\n */\n nbrInscrits?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseCoutMatiereDto\n */\n coutGlobal?: number;\n}\n\n/**\n * Check if a given object implements the FcbClasseCoutMatiereDto interface.\n */\nexport function instanceOfFcbClasseCoutMatiereDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseCoutMatiereDtoFromJSON(json: any): FcbClasseCoutMatiereDto {\n return FcbClasseCoutMatiereDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseCoutMatiereDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseCoutMatiereDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'coutInitial': !exists(json, 'coutInitial') ? undefined : json['coutInitial'],\n 'nbrInscrits': !exists(json, 'nbrInscrits') ? undefined : json['nbrInscrits'],\n 'coutGlobal': !exists(json, 'coutGlobal') ? undefined : json['coutGlobal'],\n };\n}\n\nexport function FcbClasseCoutMatiereDtoToJSON(value?: FcbClasseCoutMatiereDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'coutInitial': value.coutInitial,\n 'nbrInscrits': value.nbrInscrits,\n 'coutGlobal': value.coutGlobal,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseDetailDto\n */\nexport interface FcbClasseDetailDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n heureReferentiel?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n statutAgrement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n horaireModificationUserName?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n horaireModificationDate?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseDetailDto\n */\n idsSocieteExterne?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n hasPresences?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n hasRemplacements?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idclasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n particulariteCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n iddegre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idcentre?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idmetier?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idlieu?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idsecteur?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n genre?: string;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n dateCours?: Date;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n horaireCoherent?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n agrement?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursLundi?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursLundiFin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursMardi?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursMardiFin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursMercredi?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursMercrediFin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursJeudi?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursJeudiFin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursVendredi?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursVendrediFin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursSamedi?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursSamediFin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursDimanche?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coursDimancheFin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idcalendrier?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idreferentiel?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idplage?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idlocalJour1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idlocalJour2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idlocalJour3?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idlocalJour4?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idlocalJour5?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idlocalJour6?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idlocalJour7?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n financementType?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n financementProjet?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n nbheuresSemestre1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n nbheuresSemestre2?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n fraisPoe?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n resultatLock?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n pcReussite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idtypeReussite?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n dateAgrement?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n codeclasse?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n examenc?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n fictif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n bloque?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n debloqueUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n debloqueDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idplanLocalisation?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idstatutLocalisation?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n dateLocalisation?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n nbapprenantLocalisation?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idstatutAgrement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n nbapprenantAgrement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idplanAgrement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n typeCoursLocalisation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n particulariteCoursLocalisation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n idgenreClasseLocalisation?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idmetierLocalisation?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n iddegreLocalisation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n remarqueCentre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n remarqueConseiller?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n gestionInterne?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n idconseillerLocalisation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n idconseillerAgrement?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n dateValidation?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n bloqueLocalisation?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n bloqueAgrement?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n uniteActivite?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n principale?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n deliberee?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n coutTotal?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n remarqueCentreAgrement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n remarqueConseillerAgrement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n gestionInterneAgrement?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n bloqueNbreApprenantAgrement?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseDetailDto\n */\n codeClasseGap?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n nbapprenantAgrementCalculated?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n horaireModificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseDetailDto\n */\n lastModificationDate?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseDetailDto\n */\n e8E9?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idtypeBulletin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseDetailDto\n */\n idcertification?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseDetailDto interface.\n */\nexport function instanceOfFcbClasseDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseDetailDtoFromJSON(json: any): FcbClasseDetailDto {\n return FcbClasseDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'heureReferentiel': !exists(json, 'heureReferentiel') ? undefined : json['heureReferentiel'],\n 'statutAgrement': !exists(json, 'statutAgrement') ? undefined : json['statutAgrement'],\n 'horaireModificationUserName': !exists(json, 'horaireModificationUserName') ? undefined : json['horaireModificationUserName'],\n 'horaireModificationDate': !exists(json, 'horaireModificationDate') ? undefined : json['horaireModificationDate'],\n 'idsSocieteExterne': !exists(json, 'idsSocieteExterne') ? undefined : json['idsSocieteExterne'],\n 'hasPresences': !exists(json, 'hasPresences') ? undefined : json['hasPresences'],\n 'hasRemplacements': !exists(json, 'hasRemplacements') ? undefined : json['hasRemplacements'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'particulariteCours': !exists(json, 'particulariteCours') ? undefined : json['particulariteCours'],\n 'iddegre': !exists(json, 'iddegre') ? undefined : json['iddegre'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idlieu': !exists(json, 'idlieu') ? undefined : json['idlieu'],\n 'idsecteur': !exists(json, 'idsecteur') ? undefined : json['idsecteur'],\n 'genre': !exists(json, 'genre') ? undefined : json['genre'],\n 'dateCours': !exists(json, 'dateCours') ? undefined : (new Date(json['dateCours'])),\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'horaireCoherent': !exists(json, 'horaireCoherent') ? undefined : json['horaireCoherent'],\n 'agrement': !exists(json, 'agrement') ? undefined : json['agrement'],\n 'coursLundi': !exists(json, 'coursLundi') ? undefined : json['coursLundi'],\n 'coursLundiFin': !exists(json, 'coursLundiFin') ? undefined : json['coursLundiFin'],\n 'coursMardi': !exists(json, 'coursMardi') ? undefined : json['coursMardi'],\n 'coursMardiFin': !exists(json, 'coursMardiFin') ? undefined : json['coursMardiFin'],\n 'coursMercredi': !exists(json, 'coursMercredi') ? undefined : json['coursMercredi'],\n 'coursMercrediFin': !exists(json, 'coursMercrediFin') ? undefined : json['coursMercrediFin'],\n 'coursJeudi': !exists(json, 'coursJeudi') ? undefined : json['coursJeudi'],\n 'coursJeudiFin': !exists(json, 'coursJeudiFin') ? undefined : json['coursJeudiFin'],\n 'coursVendredi': !exists(json, 'coursVendredi') ? undefined : json['coursVendredi'],\n 'coursVendrediFin': !exists(json, 'coursVendrediFin') ? undefined : json['coursVendrediFin'],\n 'coursSamedi': !exists(json, 'coursSamedi') ? undefined : json['coursSamedi'],\n 'coursSamediFin': !exists(json, 'coursSamediFin') ? undefined : json['coursSamediFin'],\n 'coursDimanche': !exists(json, 'coursDimanche') ? undefined : json['coursDimanche'],\n 'coursDimancheFin': !exists(json, 'coursDimancheFin') ? undefined : json['coursDimancheFin'],\n 'idcalendrier': !exists(json, 'idcalendrier') ? undefined : json['idcalendrier'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'idplage': !exists(json, 'idplage') ? undefined : json['idplage'],\n 'idlocalJour1': !exists(json, 'idlocalJour1') ? undefined : json['idlocalJour1'],\n 'idlocalJour2': !exists(json, 'idlocalJour2') ? undefined : json['idlocalJour2'],\n 'idlocalJour3': !exists(json, 'idlocalJour3') ? undefined : json['idlocalJour3'],\n 'idlocalJour4': !exists(json, 'idlocalJour4') ? undefined : json['idlocalJour4'],\n 'idlocalJour5': !exists(json, 'idlocalJour5') ? undefined : json['idlocalJour5'],\n 'idlocalJour6': !exists(json, 'idlocalJour6') ? undefined : json['idlocalJour6'],\n 'idlocalJour7': !exists(json, 'idlocalJour7') ? undefined : json['idlocalJour7'],\n 'financementType': !exists(json, 'financementType') ? undefined : json['financementType'],\n 'financementProjet': !exists(json, 'financementProjet') ? undefined : json['financementProjet'],\n 'nbheuresSemestre1': !exists(json, 'nbheuresSemestre1') ? undefined : json['nbheuresSemestre1'],\n 'nbheuresSemestre2': !exists(json, 'nbheuresSemestre2') ? undefined : json['nbheuresSemestre2'],\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'fraisPoe': !exists(json, 'fraisPoe') ? undefined : json['fraisPoe'],\n 'resultatLock': !exists(json, 'resultatLock') ? undefined : json['resultatLock'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'pcReussite': !exists(json, 'pcReussite') ? undefined : json['pcReussite'],\n 'idtypeReussite': !exists(json, 'idtypeReussite') ? undefined : json['idtypeReussite'],\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateAgrement': !exists(json, 'dateAgrement') ? undefined : (json['dateAgrement'] === null ? null : new Date(json['dateAgrement'])),\n 'codeclasse': !exists(json, 'codeclasse') ? undefined : json['codeclasse'],\n 'examenc': !exists(json, 'examenc') ? undefined : json['examenc'],\n 'fictif': !exists(json, 'fictif') ? undefined : json['fictif'],\n 'bloque': !exists(json, 'bloque') ? undefined : json['bloque'],\n 'debloqueUser': !exists(json, 'debloqueUser') ? undefined : json['debloqueUser'],\n 'debloqueDate': !exists(json, 'debloqueDate') ? undefined : (json['debloqueDate'] === null ? null : new Date(json['debloqueDate'])),\n 'idplanLocalisation': !exists(json, 'idplanLocalisation') ? undefined : json['idplanLocalisation'],\n 'idstatutLocalisation': !exists(json, 'idstatutLocalisation') ? undefined : json['idstatutLocalisation'],\n 'dateLocalisation': !exists(json, 'dateLocalisation') ? undefined : (json['dateLocalisation'] === null ? null : new Date(json['dateLocalisation'])),\n 'nbapprenantLocalisation': !exists(json, 'nbapprenantLocalisation') ? undefined : json['nbapprenantLocalisation'],\n 'idstatutAgrement': !exists(json, 'idstatutAgrement') ? undefined : json['idstatutAgrement'],\n 'nbapprenantAgrement': !exists(json, 'nbapprenantAgrement') ? undefined : json['nbapprenantAgrement'],\n 'idplanAgrement': !exists(json, 'idplanAgrement') ? undefined : json['idplanAgrement'],\n 'typeCoursLocalisation': !exists(json, 'typeCoursLocalisation') ? undefined : json['typeCoursLocalisation'],\n 'particulariteCoursLocalisation': !exists(json, 'particulariteCoursLocalisation') ? undefined : json['particulariteCoursLocalisation'],\n 'idgenreClasseLocalisation': !exists(json, 'idgenreClasseLocalisation') ? undefined : json['idgenreClasseLocalisation'],\n 'idmetierLocalisation': !exists(json, 'idmetierLocalisation') ? undefined : json['idmetierLocalisation'],\n 'iddegreLocalisation': !exists(json, 'iddegreLocalisation') ? undefined : json['iddegreLocalisation'],\n 'remarqueCentre': !exists(json, 'remarqueCentre') ? undefined : json['remarqueCentre'],\n 'remarqueConseiller': !exists(json, 'remarqueConseiller') ? undefined : json['remarqueConseiller'],\n 'gestionInterne': !exists(json, 'gestionInterne') ? undefined : json['gestionInterne'],\n 'idconseillerLocalisation': !exists(json, 'idconseillerLocalisation') ? undefined : json['idconseillerLocalisation'],\n 'idconseillerAgrement': !exists(json, 'idconseillerAgrement') ? undefined : json['idconseillerAgrement'],\n 'dateValidation': !exists(json, 'dateValidation') ? undefined : (json['dateValidation'] === null ? null : new Date(json['dateValidation'])),\n 'bloqueLocalisation': !exists(json, 'bloqueLocalisation') ? undefined : json['bloqueLocalisation'],\n 'bloqueAgrement': !exists(json, 'bloqueAgrement') ? undefined : json['bloqueAgrement'],\n 'uniteActivite': !exists(json, 'uniteActivite') ? undefined : json['uniteActivite'],\n 'principale': !exists(json, 'principale') ? undefined : json['principale'],\n 'deliberee': !exists(json, 'deliberee') ? undefined : json['deliberee'],\n 'coutTotal': !exists(json, 'coutTotal') ? undefined : json['coutTotal'],\n 'remarqueCentreAgrement': !exists(json, 'remarqueCentreAgrement') ? undefined : json['remarqueCentreAgrement'],\n 'remarqueConseillerAgrement': !exists(json, 'remarqueConseillerAgrement') ? undefined : json['remarqueConseillerAgrement'],\n 'gestionInterneAgrement': !exists(json, 'gestionInterneAgrement') ? undefined : json['gestionInterneAgrement'],\n 'bloqueNbreApprenantAgrement': !exists(json, 'bloqueNbreApprenantAgrement') ? undefined : json['bloqueNbreApprenantAgrement'],\n 'codeClasseGap': !exists(json, 'codeClasseGap') ? undefined : json['codeClasseGap'],\n 'nbapprenantAgrementCalculated': !exists(json, 'nbapprenantAgrementCalculated') ? undefined : json['nbapprenantAgrementCalculated'],\n 'horaireModificationUser': !exists(json, 'horaireModificationUser') ? undefined : json['horaireModificationUser'],\n 'lastModificationDate': !exists(json, 'lastModificationDate') ? undefined : (json['lastModificationDate'] === null ? null : new Date(json['lastModificationDate'])),\n 'e8E9': !exists(json, 'e8E9') ? undefined : json['e8E9'],\n 'idtypeBulletin': !exists(json, 'idtypeBulletin') ? undefined : json['idtypeBulletin'],\n 'idcertification': !exists(json, 'idcertification') ? undefined : json['idcertification'],\n };\n}\n\nexport function FcbClasseDetailDtoToJSON(value?: FcbClasseDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'heureReferentiel': value.heureReferentiel,\n 'statutAgrement': value.statutAgrement,\n 'horaireModificationUserName': value.horaireModificationUserName,\n 'horaireModificationDate': value.horaireModificationDate,\n 'idsSocieteExterne': value.idsSocieteExterne,\n 'hasPresences': value.hasPresences,\n 'hasRemplacements': value.hasRemplacements,\n 'idclasse': value.idclasse,\n 'particulariteCours': value.particulariteCours,\n 'iddegre': value.iddegre,\n 'idcentre': value.idcentre,\n 'idmetier': value.idmetier,\n 'idlieu': value.idlieu,\n 'idsecteur': value.idsecteur,\n 'genre': value.genre,\n 'dateCours': value.dateCours === undefined ? undefined : (value.dateCours.toISOString()),\n 'anneeAcademique': value.anneeAcademique,\n 'nom': value.nom,\n 'remarque': value.remarque,\n 'horaireCoherent': value.horaireCoherent,\n 'agrement': value.agrement,\n 'coursLundi': value.coursLundi,\n 'coursLundiFin': value.coursLundiFin,\n 'coursMardi': value.coursMardi,\n 'coursMardiFin': value.coursMardiFin,\n 'coursMercredi': value.coursMercredi,\n 'coursMercrediFin': value.coursMercrediFin,\n 'coursJeudi': value.coursJeudi,\n 'coursJeudiFin': value.coursJeudiFin,\n 'coursVendredi': value.coursVendredi,\n 'coursVendrediFin': value.coursVendrediFin,\n 'coursSamedi': value.coursSamedi,\n 'coursSamediFin': value.coursSamediFin,\n 'coursDimanche': value.coursDimanche,\n 'coursDimancheFin': value.coursDimancheFin,\n 'idcalendrier': value.idcalendrier,\n 'idreferentiel': value.idreferentiel,\n 'idplage': value.idplage,\n 'idlocalJour1': value.idlocalJour1,\n 'idlocalJour2': value.idlocalJour2,\n 'idlocalJour3': value.idlocalJour3,\n 'idlocalJour4': value.idlocalJour4,\n 'idlocalJour5': value.idlocalJour5,\n 'idlocalJour6': value.idlocalJour6,\n 'idlocalJour7': value.idlocalJour7,\n 'financementType': value.financementType,\n 'financementProjet': value.financementProjet,\n 'nbheuresSemestre1': value.nbheuresSemestre1,\n 'nbheuresSemestre2': value.nbheuresSemestre2,\n 'typeCours': value.typeCours,\n 'fraisPoe': value.fraisPoe,\n 'resultatLock': value.resultatLock,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'pcReussite': value.pcReussite,\n 'idtypeReussite': value.idtypeReussite,\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateAgrement': value.dateAgrement === undefined ? undefined : (value.dateAgrement === null ? null : value.dateAgrement.toISOString()),\n 'codeclasse': value.codeclasse,\n 'examenc': value.examenc,\n 'fictif': value.fictif,\n 'bloque': value.bloque,\n 'debloqueUser': value.debloqueUser,\n 'debloqueDate': value.debloqueDate === undefined ? undefined : (value.debloqueDate === null ? null : value.debloqueDate.toISOString()),\n 'idplanLocalisation': value.idplanLocalisation,\n 'idstatutLocalisation': value.idstatutLocalisation,\n 'dateLocalisation': value.dateLocalisation === undefined ? undefined : (value.dateLocalisation === null ? null : value.dateLocalisation.toISOString()),\n 'nbapprenantLocalisation': value.nbapprenantLocalisation,\n 'idstatutAgrement': value.idstatutAgrement,\n 'nbapprenantAgrement': value.nbapprenantAgrement,\n 'idplanAgrement': value.idplanAgrement,\n 'typeCoursLocalisation': value.typeCoursLocalisation,\n 'particulariteCoursLocalisation': value.particulariteCoursLocalisation,\n 'idgenreClasseLocalisation': value.idgenreClasseLocalisation,\n 'idmetierLocalisation': value.idmetierLocalisation,\n 'iddegreLocalisation': value.iddegreLocalisation,\n 'remarqueCentre': value.remarqueCentre,\n 'remarqueConseiller': value.remarqueConseiller,\n 'gestionInterne': value.gestionInterne,\n 'idconseillerLocalisation': value.idconseillerLocalisation,\n 'idconseillerAgrement': value.idconseillerAgrement,\n 'dateValidation': value.dateValidation === undefined ? undefined : (value.dateValidation === null ? null : value.dateValidation.toISOString()),\n 'bloqueLocalisation': value.bloqueLocalisation,\n 'bloqueAgrement': value.bloqueAgrement,\n 'uniteActivite': value.uniteActivite,\n 'principale': value.principale,\n 'deliberee': value.deliberee,\n 'coutTotal': value.coutTotal,\n 'remarqueCentreAgrement': value.remarqueCentreAgrement,\n 'remarqueConseillerAgrement': value.remarqueConseillerAgrement,\n 'gestionInterneAgrement': value.gestionInterneAgrement,\n 'bloqueNbreApprenantAgrement': value.bloqueNbreApprenantAgrement,\n 'codeClasseGap': value.codeClasseGap,\n 'nbapprenantAgrementCalculated': value.nbapprenantAgrementCalculated,\n 'horaireModificationUser': value.horaireModificationUser,\n 'lastModificationDate': value.lastModificationDate === undefined ? undefined : (value.lastModificationDate === null ? null : value.lastModificationDate.toISOString()),\n 'e8E9': value.e8E9,\n 'idtypeBulletin': value.idtypeBulletin,\n 'idcertification': value.idcertification,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseGridDto\n */\nexport interface FcbClasseGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseGridDto\n */\n annee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseGridDto\n */\n lieu?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseGridDto\n */\n horaireCoherent?: boolean;\n /**\n * \n * @type {string}\n * @memberof FcbClasseGridDto\n */\n referentiel?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseGridDto\n */\n heureS1?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseGridDto\n */\n heureS2?: number;\n}\n\n/**\n * Check if a given object implements the FcbClasseGridDto interface.\n */\nexport function instanceOfFcbClasseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseGridDtoFromJSON(json: any): FcbClasseGridDto {\n return FcbClasseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'lieu': !exists(json, 'lieu') ? undefined : json['lieu'],\n 'horaireCoherent': !exists(json, 'horaireCoherent') ? undefined : json['horaireCoherent'],\n 'referentiel': !exists(json, 'referentiel') ? undefined : json['referentiel'],\n 'heureS1': !exists(json, 'heureS1') ? undefined : json['heureS1'],\n 'heureS2': !exists(json, 'heureS2') ? undefined : json['heureS2'],\n };\n}\n\nexport function FcbClasseGridDtoToJSON(value?: FcbClasseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasse': value.idclasse,\n 'code': value.code,\n 'nom': value.nom,\n 'annee': value.annee,\n 'lieu': value.lieu,\n 'horaireCoherent': value.horaireCoherent,\n 'referentiel': value.referentiel,\n 'heureS1': value.heureS1,\n 'heureS2': value.heureS2,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClasseGridDto } from './FcbClasseGridDto';\nimport {\n FcbClasseGridDtoFromJSON,\n FcbClasseGridDtoFromJSONTyped,\n FcbClasseGridDtoToJSON,\n} from './FcbClasseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbClasseGridDtoPaginatedResults\n */\nexport interface FcbClasseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbClasseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbClasseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseGridDtoPaginatedResultsFromJSON(json: any): FcbClasseGridDtoPaginatedResults {\n return FcbClasseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbClasseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbClasseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbClasseGridDtoPaginatedResultsToJSON(value?: FcbClasseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbClasseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseHoraireCoherenceGridDto\n */\nexport interface FcbClasseHoraireCoherenceGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceGridDto\n */\n idclasseMatiere?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireCoherenceGridDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireCoherenceGridDto\n */\n code?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceGridDto\n */\n nbheures?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceGridDto\n */\n nbheuresPlanifie?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceGridDto\n */\n difference?: number;\n}\n\n/**\n * Check if a given object implements the FcbClasseHoraireCoherenceGridDto interface.\n */\nexport function instanceOfFcbClasseHoraireCoherenceGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHoraireCoherenceGridDtoFromJSON(json: any): FcbClasseHoraireCoherenceGridDto {\n return FcbClasseHoraireCoherenceGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHoraireCoherenceGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHoraireCoherenceGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nbheures': !exists(json, 'nbheures') ? undefined : json['nbheures'],\n 'nbheuresPlanifie': !exists(json, 'nbheuresPlanifie') ? undefined : json['nbheuresPlanifie'],\n 'difference': !exists(json, 'difference') ? undefined : json['difference'],\n };\n}\n\nexport function FcbClasseHoraireCoherenceGridDtoToJSON(value?: FcbClasseHoraireCoherenceGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasse': value.idclasse,\n 'idclasseMatiere': value.idclasseMatiere,\n 'description': value.description,\n 'code': value.code,\n 'nbheures': value.nbheures,\n 'nbheuresPlanifie': value.nbheuresPlanifie,\n 'difference': value.difference,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClasseHoraireCoherenceGridDto } from './FcbClasseHoraireCoherenceGridDto';\nimport {\n FcbClasseHoraireCoherenceGridDtoFromJSON,\n FcbClasseHoraireCoherenceGridDtoFromJSONTyped,\n FcbClasseHoraireCoherenceGridDtoToJSON,\n} from './FcbClasseHoraireCoherenceGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbClasseHoraireCoherenceGridDtoPaginatedResults\n */\nexport interface FcbClasseHoraireCoherenceGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseHoraireCoherenceGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseHoraireCoherenceGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseHoraireCoherenceGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbClasseHoraireCoherenceGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHoraireCoherenceGridDtoPaginatedResultsFromJSON(json: any): FcbClasseHoraireCoherenceGridDtoPaginatedResults {\n return FcbClasseHoraireCoherenceGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHoraireCoherenceGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHoraireCoherenceGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbClasseHoraireCoherenceGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbClasseHoraireCoherenceGridDtoPaginatedResultsToJSON(value?: FcbClasseHoraireCoherenceGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbClasseHoraireCoherenceGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseHoraireCoherenceSemestreGridDto\n */\nexport interface FcbClasseHoraireCoherenceSemestreGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceSemestreGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireCoherenceSemestreGridDto\n */\n semestre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireCoherenceSemestreGridDto\n */\n typeProjet?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceSemestreGridDto\n */\n nbheures?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceSemestreGridDto\n */\n nbheuresPlanifie?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceSemestreGridDto\n */\n difference?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseHoraireCoherenceSemestreGridDto interface.\n */\nexport function instanceOfFcbClasseHoraireCoherenceSemestreGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHoraireCoherenceSemestreGridDtoFromJSON(json: any): FcbClasseHoraireCoherenceSemestreGridDto {\n return FcbClasseHoraireCoherenceSemestreGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHoraireCoherenceSemestreGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHoraireCoherenceSemestreGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'semestre': !exists(json, 'semestre') ? undefined : json['semestre'],\n 'typeProjet': !exists(json, 'typeProjet') ? undefined : json['typeProjet'],\n 'nbheures': !exists(json, 'nbheures') ? undefined : json['nbheures'],\n 'nbheuresPlanifie': !exists(json, 'nbheuresPlanifie') ? undefined : json['nbheuresPlanifie'],\n 'difference': !exists(json, 'difference') ? undefined : json['difference'],\n };\n}\n\nexport function FcbClasseHoraireCoherenceSemestreGridDtoToJSON(value?: FcbClasseHoraireCoherenceSemestreGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasse': value.idclasse,\n 'semestre': value.semestre,\n 'typeProjet': value.typeProjet,\n 'nbheures': value.nbheures,\n 'nbheuresPlanifie': value.nbheuresPlanifie,\n 'difference': value.difference,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClasseHoraireCoherenceSemestreGridDto } from './FcbClasseHoraireCoherenceSemestreGridDto';\nimport {\n FcbClasseHoraireCoherenceSemestreGridDtoFromJSON,\n FcbClasseHoraireCoherenceSemestreGridDtoFromJSONTyped,\n FcbClasseHoraireCoherenceSemestreGridDtoToJSON,\n} from './FcbClasseHoraireCoherenceSemestreGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults\n */\nexport interface FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResultsFromJSON(json: any): FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults {\n return FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbClasseHoraireCoherenceSemestreGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResultsToJSON(value?: FcbClasseHoraireCoherenceSemestreGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbClasseHoraireCoherenceSemestreGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseHoraireIncoherenceGridDto\n */\nexport interface FcbClasseHoraireIncoherenceGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireIncoherenceGridDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseHoraireIncoherenceGridDto\n */\n jour?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireIncoherenceGridDto\n */\n heureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireIncoherenceGridDto\n */\n heureFin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireIncoherenceGridDto\n */\n local?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireIncoherenceGridDto\n */\n formateur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireIncoherenceGridDto\n */\n incoherence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireIncoherenceGridDto\n */\n typeIncoherence?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireIncoherenceGridDto\n */\n idtypeIncoherence?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseHoraireIncoherenceGridDto interface.\n */\nexport function instanceOfFcbClasseHoraireIncoherenceGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHoraireIncoherenceGridDtoFromJSON(json: any): FcbClasseHoraireIncoherenceGridDto {\n return FcbClasseHoraireIncoherenceGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHoraireIncoherenceGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHoraireIncoherenceGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'jour': !exists(json, 'jour') ? undefined : (json['jour'] === null ? null : new Date(json['jour'])),\n 'heureDebut': !exists(json, 'heureDebut') ? undefined : json['heureDebut'],\n 'heureFin': !exists(json, 'heureFin') ? undefined : json['heureFin'],\n 'local': !exists(json, 'local') ? undefined : json['local'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'incoherence': !exists(json, 'incoherence') ? undefined : json['incoherence'],\n 'typeIncoherence': !exists(json, 'typeIncoherence') ? undefined : json['typeIncoherence'],\n 'idtypeIncoherence': !exists(json, 'idtypeIncoherence') ? undefined : json['idtypeIncoherence'],\n };\n}\n\nexport function FcbClasseHoraireIncoherenceGridDtoToJSON(value?: FcbClasseHoraireIncoherenceGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasse': value.idclasse,\n 'jour': value.jour === undefined ? undefined : (value.jour === null ? null : value.jour.toISOString()),\n 'heureDebut': value.heureDebut,\n 'heureFin': value.heureFin,\n 'local': value.local,\n 'formateur': value.formateur,\n 'incoherence': value.incoherence,\n 'typeIncoherence': value.typeIncoherence,\n 'idtypeIncoherence': value.idtypeIncoherence,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClasseHoraireIncoherenceGridDto } from './FcbClasseHoraireIncoherenceGridDto';\nimport {\n FcbClasseHoraireIncoherenceGridDtoFromJSON,\n FcbClasseHoraireIncoherenceGridDtoFromJSONTyped,\n FcbClasseHoraireIncoherenceGridDtoToJSON,\n} from './FcbClasseHoraireIncoherenceGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbClasseHoraireIncoherenceGridDtoPaginatedResults\n */\nexport interface FcbClasseHoraireIncoherenceGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireIncoherenceGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseHoraireIncoherenceGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseHoraireIncoherenceGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseHoraireIncoherenceGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbClasseHoraireIncoherenceGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHoraireIncoherenceGridDtoPaginatedResultsFromJSON(json: any): FcbClasseHoraireIncoherenceGridDtoPaginatedResults {\n return FcbClasseHoraireIncoherenceGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHoraireIncoherenceGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHoraireIncoherenceGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbClasseHoraireIncoherenceGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbClasseHoraireIncoherenceGridDtoPaginatedResultsToJSON(value?: FcbClasseHoraireIncoherenceGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbClasseHoraireIncoherenceGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseHoraireMatiereGridDto\n */\nexport interface FcbClasseHoraireMatiereGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireMatiereGridDto\n */\n idClasseMatiere?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireMatiereGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireMatiereGridDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseHoraireMatiereGridDto\n */\n formateur?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireMatiereGridDto\n */\n nbHeures?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireMatiereGridDto\n */\n nbHeuresReelles?: number;\n}\n\n/**\n * Check if a given object implements the FcbClasseHoraireMatiereGridDto interface.\n */\nexport function instanceOfFcbClasseHoraireMatiereGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHoraireMatiereGridDtoFromJSON(json: any): FcbClasseHoraireMatiereGridDto {\n return FcbClasseHoraireMatiereGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHoraireMatiereGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHoraireMatiereGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasseMatiere': !exists(json, 'idClasseMatiere') ? undefined : json['idClasseMatiere'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'nbHeures': !exists(json, 'nbHeures') ? undefined : json['nbHeures'],\n 'nbHeuresReelles': !exists(json, 'nbHeuresReelles') ? undefined : json['nbHeuresReelles'],\n };\n}\n\nexport function FcbClasseHoraireMatiereGridDtoToJSON(value?: FcbClasseHoraireMatiereGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasseMatiere': value.idClasseMatiere,\n 'code': value.code,\n 'description': value.description,\n 'formateur': value.formateur,\n 'nbHeures': value.nbHeures,\n 'nbHeuresReelles': value.nbHeuresReelles,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClasseHoraireMatiereGridDto } from './FcbClasseHoraireMatiereGridDto';\nimport {\n FcbClasseHoraireMatiereGridDtoFromJSON,\n FcbClasseHoraireMatiereGridDtoFromJSONTyped,\n FcbClasseHoraireMatiereGridDtoToJSON,\n} from './FcbClasseHoraireMatiereGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbClasseHoraireMatiereGridDtoPaginatedResults\n */\nexport interface FcbClasseHoraireMatiereGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireMatiereGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseHoraireMatiereGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseHoraireMatiereGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseHoraireMatiereGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbClasseHoraireMatiereGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHoraireMatiereGridDtoPaginatedResultsFromJSON(json: any): FcbClasseHoraireMatiereGridDtoPaginatedResults {\n return FcbClasseHoraireMatiereGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHoraireMatiereGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHoraireMatiereGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbClasseHoraireMatiereGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbClasseHoraireMatiereGridDtoPaginatedResultsToJSON(value?: FcbClasseHoraireMatiereGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbClasseHoraireMatiereGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseHoraireRemplacementDto\n */\nexport interface FcbClasseHoraireRemplacementDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireRemplacementDto\n */\n idremplacement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireRemplacementDto\n */\n idclasseHoraire?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireRemplacementDto\n */\n idremplacant?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseHoraireRemplacementDto\n */\n reporte?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireRemplacementDto\n */\n idformateurLocalisationContrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseHoraireRemplacementDto\n */\n idformateurLocalisationContratRemplace?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseHoraireRemplacementDto interface.\n */\nexport function instanceOfFcbClasseHoraireRemplacementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHoraireRemplacementDtoFromJSON(json: any): FcbClasseHoraireRemplacementDto {\n return FcbClasseHoraireRemplacementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHoraireRemplacementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHoraireRemplacementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idremplacement': !exists(json, 'idremplacement') ? undefined : json['idremplacement'],\n 'idclasseHoraire': !exists(json, 'idclasseHoraire') ? undefined : json['idclasseHoraire'],\n 'idremplacant': !exists(json, 'idremplacant') ? undefined : json['idremplacant'],\n 'reporte': !exists(json, 'reporte') ? undefined : json['reporte'],\n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n 'idformateurLocalisationContratRemplace': !exists(json, 'idformateurLocalisationContratRemplace') ? undefined : json['idformateurLocalisationContratRemplace'],\n };\n}\n\nexport function FcbClasseHoraireRemplacementDtoToJSON(value?: FcbClasseHoraireRemplacementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idremplacement': value.idremplacement,\n 'idclasseHoraire': value.idclasseHoraire,\n 'idremplacant': value.idremplacant,\n 'reporte': value.reporte,\n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n 'idformateurLocalisationContratRemplace': value.idformateurLocalisationContratRemplace,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ClassHoraireDto } from './ClassHoraireDto';\nimport {\n ClassHoraireDtoFromJSON,\n ClassHoraireDtoFromJSONTyped,\n ClassHoraireDtoToJSON,\n} from './ClassHoraireDto';\n\n/**\n * \n * @export\n * @interface FcbClasseHorairesDto\n */\nexport interface FcbClasseHorairesDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseHorairesDto\n */\n classeId?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseHorairesDto\n */\n classeHoraires?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseHorairesDto interface.\n */\nexport function instanceOfFcbClasseHorairesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseHorairesDtoFromJSON(json: any): FcbClasseHorairesDto {\n return FcbClasseHorairesDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseHorairesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseHorairesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'classeId': !exists(json, 'classeId') ? undefined : json['classeId'],\n 'classeHoraires': !exists(json, 'classeHoraires') ? undefined : (json['classeHoraires'] === null ? null : (json['classeHoraires'] as Array).map(ClassHoraireDtoFromJSON)),\n };\n}\n\nexport function FcbClasseHorairesDtoToJSON(value?: FcbClasseHorairesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'classeId': value.classeId,\n 'classeHoraires': value.classeHoraires === undefined ? undefined : (value.classeHoraires === null ? null : (value.classeHoraires as Array).map(ClassHoraireDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseMatiereCutGridDto\n */\nexport interface FcbClasseMatiereCutGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n idclasseMatiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereCutGridDto\n */\n idmatiere?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n idreferentiel?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereCutGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereCutGridDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n section?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n nbHeures?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n travail?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n examen?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n reussite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n idlocal?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutGridDto\n */\n niveau?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereCutGridDto\n */\n matiereParent?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereCutGridDto\n */\n uaa?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereCutGridDto\n */\n isVisibleBulletin?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereCutGridDto\n */\n sommative?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseMatiereCutGridDto interface.\n */\nexport function instanceOfFcbClasseMatiereCutGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseMatiereCutGridDtoFromJSON(json: any): FcbClasseMatiereCutGridDto {\n return FcbClasseMatiereCutGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseMatiereCutGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseMatiereCutGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idmatiere': !exists(json, 'idmatiere') ? undefined : json['idmatiere'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'section': !exists(json, 'section') ? undefined : json['section'],\n 'nbHeures': !exists(json, 'nbHeures') ? undefined : json['nbHeures'],\n 'travail': !exists(json, 'travail') ? undefined : json['travail'],\n 'examen': !exists(json, 'examen') ? undefined : json['examen'],\n 'reussite': !exists(json, 'reussite') ? undefined : json['reussite'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idlocal': !exists(json, 'idlocal') ? undefined : json['idlocal'],\n 'niveau': !exists(json, 'niveau') ? undefined : json['niveau'],\n 'matiereParent': !exists(json, 'matiereParent') ? undefined : json['matiereParent'],\n 'uaa': !exists(json, 'uaa') ? undefined : json['uaa'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'sommative': !exists(json, 'sommative') ? undefined : json['sommative'],\n };\n}\n\nexport function FcbClasseMatiereCutGridDtoToJSON(value?: FcbClasseMatiereCutGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasseMatiere': value.idclasseMatiere,\n 'idclasse': value.idclasse,\n 'idmatiere': value.idmatiere,\n 'idreferentiel': value.idreferentiel,\n 'code': value.code,\n 'description': value.description,\n 'section': value.section,\n 'nbHeures': value.nbHeures,\n 'travail': value.travail,\n 'examen': value.examen,\n 'reussite': value.reussite,\n 'idformateur': value.idformateur,\n 'idcontrat': value.idcontrat,\n 'idlocal': value.idlocal,\n 'niveau': value.niveau,\n 'matiereParent': value.matiereParent,\n 'uaa': value.uaa,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'sommative': value.sommative,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClasseMatiereCutGridDto } from './FcbClasseMatiereCutGridDto';\nimport {\n FcbClasseMatiereCutGridDtoFromJSON,\n FcbClasseMatiereCutGridDtoFromJSONTyped,\n FcbClasseMatiereCutGridDtoToJSON,\n} from './FcbClasseMatiereCutGridDto';\n\n/**\n * \n * @export\n * @interface FcbClasseMatiereCutDto\n */\nexport interface FcbClasseMatiereCutDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutDto\n */\n idClasseMatiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutDto\n */\n totalNbHeures?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutDto\n */\n totalPoints?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutDto\n */\n totalExamen?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereCutDto\n */\n niveau?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereCutDto\n */\n uaa?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereCutDto\n */\n isVisibleBulletin?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereCutDto\n */\n sommative?: boolean | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseMatiereCutDto\n */\n cutData?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseMatiereCutDto interface.\n */\nexport function instanceOfFcbClasseMatiereCutDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseMatiereCutDtoFromJSON(json: any): FcbClasseMatiereCutDto {\n return FcbClasseMatiereCutDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseMatiereCutDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseMatiereCutDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasseMatiere': !exists(json, 'idClasseMatiere') ? undefined : json['idClasseMatiere'],\n 'totalNbHeures': !exists(json, 'totalNbHeures') ? undefined : json['totalNbHeures'],\n 'totalPoints': !exists(json, 'totalPoints') ? undefined : json['totalPoints'],\n 'totalExamen': !exists(json, 'totalExamen') ? undefined : json['totalExamen'],\n 'niveau': !exists(json, 'niveau') ? undefined : json['niveau'],\n 'uaa': !exists(json, 'uaa') ? undefined : json['uaa'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'sommative': !exists(json, 'sommative') ? undefined : json['sommative'],\n 'cutData': !exists(json, 'cutData') ? undefined : (json['cutData'] === null ? null : (json['cutData'] as Array).map(FcbClasseMatiereCutGridDtoFromJSON)),\n };\n}\n\nexport function FcbClasseMatiereCutDtoToJSON(value?: FcbClasseMatiereCutDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasseMatiere': value.idClasseMatiere,\n 'totalNbHeures': value.totalNbHeures,\n 'totalPoints': value.totalPoints,\n 'totalExamen': value.totalExamen,\n 'niveau': value.niveau,\n 'uaa': value.uaa,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'sommative': value.sommative,\n 'cutData': value.cutData === undefined ? undefined : (value.cutData === null ? null : (value.cutData as Array).map(FcbClasseMatiereCutGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseMatiereGridDto\n */\nexport interface FcbClasseMatiereGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n idclasseMatiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereGridDto\n */\n formateur?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n idformateurLocalisationContrat?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereGridDto\n */\n contrat?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n idlocal?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereGridDto\n */\n local?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereGridDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n nbheures?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n travail?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n examen?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n pcReussite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n idprojetFinancement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereGridDto\n */\n projetFinancement?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereGridDto\n */\n hasHoraires?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDto\n */\n niveau?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseMatiereGridDto\n */\n matiereParent?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereGridDto\n */\n uaa?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereGridDto\n */\n isVisibleBulletin?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMatiereGridDto\n */\n sommative?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseMatiereGridDto interface.\n */\nexport function instanceOfFcbClasseMatiereGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseMatiereGridDtoFromJSON(json: any): FcbClasseMatiereGridDto {\n return FcbClasseMatiereGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseMatiereGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseMatiereGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'idlocal': !exists(json, 'idlocal') ? undefined : json['idlocal'],\n 'local': !exists(json, 'local') ? undefined : json['local'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'nbheures': !exists(json, 'nbheures') ? undefined : json['nbheures'],\n 'travail': !exists(json, 'travail') ? undefined : json['travail'],\n 'examen': !exists(json, 'examen') ? undefined : json['examen'],\n 'pcReussite': !exists(json, 'pcReussite') ? undefined : json['pcReussite'],\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'projetFinancement': !exists(json, 'projetFinancement') ? undefined : json['projetFinancement'],\n 'hasHoraires': !exists(json, 'hasHoraires') ? undefined : json['hasHoraires'],\n 'niveau': !exists(json, 'niveau') ? undefined : json['niveau'],\n 'matiereParent': !exists(json, 'matiereParent') ? undefined : json['matiereParent'],\n 'uaa': !exists(json, 'uaa') ? undefined : json['uaa'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'sommative': !exists(json, 'sommative') ? undefined : json['sommative'],\n };\n}\n\nexport function FcbClasseMatiereGridDtoToJSON(value?: FcbClasseMatiereGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasseMatiere': value.idclasseMatiere,\n 'idclasse': value.idclasse,\n 'idformateur': value.idformateur,\n 'formateur': value.formateur,\n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n 'contrat': value.contrat,\n 'idlocal': value.idlocal,\n 'local': value.local,\n 'code': value.code,\n 'description': value.description,\n 'nbheures': value.nbheures,\n 'travail': value.travail,\n 'examen': value.examen,\n 'pcReussite': value.pcReussite,\n 'idprojetFinancement': value.idprojetFinancement,\n 'projetFinancement': value.projetFinancement,\n 'hasHoraires': value.hasHoraires,\n 'niveau': value.niveau,\n 'matiereParent': value.matiereParent,\n 'uaa': value.uaa,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'sommative': value.sommative,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClasseMatiereGridDto } from './FcbClasseMatiereGridDto';\nimport {\n FcbClasseMatiereGridDtoFromJSON,\n FcbClasseMatiereGridDtoFromJSONTyped,\n FcbClasseMatiereGridDtoToJSON,\n} from './FcbClasseMatiereGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbClasseMatiereGridDtoPaginatedResults\n */\nexport interface FcbClasseMatiereGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseMatiereGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseMatiereGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseMatiereGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbClasseMatiereGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseMatiereGridDtoPaginatedResultsFromJSON(json: any): FcbClasseMatiereGridDtoPaginatedResults {\n return FcbClasseMatiereGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbClasseMatiereGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseMatiereGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbClasseMatiereGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbClasseMatiereGridDtoPaginatedResultsToJSON(value?: FcbClasseMatiereGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbClasseMatiereGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseMatiereMultipleDto\n */\nexport interface FcbClasseMatiereMultipleDto {\n /**\n * \n * @type {Array}\n * @memberof FcbClasseMatiereMultipleDto\n */\n idclasseMatiereList?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereMultipleDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereMultipleDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereMultipleDto\n */\n idformateurLocalisationContrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMatiereMultipleDto\n */\n idprojetFinancement?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseMatiereMultipleDto interface.\n */\nexport function instanceOfFcbClasseMatiereMultipleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseMatiereMultipleDtoFromJSON(json: any): FcbClasseMatiereMultipleDto {\n return FcbClasseMatiereMultipleDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseMatiereMultipleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseMatiereMultipleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasseMatiereList': !exists(json, 'idclasseMatiereList') ? undefined : json['idclasseMatiereList'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n };\n}\n\nexport function FcbClasseMatiereMultipleDtoToJSON(value?: FcbClasseMatiereMultipleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasseMatiereList': value.idclasseMatiereList,\n 'idclasse': value.idclasse,\n 'idformateur': value.idformateur,\n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n 'idprojetFinancement': value.idprojetFinancement,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseMiseAJourDto\n */\nexport interface FcbClasseMiseAJourDto {\n /**\n * \n * @type {boolean}\n * @memberof FcbClasseMiseAJourDto\n */\n bloque?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbClasseMiseAJourDto\n */\n idstatutAgrement?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseMiseAJourDto\n */\n dateAgrement?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseMiseAJourDto\n */\n idClasses?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseMiseAJourDto interface.\n */\nexport function instanceOfFcbClasseMiseAJourDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseMiseAJourDtoFromJSON(json: any): FcbClasseMiseAJourDto {\n return FcbClasseMiseAJourDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseMiseAJourDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseMiseAJourDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'bloque': !exists(json, 'bloque') ? undefined : json['bloque'],\n 'idstatutAgrement': !exists(json, 'idstatutAgrement') ? undefined : json['idstatutAgrement'],\n 'dateAgrement': !exists(json, 'dateAgrement') ? undefined : (json['dateAgrement'] === null ? null : new Date(json['dateAgrement'])),\n 'idClasses': !exists(json, 'idClasses') ? undefined : json['idClasses'],\n };\n}\n\nexport function FcbClasseMiseAJourDtoToJSON(value?: FcbClasseMiseAJourDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'bloque': value.bloque,\n 'idstatutAgrement': value.idstatutAgrement,\n 'dateAgrement': value.dateAgrement === undefined ? undefined : (value.dateAgrement === null ? null : value.dateAgrement.toISOString()),\n 'idClasses': value.idClasses,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseRemarqueDto\n */\nexport interface FcbClasseRemarqueDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseRemarqueDto\n */\n idRemarque?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseRemarqueDto\n */\n idClasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseRemarqueDto\n */\n idUser?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseRemarqueDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseRemarqueDto\n */\n dateRemarque?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseRemarqueDto interface.\n */\nexport function instanceOfFcbClasseRemarqueDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseRemarqueDtoFromJSON(json: any): FcbClasseRemarqueDto {\n return FcbClasseRemarqueDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseRemarqueDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseRemarqueDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idRemarque': !exists(json, 'idRemarque') ? undefined : json['idRemarque'],\n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateRemarque': !exists(json, 'dateRemarque') ? undefined : (json['dateRemarque'] === null ? null : new Date(json['dateRemarque'])),\n };\n}\n\nexport function FcbClasseRemarqueDtoToJSON(value?: FcbClasseRemarqueDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idRemarque': value.idRemarque,\n 'idClasse': value.idClasse,\n 'idUser': value.idUser,\n 'remarque': value.remarque,\n 'dateRemarque': value.dateRemarque === undefined ? undefined : (value.dateRemarque === null ? null : value.dateRemarque.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClasseRemarqueGridDto\n */\nexport interface FcbClasseRemarqueGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClasseRemarqueGridDto\n */\n idRemarque?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClasseRemarqueGridDto\n */\n idClasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClasseRemarqueGridDto\n */\n user?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClasseRemarqueGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClasseRemarqueGridDto\n */\n dateRemarque?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseRemarqueGridDto interface.\n */\nexport function instanceOfFcbClasseRemarqueGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseRemarqueGridDtoFromJSON(json: any): FcbClasseRemarqueGridDto {\n return FcbClasseRemarqueGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClasseRemarqueGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseRemarqueGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idRemarque': !exists(json, 'idRemarque') ? undefined : json['idRemarque'],\n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'user': !exists(json, 'user') ? undefined : json['user'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateRemarque': !exists(json, 'dateRemarque') ? undefined : (json['dateRemarque'] === null ? null : new Date(json['dateRemarque'])),\n };\n}\n\nexport function FcbClasseRemarqueGridDtoToJSON(value?: FcbClasseRemarqueGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idRemarque': value.idRemarque,\n 'idClasse': value.idClasse,\n 'user': value.user,\n 'remarque': value.remarque,\n 'dateRemarque': value.dateRemarque === undefined ? undefined : (value.dateRemarque === null ? null : value.dateRemarque.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClasseRemarqueGridDto } from './FcbClasseRemarqueGridDto';\nimport {\n FcbClasseRemarqueGridDtoFromJSON,\n FcbClasseRemarqueGridDtoFromJSONTyped,\n FcbClasseRemarqueGridDtoToJSON,\n} from './FcbClasseRemarqueGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbClasseRemarqueGridDtoPaginatedResults\n */\nexport interface FcbClasseRemarqueGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbClasseRemarqueGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseRemarqueGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClasseRemarqueGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClasseRemarqueGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbClasseRemarqueGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClasseRemarqueGridDtoPaginatedResultsFromJSON(json: any): FcbClasseRemarqueGridDtoPaginatedResults {\n return FcbClasseRemarqueGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbClasseRemarqueGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClasseRemarqueGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbClasseRemarqueGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbClasseRemarqueGridDtoPaginatedResultsToJSON(value?: FcbClasseRemarqueGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbClasseRemarqueGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClauseDto\n */\nexport interface FcbClauseDto {\n /**\n * \n * @type {number}\n * @memberof FcbClauseDto\n */\n idclause?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClauseDto\n */\n idstade?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClauseDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClauseDto\n */\n title?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbClauseDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbClauseDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbClauseDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbClauseDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbClauseDto\n */\n idclauseGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClauseDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbClauseDto interface.\n */\nexport function instanceOfFcbClauseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClauseDtoFromJSON(json: any): FcbClauseDto {\n return FcbClauseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClauseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClauseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclause': !exists(json, 'idclause') ? undefined : json['idclause'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'title': !exists(json, 'title') ? undefined : json['title'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idclauseGuid': !exists(json, 'idclauseGuid') ? undefined : json['idclauseGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbClauseDtoToJSON(value?: FcbClauseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclause': value.idclause,\n 'idstade': value.idstade,\n 'description': value.description,\n 'title': value.title,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idclauseGuid': value.idclauseGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClauseGridDto\n */\nexport interface FcbClauseGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbClauseGridDto\n */\n idclause?: number;\n /**\n * \n * @type {number}\n * @memberof FcbClauseGridDto\n */\n idStade?: number;\n /**\n * \n * @type {string}\n * @memberof FcbClauseGridDto\n */\n stade?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClauseGridDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbClauseGridDto\n */\n title?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbClauseGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbClauseGridDto interface.\n */\nexport function instanceOfFcbClauseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClauseGridDtoFromJSON(json: any): FcbClauseGridDto {\n return FcbClauseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClauseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClauseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclause': !exists(json, 'idclause') ? undefined : json['idclause'],\n 'idStade': !exists(json, 'idStade') ? undefined : json['idStade'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'title': !exists(json, 'title') ? undefined : json['title'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbClauseGridDtoToJSON(value?: FcbClauseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclause': value.idclause,\n 'idStade': value.idStade,\n 'stade': value.stade,\n 'description': value.description,\n 'title': value.title,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClauseGridDto } from './FcbClauseGridDto';\nimport {\n FcbClauseGridDtoFromJSON,\n FcbClauseGridDtoFromJSONTyped,\n FcbClauseGridDtoToJSON,\n} from './FcbClauseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbClauseGridDtoPaginatedResults\n */\nexport interface FcbClauseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbClauseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClauseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbClauseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClauseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbClauseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClauseGridDtoPaginatedResultsFromJSON(json: any): FcbClauseGridDtoPaginatedResults {\n return FcbClauseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbClauseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClauseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbClauseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbClauseGridDtoPaginatedResultsToJSON(value?: FcbClauseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbClauseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbClauseMetiersLiesDto\n */\nexport interface FcbClauseMetiersLiesDto {\n /**\n * \n * @type {number}\n * @memberof FcbClauseMetiersLiesDto\n */\n idClause?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbClauseMetiersLiesDto\n */\n idMetiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbClauseMetiersLiesDto interface.\n */\nexport function instanceOfFcbClauseMetiersLiesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbClauseMetiersLiesDtoFromJSON(json: any): FcbClauseMetiersLiesDto {\n return FcbClauseMetiersLiesDtoFromJSONTyped(json, false);\n}\n\nexport function FcbClauseMetiersLiesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbClauseMetiersLiesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClause': !exists(json, 'idClause') ? undefined : json['idClause'],\n 'idMetiers': !exists(json, 'idMetiers') ? undefined : json['idMetiers'],\n };\n}\n\nexport function FcbClauseMetiersLiesDtoToJSON(value?: FcbClauseMetiersLiesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClause': value.idClause,\n 'idMetiers': value.idMetiers,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbCodePostalDto\n */\nexport interface FcbCodePostalDto {\n /**\n * \n * @type {number}\n * @memberof FcbCodePostalDto\n */\n idcodePostal?: number;\n /**\n * \n * @type {string}\n * @memberof FcbCodePostalDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCodePostalDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCodePostalDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCodePostalDto\n */\n localite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbCodePostalDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbCodePostalDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbCodePostalDto\n */\n creationUser?: number;\n /**\n * \n * @type {number}\n * @memberof FcbCodePostalDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbCodePostalDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbCodePostalDto interface.\n */\nexport function instanceOfFcbCodePostalDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCodePostalDtoFromJSON(json: any): FcbCodePostalDto {\n return FcbCodePostalDtoFromJSONTyped(json, false);\n}\n\nexport function FcbCodePostalDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCodePostalDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbCodePostalDtoToJSON(value?: FcbCodePostalDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcodePostal': value.idcodePostal,\n 'codePostal': value.codePostal,\n 'codePays': value.codePays,\n 'commune': value.commune,\n 'localite': value.localite,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'creationUser': value.creationUser,\n 'modificationUser': value.modificationUser,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbCodePostalGridDto\n */\nexport interface FcbCodePostalGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbCodePostalGridDto\n */\n idcodePostal?: number;\n /**\n * \n * @type {string}\n * @memberof FcbCodePostalGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCodePostalGridDto\n */\n pays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCodePostalGridDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCodePostalGridDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbCodePostalGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbCodePostalGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbCodePostalGridDto interface.\n */\nexport function instanceOfFcbCodePostalGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCodePostalGridDtoFromJSON(json: any): FcbCodePostalGridDto {\n return FcbCodePostalGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbCodePostalGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCodePostalGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'pays': !exists(json, 'pays') ? undefined : json['pays'],\n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbCodePostalGridDtoToJSON(value?: FcbCodePostalGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcodePostal': value.idcodePostal,\n 'codePostal': value.codePostal,\n 'pays': value.pays,\n 'codePays': value.codePays,\n 'commune': value.commune,\n 'localite': value.localite,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbCodePostalGridDto } from './FcbCodePostalGridDto';\nimport {\n FcbCodePostalGridDtoFromJSON,\n FcbCodePostalGridDtoFromJSONTyped,\n FcbCodePostalGridDtoToJSON,\n} from './FcbCodePostalGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbCodePostalGridDtoPaginatedResults\n */\nexport interface FcbCodePostalGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbCodePostalGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbCodePostalGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbCodePostalGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbCodePostalGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbCodePostalGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCodePostalGridDtoPaginatedResultsFromJSON(json: any): FcbCodePostalGridDtoPaginatedResults {\n return FcbCodePostalGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbCodePostalGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCodePostalGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbCodePostalGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbCodePostalGridDtoPaginatedResultsToJSON(value?: FcbCodePostalGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbCodePostalGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbConseillerMetiersDto\n */\nexport interface FcbConseillerMetiersDto {\n /**\n * \n * @type {string}\n * @memberof FcbConseillerMetiersDto\n */\n codeConseiller?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FcbConseillerMetiersDto\n */\n idMetiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbConseillerMetiersDto interface.\n */\nexport function instanceOfFcbConseillerMetiersDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbConseillerMetiersDtoFromJSON(json: any): FcbConseillerMetiersDto {\n return FcbConseillerMetiersDtoFromJSONTyped(json, false);\n}\n\nexport function FcbConseillerMetiersDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbConseillerMetiersDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codeConseiller': !exists(json, 'codeConseiller') ? undefined : json['codeConseiller'],\n 'idMetiers': !exists(json, 'idMetiers') ? undefined : json['idMetiers'],\n };\n}\n\nexport function FcbConseillerMetiersDtoToJSON(value?: FcbConseillerMetiersDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codeConseiller': value.codeConseiller,\n 'idMetiers': value.idMetiers,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface FcbConseillerPedagogiqueDto\n */\nexport interface FcbConseillerPedagogiqueDto {\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueDto\n */\n idconseillerPedagogique?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbConseillerPedagogiqueDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueDto\n */\n noNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbConseillerPedagogiqueDto\n */\n adresse?: AdresseDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbConseillerPedagogiqueDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbConseillerPedagogiqueDto\n */\n telephonePrive?: TelephoneDto;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueDto\n */\n fax?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueDto\n */\n faxPrive?: string | null;\n /**\n * \n * @type {EmailDto}\n * @memberof FcbConseillerPedagogiqueDto\n */\n email?: EmailDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbConseillerPedagogiqueDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {boolean}\n * @memberof FcbConseillerPedagogiqueDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbConseillerPedagogiqueDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbConseillerPedagogiqueDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbConseillerPedagogiqueDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbConseillerPedagogiqueDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbConseillerPedagogiqueDto\n */\n hasAddressDoublons?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbConseillerPedagogiqueDto interface.\n */\nexport function instanceOfFcbConseillerPedagogiqueDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbConseillerPedagogiqueDtoFromJSON(json: any): FcbConseillerPedagogiqueDto {\n return FcbConseillerPedagogiqueDtoFromJSONTyped(json, false);\n}\n\nexport function FcbConseillerPedagogiqueDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbConseillerPedagogiqueDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idconseillerPedagogique': !exists(json, 'idconseillerPedagogique') ? undefined : json['idconseillerPedagogique'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'noNational': !exists(json, 'noNational') ? undefined : json['noNational'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresse': !exists(json, 'adresse') ? undefined : AdresseDtoFromJSON(json['adresse']),\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'telephonePrive': !exists(json, 'telephonePrive') ? undefined : TelephoneDtoFromJSON(json['telephonePrive']),\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n 'faxPrive': !exists(json, 'faxPrive') ? undefined : json['faxPrive'],\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'hasAddressDoublons': !exists(json, 'hasAddressDoublons') ? undefined : json['hasAddressDoublons'],\n };\n}\n\nexport function FcbConseillerPedagogiqueDtoToJSON(value?: FcbConseillerPedagogiqueDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idconseillerPedagogique': value.idconseillerPedagogique,\n 'idpersonne': value.idpersonne,\n 'codesexe': value.codesexe,\n 'noNational': value.noNational,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresse': AdresseDtoToJSON(value.adresse),\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'telephonePrive': TelephoneDtoToJSON(value.telephonePrive),\n 'fax': value.fax,\n 'faxPrive': value.faxPrive,\n 'email': EmailDtoToJSON(value.email),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'actif': value.actif,\n 'remarque': value.remarque,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'hasAddressDoublons': value.hasAddressDoublons,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface FcbConseillerPedagogiqueGridDto\n */\nexport interface FcbConseillerPedagogiqueGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueGridDto\n */\n idconseillerPedagogique?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbConseillerPedagogiqueGridDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbConseillerPedagogiqueGridDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof FcbConseillerPedagogiqueGridDto\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueGridDto\n */\n fax?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbConseillerPedagogiqueGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbConseillerPedagogiqueGridDto\n */\n dateDeces?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbConseillerPedagogiqueGridDto interface.\n */\nexport function instanceOfFcbConseillerPedagogiqueGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbConseillerPedagogiqueGridDtoFromJSON(json: any): FcbConseillerPedagogiqueGridDto {\n return FcbConseillerPedagogiqueGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbConseillerPedagogiqueGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbConseillerPedagogiqueGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idconseillerPedagogique': !exists(json, 'idconseillerPedagogique') ? undefined : json['idconseillerPedagogique'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n };\n}\n\nexport function FcbConseillerPedagogiqueGridDtoToJSON(value?: FcbConseillerPedagogiqueGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idconseillerPedagogique': value.idconseillerPedagogique,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n 'fax': value.fax,\n 'actif': value.actif,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbConseillerPedagogiqueGridDto } from './FcbConseillerPedagogiqueGridDto';\nimport {\n FcbConseillerPedagogiqueGridDtoFromJSON,\n FcbConseillerPedagogiqueGridDtoFromJSONTyped,\n FcbConseillerPedagogiqueGridDtoToJSON,\n} from './FcbConseillerPedagogiqueGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbConseillerPedagogiqueGridDtoPaginatedResults\n */\nexport interface FcbConseillerPedagogiqueGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbConseillerPedagogiqueGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbConseillerPedagogiqueGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbConseillerPedagogiqueGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbConseillerPedagogiqueGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbConseillerPedagogiqueGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbConseillerPedagogiqueGridDtoPaginatedResultsFromJSON(json: any): FcbConseillerPedagogiqueGridDtoPaginatedResults {\n return FcbConseillerPedagogiqueGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbConseillerPedagogiqueGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbConseillerPedagogiqueGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbConseillerPedagogiqueGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbConseillerPedagogiqueGridDtoPaginatedResultsToJSON(value?: FcbConseillerPedagogiqueGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbConseillerPedagogiqueGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbConseillerPedagogiqueMetiersLiesGridDto\n */\nexport interface FcbConseillerPedagogiqueMetiersLiesGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueMetiersLiesGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueMetiersLiesGridDto\n */\n stade?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueMetiersLiesGridDto\n */\n metier?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbConseillerPedagogiqueMetiersLiesGridDto\n */\n idmetier?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbConseillerPedagogiqueMetiersLiesGridDto interface.\n */\nexport function instanceOfFcbConseillerPedagogiqueMetiersLiesGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbConseillerPedagogiqueMetiersLiesGridDtoFromJSON(json: any): FcbConseillerPedagogiqueMetiersLiesGridDto {\n return FcbConseillerPedagogiqueMetiersLiesGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbConseillerPedagogiqueMetiersLiesGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbConseillerPedagogiqueMetiersLiesGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n };\n}\n\nexport function FcbConseillerPedagogiqueMetiersLiesGridDtoToJSON(value?: FcbConseillerPedagogiqueMetiersLiesGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': value.code,\n 'stade': value.stade,\n 'metier': value.metier,\n 'idmetier': value.idmetier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbConseillerPedagogiqueMetiersLiesGridDto } from './FcbConseillerPedagogiqueMetiersLiesGridDto';\nimport {\n FcbConseillerPedagogiqueMetiersLiesGridDtoFromJSON,\n FcbConseillerPedagogiqueMetiersLiesGridDtoFromJSONTyped,\n FcbConseillerPedagogiqueMetiersLiesGridDtoToJSON,\n} from './FcbConseillerPedagogiqueMetiersLiesGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults\n */\nexport interface FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResultsFromJSON(json: any): FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults {\n return FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbConseillerPedagogiqueMetiersLiesGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResultsToJSON(value?: FcbConseillerPedagogiqueMetiersLiesGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbConseillerPedagogiqueMetiersLiesGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbContratFormateurDto\n */\nexport interface FcbContratFormateurDto {\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurDto\n */\n idcontratFormateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbContratFormateurDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbContratFormateurDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurDto\n */\n idgenre?: number;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurDto\n */\n nbheureMin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurDto\n */\n nbheureMax?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurDto\n */\n nbheureJury?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbContratFormateurDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbContratFormateurDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbContratFormateurDto\n */\n idcontratFormateurGuid?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurDto\n */\n type?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbContratFormateurDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbContratFormateurDto interface.\n */\nexport function instanceOfFcbContratFormateurDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbContratFormateurDtoFromJSON(json: any): FcbContratFormateurDto {\n return FcbContratFormateurDtoFromJSONTyped(json, false);\n}\n\nexport function FcbContratFormateurDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbContratFormateurDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratFormateur': !exists(json, 'idcontratFormateur') ? undefined : json['idcontratFormateur'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idgenre': !exists(json, 'idgenre') ? undefined : json['idgenre'],\n 'nbheureMin': !exists(json, 'nbheureMin') ? undefined : json['nbheureMin'],\n 'nbheureMax': !exists(json, 'nbheureMax') ? undefined : json['nbheureMax'],\n 'nbheureJury': !exists(json, 'nbheureJury') ? undefined : json['nbheureJury'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'idcontratFormateurGuid': !exists(json, 'idcontratFormateurGuid') ? undefined : json['idcontratFormateurGuid'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbContratFormateurDtoToJSON(value?: FcbContratFormateurDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratFormateur': value.idcontratFormateur,\n 'code': value.code,\n 'libelle': value.libelle,\n 'idgenre': value.idgenre,\n 'nbheureMin': value.nbheureMin,\n 'nbheureMax': value.nbheureMax,\n 'nbheureJury': value.nbheureJury,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'creationUser': value.creationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'idcontratFormateurGuid': value.idcontratFormateurGuid,\n 'type': value.type,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbContratFormateurGridDto\n */\nexport interface FcbContratFormateurGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurGridDto\n */\n idcontratFormateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbContratFormateurGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbContratFormateurGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurGridDto\n */\n idgenre?: number;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurGridDto\n */\n nbheureMin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurGridDto\n */\n nbheureMax?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurGridDto\n */\n nbheureJury?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurGridDto\n */\n type?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbContratFormateurGridDto\n */\n typeDisplay?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbContratFormateurGridDto\n */\n genre?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbContratFormateurGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbContratFormateurGridDto interface.\n */\nexport function instanceOfFcbContratFormateurGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbContratFormateurGridDtoFromJSON(json: any): FcbContratFormateurGridDto {\n return FcbContratFormateurGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbContratFormateurGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbContratFormateurGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcontratFormateur': !exists(json, 'idcontratFormateur') ? undefined : json['idcontratFormateur'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idgenre': !exists(json, 'idgenre') ? undefined : json['idgenre'],\n 'nbheureMin': !exists(json, 'nbheureMin') ? undefined : json['nbheureMin'],\n 'nbheureMax': !exists(json, 'nbheureMax') ? undefined : json['nbheureMax'],\n 'nbheureJury': !exists(json, 'nbheureJury') ? undefined : json['nbheureJury'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'typeDisplay': !exists(json, 'typeDisplay') ? undefined : json['typeDisplay'],\n 'genre': !exists(json, 'genre') ? undefined : json['genre'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbContratFormateurGridDtoToJSON(value?: FcbContratFormateurGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcontratFormateur': value.idcontratFormateur,\n 'code': value.code,\n 'libelle': value.libelle,\n 'idgenre': value.idgenre,\n 'nbheureMin': value.nbheureMin,\n 'nbheureMax': value.nbheureMax,\n 'nbheureJury': value.nbheureJury,\n 'type': value.type,\n 'typeDisplay': value.typeDisplay,\n 'genre': value.genre,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbContratFormateurGridDto } from './FcbContratFormateurGridDto';\nimport {\n FcbContratFormateurGridDtoFromJSON,\n FcbContratFormateurGridDtoFromJSONTyped,\n FcbContratFormateurGridDtoToJSON,\n} from './FcbContratFormateurGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbContratFormateurGridDtoPaginatedResults\n */\nexport interface FcbContratFormateurGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbContratFormateurGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbContratFormateurGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbContratFormateurGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbContratFormateurGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbContratFormateurGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbContratFormateurGridDtoPaginatedResultsFromJSON(json: any): FcbContratFormateurGridDtoPaginatedResults {\n return FcbContratFormateurGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbContratFormateurGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbContratFormateurGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbContratFormateurGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbContratFormateurGridDtoPaginatedResultsToJSON(value?: FcbContratFormateurGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbContratFormateurGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbCopyClasseDto\n */\nexport interface FcbCopyClasseDto {\n /**\n * \n * @type {number}\n * @memberof FcbCopyClasseDto\n */\n idClasse?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbCopyClasseDto\n */\n dateCours?: Date;\n /**\n * \n * @type {string}\n * @memberof FcbCopyClasseDto\n */\n nomClasse?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbCopyClasseDto\n */\n idUser?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbCopyClasseDto\n */\n withContract?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbCopyClasseDto interface.\n */\nexport function instanceOfFcbCopyClasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbCopyClasseDtoFromJSON(json: any): FcbCopyClasseDto {\n return FcbCopyClasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbCopyClasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbCopyClasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'dateCours': !exists(json, 'dateCours') ? undefined : (new Date(json['dateCours'])),\n 'nomClasse': !exists(json, 'nomClasse') ? undefined : json['nomClasse'],\n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n 'withContract': !exists(json, 'withContract') ? undefined : json['withContract'],\n };\n}\n\nexport function FcbCopyClasseDtoToJSON(value?: FcbCopyClasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'dateCours': value.dateCours === undefined ? undefined : (value.dateCours.toISOString()),\n 'nomClasse': value.nomClasse,\n 'idUser': value.idUser,\n 'withContract': value.withContract,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDegreDto\n */\nexport interface FcbDegreDto {\n /**\n * \n * @type {string}\n * @memberof FcbDegreDto\n */\n idDegre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDegreDto\n */\n idStade?: number;\n /**\n * \n * @type {string}\n * @memberof FcbDegreDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDegreDto\n */\n creationUser?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbDegreDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDegreDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDegreDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDegreDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDegreDto\n */\n degreUniqueId?: number;\n /**\n * \n * @type {string}\n * @memberof FcbDegreDto\n */\n displayCode?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbDegreDto interface.\n */\nexport function instanceOfFcbDegreDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDegreDtoFromJSON(json: any): FcbDegreDto {\n return FcbDegreDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDegreDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDegreDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idDegre': !exists(json, 'idDegre') ? undefined : json['idDegre'],\n 'idStade': !exists(json, 'idStade') ? undefined : json['idStade'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'degreUniqueId': !exists(json, 'degreUniqueId') ? undefined : json['degreUniqueId'],\n 'displayCode': !exists(json, 'displayCode') ? undefined : json['displayCode'],\n };\n}\n\nexport function FcbDegreDtoToJSON(value?: FcbDegreDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idDegre': value.idDegre,\n 'idStade': value.idStade,\n 'libelle': value.libelle,\n 'creationUser': value.creationUser,\n 'actif': value.actif,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'degreUniqueId': value.degreUniqueId,\n 'displayCode': value.displayCode,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDegreGridDto\n */\nexport interface FcbDegreGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbDegreGridDto\n */\n idDegre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDegreGridDto\n */\n stade?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDegreGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbDegreGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbDegreGridDto interface.\n */\nexport function instanceOfFcbDegreGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDegreGridDtoFromJSON(json: any): FcbDegreGridDto {\n return FcbDegreGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDegreGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDegreGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idDegre': !exists(json, 'idDegre') ? undefined : json['idDegre'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbDegreGridDtoToJSON(value?: FcbDegreGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idDegre': value.idDegre,\n 'stade': value.stade,\n 'libelle': value.libelle,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbDegreGridDto } from './FcbDegreGridDto';\nimport {\n FcbDegreGridDtoFromJSON,\n FcbDegreGridDtoFromJSONTyped,\n FcbDegreGridDtoToJSON,\n} from './FcbDegreGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbDegreGridDtoPaginatedResults\n */\nexport interface FcbDegreGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbDegreGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbDegreGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbDegreGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbDegreGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbDegreGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDegreGridDtoPaginatedResultsFromJSON(json: any): FcbDegreGridDtoPaginatedResults {\n return FcbDegreGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbDegreGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDegreGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbDegreGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbDegreGridDtoPaginatedResultsToJSON(value?: FcbDegreGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbDegreGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDeliberationMasseDto\n */\nexport interface FcbDeliberationMasseDto {\n /**\n * \n * @type {Date}\n * @memberof FcbDeliberationMasseDto\n */\n dateDeliberation?: Date;\n /**\n * \n * @type {Array}\n * @memberof FcbDeliberationMasseDto\n */\n idBulletinApprenantTypes?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbDeliberationMasseDto interface.\n */\nexport function instanceOfFcbDeliberationMasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDeliberationMasseDtoFromJSON(json: any): FcbDeliberationMasseDto {\n return FcbDeliberationMasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDeliberationMasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDeliberationMasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'dateDeliberation': !exists(json, 'dateDeliberation') ? undefined : (new Date(json['dateDeliberation'])),\n 'idBulletinApprenantTypes': !exists(json, 'idBulletinApprenantTypes') ? undefined : json['idBulletinApprenantTypes'],\n };\n}\n\nexport function FcbDeliberationMasseDtoToJSON(value?: FcbDeliberationMasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'dateDeliberation': value.dateDeliberation === undefined ? undefined : (value.dateDeliberation.toISOString()),\n 'idBulletinApprenantTypes': value.idBulletinApprenantTypes,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDeliberationMasseGridDto\n */\nexport interface FcbDeliberationMasseGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbDeliberationMasseGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDeliberationMasseGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDeliberationMasseGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDeliberationMasseGridDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbDeliberationMasseGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDeliberationMasseGridDto\n */\n idtypeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDeliberationMasseGridDto\n */\n deliberation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDeliberationMasseGridDto\n */\n deliberation2sess?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDeliberationMasseGridDto\n */\n idbulletinApprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbDeliberationMasseGridDto\n */\n idbulletinApprenantType?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbDeliberationMasseGridDto\n */\n delibe1sess?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDeliberationMasseGridDto\n */\n degre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDeliberationMasseGridDto\n */\n metier?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDeliberationMasseGridDto\n */\n idclasse?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbDeliberationMasseGridDto interface.\n */\nexport function instanceOfFcbDeliberationMasseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDeliberationMasseGridDtoFromJSON(json: any): FcbDeliberationMasseGridDto {\n return FcbDeliberationMasseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDeliberationMasseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDeliberationMasseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idtypeCours': !exists(json, 'idtypeCours') ? undefined : json['idtypeCours'],\n 'deliberation': !exists(json, 'deliberation') ? undefined : json['deliberation'],\n 'deliberation2sess': !exists(json, 'deliberation2sess') ? undefined : json['deliberation2sess'],\n 'idbulletinApprenant': !exists(json, 'idbulletinApprenant') ? undefined : json['idbulletinApprenant'],\n 'idbulletinApprenantType': !exists(json, 'idbulletinApprenantType') ? undefined : json['idbulletinApprenantType'],\n 'delibe1sess': !exists(json, 'delibe1sess') ? undefined : json['delibe1sess'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n };\n}\n\nexport function FcbDeliberationMasseGridDtoToJSON(value?: FcbDeliberationMasseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'idapprenant': value.idapprenant,\n 'anneeScolaire': value.anneeScolaire,\n 'idtypeCours': value.idtypeCours,\n 'deliberation': value.deliberation,\n 'deliberation2sess': value.deliberation2sess,\n 'idbulletinApprenant': value.idbulletinApprenant,\n 'idbulletinApprenantType': value.idbulletinApprenantType,\n 'delibe1sess': value.delibe1sess,\n 'degre': value.degre,\n 'metier': value.metier,\n 'idclasse': value.idclasse,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbDeliberationMasseGridDto } from './FcbDeliberationMasseGridDto';\nimport {\n FcbDeliberationMasseGridDtoFromJSON,\n FcbDeliberationMasseGridDtoFromJSONTyped,\n FcbDeliberationMasseGridDtoToJSON,\n} from './FcbDeliberationMasseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbDeliberationMasseGridDtoPaginatedResults\n */\nexport interface FcbDeliberationMasseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbDeliberationMasseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbDeliberationMasseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbDeliberationMasseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbDeliberationMasseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbDeliberationMasseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDeliberationMasseGridDtoPaginatedResultsFromJSON(json: any): FcbDeliberationMasseGridDtoPaginatedResults {\n return FcbDeliberationMasseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbDeliberationMasseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDeliberationMasseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbDeliberationMasseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbDeliberationMasseGridDtoPaginatedResultsToJSON(value?: FcbDeliberationMasseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbDeliberationMasseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDemandeApprenantDto\n */\nexport interface FcbDemandeApprenantDto {\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantDto\n */\n iddemande?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbDemandeApprenantDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbDemandeApprenantDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantDto\n */\n idtype?: number;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantDto\n */\n iddelegueTutelle?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbDemandeApprenantDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDemandeApprenantDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantDto\n */\n idmetier?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbDemandeApprenantDto interface.\n */\nexport function instanceOfFcbDemandeApprenantDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDemandeApprenantDtoFromJSON(json: any): FcbDemandeApprenantDto {\n return FcbDemandeApprenantDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDemandeApprenantDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDemandeApprenantDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddemande': !exists(json, 'iddemande') ? undefined : json['iddemande'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idtype': !exists(json, 'idtype') ? undefined : json['idtype'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'iddelegueTutelle': !exists(json, 'iddelegueTutelle') ? undefined : json['iddelegueTutelle'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n };\n}\n\nexport function FcbDemandeApprenantDtoToJSON(value?: FcbDemandeApprenantDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddemande': value.iddemande,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'description': value.description,\n 'idapprenant': value.idapprenant,\n 'idtype': value.idtype,\n 'idcentre': value.idcentre,\n 'iddelegueTutelle': value.iddelegueTutelle,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idmetier': value.idmetier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDemandeApprenantGridDto\n */\nexport interface FcbDemandeApprenantGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantGridDto\n */\n iddemande?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbDemandeApprenantGridDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbDemandeApprenantGridDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantGridDto\n */\n idtype?: number;\n /**\n * \n * @type {string}\n * @memberof FcbDemandeApprenantGridDto\n */\n type?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantGridDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbDemandeApprenantGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantGridDto\n */\n iddelegueTutelle?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbDemandeApprenantGridDto\n */\n delegueTutelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantGridDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbDemandeApprenantGridDto\n */\n metier?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbDemandeApprenantGridDto interface.\n */\nexport function instanceOfFcbDemandeApprenantGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDemandeApprenantGridDtoFromJSON(json: any): FcbDemandeApprenantGridDto {\n return FcbDemandeApprenantGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDemandeApprenantGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDemandeApprenantGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'iddemande': !exists(json, 'iddemande') ? undefined : json['iddemande'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'idtype': !exists(json, 'idtype') ? undefined : json['idtype'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'iddelegueTutelle': !exists(json, 'iddelegueTutelle') ? undefined : json['iddelegueTutelle'],\n 'delegueTutelle': !exists(json, 'delegueTutelle') ? undefined : json['delegueTutelle'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n };\n}\n\nexport function FcbDemandeApprenantGridDtoToJSON(value?: FcbDemandeApprenantGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'iddemande': value.iddemande,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'description': value.description,\n 'idtype': value.idtype,\n 'type': value.type,\n 'idcentre': value.idcentre,\n 'centre': value.centre,\n 'iddelegueTutelle': value.iddelegueTutelle,\n 'delegueTutelle': value.delegueTutelle,\n 'idmetier': value.idmetier,\n 'metier': value.metier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbDemandeApprenantGridDto } from './FcbDemandeApprenantGridDto';\nimport {\n FcbDemandeApprenantGridDtoFromJSON,\n FcbDemandeApprenantGridDtoFromJSONTyped,\n FcbDemandeApprenantGridDtoToJSON,\n} from './FcbDemandeApprenantGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbDemandeApprenantGridDtoPaginatedResults\n */\nexport interface FcbDemandeApprenantGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbDemandeApprenantGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbDemandeApprenantGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbDemandeApprenantGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbDemandeApprenantGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbDemandeApprenantGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDemandeApprenantGridDtoPaginatedResultsFromJSON(json: any): FcbDemandeApprenantGridDtoPaginatedResults {\n return FcbDemandeApprenantGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbDemandeApprenantGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDemandeApprenantGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbDemandeApprenantGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbDemandeApprenantGridDtoPaginatedResultsToJSON(value?: FcbDemandeApprenantGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbDemandeApprenantGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDiplomeDto\n */\nexport interface FcbDiplomeDto {\n /**\n * \n * @type {number}\n * @memberof FcbDiplomeDto\n */\n iddiplome?: number;\n /**\n * \n * @type {string}\n * @memberof FcbDiplomeDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDiplomeDto\n */\n iddiplomeGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbDiplomeDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbDiplomeDto interface.\n */\nexport function instanceOfFcbDiplomeDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDiplomeDtoFromJSON(json: any): FcbDiplomeDto {\n return FcbDiplomeDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDiplomeDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDiplomeDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplome': !exists(json, 'iddiplome') ? undefined : json['iddiplome'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'iddiplomeGuid': !exists(json, 'iddiplomeGuid') ? undefined : json['iddiplomeGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbDiplomeDtoToJSON(value?: FcbDiplomeDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplome': value.iddiplome,\n 'libelle': value.libelle,\n 'iddiplomeGuid': value.iddiplomeGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDiplomeGridDto\n */\nexport interface FcbDiplomeGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbDiplomeGridDto\n */\n iddiplome?: number;\n /**\n * \n * @type {string}\n * @memberof FcbDiplomeGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDiplomeGridDto\n */\n iddiplomeGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbDiplomeGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbDiplomeGridDto interface.\n */\nexport function instanceOfFcbDiplomeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDiplomeGridDtoFromJSON(json: any): FcbDiplomeGridDto {\n return FcbDiplomeGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDiplomeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDiplomeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplome': !exists(json, 'iddiplome') ? undefined : json['iddiplome'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'iddiplomeGuid': !exists(json, 'iddiplomeGuid') ? undefined : json['iddiplomeGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbDiplomeGridDtoToJSON(value?: FcbDiplomeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplome': value.iddiplome,\n 'libelle': value.libelle,\n 'iddiplomeGuid': value.iddiplomeGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbDiplomeGridDto } from './FcbDiplomeGridDto';\nimport {\n FcbDiplomeGridDtoFromJSON,\n FcbDiplomeGridDtoFromJSONTyped,\n FcbDiplomeGridDtoToJSON,\n} from './FcbDiplomeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbDiplomeGridDtoPaginatedResults\n */\nexport interface FcbDiplomeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbDiplomeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbDiplomeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbDiplomeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbDiplomeGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbDiplomeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDiplomeGridDtoPaginatedResultsFromJSON(json: any): FcbDiplomeGridDtoPaginatedResults {\n return FcbDiplomeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbDiplomeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDiplomeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbDiplomeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbDiplomeGridDtoPaginatedResultsToJSON(value?: FcbDiplomeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbDiplomeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDirectionTerritorialeDto\n */\nexport interface FcbDirectionTerritorialeDto {\n /**\n * \n * @type {number}\n * @memberof FcbDirectionTerritorialeDto\n */\n iddirectionTerritoriale?: number;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n fax?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n directeur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n ouverture?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDirectionTerritorialeDto\n */\n fraisDossier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n noCompte?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDirectionTerritorialeDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbDirectionTerritorialeDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDirectionTerritorialeDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDirectionTerritorialeDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeDto\n */\n iddirectionTerritorialeGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbDirectionTerritorialeDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbDirectionTerritorialeDto interface.\n */\nexport function instanceOfFcbDirectionTerritorialeDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDirectionTerritorialeDtoFromJSON(json: any): FcbDirectionTerritorialeDto {\n return FcbDirectionTerritorialeDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDirectionTerritorialeDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDirectionTerritorialeDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddirectionTerritoriale': !exists(json, 'iddirectionTerritoriale') ? undefined : json['iddirectionTerritoriale'],\n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n 'directeur': !exists(json, 'directeur') ? undefined : json['directeur'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'ouverture': !exists(json, 'ouverture') ? undefined : json['ouverture'],\n 'fraisDossier': !exists(json, 'fraisDossier') ? undefined : json['fraisDossier'],\n 'noCompte': !exists(json, 'noCompte') ? undefined : json['noCompte'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'iddirectionTerritorialeGuid': !exists(json, 'iddirectionTerritorialeGuid') ? undefined : json['iddirectionTerritorialeGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbDirectionTerritorialeDtoToJSON(value?: FcbDirectionTerritorialeDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddirectionTerritoriale': value.iddirectionTerritoriale,\n 'codePays': value.codePays,\n 'code': value.code,\n 'nom': value.nom,\n 'adresse': value.adresse,\n 'localite': value.localite,\n 'commune': value.commune,\n 'codePostal': value.codePostal,\n 'telephone': value.telephone,\n 'fax': value.fax,\n 'directeur': value.directeur,\n 'email': value.email,\n 'ouverture': value.ouverture,\n 'fraisDossier': value.fraisDossier,\n 'noCompte': value.noCompte,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'iddirectionTerritorialeGuid': value.iddirectionTerritorialeGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDirectionTerritorialeGridDto\n */\nexport interface FcbDirectionTerritorialeGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbDirectionTerritorialeGridDto\n */\n iddirectionTerritoriale?: number;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDirectionTerritorialeGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbDirectionTerritorialeGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbDirectionTerritorialeGridDto interface.\n */\nexport function instanceOfFcbDirectionTerritorialeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDirectionTerritorialeGridDtoFromJSON(json: any): FcbDirectionTerritorialeGridDto {\n return FcbDirectionTerritorialeGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDirectionTerritorialeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDirectionTerritorialeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddirectionTerritoriale': !exists(json, 'iddirectionTerritoriale') ? undefined : json['iddirectionTerritoriale'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbDirectionTerritorialeGridDtoToJSON(value?: FcbDirectionTerritorialeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddirectionTerritoriale': value.iddirectionTerritoriale,\n 'code': value.code,\n 'nom': value.nom,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbDirectionTerritorialeGridDto } from './FcbDirectionTerritorialeGridDto';\nimport {\n FcbDirectionTerritorialeGridDtoFromJSON,\n FcbDirectionTerritorialeGridDtoFromJSONTyped,\n FcbDirectionTerritorialeGridDtoToJSON,\n} from './FcbDirectionTerritorialeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbDirectionTerritorialeGridDtoPaginatedResults\n */\nexport interface FcbDirectionTerritorialeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbDirectionTerritorialeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbDirectionTerritorialeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbDirectionTerritorialeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbDirectionTerritorialeGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbDirectionTerritorialeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDirectionTerritorialeGridDtoPaginatedResultsFromJSON(json: any): FcbDirectionTerritorialeGridDtoPaginatedResults {\n return FcbDirectionTerritorialeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbDirectionTerritorialeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDirectionTerritorialeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbDirectionTerritorialeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbDirectionTerritorialeGridDtoPaginatedResultsToJSON(value?: FcbDirectionTerritorialeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbDirectionTerritorialeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDispenseDetailDto\n */\nexport interface FcbDispenseDetailDto {\n /**\n * \n * @type {boolean}\n * @memberof FcbDispenseDetailDto\n */\n applyToAll?: boolean;\n /**\n * \n * @type {Array}\n * @memberof FcbDispenseDetailDto\n */\n classeMatiereIds?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseDetailDto\n */\n idinscription?: number;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseDetailDto\n */\n idclasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbDispenseDetailDto\n */\n idmatiere?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDispenseDetailDto\n */\n dateDemande?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDispenseDetailDto\n */\n dateAcceptation?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseDetailDto\n */\n idclasseMatiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseDetailDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbDispenseDetailDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseDetailDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDispenseDetailDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseDetailDto\n */\n idtypeDispense?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbDispenseDetailDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseDetailDto\n */\n dispenseId?: number;\n}\n\n/**\n * Check if a given object implements the FcbDispenseDetailDto interface.\n */\nexport function instanceOfFcbDispenseDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDispenseDetailDtoFromJSON(json: any): FcbDispenseDetailDto {\n return FcbDispenseDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDispenseDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDispenseDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'applyToAll': !exists(json, 'applyToAll') ? undefined : json['applyToAll'],\n 'classeMatiereIds': !exists(json, 'classeMatiereIds') ? undefined : json['classeMatiereIds'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idmatiere': !exists(json, 'idmatiere') ? undefined : json['idmatiere'],\n 'dateDemande': !exists(json, 'dateDemande') ? undefined : (json['dateDemande'] === null ? null : new Date(json['dateDemande'])),\n 'dateAcceptation': !exists(json, 'dateAcceptation') ? undefined : (json['dateAcceptation'] === null ? null : new Date(json['dateAcceptation'])),\n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idtypeDispense': !exists(json, 'idtypeDispense') ? undefined : json['idtypeDispense'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'dispenseId': !exists(json, 'dispenseId') ? undefined : json['dispenseId'],\n };\n}\n\nexport function FcbDispenseDetailDtoToJSON(value?: FcbDispenseDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'applyToAll': value.applyToAll,\n 'classeMatiereIds': value.classeMatiereIds,\n 'idinscription': value.idinscription,\n 'idclasse': value.idclasse,\n 'idmatiere': value.idmatiere,\n 'dateDemande': value.dateDemande === undefined ? undefined : (value.dateDemande === null ? null : value.dateDemande.toISOString()),\n 'dateAcceptation': value.dateAcceptation === undefined ? undefined : (value.dateAcceptation === null ? null : value.dateAcceptation.toISOString()),\n 'idclasseMatiere': value.idclasseMatiere,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idtypeDispense': value.idtypeDispense,\n 'libelle': value.libelle,\n 'dispenseId': value.dispenseId,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbDispenseGridDto\n */\nexport interface FcbDispenseGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbDispenseGridDto\n */\n idinscription?: number;\n /**\n * \n * @type {string}\n * @memberof FcbDispenseGridDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbDispenseGridDto\n */\n matiere?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDispenseGridDto\n */\n dateDemande?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbDispenseGridDto\n */\n dateAcceptation?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseGridDto\n */\n idclasseMatiere?: number;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseGridDto\n */\n idtypeDispense?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbDispenseGridDto\n */\n dispenseId?: number;\n}\n\n/**\n * Check if a given object implements the FcbDispenseGridDto interface.\n */\nexport function instanceOfFcbDispenseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDispenseGridDtoFromJSON(json: any): FcbDispenseGridDto {\n return FcbDispenseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbDispenseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDispenseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'matiere': !exists(json, 'matiere') ? undefined : json['matiere'],\n 'dateDemande': !exists(json, 'dateDemande') ? undefined : (json['dateDemande'] === null ? null : new Date(json['dateDemande'])),\n 'dateAcceptation': !exists(json, 'dateAcceptation') ? undefined : (json['dateAcceptation'] === null ? null : new Date(json['dateAcceptation'])),\n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n 'idtypeDispense': !exists(json, 'idtypeDispense') ? undefined : json['idtypeDispense'],\n 'dispenseId': !exists(json, 'dispenseId') ? undefined : json['dispenseId'],\n };\n}\n\nexport function FcbDispenseGridDtoToJSON(value?: FcbDispenseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinscription': value.idinscription,\n 'classe': value.classe,\n 'matiere': value.matiere,\n 'dateDemande': value.dateDemande === undefined ? undefined : (value.dateDemande === null ? null : value.dateDemande.toISOString()),\n 'dateAcceptation': value.dateAcceptation === undefined ? undefined : (value.dateAcceptation === null ? null : value.dateAcceptation.toISOString()),\n 'idclasseMatiere': value.idclasseMatiere,\n 'idtypeDispense': value.idtypeDispense,\n 'dispenseId': value.dispenseId,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbDispenseGridDto } from './FcbDispenseGridDto';\nimport {\n FcbDispenseGridDtoFromJSON,\n FcbDispenseGridDtoFromJSONTyped,\n FcbDispenseGridDtoToJSON,\n} from './FcbDispenseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbDispenseGridDtoPaginatedResults\n */\nexport interface FcbDispenseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbDispenseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbDispenseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbDispenseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbDispenseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbDispenseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbDispenseGridDtoPaginatedResultsFromJSON(json: any): FcbDispenseGridDtoPaginatedResults {\n return FcbDispenseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbDispenseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbDispenseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbDispenseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbDispenseGridDtoPaginatedResultsToJSON(value?: FcbDispenseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbDispenseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEcoleDto\n */\nexport interface FcbEcoleDto {\n /**\n * \n * @type {number}\n * @memberof FcbEcoleDto\n */\n idecole?: number;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n fax?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbEcoleDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbEcoleDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbEcoleDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbEcoleDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleDto\n */\n idecoleGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEcoleDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbEcoleDto interface.\n */\nexport function instanceOfFcbEcoleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEcoleDtoFromJSON(json: any): FcbEcoleDto {\n return FcbEcoleDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEcoleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEcoleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idecole': !exists(json, 'idecole') ? undefined : json['idecole'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idecoleGuid': !exists(json, 'idecoleGuid') ? undefined : json['idecoleGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbEcoleDtoToJSON(value?: FcbEcoleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idecole': value.idecole,\n 'nom': value.nom,\n 'adresse': value.adresse,\n 'localite': value.localite,\n 'codePostal': value.codePostal,\n 'commune': value.commune,\n 'codePays': value.codePays,\n 'telephone': value.telephone,\n 'fax': value.fax,\n 'email': value.email,\n 'remarque': value.remarque,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idecoleGuid': value.idecoleGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEcoleGridDto\n */\nexport interface FcbEcoleGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbEcoleGridDto\n */\n idecole?: number;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleGridDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleGridDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleGridDto\n */\n nomPays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEcoleGridDto\n */\n fax?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEcoleGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbEcoleGridDto interface.\n */\nexport function instanceOfFcbEcoleGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEcoleGridDtoFromJSON(json: any): FcbEcoleGridDto {\n return FcbEcoleGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEcoleGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEcoleGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idecole': !exists(json, 'idecole') ? undefined : json['idecole'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'nomPays': !exists(json, 'nomPays') ? undefined : json['nomPays'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbEcoleGridDtoToJSON(value?: FcbEcoleGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idecole': value.idecole,\n 'nom': value.nom,\n 'adresse': value.adresse,\n 'localite': value.localite,\n 'codePostal': value.codePostal,\n 'codePays': value.codePays,\n 'nomPays': value.nomPays,\n 'telephone': value.telephone,\n 'fax': value.fax,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbEcoleGridDto } from './FcbEcoleGridDto';\nimport {\n FcbEcoleGridDtoFromJSON,\n FcbEcoleGridDtoFromJSONTyped,\n FcbEcoleGridDtoToJSON,\n} from './FcbEcoleGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbEcoleGridDtoPaginatedResults\n */\nexport interface FcbEcoleGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbEcoleGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbEcoleGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbEcoleGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbEcoleGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbEcoleGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEcoleGridDtoPaginatedResultsFromJSON(json: any): FcbEcoleGridDtoPaginatedResults {\n return FcbEcoleGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbEcoleGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEcoleGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbEcoleGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbEcoleGridDtoPaginatedResultsToJSON(value?: FcbEcoleGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbEcoleGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEntitecentreDto\n */\nexport interface FcbEntitecentreDto {\n /**\n * \n * @type {number}\n * @memberof FcbEntitecentreDto\n */\n identite?: number;\n /**\n * \n * @type {string}\n * @memberof FcbEntitecentreDto\n */\n nom?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEntitecentreDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbEntitecentreDto interface.\n */\nexport function instanceOfFcbEntitecentreDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEntitecentreDtoFromJSON(json: any): FcbEntitecentreDto {\n return FcbEntitecentreDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEntitecentreDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEntitecentreDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'identite': !exists(json, 'identite') ? undefined : json['identite'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbEntitecentreDtoToJSON(value?: FcbEntitecentreDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'identite': value.identite,\n 'nom': value.nom,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbEntitecentreDto } from './FcbEntitecentreDto';\nimport {\n FcbEntitecentreDtoFromJSON,\n FcbEntitecentreDtoFromJSONTyped,\n FcbEntitecentreDtoToJSON,\n} from './FcbEntitecentreDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbEntitecentreDtoPaginatedResults\n */\nexport interface FcbEntitecentreDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbEntitecentreDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbEntitecentreDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbEntitecentreDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbEntitecentreDtoPaginatedResults interface.\n */\nexport function instanceOfFcbEntitecentreDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEntitecentreDtoPaginatedResultsFromJSON(json: any): FcbEntitecentreDtoPaginatedResults {\n return FcbEntitecentreDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbEntitecentreDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEntitecentreDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbEntitecentreDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbEntitecentreDtoPaginatedResultsToJSON(value?: FcbEntitecentreDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbEntitecentreDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEnveloppeProjetFinancementDto\n */\nexport interface FcbEnveloppeProjetFinancementDto {\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementDto\n */\n idenveloppeProjetFinancement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbEnveloppeProjetFinancementDto\n */\n idanneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementDto\n */\n idprojetFinancement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementDto\n */\n heureS1?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementDto\n */\n heureS2?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementDto\n */\n identite?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbEnveloppeProjetFinancementDto interface.\n */\nexport function instanceOfFcbEnveloppeProjetFinancementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEnveloppeProjetFinancementDtoFromJSON(json: any): FcbEnveloppeProjetFinancementDto {\n return FcbEnveloppeProjetFinancementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEnveloppeProjetFinancementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEnveloppeProjetFinancementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idenveloppeProjetFinancement': !exists(json, 'idenveloppeProjetFinancement') ? undefined : json['idenveloppeProjetFinancement'],\n 'idanneeScolaire': !exists(json, 'idanneeScolaire') ? undefined : json['idanneeScolaire'],\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'heureS1': !exists(json, 'heureS1') ? undefined : json['heureS1'],\n 'heureS2': !exists(json, 'heureS2') ? undefined : json['heureS2'],\n 'identite': !exists(json, 'identite') ? undefined : json['identite'],\n };\n}\n\nexport function FcbEnveloppeProjetFinancementDtoToJSON(value?: FcbEnveloppeProjetFinancementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idenveloppeProjetFinancement': value.idenveloppeProjetFinancement,\n 'idanneeScolaire': value.idanneeScolaire,\n 'idprojetFinancement': value.idprojetFinancement,\n 'heureS1': value.heureS1,\n 'heureS2': value.heureS2,\n 'identite': value.identite,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEnveloppeProjetFinancementGridDto\n */\nexport interface FcbEnveloppeProjetFinancementGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementGridDto\n */\n idenveloppeProjetFinancement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbEnveloppeProjetFinancementGridDto\n */\n idanneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementGridDto\n */\n idprojetFinancement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementGridDto\n */\n heureS1?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementGridDto\n */\n heureS2?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementGridDto\n */\n identite?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbEnveloppeProjetFinancementGridDto\n */\n centre?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbEnveloppeProjetFinancementGridDto interface.\n */\nexport function instanceOfFcbEnveloppeProjetFinancementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEnveloppeProjetFinancementGridDtoFromJSON(json: any): FcbEnveloppeProjetFinancementGridDto {\n return FcbEnveloppeProjetFinancementGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEnveloppeProjetFinancementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEnveloppeProjetFinancementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idenveloppeProjetFinancement': !exists(json, 'idenveloppeProjetFinancement') ? undefined : json['idenveloppeProjetFinancement'],\n 'idanneeScolaire': !exists(json, 'idanneeScolaire') ? undefined : json['idanneeScolaire'],\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'heureS1': !exists(json, 'heureS1') ? undefined : json['heureS1'],\n 'heureS2': !exists(json, 'heureS2') ? undefined : json['heureS2'],\n 'identite': !exists(json, 'identite') ? undefined : json['identite'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n };\n}\n\nexport function FcbEnveloppeProjetFinancementGridDtoToJSON(value?: FcbEnveloppeProjetFinancementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idenveloppeProjetFinancement': value.idenveloppeProjetFinancement,\n 'idanneeScolaire': value.idanneeScolaire,\n 'idprojetFinancement': value.idprojetFinancement,\n 'heureS1': value.heureS1,\n 'heureS2': value.heureS2,\n 'identite': value.identite,\n 'centre': value.centre,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbEnveloppeProjetFinancementGridDto } from './FcbEnveloppeProjetFinancementGridDto';\nimport {\n FcbEnveloppeProjetFinancementGridDtoFromJSON,\n FcbEnveloppeProjetFinancementGridDtoFromJSONTyped,\n FcbEnveloppeProjetFinancementGridDtoToJSON,\n} from './FcbEnveloppeProjetFinancementGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbEnveloppeProjetFinancementGridDtoPaginatedResults\n */\nexport interface FcbEnveloppeProjetFinancementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeProjetFinancementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbEnveloppeProjetFinancementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbEnveloppeProjetFinancementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbEnveloppeProjetFinancementGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbEnveloppeProjetFinancementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEnveloppeProjetFinancementGridDtoPaginatedResultsFromJSON(json: any): FcbEnveloppeProjetFinancementGridDtoPaginatedResults {\n return FcbEnveloppeProjetFinancementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbEnveloppeProjetFinancementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEnveloppeProjetFinancementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbEnveloppeProjetFinancementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbEnveloppeProjetFinancementGridDtoPaginatedResultsToJSON(value?: FcbEnveloppeProjetFinancementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbEnveloppeProjetFinancementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEnveloppeTypeFinancementDto\n */\nexport interface FcbEnveloppeTypeFinancementDto {\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementDto\n */\n idenveloppeTypeFinancement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbEnveloppeTypeFinancementDto\n */\n idanneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementDto\n */\n idfinancementType?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementDto\n */\n heureS1?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementDto\n */\n heureS2?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementDto\n */\n identite?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbEnveloppeTypeFinancementDto interface.\n */\nexport function instanceOfFcbEnveloppeTypeFinancementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEnveloppeTypeFinancementDtoFromJSON(json: any): FcbEnveloppeTypeFinancementDto {\n return FcbEnveloppeTypeFinancementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEnveloppeTypeFinancementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEnveloppeTypeFinancementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idenveloppeTypeFinancement': !exists(json, 'idenveloppeTypeFinancement') ? undefined : json['idenveloppeTypeFinancement'],\n 'idanneeScolaire': !exists(json, 'idanneeScolaire') ? undefined : json['idanneeScolaire'],\n 'idfinancementType': !exists(json, 'idfinancementType') ? undefined : json['idfinancementType'],\n 'heureS1': !exists(json, 'heureS1') ? undefined : json['heureS1'],\n 'heureS2': !exists(json, 'heureS2') ? undefined : json['heureS2'],\n 'identite': !exists(json, 'identite') ? undefined : json['identite'],\n };\n}\n\nexport function FcbEnveloppeTypeFinancementDtoToJSON(value?: FcbEnveloppeTypeFinancementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idenveloppeTypeFinancement': value.idenveloppeTypeFinancement,\n 'idanneeScolaire': value.idanneeScolaire,\n 'idfinancementType': value.idfinancementType,\n 'heureS1': value.heureS1,\n 'heureS2': value.heureS2,\n 'identite': value.identite,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEnveloppeTypeFinancementGridDto\n */\nexport interface FcbEnveloppeTypeFinancementGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementGridDto\n */\n idenveloppeTypeFinancement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbEnveloppeTypeFinancementGridDto\n */\n idanneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementGridDto\n */\n idfinancementType?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementGridDto\n */\n heureS1?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementGridDto\n */\n heureS2?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementGridDto\n */\n identite?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbEnveloppeTypeFinancementGridDto\n */\n centre?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbEnveloppeTypeFinancementGridDto interface.\n */\nexport function instanceOfFcbEnveloppeTypeFinancementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEnveloppeTypeFinancementGridDtoFromJSON(json: any): FcbEnveloppeTypeFinancementGridDto {\n return FcbEnveloppeTypeFinancementGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEnveloppeTypeFinancementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEnveloppeTypeFinancementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idenveloppeTypeFinancement': !exists(json, 'idenveloppeTypeFinancement') ? undefined : json['idenveloppeTypeFinancement'],\n 'idanneeScolaire': !exists(json, 'idanneeScolaire') ? undefined : json['idanneeScolaire'],\n 'idfinancementType': !exists(json, 'idfinancementType') ? undefined : json['idfinancementType'],\n 'heureS1': !exists(json, 'heureS1') ? undefined : json['heureS1'],\n 'heureS2': !exists(json, 'heureS2') ? undefined : json['heureS2'],\n 'identite': !exists(json, 'identite') ? undefined : json['identite'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n };\n}\n\nexport function FcbEnveloppeTypeFinancementGridDtoToJSON(value?: FcbEnveloppeTypeFinancementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idenveloppeTypeFinancement': value.idenveloppeTypeFinancement,\n 'idanneeScolaire': value.idanneeScolaire,\n 'idfinancementType': value.idfinancementType,\n 'heureS1': value.heureS1,\n 'heureS2': value.heureS2,\n 'identite': value.identite,\n 'centre': value.centre,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbEnveloppeTypeFinancementGridDto } from './FcbEnveloppeTypeFinancementGridDto';\nimport {\n FcbEnveloppeTypeFinancementGridDtoFromJSON,\n FcbEnveloppeTypeFinancementGridDtoFromJSONTyped,\n FcbEnveloppeTypeFinancementGridDtoToJSON,\n} from './FcbEnveloppeTypeFinancementGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbEnveloppeTypeFinancementGridDtoPaginatedResults\n */\nexport interface FcbEnveloppeTypeFinancementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbEnveloppeTypeFinancementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbEnveloppeTypeFinancementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbEnveloppeTypeFinancementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbEnveloppeTypeFinancementGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbEnveloppeTypeFinancementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEnveloppeTypeFinancementGridDtoPaginatedResultsFromJSON(json: any): FcbEnveloppeTypeFinancementGridDtoPaginatedResults {\n return FcbEnveloppeTypeFinancementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbEnveloppeTypeFinancementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEnveloppeTypeFinancementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbEnveloppeTypeFinancementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbEnveloppeTypeFinancementGridDtoPaginatedResultsToJSON(value?: FcbEnveloppeTypeFinancementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbEnveloppeTypeFinancementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEvaluationApprenantGetDto\n */\nexport interface FcbEvaluationApprenantGetDto {\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationApprenantGetDto\n */\n idEvaluationApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationApprenantGetDto\n */\n idEvaluation?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationApprenantGetDto\n */\n idInscription?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationApprenantGetDto\n */\n typeEvaluation?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n typeEvaluationLibelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n apprenant?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n cote?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n statut?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n coteBeforeCalcul?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n coteReferentiel?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationApprenantGetDto\n */\n remediationConseil?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n coteRemediation?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationApprenantGetDto\n */\n neutralise?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationApprenantGetDto\n */\n idApprenant?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationApprenantGetDto\n */\n disabled?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n readonly presence?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationApprenantGetDto\n */\n neutraliseValue?: boolean;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n readonly coteMaxValue?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n coteValue?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationApprenantGetDto\n */\n readonly coteReferentielValue?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbEvaluationApprenantGetDto interface.\n */\nexport function instanceOfFcbEvaluationApprenantGetDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEvaluationApprenantGetDtoFromJSON(json: any): FcbEvaluationApprenantGetDto {\n return FcbEvaluationApprenantGetDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEvaluationApprenantGetDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEvaluationApprenantGetDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idEvaluationApprenant': !exists(json, 'idEvaluationApprenant') ? undefined : json['idEvaluationApprenant'],\n 'idEvaluation': !exists(json, 'idEvaluation') ? undefined : json['idEvaluation'],\n 'idInscription': !exists(json, 'idInscription') ? undefined : json['idInscription'],\n 'typeEvaluation': !exists(json, 'typeEvaluation') ? undefined : json['typeEvaluation'],\n 'typeEvaluationLibelle': !exists(json, 'typeEvaluationLibelle') ? undefined : json['typeEvaluationLibelle'],\n 'apprenant': !exists(json, 'apprenant') ? undefined : json['apprenant'],\n 'cote': !exists(json, 'cote') ? undefined : json['cote'],\n 'statut': !exists(json, 'statut') ? undefined : json['statut'],\n 'coteBeforeCalcul': !exists(json, 'coteBeforeCalcul') ? undefined : json['coteBeforeCalcul'],\n 'coteReferentiel': !exists(json, 'coteReferentiel') ? undefined : json['coteReferentiel'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'remediationConseil': !exists(json, 'remediationConseil') ? undefined : json['remediationConseil'],\n 'coteRemediation': !exists(json, 'coteRemediation') ? undefined : json['coteRemediation'],\n 'neutralise': !exists(json, 'neutralise') ? undefined : json['neutralise'],\n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'disabled': !exists(json, 'disabled') ? undefined : json['disabled'],\n 'presence': !exists(json, 'presence') ? undefined : json['presence'],\n 'neutraliseValue': !exists(json, 'neutraliseValue') ? undefined : json['neutraliseValue'],\n 'coteMaxValue': !exists(json, 'coteMaxValue') ? undefined : json['coteMaxValue'],\n 'coteValue': !exists(json, 'coteValue') ? undefined : json['coteValue'],\n 'coteReferentielValue': !exists(json, 'coteReferentielValue') ? undefined : json['coteReferentielValue'],\n };\n}\n\nexport function FcbEvaluationApprenantGetDtoToJSON(value?: FcbEvaluationApprenantGetDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idEvaluationApprenant': value.idEvaluationApprenant,\n 'idEvaluation': value.idEvaluation,\n 'idInscription': value.idInscription,\n 'typeEvaluation': value.typeEvaluation,\n 'typeEvaluationLibelle': value.typeEvaluationLibelle,\n 'apprenant': value.apprenant,\n 'cote': value.cote,\n 'statut': value.statut,\n 'coteBeforeCalcul': value.coteBeforeCalcul,\n 'coteReferentiel': value.coteReferentiel,\n 'remarque': value.remarque,\n 'remediationConseil': value.remediationConseil,\n 'coteRemediation': value.coteRemediation,\n 'neutralise': value.neutralise,\n 'idApprenant': value.idApprenant,\n 'disabled': value.disabled,\n 'neutraliseValue': value.neutraliseValue,\n 'coteValue': value.coteValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbEvaluationApprenantGetDto } from './FcbEvaluationApprenantGetDto';\nimport {\n FcbEvaluationApprenantGetDtoFromJSON,\n FcbEvaluationApprenantGetDtoFromJSONTyped,\n FcbEvaluationApprenantGetDtoToJSON,\n} from './FcbEvaluationApprenantGetDto';\n\n/**\n * \n * @export\n * @interface FcbEvaluationApprenantListGetDto\n */\nexport interface FcbEvaluationApprenantListGetDto {\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationApprenantListGetDto\n */\n isFromWalter?: boolean;\n /**\n * \n * @type {Array}\n * @memberof FcbEvaluationApprenantListGetDto\n */\n evaluationApprenantDtos?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbEvaluationApprenantListGetDto interface.\n */\nexport function instanceOfFcbEvaluationApprenantListGetDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEvaluationApprenantListGetDtoFromJSON(json: any): FcbEvaluationApprenantListGetDto {\n return FcbEvaluationApprenantListGetDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEvaluationApprenantListGetDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEvaluationApprenantListGetDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'isFromWalter': !exists(json, 'isFromWalter') ? undefined : json['isFromWalter'],\n 'evaluationApprenantDtos': !exists(json, 'evaluationApprenantDtos') ? undefined : (json['evaluationApprenantDtos'] === null ? null : (json['evaluationApprenantDtos'] as Array).map(FcbEvaluationApprenantGetDtoFromJSON)),\n };\n}\n\nexport function FcbEvaluationApprenantListGetDtoToJSON(value?: FcbEvaluationApprenantListGetDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'isFromWalter': value.isFromWalter,\n 'evaluationApprenantDtos': value.evaluationApprenantDtos === undefined ? undefined : (value.evaluationApprenantDtos === null ? null : (value.evaluationApprenantDtos as Array).map(FcbEvaluationApprenantGetDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEvaluationDto\n */\nexport interface FcbEvaluationDto {\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationDto\n */\n idEvaluation?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationDto\n */\n typeEvaluation?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationDto\n */\n idClasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationDto\n */\n idClasseMatiere?: number;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationDto\n */\n date?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationDto\n */\n coteMax?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationDto\n */\n coteMaxReferentiel?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationDto\n */\n lockFormateur?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationDto\n */\n idParent?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationDto\n */\n idEvaluationParent?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationDto\n */\n remediation?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbEvaluationDto interface.\n */\nexport function instanceOfFcbEvaluationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEvaluationDtoFromJSON(json: any): FcbEvaluationDto {\n return FcbEvaluationDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEvaluationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEvaluationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idEvaluation': !exists(json, 'idEvaluation') ? undefined : json['idEvaluation'],\n 'typeEvaluation': !exists(json, 'typeEvaluation') ? undefined : json['typeEvaluation'],\n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'idClasseMatiere': !exists(json, 'idClasseMatiere') ? undefined : json['idClasseMatiere'],\n 'date': !exists(json, 'date') ? undefined : json['date'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'coteMax': !exists(json, 'coteMax') ? undefined : json['coteMax'],\n 'coteMaxReferentiel': !exists(json, 'coteMaxReferentiel') ? undefined : json['coteMaxReferentiel'],\n 'lockFormateur': !exists(json, 'lockFormateur') ? undefined : json['lockFormateur'],\n 'idParent': !exists(json, 'idParent') ? undefined : json['idParent'],\n 'idEvaluationParent': !exists(json, 'idEvaluationParent') ? undefined : json['idEvaluationParent'],\n 'remediation': !exists(json, 'remediation') ? undefined : json['remediation'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbEvaluationDtoToJSON(value?: FcbEvaluationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idEvaluation': value.idEvaluation,\n 'typeEvaluation': value.typeEvaluation,\n 'idClasse': value.idClasse,\n 'idClasseMatiere': value.idClasseMatiere,\n 'date': value.date,\n 'libelle': value.libelle,\n 'coteMax': value.coteMax,\n 'coteMaxReferentiel': value.coteMaxReferentiel,\n 'lockFormateur': value.lockFormateur,\n 'idParent': value.idParent,\n 'idEvaluationParent': value.idEvaluationParent,\n 'remediation': value.remediation,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbEvaluationGridDto\n */\nexport interface FcbEvaluationGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationGridDto\n */\n idevaluation?: number;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationGridDto\n */\n annee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationGridDto\n */\n codeClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationGridDto\n */\n libelleClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationGridDto\n */\n codeMatiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationGridDto\n */\n formateur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationGridDto\n */\n type?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbEvaluationGridDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbEvaluationGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationGridDto\n */\n coteMax?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationGridDto\n */\n valide?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbEvaluationGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbEvaluationGridDto interface.\n */\nexport function instanceOfFcbEvaluationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEvaluationGridDtoFromJSON(json: any): FcbEvaluationGridDto {\n return FcbEvaluationGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbEvaluationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEvaluationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idevaluation': !exists(json, 'idevaluation') ? undefined : json['idevaluation'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : json['codeClasse'],\n 'libelleClasse': !exists(json, 'libelleClasse') ? undefined : json['libelleClasse'],\n 'codeMatiere': !exists(json, 'codeMatiere') ? undefined : json['codeMatiere'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'coteMax': !exists(json, 'coteMax') ? undefined : json['coteMax'],\n 'valide': !exists(json, 'valide') ? undefined : json['valide'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbEvaluationGridDtoToJSON(value?: FcbEvaluationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idevaluation': value.idevaluation,\n 'annee': value.annee,\n 'codeClasse': value.codeClasse,\n 'libelleClasse': value.libelleClasse,\n 'codeMatiere': value.codeMatiere,\n 'formateur': value.formateur,\n 'type': value.type,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'libelle': value.libelle,\n 'coteMax': value.coteMax,\n 'valide': value.valide,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbEvaluationGridDto } from './FcbEvaluationGridDto';\nimport {\n FcbEvaluationGridDtoFromJSON,\n FcbEvaluationGridDtoFromJSONTyped,\n FcbEvaluationGridDtoToJSON,\n} from './FcbEvaluationGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbEvaluationGridDtoPaginatedResults\n */\nexport interface FcbEvaluationGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbEvaluationGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbEvaluationGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbEvaluationGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbEvaluationGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbEvaluationGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbEvaluationGridDtoPaginatedResultsFromJSON(json: any): FcbEvaluationGridDtoPaginatedResults {\n return FcbEvaluationGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbEvaluationGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbEvaluationGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbEvaluationGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbEvaluationGridDtoPaginatedResultsToJSON(value?: FcbEvaluationGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbEvaluationGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExamenEntreeDto\n */\nexport interface FcbExamenEntreeDto {\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeDto\n */\n idexamenEntree?: number;\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeDto\n */\n pointsmath?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeDto\n */\n pointsfrancais?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeDto\n */\n pointslogique?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbExamenEntreeDto\n */\n annee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExamenEntreeDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbExamenEntreeDto\n */\n reussite?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbExamenEntreeDto\n */\n dateExamen?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbExamenEntreeDto interface.\n */\nexport function instanceOfFcbExamenEntreeDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExamenEntreeDtoFromJSON(json: any): FcbExamenEntreeDto {\n return FcbExamenEntreeDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExamenEntreeDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExamenEntreeDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexamenEntree': !exists(json, 'idexamenEntree') ? undefined : json['idexamenEntree'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'pointsmath': !exists(json, 'pointsmath') ? undefined : json['pointsmath'],\n 'pointsfrancais': !exists(json, 'pointsfrancais') ? undefined : json['pointsfrancais'],\n 'pointslogique': !exists(json, 'pointslogique') ? undefined : json['pointslogique'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'reussite': !exists(json, 'reussite') ? undefined : json['reussite'],\n 'dateExamen': !exists(json, 'dateExamen') ? undefined : (json['dateExamen'] === null ? null : new Date(json['dateExamen'])),\n };\n}\n\nexport function FcbExamenEntreeDtoToJSON(value?: FcbExamenEntreeDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexamenEntree': value.idexamenEntree,\n 'idapprenant': value.idapprenant,\n 'pointsmath': value.pointsmath,\n 'pointsfrancais': value.pointsfrancais,\n 'pointslogique': value.pointslogique,\n 'annee': value.annee,\n 'remarque': value.remarque,\n 'reussite': value.reussite,\n 'dateExamen': value.dateExamen === undefined ? undefined : (value.dateExamen === null ? null : value.dateExamen.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExamenEntreeGridDto\n */\nexport interface FcbExamenEntreeGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeGridDto\n */\n idexamenEntree?: number;\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeGridDto\n */\n pointsmath?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeGridDto\n */\n pointsfrancais?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeGridDto\n */\n pointslogique?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbExamenEntreeGridDto\n */\n annee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExamenEntreeGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbExamenEntreeGridDto\n */\n reussite?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbExamenEntreeGridDto\n */\n dateExamen?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbExamenEntreeGridDto interface.\n */\nexport function instanceOfFcbExamenEntreeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExamenEntreeGridDtoFromJSON(json: any): FcbExamenEntreeGridDto {\n return FcbExamenEntreeGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExamenEntreeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExamenEntreeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexamenEntree': !exists(json, 'idexamenEntree') ? undefined : json['idexamenEntree'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'pointsmath': !exists(json, 'pointsmath') ? undefined : json['pointsmath'],\n 'pointsfrancais': !exists(json, 'pointsfrancais') ? undefined : json['pointsfrancais'],\n 'pointslogique': !exists(json, 'pointslogique') ? undefined : json['pointslogique'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'reussite': !exists(json, 'reussite') ? undefined : json['reussite'],\n 'dateExamen': !exists(json, 'dateExamen') ? undefined : (json['dateExamen'] === null ? null : new Date(json['dateExamen'])),\n };\n}\n\nexport function FcbExamenEntreeGridDtoToJSON(value?: FcbExamenEntreeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexamenEntree': value.idexamenEntree,\n 'idapprenant': value.idapprenant,\n 'pointsmath': value.pointsmath,\n 'pointsfrancais': value.pointsfrancais,\n 'pointslogique': value.pointslogique,\n 'annee': value.annee,\n 'remarque': value.remarque,\n 'reussite': value.reussite,\n 'dateExamen': value.dateExamen === undefined ? undefined : (value.dateExamen === null ? null : value.dateExamen.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbExamenEntreeGridDto } from './FcbExamenEntreeGridDto';\nimport {\n FcbExamenEntreeGridDtoFromJSON,\n FcbExamenEntreeGridDtoFromJSONTyped,\n FcbExamenEntreeGridDtoToJSON,\n} from './FcbExamenEntreeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbExamenEntreeGridDtoPaginatedResults\n */\nexport interface FcbExamenEntreeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbExamenEntreeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbExamenEntreeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbExamenEntreeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbExamenEntreeGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbExamenEntreeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExamenEntreeGridDtoPaginatedResultsFromJSON(json: any): FcbExamenEntreeGridDtoPaginatedResults {\n return FcbExamenEntreeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbExamenEntreeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExamenEntreeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbExamenEntreeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbExamenEntreeGridDtoPaginatedResultsToJSON(value?: FcbExamenEntreeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbExamenEntreeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExportAccesPermissionDto\n */\nexport interface FcbExportAccesPermissionDto {\n /**\n * \n * @type {boolean}\n * @memberof FcbExportAccesPermissionDto\n */\n selected?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbExportAccesPermissionDto\n */\n idexport?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportAccesPermissionDto\n */\n idlevel?: number;\n /**\n * \n * @type {string}\n * @memberof FcbExportAccesPermissionDto\n */\n description?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbExportAccesPermissionDto interface.\n */\nexport function instanceOfFcbExportAccesPermissionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportAccesPermissionDtoFromJSON(json: any): FcbExportAccesPermissionDto {\n return FcbExportAccesPermissionDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportAccesPermissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportAccesPermissionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selected': !exists(json, 'selected') ? undefined : json['selected'],\n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'idlevel': !exists(json, 'idlevel') ? undefined : json['idlevel'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n };\n}\n\nexport function FcbExportAccesPermissionDtoToJSON(value?: FcbExportAccesPermissionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selected': value.selected,\n 'idexport': value.idexport,\n 'idlevel': value.idlevel,\n 'description': value.description,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExportCentrePermissionDto\n */\nexport interface FcbExportCentrePermissionDto {\n /**\n * \n * @type {boolean}\n * @memberof FcbExportCentrePermissionDto\n */\n selected?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbExportCentrePermissionDto\n */\n idexport?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportCentrePermissionDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbExportCentrePermissionDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbExportCentrePermissionDto interface.\n */\nexport function instanceOfFcbExportCentrePermissionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportCentrePermissionDtoFromJSON(json: any): FcbExportCentrePermissionDto {\n return FcbExportCentrePermissionDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportCentrePermissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportCentrePermissionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selected': !exists(json, 'selected') ? undefined : json['selected'],\n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function FcbExportCentrePermissionDtoToJSON(value?: FcbExportCentrePermissionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selected': value.selected,\n 'idexport': value.idexport,\n 'idcentre': value.idcentre,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FieldInfo\n */\nexport interface FieldInfo {\n /**\n * \n * @type {string}\n * @memberof FieldInfo\n */\n name?: string | null;\n /**\n * \n * @type {string}\n * @memberof FieldInfo\n */\n value?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FieldInfo\n */\n required?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FieldInfo interface.\n */\nexport function instanceOfFieldInfo(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FieldInfoFromJSON(json: any): FieldInfo {\n return FieldInfoFromJSONTyped(json, false);\n}\n\nexport function FieldInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FieldInfo {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'required': !exists(json, 'required') ? undefined : json['required'],\n };\n}\n\nexport function FieldInfoToJSON(value?: FieldInfo | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'name': value.name,\n 'value': value.value,\n 'required': value.required,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FieldInfo } from './FieldInfo';\nimport {\n FieldInfoFromJSON,\n FieldInfoFromJSONTyped,\n FieldInfoToJSON,\n} from './FieldInfo';\n\n/**\n * \n * @export\n * @interface FcbExportDetailDto\n */\nexport interface FcbExportDetailDto {\n /**\n * \n * @type {Array}\n * @memberof FcbExportDetailDto\n */\n parameters?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbExportDetailDto interface.\n */\nexport function instanceOfFcbExportDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportDetailDtoFromJSON(json: any): FcbExportDetailDto {\n return FcbExportDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'parameters': !exists(json, 'parameters') ? undefined : (json['parameters'] === null ? null : (json['parameters'] as Array).map(FieldInfoFromJSON)),\n };\n}\n\nexport function FcbExportDetailDtoToJSON(value?: FcbExportDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'parameters': value.parameters === undefined ? undefined : (value.parameters === null ? null : (value.parameters as Array).map(FieldInfoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExportDto\n */\nexport interface FcbExportDto {\n /**\n * \n * @type {number}\n * @memberof FcbExportDto\n */\n idexport?: number;\n /**\n * \n * @type {number}\n * @memberof FcbExportDto\n */\n iddb?: number;\n /**\n * \n * @type {number}\n * @memberof FcbExportDto\n */\n idtype?: number;\n /**\n * \n * @type {string}\n * @memberof FcbExportDto\n */\n query?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportDto\n */\n nom?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbExportDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbExportDto interface.\n */\nexport function instanceOfFcbExportDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportDtoFromJSON(json: any): FcbExportDto {\n return FcbExportDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'iddb': !exists(json, 'iddb') ? undefined : json['iddb'],\n 'idtype': !exists(json, 'idtype') ? undefined : json['idtype'],\n 'query': !exists(json, 'query') ? undefined : json['query'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbExportDtoToJSON(value?: FcbExportDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexport': value.idexport,\n 'iddb': value.iddb,\n 'idtype': value.idtype,\n 'query': value.query,\n 'description': value.description,\n 'nom': value.nom,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExportGapClassesGridDto\n */\nexport interface FcbExportGapClassesGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbExportGapClassesGridDto\n */\n codeClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapClassesGridDto\n */\n classe?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportGapClassesGridDto\n */\n nbheuresSemestre1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportGapClassesGridDto\n */\n nbheuresSemestre2?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapClassesGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportGapClassesGridDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportGapClassesGridDto\n */\n idexport?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbExportGapClassesGridDto interface.\n */\nexport function instanceOfFcbExportGapClassesGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportGapClassesGridDtoFromJSON(json: any): FcbExportGapClassesGridDto {\n return FcbExportGapClassesGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportGapClassesGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportGapClassesGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codeClasse': !exists(json, 'codeClasse') ? undefined : json['codeClasse'],\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'nbheuresSemestre1': !exists(json, 'nbheuresSemestre1') ? undefined : json['nbheuresSemestre1'],\n 'nbheuresSemestre2': !exists(json, 'nbheuresSemestre2') ? undefined : json['nbheuresSemestre2'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n };\n}\n\nexport function FcbExportGapClassesGridDtoToJSON(value?: FcbExportGapClassesGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codeClasse': value.codeClasse,\n 'classe': value.classe,\n 'nbheuresSemestre1': value.nbheuresSemestre1,\n 'nbheuresSemestre2': value.nbheuresSemestre2,\n 'nom': value.nom,\n 'idclasse': value.idclasse,\n 'idexport': value.idexport,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbExportGapClassesGridDto } from './FcbExportGapClassesGridDto';\nimport {\n FcbExportGapClassesGridDtoFromJSON,\n FcbExportGapClassesGridDtoFromJSONTyped,\n FcbExportGapClassesGridDtoToJSON,\n} from './FcbExportGapClassesGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbExportGapClassesGridDtoPaginatedResults\n */\nexport interface FcbExportGapClassesGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbExportGapClassesGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbExportGapClassesGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbExportGapClassesGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbExportGapClassesGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbExportGapClassesGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportGapClassesGridDtoPaginatedResultsFromJSON(json: any): FcbExportGapClassesGridDtoPaginatedResults {\n return FcbExportGapClassesGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbExportGapClassesGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportGapClassesGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbExportGapClassesGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbExportGapClassesGridDtoPaginatedResultsToJSON(value?: FcbExportGapClassesGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbExportGapClassesGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExportGapDto\n */\nexport interface FcbExportGapDto {\n /**\n * \n * @type {number}\n * @memberof FcbExportGapDto\n */\n idexport?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbExportGapDto\n */\n date?: Date;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapDto\n */\n description?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbExportGapDto\n */\n valide?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportGapDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbExportGapDto\n */\n dateExport?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbExportGapDto interface.\n */\nexport function instanceOfFcbExportGapDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportGapDtoFromJSON(json: any): FcbExportGapDto {\n return FcbExportGapDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportGapDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportGapDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'date': !exists(json, 'date') ? undefined : (new Date(json['date'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'valide': !exists(json, 'valide') ? undefined : json['valide'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'dateExport': !exists(json, 'dateExport') ? undefined : (json['dateExport'] === null ? null : new Date(json['dateExport'])),\n };\n}\n\nexport function FcbExportGapDtoToJSON(value?: FcbExportGapDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexport': value.idexport,\n 'date': value.date === undefined ? undefined : (value.date.toISOString()),\n 'description': value.description,\n 'valide': value.valide,\n 'idcentre': value.idcentre,\n 'dateExport': value.dateExport === undefined ? undefined : (value.dateExport === null ? null : value.dateExport.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExportGapFormateursGridDto\n */\nexport interface FcbExportGapFormateursGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbExportGapFormateursGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapFormateursGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapFormateursGridDto\n */\n matricule?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapFormateursGridDto\n */\n ancienMatricule?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapFormateursGridDto\n */\n adresseDomicile?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportGapFormateursGridDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportGapFormateursGridDto\n */\n idexport?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbExportGapFormateursGridDto interface.\n */\nexport function instanceOfFcbExportGapFormateursGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportGapFormateursGridDtoFromJSON(json: any): FcbExportGapFormateursGridDto {\n return FcbExportGapFormateursGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportGapFormateursGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportGapFormateursGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'matricule': !exists(json, 'matricule') ? undefined : json['matricule'],\n 'ancienMatricule': !exists(json, 'ancienMatricule') ? undefined : json['ancienMatricule'],\n 'adresseDomicile': !exists(json, 'adresseDomicile') ? undefined : json['adresseDomicile'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n };\n}\n\nexport function FcbExportGapFormateursGridDtoToJSON(value?: FcbExportGapFormateursGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n 'prenom': value.prenom,\n 'matricule': value.matricule,\n 'ancienMatricule': value.ancienMatricule,\n 'adresseDomicile': value.adresseDomicile,\n 'idformateur': value.idformateur,\n 'idexport': value.idexport,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbExportGapFormateursGridDto } from './FcbExportGapFormateursGridDto';\nimport {\n FcbExportGapFormateursGridDtoFromJSON,\n FcbExportGapFormateursGridDtoFromJSONTyped,\n FcbExportGapFormateursGridDtoToJSON,\n} from './FcbExportGapFormateursGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbExportGapFormateursGridDtoPaginatedResults\n */\nexport interface FcbExportGapFormateursGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbExportGapFormateursGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbExportGapFormateursGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbExportGapFormateursGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbExportGapFormateursGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbExportGapFormateursGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportGapFormateursGridDtoPaginatedResultsFromJSON(json: any): FcbExportGapFormateursGridDtoPaginatedResults {\n return FcbExportGapFormateursGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbExportGapFormateursGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportGapFormateursGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbExportGapFormateursGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbExportGapFormateursGridDtoPaginatedResultsToJSON(value?: FcbExportGapFormateursGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbExportGapFormateursGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExportGapStatsGridDto\n */\nexport interface FcbExportGapStatsGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbExportGapStatsGridDto\n */\n idexport?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapStatsGridDto\n */\n heureCpdateCe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapStatsGridDto\n */\n plusRemplacantCe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapStatsGridDto\n */\n plusRemplaceCe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapStatsGridDto\n */\n moinsCrdateCe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapStatsGridDto\n */\n heureCpdateApp?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapStatsGridDto\n */\n plusRemplacantApp?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapStatsGridDto\n */\n plusRemplaceApp?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportGapStatsGridDto\n */\n moinsCrdateApp?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbExportGapStatsGridDto interface.\n */\nexport function instanceOfFcbExportGapStatsGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportGapStatsGridDtoFromJSON(json: any): FcbExportGapStatsGridDto {\n return FcbExportGapStatsGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportGapStatsGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportGapStatsGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'heureCpdateCe': !exists(json, 'heureCpdateCe') ? undefined : json['heureCpdateCe'],\n 'plusRemplacantCe': !exists(json, 'plusRemplacantCe') ? undefined : json['plusRemplacantCe'],\n 'plusRemplaceCe': !exists(json, 'plusRemplaceCe') ? undefined : json['plusRemplaceCe'],\n 'moinsCrdateCe': !exists(json, 'moinsCrdateCe') ? undefined : json['moinsCrdateCe'],\n 'heureCpdateApp': !exists(json, 'heureCpdateApp') ? undefined : json['heureCpdateApp'],\n 'plusRemplacantApp': !exists(json, 'plusRemplacantApp') ? undefined : json['plusRemplacantApp'],\n 'plusRemplaceApp': !exists(json, 'plusRemplaceApp') ? undefined : json['plusRemplaceApp'],\n 'moinsCrdateApp': !exists(json, 'moinsCrdateApp') ? undefined : json['moinsCrdateApp'],\n };\n}\n\nexport function FcbExportGapStatsGridDtoToJSON(value?: FcbExportGapStatsGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexport': value.idexport,\n 'heureCpdateCe': value.heureCpdateCe,\n 'plusRemplacantCe': value.plusRemplacantCe,\n 'plusRemplaceCe': value.plusRemplaceCe,\n 'moinsCrdateCe': value.moinsCrdateCe,\n 'heureCpdateApp': value.heureCpdateApp,\n 'plusRemplacantApp': value.plusRemplacantApp,\n 'plusRemplaceApp': value.plusRemplaceApp,\n 'moinsCrdateApp': value.moinsCrdateApp,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbExportGapStatsGridDto } from './FcbExportGapStatsGridDto';\nimport {\n FcbExportGapStatsGridDtoFromJSON,\n FcbExportGapStatsGridDtoFromJSONTyped,\n FcbExportGapStatsGridDtoToJSON,\n} from './FcbExportGapStatsGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbExportGapStatsGridDtoPaginatedResults\n */\nexport interface FcbExportGapStatsGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbExportGapStatsGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbExportGapStatsGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbExportGapStatsGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbExportGapStatsGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbExportGapStatsGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportGapStatsGridDtoPaginatedResultsFromJSON(json: any): FcbExportGapStatsGridDtoPaginatedResults {\n return FcbExportGapStatsGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbExportGapStatsGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportGapStatsGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbExportGapStatsGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbExportGapStatsGridDtoPaginatedResultsToJSON(value?: FcbExportGapStatsGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbExportGapStatsGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExportGridDto\n */\nexport interface FcbExportGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbExportGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbExportGridDto\n */\n idexport?: number;\n}\n\n/**\n * Check if a given object implements the FcbExportGridDto interface.\n */\nexport function instanceOfFcbExportGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportGridDtoFromJSON(json: any): FcbExportGridDto {\n return FcbExportGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n };\n}\n\nexport function FcbExportGridDtoToJSON(value?: FcbExportGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n 'idexport': value.idexport,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbExportGridDto } from './FcbExportGridDto';\nimport {\n FcbExportGridDtoFromJSON,\n FcbExportGridDtoFromJSONTyped,\n FcbExportGridDtoToJSON,\n} from './FcbExportGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbExportGridDtoPaginatedResults\n */\nexport interface FcbExportGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbExportGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbExportGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbExportGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbExportGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbExportGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportGridDtoPaginatedResultsFromJSON(json: any): FcbExportGridDtoPaginatedResults {\n return FcbExportGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbExportGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbExportGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbExportGridDtoPaginatedResultsToJSON(value?: FcbExportGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbExportGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbExportModulePermissionDto\n */\nexport interface FcbExportModulePermissionDto {\n /**\n * \n * @type {boolean}\n * @memberof FcbExportModulePermissionDto\n */\n selected?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbExportModulePermissionDto\n */\n idmodule?: number;\n /**\n * \n * @type {number}\n * @memberof FcbExportModulePermissionDto\n */\n idexport?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbExportModulePermissionDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbExportModulePermissionDto interface.\n */\nexport function instanceOfFcbExportModulePermissionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportModulePermissionDtoFromJSON(json: any): FcbExportModulePermissionDto {\n return FcbExportModulePermissionDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportModulePermissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportModulePermissionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selected': !exists(json, 'selected') ? undefined : json['selected'],\n 'idmodule': !exists(json, 'idmodule') ? undefined : json['idmodule'],\n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function FcbExportModulePermissionDtoToJSON(value?: FcbExportModulePermissionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selected': value.selected,\n 'idmodule': value.idmodule,\n 'idexport': value.idexport,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbExportAccesPermissionDto } from './FcbExportAccesPermissionDto';\nimport {\n FcbExportAccesPermissionDtoFromJSON,\n FcbExportAccesPermissionDtoFromJSONTyped,\n FcbExportAccesPermissionDtoToJSON,\n} from './FcbExportAccesPermissionDto';\nimport type { FcbExportCentrePermissionDto } from './FcbExportCentrePermissionDto';\nimport {\n FcbExportCentrePermissionDtoFromJSON,\n FcbExportCentrePermissionDtoFromJSONTyped,\n FcbExportCentrePermissionDtoToJSON,\n} from './FcbExportCentrePermissionDto';\nimport type { FcbExportModulePermissionDto } from './FcbExportModulePermissionDto';\nimport {\n FcbExportModulePermissionDtoFromJSON,\n FcbExportModulePermissionDtoFromJSONTyped,\n FcbExportModulePermissionDtoToJSON,\n} from './FcbExportModulePermissionDto';\n\n/**\n * \n * @export\n * @interface FcbExportPermissionsDto\n */\nexport interface FcbExportPermissionsDto {\n /**\n * \n * @type {Array}\n * @memberof FcbExportPermissionsDto\n */\n centres?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbExportPermissionsDto\n */\n acces?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbExportPermissionsDto\n */\n modules?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbExportPermissionsDto interface.\n */\nexport function instanceOfFcbExportPermissionsDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbExportPermissionsDtoFromJSON(json: any): FcbExportPermissionsDto {\n return FcbExportPermissionsDtoFromJSONTyped(json, false);\n}\n\nexport function FcbExportPermissionsDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbExportPermissionsDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'centres': !exists(json, 'centres') ? undefined : (json['centres'] === null ? null : (json['centres'] as Array).map(FcbExportCentrePermissionDtoFromJSON)),\n 'acces': !exists(json, 'acces') ? undefined : (json['acces'] === null ? null : (json['acces'] as Array).map(FcbExportAccesPermissionDtoFromJSON)),\n 'modules': !exists(json, 'modules') ? undefined : (json['modules'] === null ? null : (json['modules'] as Array).map(FcbExportModulePermissionDtoFromJSON)),\n };\n}\n\nexport function FcbExportPermissionsDtoToJSON(value?: FcbExportPermissionsDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'centres': value.centres === undefined ? undefined : (value.centres === null ? null : (value.centres as Array).map(FcbExportCentrePermissionDtoToJSON)),\n 'acces': value.acces === undefined ? undefined : (value.acces === null ? null : (value.acces as Array).map(FcbExportAccesPermissionDtoToJSON)),\n 'modules': value.modules === undefined ? undefined : (value.modules === null ? null : (value.modules as Array).map(FcbExportModulePermissionDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFeuillePresenceGridDto\n */\nexport interface FcbFeuillePresenceGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbFeuillePresenceGridDto\n */\n particulariteCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFeuillePresenceGridDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFeuillePresenceGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFeuillePresenceGridDto\n */\n masculin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFeuillePresenceGridDto\n */\n codeClasse?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFeuillePresenceGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFeuillePresenceGridDto\n */\n isuser?: number;\n}\n\n/**\n * Check if a given object implements the FcbFeuillePresenceGridDto interface.\n */\nexport function instanceOfFcbFeuillePresenceGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFeuillePresenceGridDtoFromJSON(json: any): FcbFeuillePresenceGridDto {\n return FcbFeuillePresenceGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFeuillePresenceGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFeuillePresenceGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'particulariteCours': !exists(json, 'particulariteCours') ? undefined : json['particulariteCours'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'masculin': !exists(json, 'masculin') ? undefined : json['masculin'],\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : json['codeClasse'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'isuser': !exists(json, 'isuser') ? undefined : json['isuser'],\n };\n}\n\nexport function FcbFeuillePresenceGridDtoToJSON(value?: FcbFeuillePresenceGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'particulariteCours': value.particulariteCours,\n 'anneeAcademique': value.anneeAcademique,\n 'nom': value.nom,\n 'masculin': value.masculin,\n 'codeClasse': value.codeClasse,\n 'idclasse': value.idclasse,\n 'isuser': value.isuser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFeuillePresenceGridDto } from './FcbFeuillePresenceGridDto';\nimport {\n FcbFeuillePresenceGridDtoFromJSON,\n FcbFeuillePresenceGridDtoFromJSONTyped,\n FcbFeuillePresenceGridDtoToJSON,\n} from './FcbFeuillePresenceGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFeuillePresenceGridDtoPaginatedResults\n */\nexport interface FcbFeuillePresenceGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFeuillePresenceGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFeuillePresenceGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFeuillePresenceGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFeuillePresenceGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFeuillePresenceGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFeuillePresenceGridDtoPaginatedResultsFromJSON(json: any): FcbFeuillePresenceGridDtoPaginatedResults {\n return FcbFeuillePresenceGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFeuillePresenceGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFeuillePresenceGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFeuillePresenceGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFeuillePresenceGridDtoPaginatedResultsToJSON(value?: FcbFeuillePresenceGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFeuillePresenceGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFinancementClasseDto\n */\nexport interface FcbFinancementClasseDto {\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n idfinancementClasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n idenveloppeProjetFinancement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n idprojetFinancement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n idprojetCofinancement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n heureS1?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n heureS2?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n totalLoc?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbFinancementClasseDto\n */\n localise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFinancementClasseDto\n */\n agree?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n idreferentiel?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n heureS1Agrement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n heureS2Agrement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n totalAgrement?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFinancementClasseDto\n */\n bloqueHeuresAgrement?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n reelHoursS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n reelHoursS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseDto\n */\n reelTotalAgrement?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFinancementClasseDto\n */\n localisationBloquee?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFinancementClasseDto\n */\n agrementBloquee?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbFinancementClasseDto interface.\n */\nexport function instanceOfFcbFinancementClasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFinancementClasseDtoFromJSON(json: any): FcbFinancementClasseDto {\n return FcbFinancementClasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFinancementClasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFinancementClasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idfinancementClasse': !exists(json, 'idfinancementClasse') ? undefined : json['idfinancementClasse'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idenveloppeProjetFinancement': !exists(json, 'idenveloppeProjetFinancement') ? undefined : json['idenveloppeProjetFinancement'],\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'idprojetCofinancement': !exists(json, 'idprojetCofinancement') ? undefined : json['idprojetCofinancement'],\n 'heureS1': !exists(json, 'heureS1') ? undefined : json['heureS1'],\n 'heureS2': !exists(json, 'heureS2') ? undefined : json['heureS2'],\n 'totalLoc': !exists(json, 'totalLoc') ? undefined : json['totalLoc'],\n 'localise': !exists(json, 'localise') ? undefined : json['localise'],\n 'agree': !exists(json, 'agree') ? undefined : json['agree'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'heureS1Agrement': !exists(json, 'heureS1Agrement') ? undefined : json['heureS1Agrement'],\n 'heureS2Agrement': !exists(json, 'heureS2Agrement') ? undefined : json['heureS2Agrement'],\n 'totalAgrement': !exists(json, 'totalAgrement') ? undefined : json['totalAgrement'],\n 'bloqueHeuresAgrement': !exists(json, 'bloqueHeuresAgrement') ? undefined : json['bloqueHeuresAgrement'],\n 'reelHoursS1': !exists(json, 'reelHoursS1') ? undefined : json['reelHoursS1'],\n 'reelHoursS2': !exists(json, 'reelHoursS2') ? undefined : json['reelHoursS2'],\n 'reelTotalAgrement': !exists(json, 'reelTotalAgrement') ? undefined : json['reelTotalAgrement'],\n 'localisationBloquee': !exists(json, 'localisationBloquee') ? undefined : json['localisationBloquee'],\n 'agrementBloquee': !exists(json, 'agrementBloquee') ? undefined : json['agrementBloquee'],\n };\n}\n\nexport function FcbFinancementClasseDtoToJSON(value?: FcbFinancementClasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idfinancementClasse': value.idfinancementClasse,\n 'idclasse': value.idclasse,\n 'idenveloppeProjetFinancement': value.idenveloppeProjetFinancement,\n 'idprojetFinancement': value.idprojetFinancement,\n 'idprojetCofinancement': value.idprojetCofinancement,\n 'heureS1': value.heureS1,\n 'heureS2': value.heureS2,\n 'totalLoc': value.totalLoc,\n 'localise': value.localise,\n 'agree': value.agree,\n 'idreferentiel': value.idreferentiel,\n 'heureS1Agrement': value.heureS1Agrement,\n 'heureS2Agrement': value.heureS2Agrement,\n 'totalAgrement': value.totalAgrement,\n 'bloqueHeuresAgrement': value.bloqueHeuresAgrement,\n 'reelHoursS1': value.reelHoursS1,\n 'reelHoursS2': value.reelHoursS2,\n 'reelTotalAgrement': value.reelTotalAgrement,\n 'localisationBloquee': value.localisationBloquee,\n 'agrementBloquee': value.agrementBloquee,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFinancementClasseGridDto\n */\nexport interface FcbFinancementClasseGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n idfinancementClasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n idprojetFinancement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbFinancementClasseGridDto\n */\n financement?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n heureS1?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n heureS2?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n totalLoc?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbFinancementClasseGridDto\n */\n localise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFinancementClasseGridDto\n */\n agree?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n heureS1Agrement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n heureS2Agrement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n totalAgrement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n reelHoursS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n reelHoursS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDto\n */\n reelTotalAgrement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbFinancementClasseGridDto\n */\n ppb?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFinancementClasseGridDto\n */\n localisationBloquee?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbFinancementClasseGridDto interface.\n */\nexport function instanceOfFcbFinancementClasseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFinancementClasseGridDtoFromJSON(json: any): FcbFinancementClasseGridDto {\n return FcbFinancementClasseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFinancementClasseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFinancementClasseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idfinancementClasse': !exists(json, 'idfinancementClasse') ? undefined : json['idfinancementClasse'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'financement': !exists(json, 'financement') ? undefined : json['financement'],\n 'heureS1': !exists(json, 'heureS1') ? undefined : json['heureS1'],\n 'heureS2': !exists(json, 'heureS2') ? undefined : json['heureS2'],\n 'totalLoc': !exists(json, 'totalLoc') ? undefined : json['totalLoc'],\n 'localise': !exists(json, 'localise') ? undefined : json['localise'],\n 'agree': !exists(json, 'agree') ? undefined : json['agree'],\n 'heureS1Agrement': !exists(json, 'heureS1Agrement') ? undefined : json['heureS1Agrement'],\n 'heureS2Agrement': !exists(json, 'heureS2Agrement') ? undefined : json['heureS2Agrement'],\n 'totalAgrement': !exists(json, 'totalAgrement') ? undefined : json['totalAgrement'],\n 'reelHoursS1': !exists(json, 'reelHoursS1') ? undefined : json['reelHoursS1'],\n 'reelHoursS2': !exists(json, 'reelHoursS2') ? undefined : json['reelHoursS2'],\n 'reelTotalAgrement': !exists(json, 'reelTotalAgrement') ? undefined : json['reelTotalAgrement'],\n 'ppb': !exists(json, 'ppb') ? undefined : json['ppb'],\n 'localisationBloquee': !exists(json, 'localisationBloquee') ? undefined : json['localisationBloquee'],\n };\n}\n\nexport function FcbFinancementClasseGridDtoToJSON(value?: FcbFinancementClasseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idfinancementClasse': value.idfinancementClasse,\n 'idclasse': value.idclasse,\n 'idprojetFinancement': value.idprojetFinancement,\n 'financement': value.financement,\n 'heureS1': value.heureS1,\n 'heureS2': value.heureS2,\n 'totalLoc': value.totalLoc,\n 'localise': value.localise,\n 'agree': value.agree,\n 'heureS1Agrement': value.heureS1Agrement,\n 'heureS2Agrement': value.heureS2Agrement,\n 'totalAgrement': value.totalAgrement,\n 'reelHoursS1': value.reelHoursS1,\n 'reelHoursS2': value.reelHoursS2,\n 'reelTotalAgrement': value.reelTotalAgrement,\n 'ppb': value.ppb,\n 'localisationBloquee': value.localisationBloquee,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFinancementClasseGridDto } from './FcbFinancementClasseGridDto';\nimport {\n FcbFinancementClasseGridDtoFromJSON,\n FcbFinancementClasseGridDtoFromJSONTyped,\n FcbFinancementClasseGridDtoToJSON,\n} from './FcbFinancementClasseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFinancementClasseGridDtoPaginatedResults\n */\nexport interface FcbFinancementClasseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFinancementClasseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFinancementClasseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFinancementClasseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFinancementClasseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFinancementClasseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFinancementClasseGridDtoPaginatedResultsFromJSON(json: any): FcbFinancementClasseGridDtoPaginatedResults {\n return FcbFinancementClasseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFinancementClasseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFinancementClasseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFinancementClasseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFinancementClasseGridDtoPaginatedResultsToJSON(value?: FcbFinancementClasseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFinancementClasseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbForfaitAuditeurDto\n */\nexport interface FcbForfaitAuditeurDto {\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n idForfait?: number;\n /**\n * \n * @type {string}\n * @memberof FcbForfaitAuditeurDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n aaS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n aaS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n abS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n abS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n aiS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n aiS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n ceaS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n ceaS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n cebS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n cebS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n ceiS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n ceiS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n fagS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDto\n */\n fagS2?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbForfaitAuditeurDto interface.\n */\nexport function instanceOfFcbForfaitAuditeurDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbForfaitAuditeurDtoFromJSON(json: any): FcbForfaitAuditeurDto {\n return FcbForfaitAuditeurDtoFromJSONTyped(json, false);\n}\n\nexport function FcbForfaitAuditeurDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbForfaitAuditeurDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idForfait': !exists(json, 'idForfait') ? undefined : json['idForfait'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'aaS1': !exists(json, 'aaS1') ? undefined : json['aaS1'],\n 'aaS2': !exists(json, 'aaS2') ? undefined : json['aaS2'],\n 'abS1': !exists(json, 'abS1') ? undefined : json['abS1'],\n 'abS2': !exists(json, 'abS2') ? undefined : json['abS2'],\n 'aiS1': !exists(json, 'aiS1') ? undefined : json['aiS1'],\n 'aiS2': !exists(json, 'aiS2') ? undefined : json['aiS2'],\n 'ceaS1': !exists(json, 'ceaS1') ? undefined : json['ceaS1'],\n 'ceaS2': !exists(json, 'ceaS2') ? undefined : json['ceaS2'],\n 'cebS1': !exists(json, 'cebS1') ? undefined : json['cebS1'],\n 'cebS2': !exists(json, 'cebS2') ? undefined : json['cebS2'],\n 'ceiS1': !exists(json, 'ceiS1') ? undefined : json['ceiS1'],\n 'ceiS2': !exists(json, 'ceiS2') ? undefined : json['ceiS2'],\n 'fagS1': !exists(json, 'fagS1') ? undefined : json['fagS1'],\n 'fagS2': !exists(json, 'fagS2') ? undefined : json['fagS2'],\n };\n}\n\nexport function FcbForfaitAuditeurDtoToJSON(value?: FcbForfaitAuditeurDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idForfait': value.idForfait,\n 'anneeAcademique': value.anneeAcademique,\n 'aaS1': value.aaS1,\n 'aaS2': value.aaS2,\n 'abS1': value.abS1,\n 'abS2': value.abS2,\n 'aiS1': value.aiS1,\n 'aiS2': value.aiS2,\n 'ceaS1': value.ceaS1,\n 'ceaS2': value.ceaS2,\n 'cebS1': value.cebS1,\n 'cebS2': value.cebS2,\n 'ceiS1': value.ceiS1,\n 'ceiS2': value.ceiS2,\n 'fagS1': value.fagS1,\n 'fagS2': value.fagS2,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbForfaitAuditeurDto } from './FcbForfaitAuditeurDto';\nimport {\n FcbForfaitAuditeurDtoFromJSON,\n FcbForfaitAuditeurDtoFromJSONTyped,\n FcbForfaitAuditeurDtoToJSON,\n} from './FcbForfaitAuditeurDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbForfaitAuditeurDtoPaginatedResults\n */\nexport interface FcbForfaitAuditeurDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbForfaitAuditeurDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbForfaitAuditeurDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbForfaitAuditeurDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbForfaitAuditeurDtoPaginatedResults interface.\n */\nexport function instanceOfFcbForfaitAuditeurDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbForfaitAuditeurDtoPaginatedResultsFromJSON(json: any): FcbForfaitAuditeurDtoPaginatedResults {\n return FcbForfaitAuditeurDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbForfaitAuditeurDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbForfaitAuditeurDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbForfaitAuditeurDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbForfaitAuditeurDtoPaginatedResultsToJSON(value?: FcbForfaitAuditeurDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbForfaitAuditeurDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface FcbFormateurAgrementDto\n */\nexport interface FcbFormateurAgrementDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAgrementDto\n */\n idformateurAgrement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAgrementDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementDto\n */\n idconseillerPedagogique?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementDto\n */\n matiereDemandee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementDto\n */\n matiereAccordee?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurAgrementDto\n */\n dateDemande?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurAgrementDto\n */\n datedebutAgrement?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurAgrementDto\n */\n datefinAgrement?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementDto\n */\n avis?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementDto\n */\n avisRetrait?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementDto\n */\n idetatAgrement?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAgrementDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurAgrementDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAgrementDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurAgrementDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAgrementDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAgrementDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof FcbFormateurAgrementDto\n */\n fichier?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the FcbFormateurAgrementDto interface.\n */\nexport function instanceOfFcbFormateurAgrementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurAgrementDtoFromJSON(json: any): FcbFormateurAgrementDto {\n return FcbFormateurAgrementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurAgrementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurAgrementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateurAgrement': !exists(json, 'idformateurAgrement') ? undefined : json['idformateurAgrement'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idconseillerPedagogique': !exists(json, 'idconseillerPedagogique') ? undefined : json['idconseillerPedagogique'],\n 'matiereDemandee': !exists(json, 'matiereDemandee') ? undefined : json['matiereDemandee'],\n 'matiereAccordee': !exists(json, 'matiereAccordee') ? undefined : json['matiereAccordee'],\n 'dateDemande': !exists(json, 'dateDemande') ? undefined : (json['dateDemande'] === null ? null : new Date(json['dateDemande'])),\n 'datedebutAgrement': !exists(json, 'datedebutAgrement') ? undefined : (json['datedebutAgrement'] === null ? null : new Date(json['datedebutAgrement'])),\n 'datefinAgrement': !exists(json, 'datefinAgrement') ? undefined : (json['datefinAgrement'] === null ? null : new Date(json['datefinAgrement'])),\n 'avis': !exists(json, 'avis') ? undefined : json['avis'],\n 'avisRetrait': !exists(json, 'avisRetrait') ? undefined : json['avisRetrait'],\n 'idetatAgrement': !exists(json, 'idetatAgrement') ? undefined : json['idetatAgrement'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fichier': !exists(json, 'fichier') ? undefined : FileUploadDtoFromJSON(json['fichier']),\n };\n}\n\nexport function FcbFormateurAgrementDtoToJSON(value?: FcbFormateurAgrementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateurAgrement': value.idformateurAgrement,\n 'idcentre': value.idcentre,\n 'idconseillerPedagogique': value.idconseillerPedagogique,\n 'matiereDemandee': value.matiereDemandee,\n 'matiereAccordee': value.matiereAccordee,\n 'dateDemande': value.dateDemande === undefined ? undefined : (value.dateDemande === null ? null : value.dateDemande.toISOString()),\n 'datedebutAgrement': value.datedebutAgrement === undefined ? undefined : (value.datedebutAgrement === null ? null : value.datedebutAgrement.toISOString()),\n 'datefinAgrement': value.datefinAgrement === undefined ? undefined : (value.datefinAgrement === null ? null : value.datefinAgrement.toISOString()),\n 'avis': value.avis,\n 'avisRetrait': value.avisRetrait,\n 'idetatAgrement': value.idetatAgrement,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idformateur': value.idformateur,\n 'idfichier': value.idfichier,\n 'fichier': FileUploadDtoToJSON(value.fichier),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurAgrementGridDto\n */\nexport interface FcbFormateurAgrementGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAgrementGridDto\n */\n idformateurAgrement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementGridDto\n */\n nomConseiller?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurAgrementGridDto\n */\n dateDemande?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementGridDto\n */\n matiereDemandee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementGridDto\n */\n centreDemandeur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAgrementGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAgrementGridDto\n */\n idfichier?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurAgrementGridDto interface.\n */\nexport function instanceOfFcbFormateurAgrementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurAgrementGridDtoFromJSON(json: any): FcbFormateurAgrementGridDto {\n return FcbFormateurAgrementGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurAgrementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurAgrementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateurAgrement': !exists(json, 'idformateurAgrement') ? undefined : json['idformateurAgrement'],\n 'nomConseiller': !exists(json, 'nomConseiller') ? undefined : json['nomConseiller'],\n 'dateDemande': !exists(json, 'dateDemande') ? undefined : (json['dateDemande'] === null ? null : new Date(json['dateDemande'])),\n 'matiereDemandee': !exists(json, 'matiereDemandee') ? undefined : json['matiereDemandee'],\n 'centreDemandeur': !exists(json, 'centreDemandeur') ? undefined : json['centreDemandeur'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n };\n}\n\nexport function FcbFormateurAgrementGridDtoToJSON(value?: FcbFormateurAgrementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateurAgrement': value.idformateurAgrement,\n 'nomConseiller': value.nomConseiller,\n 'dateDemande': value.dateDemande === undefined ? undefined : (value.dateDemande === null ? null : value.dateDemande.toISOString()),\n 'matiereDemandee': value.matiereDemandee,\n 'centreDemandeur': value.centreDemandeur,\n 'fileName': value.fileName,\n 'idfichier': value.idfichier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurAgrementGridDto } from './FcbFormateurAgrementGridDto';\nimport {\n FcbFormateurAgrementGridDtoFromJSON,\n FcbFormateurAgrementGridDtoFromJSONTyped,\n FcbFormateurAgrementGridDtoToJSON,\n} from './FcbFormateurAgrementGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurAgrementGridDtoPaginatedResults\n */\nexport interface FcbFormateurAgrementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAgrementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurAgrementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurAgrementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurAgrementGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurAgrementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurAgrementGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurAgrementGridDtoPaginatedResults {\n return FcbFormateurAgrementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurAgrementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurAgrementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurAgrementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurAgrementGridDtoPaginatedResultsToJSON(value?: FcbFormateurAgrementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurAgrementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurAzureGridDto\n */\nexport interface FcbFormateurAzureGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAzureGridDto\n */\n idFormateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAzureGridDto\n */\n idCentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurAzureGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurAzureGridDto\n */\n azureActive?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbFormateurAzureGridDto interface.\n */\nexport function instanceOfFcbFormateurAzureGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurAzureGridDtoFromJSON(json: any): FcbFormateurAzureGridDto {\n return FcbFormateurAzureGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurAzureGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurAzureGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'idCentre': !exists(json, 'idCentre') ? undefined : json['idCentre'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'azureActive': !exists(json, 'azureActive') ? undefined : json['azureActive'],\n };\n}\n\nexport function FcbFormateurAzureGridDtoToJSON(value?: FcbFormateurAzureGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idFormateur': value.idFormateur,\n 'idCentre': value.idCentre,\n 'centre': value.centre,\n 'azureActive': value.azureActive,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurAzureGridDto } from './FcbFormateurAzureGridDto';\nimport {\n FcbFormateurAzureGridDtoFromJSON,\n FcbFormateurAzureGridDtoFromJSONTyped,\n FcbFormateurAzureGridDtoToJSON,\n} from './FcbFormateurAzureGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurAzureGridDtoPaginatedResults\n */\nexport interface FcbFormateurAzureGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurAzureGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurAzureGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurAzureGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurAzureGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurAzureGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurAzureGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurAzureGridDtoPaginatedResults {\n return FcbFormateurAzureGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurAzureGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurAzureGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurAzureGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurAzureGridDtoPaginatedResultsToJSON(value?: FcbFormateurAzureGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurAzureGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurClasseGridDto\n */\nexport interface FcbFormateurClasseGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurClasseGridDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurClasseGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurClasseGridDto\n */\n codeClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurClasseGridDto\n */\n nomClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurClasseGridDto\n */\n codeMatiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurClasseGridDto\n */\n nomMatiere?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurClasseGridDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurClasseGridDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurClasseGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurClasseGridDto\n */\n anneeScolaire?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurClasseGridDto interface.\n */\nexport function instanceOfFcbFormateurClasseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurClasseGridDtoFromJSON(json: any): FcbFormateurClasseGridDto {\n return FcbFormateurClasseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurClasseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurClasseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : json['codeClasse'],\n 'nomClasse': !exists(json, 'nomClasse') ? undefined : json['nomClasse'],\n 'codeMatiere': !exists(json, 'codeMatiere') ? undefined : json['codeMatiere'],\n 'nomMatiere': !exists(json, 'nomMatiere') ? undefined : json['nomMatiere'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n };\n}\n\nexport function FcbFormateurClasseGridDtoToJSON(value?: FcbFormateurClasseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'idclasse': value.idclasse,\n 'codeClasse': value.codeClasse,\n 'nomClasse': value.nomClasse,\n 'codeMatiere': value.codeMatiere,\n 'nomMatiere': value.nomMatiere,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'centre': value.centre,\n 'anneeScolaire': value.anneeScolaire,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurClasseGridDto } from './FcbFormateurClasseGridDto';\nimport {\n FcbFormateurClasseGridDtoFromJSON,\n FcbFormateurClasseGridDtoFromJSONTyped,\n FcbFormateurClasseGridDtoToJSON,\n} from './FcbFormateurClasseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurClasseGridDtoPaginatedResults\n */\nexport interface FcbFormateurClasseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurClasseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurClasseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurClasseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurClasseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurClasseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurClasseGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurClasseGridDtoPaginatedResults {\n return FcbFormateurClasseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurClasseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurClasseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurClasseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurClasseGridDtoPaginatedResultsToJSON(value?: FcbFormateurClasseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurClasseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurDesideratumDto\n */\nexport interface FcbFormateurDesideratumDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDesideratumDto\n */\n iddesiderata?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDesideratumDto\n */\n idcentre?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDesideratumDto\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDesideratumDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDesideratumDto\n */\n desiderata?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDesideratumDto interface.\n */\nexport function instanceOfFcbFormateurDesideratumDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDesideratumDtoFromJSON(json: any): FcbFormateurDesideratumDto {\n return FcbFormateurDesideratumDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDesideratumDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDesideratumDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddesiderata': !exists(json, 'iddesiderata') ? undefined : json['iddesiderata'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'desiderata': !exists(json, 'desiderata') ? undefined : json['desiderata'],\n };\n}\n\nexport function FcbFormateurDesideratumDtoToJSON(value?: FcbFormateurDesideratumDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddesiderata': value.iddesiderata,\n 'idcentre': value.idcentre,\n 'idformateur': value.idformateur,\n 'anneeScolaire': value.anneeScolaire,\n 'desiderata': value.desiderata,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurDesideratumGridDto\n */\nexport interface FcbFormateurDesideratumGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDesideratumGridDto\n */\n iddesiderata?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDesideratumGridDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDesideratumGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDesideratumGridDto\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDesideratumGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDesideratumGridDto\n */\n desiderata?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDesideratumGridDto interface.\n */\nexport function instanceOfFcbFormateurDesideratumGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDesideratumGridDtoFromJSON(json: any): FcbFormateurDesideratumGridDto {\n return FcbFormateurDesideratumGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDesideratumGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDesideratumGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddesiderata': !exists(json, 'iddesiderata') ? undefined : json['iddesiderata'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'desiderata': !exists(json, 'desiderata') ? undefined : json['desiderata'],\n };\n}\n\nexport function FcbFormateurDesideratumGridDtoToJSON(value?: FcbFormateurDesideratumGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddesiderata': value.iddesiderata,\n 'idcentre': value.idcentre,\n 'centre': value.centre,\n 'idformateur': value.idformateur,\n 'anneeScolaire': value.anneeScolaire,\n 'desiderata': value.desiderata,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurDesideratumGridDto } from './FcbFormateurDesideratumGridDto';\nimport {\n FcbFormateurDesideratumGridDtoFromJSON,\n FcbFormateurDesideratumGridDtoFromJSONTyped,\n FcbFormateurDesideratumGridDtoToJSON,\n} from './FcbFormateurDesideratumGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurDesideratumGridDtoPaginatedResults\n */\nexport interface FcbFormateurDesideratumGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDesideratumGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurDesideratumGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurDesideratumGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDesideratumGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurDesideratumGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDesideratumGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurDesideratumGridDtoPaginatedResults {\n return FcbFormateurDesideratumGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDesideratumGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDesideratumGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurDesideratumGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurDesideratumGridDtoPaginatedResultsToJSON(value?: FcbFormateurDesideratumGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurDesideratumGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface FcbFormateurDetailDto\n */\nexport interface FcbFormateurDetailDto {\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n entreprise?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n identreprise?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n prenom2?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n codeNationalite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDetailDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n paysNaissance?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbFormateurDetailDto\n */\n telephoneFormateur?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbFormateurDetailDto\n */\n telephoneProfFormateur?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbFormateurDetailDto\n */\n gsmFormateur?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbFormateurDetailDto\n */\n gsmProfFormateur?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof FcbFormateurDetailDto\n */\n emailFormateur?: EmailDto;\n /**\n * \n * @type {EmailDto}\n * @memberof FcbFormateurDetailDto\n */\n emailProfFormateur?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n photo?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n idfichierPhoto?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n idcivilite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n precompte?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDetailDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n enfantCharge?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n conjointCharge?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n autreCharge?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n enfantHandicape?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n autreHandicape?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n handicape?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n activite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDetailDto\n */\n datePremierContrat?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n ancienMatricule?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n courrierDomicile?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n courrierAutre?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n jure?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDetailDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDetailDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n numero?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n boite?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n idcodeLangue?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n frontalier?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n emailProf?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n searchNom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n searchPrenom?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof FcbFormateurDetailDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n azureUserId?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n azureEmail?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDetailDto\n */\n azureTemporaryPassword?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n azureActive?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDetailDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbFormateurDetailDto\n */\n adresseFormateur?: AdresseDto;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbFormateurDetailDto\n */\n adresseDomicileFormateur?: AdresseDto;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n hasAddressDoublons?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDetailDto\n */\n hasAddressDomicileDoublons?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDetailDto interface.\n */\nexport function instanceOfFcbFormateurDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDetailDtoFromJSON(json: any): FcbFormateurDetailDto {\n return FcbFormateurDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'entreprise': !exists(json, 'entreprise') ? undefined : json['entreprise'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'identreprise': !exists(json, 'identreprise') ? undefined : json['identreprise'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'prenom2': !exists(json, 'prenom2') ? undefined : json['prenom2'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codeNationalite': !exists(json, 'codeNationalite') ? undefined : json['codeNationalite'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'paysNaissance': !exists(json, 'paysNaissance') ? undefined : json['paysNaissance'],\n 'telephoneFormateur': !exists(json, 'telephoneFormateur') ? undefined : TelephoneDtoFromJSON(json['telephoneFormateur']),\n 'telephoneProfFormateur': !exists(json, 'telephoneProfFormateur') ? undefined : TelephoneDtoFromJSON(json['telephoneProfFormateur']),\n 'gsmFormateur': !exists(json, 'gsmFormateur') ? undefined : TelephoneDtoFromJSON(json['gsmFormateur']),\n 'gsmProfFormateur': !exists(json, 'gsmProfFormateur') ? undefined : TelephoneDtoFromJSON(json['gsmProfFormateur']),\n 'emailFormateur': !exists(json, 'emailFormateur') ? undefined : EmailDtoFromJSON(json['emailFormateur']),\n 'emailProfFormateur': !exists(json, 'emailProfFormateur') ? undefined : EmailDtoFromJSON(json['emailProfFormateur']),\n 'photo': !exists(json, 'photo') ? undefined : json['photo'],\n 'idfichierPhoto': !exists(json, 'idfichierPhoto') ? undefined : json['idfichierPhoto'],\n 'idcivilite': !exists(json, 'idcivilite') ? undefined : json['idcivilite'],\n 'precompte': !exists(json, 'precompte') ? undefined : json['precompte'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'enfantCharge': !exists(json, 'enfantCharge') ? undefined : json['enfantCharge'],\n 'conjointCharge': !exists(json, 'conjointCharge') ? undefined : json['conjointCharge'],\n 'autreCharge': !exists(json, 'autreCharge') ? undefined : json['autreCharge'],\n 'enfantHandicape': !exists(json, 'enfantHandicape') ? undefined : json['enfantHandicape'],\n 'autreHandicape': !exists(json, 'autreHandicape') ? undefined : json['autreHandicape'],\n 'handicape': !exists(json, 'handicape') ? undefined : json['handicape'],\n 'activite': !exists(json, 'activite') ? undefined : json['activite'],\n 'datePremierContrat': !exists(json, 'datePremierContrat') ? undefined : (json['datePremierContrat'] === null ? null : new Date(json['datePremierContrat'])),\n 'ancienMatricule': !exists(json, 'ancienMatricule') ? undefined : json['ancienMatricule'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'courrierDomicile': !exists(json, 'courrierDomicile') ? undefined : json['courrierDomicile'],\n 'courrierAutre': !exists(json, 'courrierAutre') ? undefined : json['courrierAutre'],\n 'jure': !exists(json, 'jure') ? undefined : json['jure'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'boite': !exists(json, 'boite') ? undefined : json['boite'],\n 'idcodeLangue': !exists(json, 'idcodeLangue') ? undefined : json['idcodeLangue'],\n 'frontalier': !exists(json, 'frontalier') ? undefined : json['frontalier'],\n 'emailProf': !exists(json, 'emailProf') ? undefined : json['emailProf'],\n 'searchNom': !exists(json, 'searchNom') ? undefined : json['searchNom'],\n 'searchPrenom': !exists(json, 'searchPrenom') ? undefined : json['searchPrenom'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'azureUserId': !exists(json, 'azureUserId') ? undefined : json['azureUserId'],\n 'azureEmail': !exists(json, 'azureEmail') ? undefined : json['azureEmail'],\n 'azureTemporaryPassword': !exists(json, 'azureTemporaryPassword') ? undefined : json['azureTemporaryPassword'],\n 'azureActive': !exists(json, 'azureActive') ? undefined : json['azureActive'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'adresseFormateur': !exists(json, 'adresseFormateur') ? undefined : AdresseDtoFromJSON(json['adresseFormateur']),\n 'adresseDomicileFormateur': !exists(json, 'adresseDomicileFormateur') ? undefined : AdresseDtoFromJSON(json['adresseDomicileFormateur']),\n 'hasAddressDoublons': !exists(json, 'hasAddressDoublons') ? undefined : json['hasAddressDoublons'],\n 'hasAddressDomicileDoublons': !exists(json, 'hasAddressDomicileDoublons') ? undefined : json['hasAddressDomicileDoublons'],\n };\n}\n\nexport function FcbFormateurDetailDtoToJSON(value?: FcbFormateurDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'entreprise': value.entreprise,\n 'idformateur': value.idformateur,\n 'identreprise': value.identreprise,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'prenom2': value.prenom2,\n 'codesexe': value.codesexe,\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codeNationalite': value.codeNationalite,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'paysNaissance': value.paysNaissance,\n 'telephoneFormateur': TelephoneDtoToJSON(value.telephoneFormateur),\n 'telephoneProfFormateur': TelephoneDtoToJSON(value.telephoneProfFormateur),\n 'gsmFormateur': TelephoneDtoToJSON(value.gsmFormateur),\n 'gsmProfFormateur': TelephoneDtoToJSON(value.gsmProfFormateur),\n 'emailFormateur': EmailDtoToJSON(value.emailFormateur),\n 'emailProfFormateur': EmailDtoToJSON(value.emailProfFormateur),\n 'photo': value.photo,\n 'idfichierPhoto': value.idfichierPhoto,\n 'idcivilite': value.idcivilite,\n 'precompte': value.precompte,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'enfantCharge': value.enfantCharge,\n 'conjointCharge': value.conjointCharge,\n 'autreCharge': value.autreCharge,\n 'enfantHandicape': value.enfantHandicape,\n 'autreHandicape': value.autreHandicape,\n 'handicape': value.handicape,\n 'activite': value.activite,\n 'datePremierContrat': value.datePremierContrat === undefined ? undefined : (value.datePremierContrat === null ? null : value.datePremierContrat.toISOString()),\n 'ancienMatricule': value.ancienMatricule,\n 'actif': value.actif,\n 'courrierDomicile': value.courrierDomicile,\n 'courrierAutre': value.courrierAutre,\n 'jure': value.jure,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'numero': value.numero,\n 'boite': value.boite,\n 'idcodeLangue': value.idcodeLangue,\n 'frontalier': value.frontalier,\n 'emailProf': value.emailProf,\n 'searchNom': value.searchNom,\n 'searchPrenom': value.searchPrenom,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'azureUserId': value.azureUserId,\n 'azureEmail': value.azureEmail,\n 'azureTemporaryPassword': value.azureTemporaryPassword,\n 'azureActive': value.azureActive,\n 'idpersonne': value.idpersonne,\n 'adresseFormateur': AdresseDtoToJSON(value.adresseFormateur),\n 'adresseDomicileFormateur': AdresseDtoToJSON(value.adresseDomicileFormateur),\n 'hasAddressDoublons': value.hasAddressDoublons,\n 'hasAddressDomicileDoublons': value.hasAddressDomicileDoublons,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurDiplomeGridDto\n */\nexport interface FcbFormateurDiplomeGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDiplomeGridDto\n */\n iddiplome?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDiplomeGridDto\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDiplomeGridDto\n */\n type?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDiplomeGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDiplomeGridDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDiplomeGridDto\n */\n url?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDiplomeGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDiplomeGridDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDiplomeGridDto interface.\n */\nexport function instanceOfFcbFormateurDiplomeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDiplomeGridDtoFromJSON(json: any): FcbFormateurDiplomeGridDto {\n return FcbFormateurDiplomeGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDiplomeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDiplomeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddiplome': !exists(json, 'iddiplome') ? undefined : json['iddiplome'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'url': !exists(json, 'url') ? undefined : json['url'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function FcbFormateurDiplomeGridDtoToJSON(value?: FcbFormateurDiplomeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddiplome': value.iddiplome,\n 'idformateur': value.idformateur,\n 'type': value.type,\n 'libelle': value.libelle,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'url': value.url,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurDiplomeGridDto } from './FcbFormateurDiplomeGridDto';\nimport {\n FcbFormateurDiplomeGridDtoFromJSON,\n FcbFormateurDiplomeGridDtoFromJSONTyped,\n FcbFormateurDiplomeGridDtoToJSON,\n} from './FcbFormateurDiplomeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurDiplomeGridDtoPaginatedResults\n */\nexport interface FcbFormateurDiplomeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDiplomeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurDiplomeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurDiplomeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDiplomeGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurDiplomeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDiplomeGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurDiplomeGridDtoPaginatedResults {\n return FcbFormateurDiplomeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDiplomeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDiplomeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurDiplomeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurDiplomeGridDtoPaginatedResultsToJSON(value?: FcbFormateurDiplomeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurDiplomeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface FcbFormateurDoublonGridDto\n */\nexport interface FcbFormateurDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDoublonGridDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbFormateurDoublonGridDto\n */\n adresseDto?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDoublonGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof FcbFormateurDoublonGridDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDoublonGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDoublonGridDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n isCollaborateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDoublonGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDoublonGridDto interface.\n */\nexport function instanceOfFcbFormateurDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDoublonGridDtoFromJSON(json: any): FcbFormateurDoublonGridDto {\n return FcbFormateurDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseDto': !exists(json, 'adresseDto') ? undefined : AdresseDtoFromJSON(json['adresseDto']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isCollaborateur': !exists(json, 'isCollaborateur') ? undefined : json['isCollaborateur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function FcbFormateurDoublonGridDtoToJSON(value?: FcbFormateurDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseDto': AdresseDtoToJSON(value.adresseDto),\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isTuteur': value.isTuteur,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isCollaborateur': value.isCollaborateur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurDoublonGridDto } from './FcbFormateurDoublonGridDto';\nimport {\n FcbFormateurDoublonGridDtoFromJSON,\n FcbFormateurDoublonGridDtoFromJSONTyped,\n FcbFormateurDoublonGridDtoToJSON,\n} from './FcbFormateurDoublonGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurDoublonGridDtoPaginatedResults\n */\nexport interface FcbFormateurDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDoublonGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurDoublonGridDtoPaginatedResults {\n return FcbFormateurDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurDoublonGridDtoPaginatedResultsToJSON(value?: FcbFormateurDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface FcbFormateurDto\n */\nexport interface FcbFormateurDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n identreprise?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n prenom2?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n codeNationalite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n paysNaissance?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbFormateurDto\n */\n telephoneFormateur?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbFormateurDto\n */\n telephoneProfFormateur?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbFormateurDto\n */\n gsmFormateur?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbFormateurDto\n */\n gsmProfFormateur?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof FcbFormateurDto\n */\n emailFormateur?: EmailDto;\n /**\n * \n * @type {EmailDto}\n * @memberof FcbFormateurDto\n */\n emailProfFormateur?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n photo?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n idfichierPhoto?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n idcivilite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n precompte?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n enfantCharge?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n conjointCharge?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n autreCharge?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n enfantHandicape?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n autreHandicape?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n handicape?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n activite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDto\n */\n datePremierContrat?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n ancienMatricule?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n courrierDomicile?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n courrierAutre?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n jure?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n numero?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n boite?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n idcodeLangue?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n frontalier?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n emailProf?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n searchNom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n searchPrenom?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof FcbFormateurDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n azureUserId?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n azureEmail?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurDto\n */\n azureTemporaryPassword?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n azureActive?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbFormateurDto\n */\n adresseFormateur?: AdresseDto;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbFormateurDto\n */\n adresseDomicileFormateur?: AdresseDto;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n hasAddressDoublons?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurDto\n */\n hasAddressDomicileDoublons?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbFormateurDto interface.\n */\nexport function instanceOfFcbFormateurDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurDtoFromJSON(json: any): FcbFormateurDto {\n return FcbFormateurDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'identreprise': !exists(json, 'identreprise') ? undefined : json['identreprise'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'prenom2': !exists(json, 'prenom2') ? undefined : json['prenom2'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codeNationalite': !exists(json, 'codeNationalite') ? undefined : json['codeNationalite'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'paysNaissance': !exists(json, 'paysNaissance') ? undefined : json['paysNaissance'],\n 'telephoneFormateur': !exists(json, 'telephoneFormateur') ? undefined : TelephoneDtoFromJSON(json['telephoneFormateur']),\n 'telephoneProfFormateur': !exists(json, 'telephoneProfFormateur') ? undefined : TelephoneDtoFromJSON(json['telephoneProfFormateur']),\n 'gsmFormateur': !exists(json, 'gsmFormateur') ? undefined : TelephoneDtoFromJSON(json['gsmFormateur']),\n 'gsmProfFormateur': !exists(json, 'gsmProfFormateur') ? undefined : TelephoneDtoFromJSON(json['gsmProfFormateur']),\n 'emailFormateur': !exists(json, 'emailFormateur') ? undefined : EmailDtoFromJSON(json['emailFormateur']),\n 'emailProfFormateur': !exists(json, 'emailProfFormateur') ? undefined : EmailDtoFromJSON(json['emailProfFormateur']),\n 'photo': !exists(json, 'photo') ? undefined : json['photo'],\n 'idfichierPhoto': !exists(json, 'idfichierPhoto') ? undefined : json['idfichierPhoto'],\n 'idcivilite': !exists(json, 'idcivilite') ? undefined : json['idcivilite'],\n 'precompte': !exists(json, 'precompte') ? undefined : json['precompte'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'enfantCharge': !exists(json, 'enfantCharge') ? undefined : json['enfantCharge'],\n 'conjointCharge': !exists(json, 'conjointCharge') ? undefined : json['conjointCharge'],\n 'autreCharge': !exists(json, 'autreCharge') ? undefined : json['autreCharge'],\n 'enfantHandicape': !exists(json, 'enfantHandicape') ? undefined : json['enfantHandicape'],\n 'autreHandicape': !exists(json, 'autreHandicape') ? undefined : json['autreHandicape'],\n 'handicape': !exists(json, 'handicape') ? undefined : json['handicape'],\n 'activite': !exists(json, 'activite') ? undefined : json['activite'],\n 'datePremierContrat': !exists(json, 'datePremierContrat') ? undefined : (json['datePremierContrat'] === null ? null : new Date(json['datePremierContrat'])),\n 'ancienMatricule': !exists(json, 'ancienMatricule') ? undefined : json['ancienMatricule'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'courrierDomicile': !exists(json, 'courrierDomicile') ? undefined : json['courrierDomicile'],\n 'courrierAutre': !exists(json, 'courrierAutre') ? undefined : json['courrierAutre'],\n 'jure': !exists(json, 'jure') ? undefined : json['jure'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'boite': !exists(json, 'boite') ? undefined : json['boite'],\n 'idcodeLangue': !exists(json, 'idcodeLangue') ? undefined : json['idcodeLangue'],\n 'frontalier': !exists(json, 'frontalier') ? undefined : json['frontalier'],\n 'emailProf': !exists(json, 'emailProf') ? undefined : json['emailProf'],\n 'searchNom': !exists(json, 'searchNom') ? undefined : json['searchNom'],\n 'searchPrenom': !exists(json, 'searchPrenom') ? undefined : json['searchPrenom'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'azureUserId': !exists(json, 'azureUserId') ? undefined : json['azureUserId'],\n 'azureEmail': !exists(json, 'azureEmail') ? undefined : json['azureEmail'],\n 'azureTemporaryPassword': !exists(json, 'azureTemporaryPassword') ? undefined : json['azureTemporaryPassword'],\n 'azureActive': !exists(json, 'azureActive') ? undefined : json['azureActive'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'adresseFormateur': !exists(json, 'adresseFormateur') ? undefined : AdresseDtoFromJSON(json['adresseFormateur']),\n 'adresseDomicileFormateur': !exists(json, 'adresseDomicileFormateur') ? undefined : AdresseDtoFromJSON(json['adresseDomicileFormateur']),\n 'hasAddressDoublons': !exists(json, 'hasAddressDoublons') ? undefined : json['hasAddressDoublons'],\n 'hasAddressDomicileDoublons': !exists(json, 'hasAddressDomicileDoublons') ? undefined : json['hasAddressDomicileDoublons'],\n };\n}\n\nexport function FcbFormateurDtoToJSON(value?: FcbFormateurDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'identreprise': value.identreprise,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'prenom2': value.prenom2,\n 'codesexe': value.codesexe,\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codeNationalite': value.codeNationalite,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'paysNaissance': value.paysNaissance,\n 'telephoneFormateur': TelephoneDtoToJSON(value.telephoneFormateur),\n 'telephoneProfFormateur': TelephoneDtoToJSON(value.telephoneProfFormateur),\n 'gsmFormateur': TelephoneDtoToJSON(value.gsmFormateur),\n 'gsmProfFormateur': TelephoneDtoToJSON(value.gsmProfFormateur),\n 'emailFormateur': EmailDtoToJSON(value.emailFormateur),\n 'emailProfFormateur': EmailDtoToJSON(value.emailProfFormateur),\n 'photo': value.photo,\n 'idfichierPhoto': value.idfichierPhoto,\n 'idcivilite': value.idcivilite,\n 'precompte': value.precompte,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'enfantCharge': value.enfantCharge,\n 'conjointCharge': value.conjointCharge,\n 'autreCharge': value.autreCharge,\n 'enfantHandicape': value.enfantHandicape,\n 'autreHandicape': value.autreHandicape,\n 'handicape': value.handicape,\n 'activite': value.activite,\n 'datePremierContrat': value.datePremierContrat === undefined ? undefined : (value.datePremierContrat === null ? null : value.datePremierContrat.toISOString()),\n 'ancienMatricule': value.ancienMatricule,\n 'actif': value.actif,\n 'courrierDomicile': value.courrierDomicile,\n 'courrierAutre': value.courrierAutre,\n 'jure': value.jure,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'numero': value.numero,\n 'boite': value.boite,\n 'idcodeLangue': value.idcodeLangue,\n 'frontalier': value.frontalier,\n 'emailProf': value.emailProf,\n 'searchNom': value.searchNom,\n 'searchPrenom': value.searchPrenom,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'azureUserId': value.azureUserId,\n 'azureEmail': value.azureEmail,\n 'azureTemporaryPassword': value.azureTemporaryPassword,\n 'azureActive': value.azureActive,\n 'idpersonne': value.idpersonne,\n 'adresseFormateur': AdresseDtoToJSON(value.adresseFormateur),\n 'adresseDomicileFormateur': AdresseDtoToJSON(value.adresseDomicileFormateur),\n 'hasAddressDoublons': value.hasAddressDoublons,\n 'hasAddressDomicileDoublons': value.hasAddressDomicileDoublons,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurGridDto\n */\nexport interface FcbFormateurGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurGridDto\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n telProf?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n gsmProf?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n emailProf?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurGridDto\n */\n giveClasse?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurGridDto\n */\n jure?: boolean | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurGridDto\n */\n localiteCentre?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurGridDto\n */\n contrat?: Array | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n readonly computedLocaliteCentre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n readonly computedContrat?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n searchNom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurGridDto\n */\n searchPrenom?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurGridDto interface.\n */\nexport function instanceOfFcbFormateurGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurGridDtoFromJSON(json: any): FcbFormateurGridDto {\n return FcbFormateurGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'telProf': !exists(json, 'telProf') ? undefined : json['telProf'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'gsmProf': !exists(json, 'gsmProf') ? undefined : json['gsmProf'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'emailProf': !exists(json, 'emailProf') ? undefined : json['emailProf'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'giveClasse': !exists(json, 'giveClasse') ? undefined : json['giveClasse'],\n 'jure': !exists(json, 'jure') ? undefined : json['jure'],\n 'localiteCentre': !exists(json, 'localiteCentre') ? undefined : json['localiteCentre'],\n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'computedLocaliteCentre': !exists(json, 'computedLocaliteCentre') ? undefined : json['computedLocaliteCentre'],\n 'computedContrat': !exists(json, 'computedContrat') ? undefined : json['computedContrat'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'searchNom': !exists(json, 'searchNom') ? undefined : json['searchNom'],\n 'searchPrenom': !exists(json, 'searchPrenom') ? undefined : json['searchPrenom'],\n };\n}\n\nexport function FcbFormateurGridDtoToJSON(value?: FcbFormateurGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'telProf': value.telProf,\n 'telephone': value.telephone,\n 'gsm': value.gsm,\n 'gsmProf': value.gsmProf,\n 'email': value.email,\n 'emailProf': value.emailProf,\n 'actif': value.actif,\n 'giveClasse': value.giveClasse,\n 'jure': value.jure,\n 'localiteCentre': value.localiteCentre,\n 'contrat': value.contrat,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'searchNom': value.searchNom,\n 'searchPrenom': value.searchPrenom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurGridDto } from './FcbFormateurGridDto';\nimport {\n FcbFormateurGridDtoFromJSON,\n FcbFormateurGridDtoFromJSONTyped,\n FcbFormateurGridDtoToJSON,\n} from './FcbFormateurGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurGridDtoPaginatedResults\n */\nexport interface FcbFormateurGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurGridDtoPaginatedResults {\n return FcbFormateurGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurGridDtoPaginatedResultsToJSON(value?: FcbFormateurGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurLocalisationDto\n */\nexport interface FcbFormateurLocalisationDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationDto\n */\n idformateurLocalisation?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationDto\n */\n idcentre?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationDto\n */\n premierContrat?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationDto\n */\n debutContrat?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurLocalisationDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationDto\n */\n km?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurLocalisationDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurLocalisationDto\n */\n azureActive?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationDto\n */\n modificationDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurLocalisationDto interface.\n */\nexport function instanceOfFcbFormateurLocalisationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurLocalisationDtoFromJSON(json: any): FcbFormateurLocalisationDto {\n return FcbFormateurLocalisationDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurLocalisationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurLocalisationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateurLocalisation': !exists(json, 'idformateurLocalisation') ? undefined : json['idformateurLocalisation'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'premierContrat': !exists(json, 'premierContrat') ? undefined : (json['premierContrat'] === null ? null : new Date(json['premierContrat'])),\n 'debutContrat': !exists(json, 'debutContrat') ? undefined : (json['debutContrat'] === null ? null : new Date(json['debutContrat'])),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'km': !exists(json, 'km') ? undefined : json['km'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'azureActive': !exists(json, 'azureActive') ? undefined : json['azureActive'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n };\n}\n\nexport function FcbFormateurLocalisationDtoToJSON(value?: FcbFormateurLocalisationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateurLocalisation': value.idformateurLocalisation,\n 'idformateur': value.idformateur,\n 'idcentre': value.idcentre,\n 'premierContrat': value.premierContrat === undefined ? undefined : (value.premierContrat === null ? null : value.premierContrat.toISOString()),\n 'debutContrat': value.debutContrat === undefined ? undefined : (value.debutContrat === null ? null : value.debutContrat.toISOString()),\n 'remarque': value.remarque,\n 'km': value.km,\n 'actif': value.actif,\n 'azureActive': value.azureActive,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurLocalisationDto } from './FcbFormateurLocalisationDto';\nimport {\n FcbFormateurLocalisationDtoFromJSON,\n FcbFormateurLocalisationDtoFromJSONTyped,\n FcbFormateurLocalisationDtoToJSON,\n} from './FcbFormateurLocalisationDto';\n\n/**\n * \n * @export\n * @interface FcbFormateurLocalisationContratDetailDto\n */\nexport interface FcbFormateurLocalisationContratDetailDto {\n /**\n * \n * @type {FcbFormateurLocalisationDto}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n localisation?: FcbFormateurLocalisationDto;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n idformateurLocalisationContrat?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n idcontratFormateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n idformateurLocalisation?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n libelle?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n heureMin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n heureMax?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n heureReelle?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n dateDebutactivite?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurLocalisationContratDetailDto\n */\n dateEntreeAuto?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurLocalisationContratDetailDto interface.\n */\nexport function instanceOfFcbFormateurLocalisationContratDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurLocalisationContratDetailDtoFromJSON(json: any): FcbFormateurLocalisationContratDetailDto {\n return FcbFormateurLocalisationContratDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurLocalisationContratDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurLocalisationContratDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'localisation': !exists(json, 'localisation') ? undefined : FcbFormateurLocalisationDtoFromJSON(json['localisation']),\n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n 'idcontratFormateur': !exists(json, 'idcontratFormateur') ? undefined : json['idcontratFormateur'],\n 'idformateurLocalisation': !exists(json, 'idformateurLocalisation') ? undefined : json['idformateurLocalisation'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'heureMin': !exists(json, 'heureMin') ? undefined : json['heureMin'],\n 'heureMax': !exists(json, 'heureMax') ? undefined : json['heureMax'],\n 'heureReelle': !exists(json, 'heureReelle') ? undefined : json['heureReelle'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'dateDebutactivite': !exists(json, 'dateDebutactivite') ? undefined : (json['dateDebutactivite'] === null ? null : new Date(json['dateDebutactivite'])),\n 'dateEntreeAuto': !exists(json, 'dateEntreeAuto') ? undefined : json['dateEntreeAuto'],\n };\n}\n\nexport function FcbFormateurLocalisationContratDetailDtoToJSON(value?: FcbFormateurLocalisationContratDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'localisation': FcbFormateurLocalisationDtoToJSON(value.localisation),\n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n 'idcontratFormateur': value.idcontratFormateur,\n 'idformateurLocalisation': value.idformateurLocalisation,\n 'libelle': value.libelle,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'heureMin': value.heureMin,\n 'heureMax': value.heureMax,\n 'heureReelle': value.heureReelle,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'actif': value.actif,\n 'dateDebutactivite': value.dateDebutactivite === undefined ? undefined : (value.dateDebutactivite === null ? null : value.dateDebutactivite.toISOString()),\n 'dateEntreeAuto': value.dateEntreeAuto,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurLocalisationContratGridDto\n */\nexport interface FcbFormateurLocalisationContratGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratGridDto\n */\n idformateurLocalisationContrat?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratGridDto\n */\n idcontratFormateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratGridDto\n */\n idformateurLocalisation?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurLocalisationContratGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationContratGridDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurLocalisationContratGridDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurLocalisationContratGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurLocalisationContratGridDto interface.\n */\nexport function instanceOfFcbFormateurLocalisationContratGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurLocalisationContratGridDtoFromJSON(json: any): FcbFormateurLocalisationContratGridDto {\n return FcbFormateurLocalisationContratGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurLocalisationContratGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurLocalisationContratGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n 'idcontratFormateur': !exists(json, 'idcontratFormateur') ? undefined : json['idcontratFormateur'],\n 'idformateurLocalisation': !exists(json, 'idformateurLocalisation') ? undefined : json['idformateurLocalisation'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbFormateurLocalisationContratGridDtoToJSON(value?: FcbFormateurLocalisationContratGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n 'idcontratFormateur': value.idcontratFormateur,\n 'idformateurLocalisation': value.idformateurLocalisation,\n 'libelle': value.libelle,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurLocalisationContratGridDto } from './FcbFormateurLocalisationContratGridDto';\nimport {\n FcbFormateurLocalisationContratGridDtoFromJSON,\n FcbFormateurLocalisationContratGridDtoFromJSONTyped,\n FcbFormateurLocalisationContratGridDtoToJSON,\n} from './FcbFormateurLocalisationContratGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurLocalisationContratGridDtoPaginatedResults\n */\nexport interface FcbFormateurLocalisationContratGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurLocalisationContratGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurLocalisationContratGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurLocalisationContratGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurLocalisationContratGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurLocalisationContratGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurLocalisationContratGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurLocalisationContratGridDtoPaginatedResults {\n return FcbFormateurLocalisationContratGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurLocalisationContratGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurLocalisationContratGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurLocalisationContratGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurLocalisationContratGridDtoPaginatedResultsToJSON(value?: FcbFormateurLocalisationContratGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurLocalisationContratGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurMetierAgrementLiesDto\n */\nexport interface FcbFormateurMetierAgrementLiesDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurMetierAgrementLiesDto\n */\n idFormateurAgrement?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurMetierAgrementLiesDto\n */\n idsMetier?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurMetierAgrementLiesDto interface.\n */\nexport function instanceOfFcbFormateurMetierAgrementLiesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurMetierAgrementLiesDtoFromJSON(json: any): FcbFormateurMetierAgrementLiesDto {\n return FcbFormateurMetierAgrementLiesDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurMetierAgrementLiesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurMetierAgrementLiesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idFormateurAgrement': !exists(json, 'idFormateurAgrement') ? undefined : json['idFormateurAgrement'],\n 'idsMetier': !exists(json, 'idsMetier') ? undefined : json['idsMetier'],\n };\n}\n\nexport function FcbFormateurMetierAgrementLiesDtoToJSON(value?: FcbFormateurMetierAgrementLiesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idFormateurAgrement': value.idFormateurAgrement,\n 'idsMetier': value.idsMetier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurPrestationsContratGridDto\n */\nexport interface FcbFormateurPrestationsContratGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n idFormateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n idFormateurLocalisationContrat?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n nbHeuresCours?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n nbHeuresAPayer?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n nbHeuresRemplaceesPayees?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n nbHeuresRemplaceesNonPayees?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n nbRemplacants?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n annee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n mois?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n contrat?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsContratGridDto\n */\n moisorder?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurPrestationsContratGridDto interface.\n */\nexport function instanceOfFcbFormateurPrestationsContratGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurPrestationsContratGridDtoFromJSON(json: any): FcbFormateurPrestationsContratGridDto {\n return FcbFormateurPrestationsContratGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurPrestationsContratGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurPrestationsContratGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'idFormateurLocalisationContrat': !exists(json, 'idFormateurLocalisationContrat') ? undefined : json['idFormateurLocalisationContrat'],\n 'nbHeuresCours': !exists(json, 'nbHeuresCours') ? undefined : json['nbHeuresCours'],\n 'nbHeuresAPayer': !exists(json, 'nbHeuresAPayer') ? undefined : json['nbHeuresAPayer'],\n 'nbHeuresRemplaceesPayees': !exists(json, 'nbHeuresRemplaceesPayees') ? undefined : json['nbHeuresRemplaceesPayees'],\n 'nbHeuresRemplaceesNonPayees': !exists(json, 'nbHeuresRemplaceesNonPayees') ? undefined : json['nbHeuresRemplaceesNonPayees'],\n 'nbRemplacants': !exists(json, 'nbRemplacants') ? undefined : json['nbRemplacants'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'mois': !exists(json, 'mois') ? undefined : json['mois'],\n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'moisorder': !exists(json, 'moisorder') ? undefined : json['moisorder'],\n };\n}\n\nexport function FcbFormateurPrestationsContratGridDtoToJSON(value?: FcbFormateurPrestationsContratGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idFormateur': value.idFormateur,\n 'idFormateurLocalisationContrat': value.idFormateurLocalisationContrat,\n 'nbHeuresCours': value.nbHeuresCours,\n 'nbHeuresAPayer': value.nbHeuresAPayer,\n 'nbHeuresRemplaceesPayees': value.nbHeuresRemplaceesPayees,\n 'nbHeuresRemplaceesNonPayees': value.nbHeuresRemplaceesNonPayees,\n 'nbRemplacants': value.nbRemplacants,\n 'annee': value.annee,\n 'mois': value.mois,\n 'contrat': value.contrat,\n 'centre': value.centre,\n 'moisorder': value.moisorder,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurPrestationsContratGridDto } from './FcbFormateurPrestationsContratGridDto';\nimport {\n FcbFormateurPrestationsContratGridDtoFromJSON,\n FcbFormateurPrestationsContratGridDtoFromJSONTyped,\n FcbFormateurPrestationsContratGridDtoToJSON,\n} from './FcbFormateurPrestationsContratGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurPrestationsContratGridDtoPaginatedResults\n */\nexport interface FcbFormateurPrestationsContratGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsContratGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurPrestationsContratGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurPrestationsContratGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurPrestationsContratGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurPrestationsContratGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurPrestationsContratGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurPrestationsContratGridDtoPaginatedResults {\n return FcbFormateurPrestationsContratGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurPrestationsContratGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurPrestationsContratGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurPrestationsContratGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurPrestationsContratGridDtoPaginatedResultsToJSON(value?: FcbFormateurPrestationsContratGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurPrestationsContratGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurPrestationsGlobalesGridDto\n */\nexport interface FcbFormateurPrestationsGlobalesGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsGlobalesGridDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsGlobalesGridDto\n */\n moisorder?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsGlobalesGridDto\n */\n nbHeuresCours?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsGlobalesGridDto\n */\n nbHeuresAPayer?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsGlobalesGridDto\n */\n nbHeuresRemplaceesPayees?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsGlobalesGridDto\n */\n nbHeuresRemplaceesNonPayees?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsGlobalesGridDto\n */\n nbRemplacants?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurPrestationsGlobalesGridDto\n */\n annee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurPrestationsGlobalesGridDto\n */\n mois?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurPrestationsGlobalesGridDto interface.\n */\nexport function instanceOfFcbFormateurPrestationsGlobalesGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurPrestationsGlobalesGridDtoFromJSON(json: any): FcbFormateurPrestationsGlobalesGridDto {\n return FcbFormateurPrestationsGlobalesGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurPrestationsGlobalesGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurPrestationsGlobalesGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'moisorder': !exists(json, 'moisorder') ? undefined : json['moisorder'],\n 'nbHeuresCours': !exists(json, 'nbHeuresCours') ? undefined : json['nbHeuresCours'],\n 'nbHeuresAPayer': !exists(json, 'nbHeuresAPayer') ? undefined : json['nbHeuresAPayer'],\n 'nbHeuresRemplaceesPayees': !exists(json, 'nbHeuresRemplaceesPayees') ? undefined : json['nbHeuresRemplaceesPayees'],\n 'nbHeuresRemplaceesNonPayees': !exists(json, 'nbHeuresRemplaceesNonPayees') ? undefined : json['nbHeuresRemplaceesNonPayees'],\n 'nbRemplacants': !exists(json, 'nbRemplacants') ? undefined : json['nbRemplacants'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'mois': !exists(json, 'mois') ? undefined : json['mois'],\n };\n}\n\nexport function FcbFormateurPrestationsGlobalesGridDtoToJSON(value?: FcbFormateurPrestationsGlobalesGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'moisorder': value.moisorder,\n 'nbHeuresCours': value.nbHeuresCours,\n 'nbHeuresAPayer': value.nbHeuresAPayer,\n 'nbHeuresRemplaceesPayees': value.nbHeuresRemplaceesPayees,\n 'nbHeuresRemplaceesNonPayees': value.nbHeuresRemplaceesNonPayees,\n 'nbRemplacants': value.nbRemplacants,\n 'annee': value.annee,\n 'mois': value.mois,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurPrestationsGlobalesGridDto } from './FcbFormateurPrestationsGlobalesGridDto';\nimport {\n FcbFormateurPrestationsGlobalesGridDtoFromJSON,\n FcbFormateurPrestationsGlobalesGridDtoFromJSONTyped,\n FcbFormateurPrestationsGlobalesGridDtoToJSON,\n} from './FcbFormateurPrestationsGlobalesGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurPrestationsGlobalesGridDtoPaginatedResults\n */\nexport interface FcbFormateurPrestationsGlobalesGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurPrestationsGlobalesGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurPrestationsGlobalesGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurPrestationsGlobalesGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurPrestationsGlobalesGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurPrestationsGlobalesGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurPrestationsGlobalesGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurPrestationsGlobalesGridDtoPaginatedResults {\n return FcbFormateurPrestationsGlobalesGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurPrestationsGlobalesGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurPrestationsGlobalesGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurPrestationsGlobalesGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurPrestationsGlobalesGridDtoPaginatedResultsToJSON(value?: FcbFormateurPrestationsGlobalesGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurPrestationsGlobalesGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurProfessionGridDto\n */\nexport interface FcbFormateurProfessionGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurProfessionGridDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurProfessionGridDto\n */\n idprofession?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurProfessionGridDto\n */\n profession?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurProfessionGridDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurProfessionGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormateurProfessionGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurProfessionGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurProfessionGridDto\n */\n idfichier?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurProfessionGridDto interface.\n */\nexport function instanceOfFcbFormateurProfessionGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurProfessionGridDtoFromJSON(json: any): FcbFormateurProfessionGridDto {\n return FcbFormateurProfessionGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurProfessionGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurProfessionGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idprofession': !exists(json, 'idprofession') ? undefined : json['idprofession'],\n 'profession': !exists(json, 'profession') ? undefined : json['profession'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n };\n}\n\nexport function FcbFormateurProfessionGridDtoToJSON(value?: FcbFormateurProfessionGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'idprofession': value.idprofession,\n 'profession': value.profession,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'libelle': value.libelle,\n 'actif': value.actif,\n 'fileName': value.fileName,\n 'idfichier': value.idfichier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurProfessionGridDto } from './FcbFormateurProfessionGridDto';\nimport {\n FcbFormateurProfessionGridDtoFromJSON,\n FcbFormateurProfessionGridDtoFromJSONTyped,\n FcbFormateurProfessionGridDtoToJSON,\n} from './FcbFormateurProfessionGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurProfessionGridDtoPaginatedResults\n */\nexport interface FcbFormateurProfessionGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurProfessionGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurProfessionGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurProfessionGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurProfessionGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurProfessionGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurProfessionGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurProfessionGridDtoPaginatedResults {\n return FcbFormateurProfessionGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurProfessionGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurProfessionGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurProfessionGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurProfessionGridDtoPaginatedResultsToJSON(value?: FcbFormateurProfessionGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurProfessionGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FormateurSuiviFichierGridDto\n */\nexport interface FormateurSuiviFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierGridDto\n */\n idformateurSuiviFichier?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierGridDto\n */\n idtypeSuiviFichier?: number;\n /**\n * \n * @type {string}\n * @memberof FormateurSuiviFichierGridDto\n */\n typeSuiviFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FormateurSuiviFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FormateurSuiviFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FormateurSuiviFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the FormateurSuiviFichierGridDto interface.\n */\nexport function instanceOfFormateurSuiviFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurSuiviFichierGridDtoFromJSON(json: any): FormateurSuiviFichierGridDto {\n return FormateurSuiviFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function FormateurSuiviFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurSuiviFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateurSuiviFichier': !exists(json, 'idformateurSuiviFichier') ? undefined : json['idformateurSuiviFichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'typeSuiviFichier': !exists(json, 'typeSuiviFichier') ? undefined : json['typeSuiviFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function FormateurSuiviFichierGridDtoToJSON(value?: FormateurSuiviFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateurSuiviFichier': value.idformateurSuiviFichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'typeSuiviFichier': value.typeSuiviFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FormateurSuiviFichierGridDto } from './FormateurSuiviFichierGridDto';\nimport {\n FormateurSuiviFichierGridDtoFromJSON,\n FormateurSuiviFichierGridDtoFromJSONTyped,\n FormateurSuiviFichierGridDtoToJSON,\n} from './FormateurSuiviFichierGridDto';\n\n/**\n * \n * @export\n * @interface FcbFormateurSuiviDto\n */\nexport interface FcbFormateurSuiviDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurSuiviDto\n */\n idsuivi?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurSuiviDto\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviDto\n */\n idconseillerPedagogique?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurSuiviDto\n */\n idcentre?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurSuiviDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviDto\n */\n avis?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviDto\n */\n url?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurSuiviDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurSuiviDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurSuiviDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurSuiviDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurSuiviDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurSuiviDto interface.\n */\nexport function instanceOfFcbFormateurSuiviDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurSuiviDtoFromJSON(json: any): FcbFormateurSuiviDto {\n return FcbFormateurSuiviDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurSuiviDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurSuiviDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idconseillerPedagogique': !exists(json, 'idconseillerPedagogique') ? undefined : json['idconseillerPedagogique'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'avis': !exists(json, 'avis') ? undefined : json['avis'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'url': !exists(json, 'url') ? undefined : json['url'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(FormateurSuiviFichierGridDtoFromJSON)),\n };\n}\n\nexport function FcbFormateurSuiviDtoToJSON(value?: FcbFormateurSuiviDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuivi': value.idsuivi,\n 'idformateur': value.idformateur,\n 'idconseillerPedagogique': value.idconseillerPedagogique,\n 'idcentre': value.idcentre,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'avis': value.avis,\n 'remarque': value.remarque,\n 'url': value.url,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(FormateurSuiviFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurSuiviGridDto\n */\nexport interface FcbFormateurSuiviGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurSuiviGridDto\n */\n idsuivi?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurSuiviGridDto\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviGridDto\n */\n idconseillerPedagogique?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviGridDto\n */\n conseiller?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurSuiviGridDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurSuiviGridDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviGridDto\n */\n avis?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurSuiviGridDto\n */\n url?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurSuiviGridDto interface.\n */\nexport function instanceOfFcbFormateurSuiviGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurSuiviGridDtoFromJSON(json: any): FcbFormateurSuiviGridDto {\n return FcbFormateurSuiviGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurSuiviGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurSuiviGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idconseillerPedagogique': !exists(json, 'idconseillerPedagogique') ? undefined : json['idconseillerPedagogique'],\n 'conseiller': !exists(json, 'conseiller') ? undefined : json['conseiller'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'avis': !exists(json, 'avis') ? undefined : json['avis'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'url': !exists(json, 'url') ? undefined : json['url'],\n };\n}\n\nexport function FcbFormateurSuiviGridDtoToJSON(value?: FcbFormateurSuiviGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuivi': value.idsuivi,\n 'idformateur': value.idformateur,\n 'idconseillerPedagogique': value.idconseillerPedagogique,\n 'conseiller': value.conseiller,\n 'idcentre': value.idcentre,\n 'centre': value.centre,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'avis': value.avis,\n 'remarque': value.remarque,\n 'url': value.url,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurSuiviGridDto } from './FcbFormateurSuiviGridDto';\nimport {\n FcbFormateurSuiviGridDtoFromJSON,\n FcbFormateurSuiviGridDtoFromJSONTyped,\n FcbFormateurSuiviGridDtoToJSON,\n} from './FcbFormateurSuiviGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurSuiviGridDtoPaginatedResults\n */\nexport interface FcbFormateurSuiviGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurSuiviGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurSuiviGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurSuiviGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurSuiviGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurSuiviGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurSuiviGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurSuiviGridDtoPaginatedResults {\n return FcbFormateurSuiviGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurSuiviGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurSuiviGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurSuiviGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurSuiviGridDtoPaginatedResultsToJSON(value?: FcbFormateurSuiviGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurSuiviGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormateurTitreGridDto\n */\nexport interface FcbFormateurTitreGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreGridDto\n */\n idtitreFormateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreGridDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreGridDto\n */\n idtitre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurTitreGridDto\n */\n titre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurTitreGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormateurTitreGridDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormateurTitreGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreGridDto\n */\n idfichier?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurTitreGridDto interface.\n */\nexport function instanceOfFcbFormateurTitreGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurTitreGridDtoFromJSON(json: any): FcbFormateurTitreGridDto {\n return FcbFormateurTitreGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurTitreGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurTitreGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtitreFormateur': !exists(json, 'idtitreFormateur') ? undefined : json['idtitreFormateur'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idtitre': !exists(json, 'idtitre') ? undefined : json['idtitre'],\n 'titre': !exists(json, 'titre') ? undefined : json['titre'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n };\n}\n\nexport function FcbFormateurTitreGridDtoToJSON(value?: FcbFormateurTitreGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtitreFormateur': value.idtitreFormateur,\n 'idformateur': value.idformateur,\n 'idtitre': value.idtitre,\n 'titre': value.titre,\n 'libelle': value.libelle,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'fileName': value.fileName,\n 'idfichier': value.idfichier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormateurTitreGridDto } from './FcbFormateurTitreGridDto';\nimport {\n FcbFormateurTitreGridDtoFromJSON,\n FcbFormateurTitreGridDtoFromJSONTyped,\n FcbFormateurTitreGridDtoToJSON,\n} from './FcbFormateurTitreGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormateurTitreGridDtoPaginatedResults\n */\nexport interface FcbFormateurTitreGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormateurTitreGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurTitreGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormateurTitreGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormateurTitreGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormateurTitreGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormateurTitreGridDtoPaginatedResultsFromJSON(json: any): FcbFormateurTitreGridDtoPaginatedResults {\n return FcbFormateurTitreGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormateurTitreGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormateurTitreGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormateurTitreGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormateurTitreGridDtoPaginatedResultsToJSON(value?: FcbFormateurTitreGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormateurTitreGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormationDto\n */\nexport interface FcbFormationDto {\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n idformation?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n idstatutStage?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n idstade?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n idmetier?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n idtypeEnseignement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n idstatutSocial?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationDto\n */\n dateForem?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n dureeInoccupation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n resultat?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n contrat?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationDto\n */\n debutContrat?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationDto\n */\n finContrat?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationDto\n */\n dateRupture?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n etatContrat?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n diplomeUtile?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormationDto\n */\n diplome?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n resultatApp?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationDto\n */\n modificationContratDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationDto\n */\n modificationContratUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n nomDelegue?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n prenomDelegue?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n nomSiege?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n nomPatron?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n prenomPatron?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n adresseLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n cpLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n localiteLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n telephoneLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationDto\n */\n faxLieu?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormationDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbFormationDto interface.\n */\nexport function instanceOfFcbFormationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormationDtoFromJSON(json: any): FcbFormationDto {\n return FcbFormationDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformation': !exists(json, 'idformation') ? undefined : json['idformation'],\n 'idstatutStage': !exists(json, 'idstatutStage') ? undefined : json['idstatutStage'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idtypeEnseignement': !exists(json, 'idtypeEnseignement') ? undefined : json['idtypeEnseignement'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idstatutSocial': !exists(json, 'idstatutSocial') ? undefined : json['idstatutSocial'],\n 'dateForem': !exists(json, 'dateForem') ? undefined : (json['dateForem'] === null ? null : new Date(json['dateForem'])),\n 'dureeInoccupation': !exists(json, 'dureeInoccupation') ? undefined : json['dureeInoccupation'],\n 'resultat': !exists(json, 'resultat') ? undefined : json['resultat'],\n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'debutContrat': !exists(json, 'debutContrat') ? undefined : (json['debutContrat'] === null ? null : new Date(json['debutContrat'])),\n 'finContrat': !exists(json, 'finContrat') ? undefined : (json['finContrat'] === null ? null : new Date(json['finContrat'])),\n 'dateRupture': !exists(json, 'dateRupture') ? undefined : (json['dateRupture'] === null ? null : new Date(json['dateRupture'])),\n 'etatContrat': !exists(json, 'etatContrat') ? undefined : json['etatContrat'],\n 'diplomeUtile': !exists(json, 'diplomeUtile') ? undefined : json['diplomeUtile'],\n 'diplome': !exists(json, 'diplome') ? undefined : json['diplome'],\n 'resultatApp': !exists(json, 'resultatApp') ? undefined : json['resultatApp'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationContratDate': !exists(json, 'modificationContratDate') ? undefined : (json['modificationContratDate'] === null ? null : new Date(json['modificationContratDate'])),\n 'modificationContratUser': !exists(json, 'modificationContratUser') ? undefined : json['modificationContratUser'],\n 'nomDelegue': !exists(json, 'nomDelegue') ? undefined : json['nomDelegue'],\n 'prenomDelegue': !exists(json, 'prenomDelegue') ? undefined : json['prenomDelegue'],\n 'nomSiege': !exists(json, 'nomSiege') ? undefined : json['nomSiege'],\n 'nomPatron': !exists(json, 'nomPatron') ? undefined : json['nomPatron'],\n 'prenomPatron': !exists(json, 'prenomPatron') ? undefined : json['prenomPatron'],\n 'adresseLieu': !exists(json, 'adresseLieu') ? undefined : json['adresseLieu'],\n 'cpLieu': !exists(json, 'cpLieu') ? undefined : json['cpLieu'],\n 'localiteLieu': !exists(json, 'localiteLieu') ? undefined : json['localiteLieu'],\n 'telephoneLieu': !exists(json, 'telephoneLieu') ? undefined : json['telephoneLieu'],\n 'faxLieu': !exists(json, 'faxLieu') ? undefined : json['faxLieu'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbFormationDtoToJSON(value?: FcbFormationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformation': value.idformation,\n 'idstatutStage': value.idstatutStage,\n 'idstade': value.idstade,\n 'idapprenant': value.idapprenant,\n 'idmetier': value.idmetier,\n 'idtypeEnseignement': value.idtypeEnseignement,\n 'remarque': value.remarque,\n 'idstatutSocial': value.idstatutSocial,\n 'dateForem': value.dateForem === undefined ? undefined : (value.dateForem === null ? null : value.dateForem.toISOString()),\n 'dureeInoccupation': value.dureeInoccupation,\n 'resultat': value.resultat,\n 'contrat': value.contrat,\n 'debutContrat': value.debutContrat === undefined ? undefined : (value.debutContrat === null ? null : value.debutContrat.toISOString()),\n 'finContrat': value.finContrat === undefined ? undefined : (value.finContrat === null ? null : value.finContrat.toISOString()),\n 'dateRupture': value.dateRupture === undefined ? undefined : (value.dateRupture === null ? null : value.dateRupture.toISOString()),\n 'etatContrat': value.etatContrat,\n 'diplomeUtile': value.diplomeUtile,\n 'diplome': value.diplome,\n 'resultatApp': value.resultatApp,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationContratDate': value.modificationContratDate === undefined ? undefined : (value.modificationContratDate === null ? null : value.modificationContratDate.toISOString()),\n 'modificationContratUser': value.modificationContratUser,\n 'nomDelegue': value.nomDelegue,\n 'prenomDelegue': value.prenomDelegue,\n 'nomSiege': value.nomSiege,\n 'nomPatron': value.nomPatron,\n 'prenomPatron': value.prenomPatron,\n 'adresseLieu': value.adresseLieu,\n 'cpLieu': value.cpLieu,\n 'localiteLieu': value.localiteLieu,\n 'telephoneLieu': value.telephoneLieu,\n 'faxLieu': value.faxLieu,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbFormationGridDto\n */\nexport interface FcbFormationGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n codeFormation?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n idformation?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n idstatutStage?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n idstade?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n idmetier?: number;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n idtypeEnseignement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n idstatutSocial?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationGridDto\n */\n dateForem?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n dureeInoccupation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n resultat?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n contrat?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationGridDto\n */\n debutContrat?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationGridDto\n */\n finContrat?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationGridDto\n */\n dateRupture?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n etatContrat?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n diplomeUtile?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormationGridDto\n */\n diplome?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n resultatApp?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationGridDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationGridDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbFormationGridDto\n */\n modificationContratDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDto\n */\n modificationContratUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n nomDelegue?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n prenomDelegue?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n nomSiege?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n nomPatron?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n prenomPatron?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n adresseLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n cpLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n localiteLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n telephoneLieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbFormationGridDto\n */\n faxLieu?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbFormationGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbFormationGridDto interface.\n */\nexport function instanceOfFcbFormationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormationGridDtoFromJSON(json: any): FcbFormationGridDto {\n return FcbFormationGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbFormationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codeFormation': !exists(json, 'codeFormation') ? undefined : json['codeFormation'],\n 'idformation': !exists(json, 'idformation') ? undefined : json['idformation'],\n 'idstatutStage': !exists(json, 'idstatutStage') ? undefined : json['idstatutStage'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idtypeEnseignement': !exists(json, 'idtypeEnseignement') ? undefined : json['idtypeEnseignement'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idstatutSocial': !exists(json, 'idstatutSocial') ? undefined : json['idstatutSocial'],\n 'dateForem': !exists(json, 'dateForem') ? undefined : (json['dateForem'] === null ? null : new Date(json['dateForem'])),\n 'dureeInoccupation': !exists(json, 'dureeInoccupation') ? undefined : json['dureeInoccupation'],\n 'resultat': !exists(json, 'resultat') ? undefined : json['resultat'],\n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'debutContrat': !exists(json, 'debutContrat') ? undefined : (json['debutContrat'] === null ? null : new Date(json['debutContrat'])),\n 'finContrat': !exists(json, 'finContrat') ? undefined : (json['finContrat'] === null ? null : new Date(json['finContrat'])),\n 'dateRupture': !exists(json, 'dateRupture') ? undefined : (json['dateRupture'] === null ? null : new Date(json['dateRupture'])),\n 'etatContrat': !exists(json, 'etatContrat') ? undefined : json['etatContrat'],\n 'diplomeUtile': !exists(json, 'diplomeUtile') ? undefined : json['diplomeUtile'],\n 'diplome': !exists(json, 'diplome') ? undefined : json['diplome'],\n 'resultatApp': !exists(json, 'resultatApp') ? undefined : json['resultatApp'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationContratDate': !exists(json, 'modificationContratDate') ? undefined : (json['modificationContratDate'] === null ? null : new Date(json['modificationContratDate'])),\n 'modificationContratUser': !exists(json, 'modificationContratUser') ? undefined : json['modificationContratUser'],\n 'nomDelegue': !exists(json, 'nomDelegue') ? undefined : json['nomDelegue'],\n 'prenomDelegue': !exists(json, 'prenomDelegue') ? undefined : json['prenomDelegue'],\n 'nomSiege': !exists(json, 'nomSiege') ? undefined : json['nomSiege'],\n 'nomPatron': !exists(json, 'nomPatron') ? undefined : json['nomPatron'],\n 'prenomPatron': !exists(json, 'prenomPatron') ? undefined : json['prenomPatron'],\n 'adresseLieu': !exists(json, 'adresseLieu') ? undefined : json['adresseLieu'],\n 'cpLieu': !exists(json, 'cpLieu') ? undefined : json['cpLieu'],\n 'localiteLieu': !exists(json, 'localiteLieu') ? undefined : json['localiteLieu'],\n 'telephoneLieu': !exists(json, 'telephoneLieu') ? undefined : json['telephoneLieu'],\n 'faxLieu': !exists(json, 'faxLieu') ? undefined : json['faxLieu'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbFormationGridDtoToJSON(value?: FcbFormationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codeFormation': value.codeFormation,\n 'idformation': value.idformation,\n 'idstatutStage': value.idstatutStage,\n 'idstade': value.idstade,\n 'idapprenant': value.idapprenant,\n 'idmetier': value.idmetier,\n 'idtypeEnseignement': value.idtypeEnseignement,\n 'remarque': value.remarque,\n 'idstatutSocial': value.idstatutSocial,\n 'dateForem': value.dateForem === undefined ? undefined : (value.dateForem === null ? null : value.dateForem.toISOString()),\n 'dureeInoccupation': value.dureeInoccupation,\n 'resultat': value.resultat,\n 'contrat': value.contrat,\n 'debutContrat': value.debutContrat === undefined ? undefined : (value.debutContrat === null ? null : value.debutContrat.toISOString()),\n 'finContrat': value.finContrat === undefined ? undefined : (value.finContrat === null ? null : value.finContrat.toISOString()),\n 'dateRupture': value.dateRupture === undefined ? undefined : (value.dateRupture === null ? null : value.dateRupture.toISOString()),\n 'etatContrat': value.etatContrat,\n 'diplomeUtile': value.diplomeUtile,\n 'diplome': value.diplome,\n 'resultatApp': value.resultatApp,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationContratDate': value.modificationContratDate === undefined ? undefined : (value.modificationContratDate === null ? null : value.modificationContratDate.toISOString()),\n 'modificationContratUser': value.modificationContratUser,\n 'nomDelegue': value.nomDelegue,\n 'prenomDelegue': value.prenomDelegue,\n 'nomSiege': value.nomSiege,\n 'nomPatron': value.nomPatron,\n 'prenomPatron': value.prenomPatron,\n 'adresseLieu': value.adresseLieu,\n 'cpLieu': value.cpLieu,\n 'localiteLieu': value.localiteLieu,\n 'telephoneLieu': value.telephoneLieu,\n 'faxLieu': value.faxLieu,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbFormationGridDto } from './FcbFormationGridDto';\nimport {\n FcbFormationGridDtoFromJSON,\n FcbFormationGridDtoFromJSONTyped,\n FcbFormationGridDtoToJSON,\n} from './FcbFormationGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbFormationGridDtoPaginatedResults\n */\nexport interface FcbFormationGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbFormationGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbFormationGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbFormationGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbFormationGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbFormationGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbFormationGridDtoPaginatedResultsFromJSON(json: any): FcbFormationGridDtoPaginatedResults {\n return FcbFormationGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbFormationGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbFormationGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbFormationGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbFormationGridDtoPaginatedResultsToJSON(value?: FcbFormationGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbFormationGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbGestionDroitsGridDto\n */\nexport interface FcbGestionDroitsGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbGestionDroitsGridDto\n */\n module?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbGestionDroitsGridDto\n */\n tab?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbGestionDroitsGridDto\n */\n idaction?: number;\n /**\n * \n * @type {number}\n * @memberof FcbGestionDroitsGridDto\n */\n idaccesLevel?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbGestionDroitsGridDto\n */\n permissions?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbGestionDroitsGridDto interface.\n */\nexport function instanceOfFcbGestionDroitsGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbGestionDroitsGridDtoFromJSON(json: any): FcbGestionDroitsGridDto {\n return FcbGestionDroitsGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbGestionDroitsGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbGestionDroitsGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'module': !exists(json, 'module') ? undefined : json['module'],\n 'tab': !exists(json, 'tab') ? undefined : json['tab'],\n 'idaction': !exists(json, 'idaction') ? undefined : json['idaction'],\n 'idaccesLevel': !exists(json, 'idaccesLevel') ? undefined : json['idaccesLevel'],\n 'permissions': !exists(json, 'permissions') ? undefined : json['permissions'],\n };\n}\n\nexport function FcbGestionDroitsGridDtoToJSON(value?: FcbGestionDroitsGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'module': value.module,\n 'tab': value.tab,\n 'idaction': value.idaction,\n 'idaccesLevel': value.idaccesLevel,\n 'permissions': value.permissions,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbGestionDroitsGridDto } from './FcbGestionDroitsGridDto';\nimport {\n FcbGestionDroitsGridDtoFromJSON,\n FcbGestionDroitsGridDtoFromJSONTyped,\n FcbGestionDroitsGridDtoToJSON,\n} from './FcbGestionDroitsGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbGestionDroitsGridDtoPaginatedResults\n */\nexport interface FcbGestionDroitsGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbGestionDroitsGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbGestionDroitsGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbGestionDroitsGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbGestionDroitsGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbGestionDroitsGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbGestionDroitsGridDtoPaginatedResultsFromJSON(json: any): FcbGestionDroitsGridDtoPaginatedResults {\n return FcbGestionDroitsGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbGestionDroitsGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbGestionDroitsGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbGestionDroitsGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbGestionDroitsGridDtoPaginatedResultsToJSON(value?: FcbGestionDroitsGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbGestionDroitsGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbHoraireGridDto\n */\nexport interface FcbHoraireGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbHoraireGridDto\n */\n idClasse?: number;\n /**\n * \n * @type {string}\n * @memberof FcbHoraireGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbHoraireGridDto\n */\n jourClasse?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbHoraireGridDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbHoraireGridDto\n */\n nomClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbHoraireGridDto\n */\n heureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbHoraireGridDto\n */\n matiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbHoraireGridDto\n */\n local?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbHoraireGridDto\n */\n formateur?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbHoraireGridDto\n */\n visite?: boolean;\n /**\n * \n * @type {string}\n * @memberof FcbHoraireGridDto\n */\n matiereCode?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbHoraireGridDto\n */\n matiereDescription?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbHoraireGridDto interface.\n */\nexport function instanceOfFcbHoraireGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbHoraireGridDtoFromJSON(json: any): FcbHoraireGridDto {\n return FcbHoraireGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbHoraireGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbHoraireGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'jourClasse': !exists(json, 'jourClasse') ? undefined : (json['jourClasse'] === null ? null : new Date(json['jourClasse'])),\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'nomClasse': !exists(json, 'nomClasse') ? undefined : json['nomClasse'],\n 'heureDebut': !exists(json, 'heureDebut') ? undefined : json['heureDebut'],\n 'matiere': !exists(json, 'matiere') ? undefined : json['matiere'],\n 'local': !exists(json, 'local') ? undefined : json['local'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'visite': !exists(json, 'visite') ? undefined : json['visite'],\n 'matiereCode': !exists(json, 'matiereCode') ? undefined : json['matiereCode'],\n 'matiereDescription': !exists(json, 'matiereDescription') ? undefined : json['matiereDescription'],\n };\n}\n\nexport function FcbHoraireGridDtoToJSON(value?: FcbHoraireGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'anneeScolaire': value.anneeScolaire,\n 'jourClasse': value.jourClasse === undefined ? undefined : (value.jourClasse === null ? null : value.jourClasse.toISOString()),\n 'classe': value.classe,\n 'nomClasse': value.nomClasse,\n 'heureDebut': value.heureDebut,\n 'matiere': value.matiere,\n 'local': value.local,\n 'formateur': value.formateur,\n 'visite': value.visite,\n 'matiereCode': value.matiereCode,\n 'matiereDescription': value.matiereDescription,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbHoraireGridDto } from './FcbHoraireGridDto';\nimport {\n FcbHoraireGridDtoFromJSON,\n FcbHoraireGridDtoFromJSONTyped,\n FcbHoraireGridDtoToJSON,\n} from './FcbHoraireGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbHoraireGridDtoPaginatedResults\n */\nexport interface FcbHoraireGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbHoraireGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbHoraireGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbHoraireGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbHoraireGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbHoraireGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbHoraireGridDtoPaginatedResultsFromJSON(json: any): FcbHoraireGridDtoPaginatedResults {\n return FcbHoraireGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbHoraireGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbHoraireGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbHoraireGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbHoraireGridDtoPaginatedResultsToJSON(value?: FcbHoraireGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbHoraireGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbImpressionDto\n */\nexport interface FcbImpressionDto {\n /**\n * \n * @type {number}\n * @memberof FcbImpressionDto\n */\n idimpression?: number;\n /**\n * \n * @type {string}\n * @memberof FcbImpressionDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbImpressionDto\n */\n description?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbImpressionDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbImpressionDto\n */\n rapport?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbImpressionDto\n */\n isamsterrapport?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbImpressionDto interface.\n */\nexport function instanceOfFcbImpressionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbImpressionDtoFromJSON(json: any): FcbImpressionDto {\n return FcbImpressionDtoFromJSONTyped(json, false);\n}\n\nexport function FcbImpressionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbImpressionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idimpression': !exists(json, 'idimpression') ? undefined : json['idimpression'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'rapport': !exists(json, 'rapport') ? undefined : json['rapport'],\n 'isamsterrapport': !exists(json, 'isamsterrapport') ? undefined : json['isamsterrapport'],\n };\n}\n\nexport function FcbImpressionDtoToJSON(value?: FcbImpressionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idimpression': value.idimpression,\n 'nom': value.nom,\n 'description': value.description,\n 'actif': value.actif,\n 'rapport': value.rapport,\n 'isamsterrapport': value.isamsterrapport,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InscriptionFichierGridDto\n */\nexport interface InscriptionFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof InscriptionFichierGridDto\n */\n idinscriptionFichier?: number;\n /**\n * \n * @type {number}\n * @memberof InscriptionFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof InscriptionFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof InscriptionFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof InscriptionFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof InscriptionFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the InscriptionFichierGridDto interface.\n */\nexport function instanceOfInscriptionFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionFichierGridDtoFromJSON(json: any): InscriptionFichierGridDto {\n return InscriptionFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function InscriptionFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinscriptionFichier': !exists(json, 'idinscriptionFichier') ? undefined : json['idinscriptionFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function InscriptionFichierGridDtoToJSON(value?: InscriptionFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinscriptionFichier': value.idinscriptionFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InscriptionFormationDto\n */\nexport interface InscriptionFormationDto {\n /**\n * \n * @type {number}\n * @memberof InscriptionFormationDto\n */\n idstade?: number;\n /**\n * \n * @type {number}\n * @memberof InscriptionFormationDto\n */\n idmetier?: number;\n}\n\n/**\n * Check if a given object implements the InscriptionFormationDto interface.\n */\nexport function instanceOfInscriptionFormationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionFormationDtoFromJSON(json: any): InscriptionFormationDto {\n return InscriptionFormationDtoFromJSONTyped(json, false);\n}\n\nexport function InscriptionFormationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionFormationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n };\n}\n\nexport function InscriptionFormationDtoToJSON(value?: InscriptionFormationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idstade': value.idstade,\n 'idmetier': value.idmetier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { InscriptionFichierGridDto } from './InscriptionFichierGridDto';\nimport {\n InscriptionFichierGridDtoFromJSON,\n InscriptionFichierGridDtoFromJSONTyped,\n InscriptionFichierGridDtoToJSON,\n} from './InscriptionFichierGridDto';\nimport type { InscriptionFormationDto } from './InscriptionFormationDto';\nimport {\n InscriptionFormationDtoFromJSON,\n InscriptionFormationDtoFromJSONTyped,\n InscriptionFormationDtoToJSON,\n} from './InscriptionFormationDto';\n\n/**\n * \n * @export\n * @interface FcbInscriptionDetailDto\n */\nexport interface FcbInscriptionDetailDto {\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionDetailDto\n */\n dateConvocationString?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n nbDispenses?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n nbChangementsClasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n nbPresStats?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n nbPresences?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n nbPaiements?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n nbReports?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n nbEvals?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n nbBulletins?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionDetailDto\n */\n fichiers?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n idinscriptionSuspendue?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n dateFinSuspension?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n idinscription?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n idformation?: number | null;\n /**\n * \n * @type {InscriptionFormationDto}\n * @memberof FcbInscriptionDetailDto\n */\n formation?: InscriptionFormationDto;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n idcentre?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n idstatut?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionDetailDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionDetailDto\n */\n degre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionDetailDto\n */\n typeCoursDemandeSeulement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionDetailDto\n */\n typecours?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n dateInscription?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n dateConvocation?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n minerval?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n iddeliberationType?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionDetailDto\n */\n remarqueDelibe?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n iddeliberationType2sess?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionDetailDto\n */\n remarqueDelibe2sess?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n dateDeliberation?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n dateDeliberation2sess?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n total?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n dateAbandon?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionDetailDto\n */\n finale?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionDetailDto\n */\n libre?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionDetailDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n dateDispense?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionDetailDto\n */\n inscriptionGeneral?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionDetailDto\n */\n dateChangeCentre?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionDetailDto\n */\n lastTypeDegreMetier?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionDetailDto\n */\n isVisibleBulletinManuel?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionDetailDto\n */\n isVisibleBulletin?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionDetailDto\n */\n iddemandeInscription?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionDetailDto\n */\n isARE?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionDetailDto\n */\n isSB?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbInscriptionDetailDto interface.\n */\nexport function instanceOfFcbInscriptionDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbInscriptionDetailDtoFromJSON(json: any): FcbInscriptionDetailDto {\n return FcbInscriptionDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbInscriptionDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbInscriptionDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'dateConvocationString': !exists(json, 'dateConvocationString') ? undefined : json['dateConvocationString'],\n 'nbDispenses': !exists(json, 'nbDispenses') ? undefined : json['nbDispenses'],\n 'nbChangementsClasse': !exists(json, 'nbChangementsClasse') ? undefined : json['nbChangementsClasse'],\n 'nbPresStats': !exists(json, 'nbPresStats') ? undefined : json['nbPresStats'],\n 'nbPresences': !exists(json, 'nbPresences') ? undefined : json['nbPresences'],\n 'nbPaiements': !exists(json, 'nbPaiements') ? undefined : json['nbPaiements'],\n 'nbReports': !exists(json, 'nbReports') ? undefined : json['nbReports'],\n 'nbEvals': !exists(json, 'nbEvals') ? undefined : json['nbEvals'],\n 'nbBulletins': !exists(json, 'nbBulletins') ? undefined : json['nbBulletins'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(InscriptionFichierGridDtoFromJSON)),\n 'idinscriptionSuspendue': !exists(json, 'idinscriptionSuspendue') ? undefined : json['idinscriptionSuspendue'],\n 'dateFinSuspension': !exists(json, 'dateFinSuspension') ? undefined : (json['dateFinSuspension'] === null ? null : new Date(json['dateFinSuspension'])),\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'idformation': !exists(json, 'idformation') ? undefined : json['idformation'],\n 'formation': !exists(json, 'formation') ? undefined : InscriptionFormationDtoFromJSON(json['formation']),\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idstatut': !exists(json, 'idstatut') ? undefined : json['idstatut'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'typeCoursDemandeSeulement': !exists(json, 'typeCoursDemandeSeulement') ? undefined : json['typeCoursDemandeSeulement'],\n 'typecours': !exists(json, 'typecours') ? undefined : json['typecours'],\n 'dateInscription': !exists(json, 'dateInscription') ? undefined : (json['dateInscription'] === null ? null : new Date(json['dateInscription'])),\n 'dateConvocation': !exists(json, 'dateConvocation') ? undefined : (json['dateConvocation'] === null ? null : new Date(json['dateConvocation'])),\n 'minerval': !exists(json, 'minerval') ? undefined : json['minerval'],\n 'iddeliberationType': !exists(json, 'iddeliberationType') ? undefined : json['iddeliberationType'],\n 'remarqueDelibe': !exists(json, 'remarqueDelibe') ? undefined : json['remarqueDelibe'],\n 'iddeliberationType2sess': !exists(json, 'iddeliberationType2sess') ? undefined : json['iddeliberationType2sess'],\n 'remarqueDelibe2sess': !exists(json, 'remarqueDelibe2sess') ? undefined : json['remarqueDelibe2sess'],\n 'dateDeliberation': !exists(json, 'dateDeliberation') ? undefined : (json['dateDeliberation'] === null ? null : new Date(json['dateDeliberation'])),\n 'dateDeliberation2sess': !exists(json, 'dateDeliberation2sess') ? undefined : (json['dateDeliberation2sess'] === null ? null : new Date(json['dateDeliberation2sess'])),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'total': !exists(json, 'total') ? undefined : json['total'],\n 'dateAbandon': !exists(json, 'dateAbandon') ? undefined : (json['dateAbandon'] === null ? null : new Date(json['dateAbandon'])),\n 'finale': !exists(json, 'finale') ? undefined : json['finale'],\n 'libre': !exists(json, 'libre') ? undefined : json['libre'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDispense': !exists(json, 'dateDispense') ? undefined : (json['dateDispense'] === null ? null : new Date(json['dateDispense'])),\n 'inscriptionGeneral': !exists(json, 'inscriptionGeneral') ? undefined : json['inscriptionGeneral'],\n 'dateChangeCentre': !exists(json, 'dateChangeCentre') ? undefined : (json['dateChangeCentre'] === null ? null : new Date(json['dateChangeCentre'])),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'lastTypeDegreMetier': !exists(json, 'lastTypeDegreMetier') ? undefined : json['lastTypeDegreMetier'],\n 'isVisibleBulletinManuel': !exists(json, 'isVisibleBulletinManuel') ? undefined : json['isVisibleBulletinManuel'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'iddemandeInscription': !exists(json, 'iddemandeInscription') ? undefined : json['iddemandeInscription'],\n 'isARE': !exists(json, 'isARE') ? undefined : json['isARE'],\n 'isSB': !exists(json, 'isSB') ? undefined : json['isSB'],\n };\n}\n\nexport function FcbInscriptionDetailDtoToJSON(value?: FcbInscriptionDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'dateConvocationString': value.dateConvocationString,\n 'nbDispenses': value.nbDispenses,\n 'nbChangementsClasse': value.nbChangementsClasse,\n 'nbPresStats': value.nbPresStats,\n 'nbPresences': value.nbPresences,\n 'nbPaiements': value.nbPaiements,\n 'nbReports': value.nbReports,\n 'nbEvals': value.nbEvals,\n 'nbBulletins': value.nbBulletins,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(InscriptionFichierGridDtoToJSON)),\n 'idinscriptionSuspendue': value.idinscriptionSuspendue,\n 'dateFinSuspension': value.dateFinSuspension === undefined ? undefined : (value.dateFinSuspension === null ? null : value.dateFinSuspension.toISOString()),\n 'idinscription': value.idinscription,\n 'idformation': value.idformation,\n 'formation': InscriptionFormationDtoToJSON(value.formation),\n 'idcentre': value.idcentre,\n 'idclasse': value.idclasse,\n 'idstatut': value.idstatut,\n 'anneeScolaire': value.anneeScolaire,\n 'degre': value.degre,\n 'typeCoursDemandeSeulement': value.typeCoursDemandeSeulement,\n 'typecours': value.typecours,\n 'dateInscription': value.dateInscription === undefined ? undefined : (value.dateInscription === null ? null : value.dateInscription.toISOString()),\n 'dateConvocation': value.dateConvocation === undefined ? undefined : (value.dateConvocation === null ? null : value.dateConvocation.toISOString()),\n 'minerval': value.minerval,\n 'iddeliberationType': value.iddeliberationType,\n 'remarqueDelibe': value.remarqueDelibe,\n 'iddeliberationType2sess': value.iddeliberationType2sess,\n 'remarqueDelibe2sess': value.remarqueDelibe2sess,\n 'dateDeliberation': value.dateDeliberation === undefined ? undefined : (value.dateDeliberation === null ? null : value.dateDeliberation.toISOString()),\n 'dateDeliberation2sess': value.dateDeliberation2sess === undefined ? undefined : (value.dateDeliberation2sess === null ? null : value.dateDeliberation2sess.toISOString()),\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'total': value.total,\n 'dateAbandon': value.dateAbandon === undefined ? undefined : (value.dateAbandon === null ? null : value.dateAbandon.toISOString()),\n 'finale': value.finale,\n 'libre': value.libre,\n 'remarque': value.remarque,\n 'dateDispense': value.dateDispense === undefined ? undefined : (value.dateDispense === null ? null : value.dateDispense.toISOString()),\n 'inscriptionGeneral': value.inscriptionGeneral,\n 'dateChangeCentre': value.dateChangeCentre === undefined ? undefined : (value.dateChangeCentre === null ? null : value.dateChangeCentre.toISOString()),\n 'idapprenant': value.idapprenant,\n 'lastTypeDegreMetier': value.lastTypeDegreMetier,\n 'isVisibleBulletinManuel': value.isVisibleBulletinManuel,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'iddemandeInscription': value.iddemandeInscription,\n 'isARE': value.isARE,\n 'isSB': value.isSB,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbInscriptionGridDto\n */\nexport interface FcbInscriptionGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionGridDto\n */\n codeFormation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionGridDto\n */\n statut?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionGridDto\n */\n contrat?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionGridDto\n */\n codeClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionGridDto\n */\n nomClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionGridDto\n */\n codeInscription?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionGridDto\n */\n idinscription?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionGridDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionGridDto\n */\n dateInscription?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionGridDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionGridDto\n */\n idssocieteExterne?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbInscriptionGridDto interface.\n */\nexport function instanceOfFcbInscriptionGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbInscriptionGridDtoFromJSON(json: any): FcbInscriptionGridDto {\n return FcbInscriptionGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbInscriptionGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbInscriptionGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codeFormation': !exists(json, 'codeFormation') ? undefined : json['codeFormation'],\n 'statut': !exists(json, 'statut') ? undefined : json['statut'],\n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : json['codeClasse'],\n 'nomClasse': !exists(json, 'nomClasse') ? undefined : json['nomClasse'],\n 'codeInscription': !exists(json, 'codeInscription') ? undefined : json['codeInscription'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'dateInscription': !exists(json, 'dateInscription') ? undefined : (json['dateInscription'] === null ? null : new Date(json['dateInscription'])),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idssocieteExterne': !exists(json, 'idssocieteExterne') ? undefined : json['idssocieteExterne'],\n };\n}\n\nexport function FcbInscriptionGridDtoToJSON(value?: FcbInscriptionGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codeFormation': value.codeFormation,\n 'statut': value.statut,\n 'contrat': value.contrat,\n 'codeClasse': value.codeClasse,\n 'nomClasse': value.nomClasse,\n 'codeInscription': value.codeInscription,\n 'idinscription': value.idinscription,\n 'idclasse': value.idclasse,\n 'anneeScolaire': value.anneeScolaire,\n 'dateInscription': value.dateInscription === undefined ? undefined : (value.dateInscription === null ? null : value.dateInscription.toISOString()),\n 'idapprenant': value.idapprenant,\n 'idssocieteExterne': value.idssocieteExterne,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbInscriptionGridDto } from './FcbInscriptionGridDto';\nimport {\n FcbInscriptionGridDtoFromJSON,\n FcbInscriptionGridDtoFromJSONTyped,\n FcbInscriptionGridDtoToJSON,\n} from './FcbInscriptionGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbInscriptionGridDtoPaginatedResults\n */\nexport interface FcbInscriptionGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbInscriptionGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbInscriptionGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbInscriptionGridDtoPaginatedResultsFromJSON(json: any): FcbInscriptionGridDtoPaginatedResults {\n return FcbInscriptionGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbInscriptionGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbInscriptionGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbInscriptionGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbInscriptionGridDtoPaginatedResultsToJSON(value?: FcbInscriptionGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbInscriptionGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbInscriptionMasseDto\n */\nexport interface FcbInscriptionMasseDto {\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseDto\n */\n idcentre?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseDto\n */\n idstatut?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionMasseDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionMasseDto\n */\n degre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionMasseDto\n */\n typecours?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionMasseDto\n */\n dateInscription?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbInscriptionMasseDto\n */\n dateConvocation?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionMasseDto\n */\n dateConvocationString?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseDto\n */\n minerval?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionMasseDto\n */\n isVisibleBulletin?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseDto\n */\n idstade?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseDto\n */\n idmetier?: number;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseDto\n */\n idstatutSocial?: number | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseDto\n */\n idspprenant?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbInscriptionMasseDto interface.\n */\nexport function instanceOfFcbInscriptionMasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbInscriptionMasseDtoFromJSON(json: any): FcbInscriptionMasseDto {\n return FcbInscriptionMasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbInscriptionMasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbInscriptionMasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idstatut': !exists(json, 'idstatut') ? undefined : json['idstatut'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'typecours': !exists(json, 'typecours') ? undefined : json['typecours'],\n 'dateInscription': !exists(json, 'dateInscription') ? undefined : (json['dateInscription'] === null ? null : new Date(json['dateInscription'])),\n 'dateConvocation': !exists(json, 'dateConvocation') ? undefined : (json['dateConvocation'] === null ? null : new Date(json['dateConvocation'])),\n 'dateConvocationString': !exists(json, 'dateConvocationString') ? undefined : json['dateConvocationString'],\n 'minerval': !exists(json, 'minerval') ? undefined : json['minerval'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idstatutSocial': !exists(json, 'idstatutSocial') ? undefined : json['idstatutSocial'],\n 'idspprenant': !exists(json, 'idspprenant') ? undefined : json['idspprenant'],\n };\n}\n\nexport function FcbInscriptionMasseDtoToJSON(value?: FcbInscriptionMasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'idclasse': value.idclasse,\n 'idstatut': value.idstatut,\n 'anneeScolaire': value.anneeScolaire,\n 'degre': value.degre,\n 'typecours': value.typecours,\n 'dateInscription': value.dateInscription === undefined ? undefined : (value.dateInscription === null ? null : value.dateInscription.toISOString()),\n 'dateConvocation': value.dateConvocation === undefined ? undefined : (value.dateConvocation === null ? null : value.dateConvocation.toISOString()),\n 'dateConvocationString': value.dateConvocationString,\n 'minerval': value.minerval,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'idstade': value.idstade,\n 'idmetier': value.idmetier,\n 'idstatutSocial': value.idstatutSocial,\n 'idspprenant': value.idspprenant,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbInscriptionMasseGridDto\n */\nexport interface FcbInscriptionMasseGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseGridDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionMasseGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionMasseGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbInscriptionMasseGridDto\n */\n dateNaissance?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n idscentre?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n inscriptions?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n idsinscription?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n idsmetier?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n degres?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n masculins?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n codesMetier?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n classes?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n stades?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n statuts?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n idsclasse?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n anneesScolaires?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n typescours?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n idsformation?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n deliberations?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDto\n */\n deliberations2sess?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseGridDto\n */\n iduser?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbInscriptionMasseGridDto\n */\n existing?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbInscriptionMasseGridDto interface.\n */\nexport function instanceOfFcbInscriptionMasseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbInscriptionMasseGridDtoFromJSON(json: any): FcbInscriptionMasseGridDto {\n return FcbInscriptionMasseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbInscriptionMasseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbInscriptionMasseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : json['dateNaissance'],\n 'idscentre': !exists(json, 'idscentre') ? undefined : json['idscentre'],\n 'inscriptions': !exists(json, 'inscriptions') ? undefined : json['inscriptions'],\n 'idsinscription': !exists(json, 'idsinscription') ? undefined : json['idsinscription'],\n 'idsmetier': !exists(json, 'idsmetier') ? undefined : json['idsmetier'],\n 'degres': !exists(json, 'degres') ? undefined : json['degres'],\n 'masculins': !exists(json, 'masculins') ? undefined : json['masculins'],\n 'codesMetier': !exists(json, 'codesMetier') ? undefined : json['codesMetier'],\n 'classes': !exists(json, 'classes') ? undefined : json['classes'],\n 'stades': !exists(json, 'stades') ? undefined : json['stades'],\n 'statuts': !exists(json, 'statuts') ? undefined : json['statuts'],\n 'idsclasse': !exists(json, 'idsclasse') ? undefined : json['idsclasse'],\n 'anneesScolaires': !exists(json, 'anneesScolaires') ? undefined : json['anneesScolaires'],\n 'typescours': !exists(json, 'typescours') ? undefined : json['typescours'],\n 'idsformation': !exists(json, 'idsformation') ? undefined : json['idsformation'],\n 'deliberations': !exists(json, 'deliberations') ? undefined : json['deliberations'],\n 'deliberations2sess': !exists(json, 'deliberations2sess') ? undefined : json['deliberations2sess'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'existing': !exists(json, 'existing') ? undefined : json['existing'],\n };\n}\n\nexport function FcbInscriptionMasseGridDtoToJSON(value?: FcbInscriptionMasseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance,\n 'idscentre': value.idscentre,\n 'inscriptions': value.inscriptions,\n 'idsinscription': value.idsinscription,\n 'idsmetier': value.idsmetier,\n 'degres': value.degres,\n 'masculins': value.masculins,\n 'codesMetier': value.codesMetier,\n 'classes': value.classes,\n 'stades': value.stades,\n 'statuts': value.statuts,\n 'idsclasse': value.idsclasse,\n 'anneesScolaires': value.anneesScolaires,\n 'typescours': value.typescours,\n 'idsformation': value.idsformation,\n 'deliberations': value.deliberations,\n 'deliberations2sess': value.deliberations2sess,\n 'iduser': value.iduser,\n 'existing': value.existing,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbInscriptionMasseGridDto } from './FcbInscriptionMasseGridDto';\nimport {\n FcbInscriptionMasseGridDtoFromJSON,\n FcbInscriptionMasseGridDtoFromJSONTyped,\n FcbInscriptionMasseGridDtoToJSON,\n} from './FcbInscriptionMasseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbInscriptionMasseGridDtoPaginatedResults\n */\nexport interface FcbInscriptionMasseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbInscriptionMasseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbInscriptionMasseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbInscriptionMasseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbInscriptionMasseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbInscriptionMasseGridDtoPaginatedResultsFromJSON(json: any): FcbInscriptionMasseGridDtoPaginatedResults {\n return FcbInscriptionMasseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbInscriptionMasseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbInscriptionMasseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbInscriptionMasseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbInscriptionMasseGridDtoPaginatedResultsToJSON(value?: FcbInscriptionMasseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbInscriptionMasseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EJours } from './EJours';\nimport {\n EJoursFromJSON,\n EJoursFromJSONTyped,\n EJoursToJSON,\n} from './EJours';\n\n/**\n * \n * @export\n * @interface FcbJustificatifAbsenceGridDto\n */\nexport interface FcbJustificatifAbsenceGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n idApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n idJustificatif?: number;\n /**\n * \n * @type {string}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n genre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n type?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n accepte?: boolean;\n /**\n * \n * @type {string}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n plages?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n jour1?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n jour2?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n jour3?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n jour4?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n jour5?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n jour6?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n jour7?: boolean;\n /**\n * \n * @type {Array}\n * @memberof FcbJustificatifAbsenceGridDto\n */\n jours?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbJustificatifAbsenceGridDto interface.\n */\nexport function instanceOfFcbJustificatifAbsenceGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbJustificatifAbsenceGridDtoFromJSON(json: any): FcbJustificatifAbsenceGridDto {\n return FcbJustificatifAbsenceGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbJustificatifAbsenceGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbJustificatifAbsenceGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'idJustificatif': !exists(json, 'idJustificatif') ? undefined : json['idJustificatif'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'genre': !exists(json, 'genre') ? undefined : json['genre'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'accepte': !exists(json, 'accepte') ? undefined : json['accepte'],\n 'plages': !exists(json, 'plages') ? undefined : json['plages'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'jour1': !exists(json, 'jour1') ? undefined : json['jour1'],\n 'jour2': !exists(json, 'jour2') ? undefined : json['jour2'],\n 'jour3': !exists(json, 'jour3') ? undefined : json['jour3'],\n 'jour4': !exists(json, 'jour4') ? undefined : json['jour4'],\n 'jour5': !exists(json, 'jour5') ? undefined : json['jour5'],\n 'jour6': !exists(json, 'jour6') ? undefined : json['jour6'],\n 'jour7': !exists(json, 'jour7') ? undefined : json['jour7'],\n 'jours': !exists(json, 'jours') ? undefined : (json['jours'] === null ? null : (json['jours'] as Array).map(EJoursFromJSON)),\n };\n}\n\nexport function FcbJustificatifAbsenceGridDtoToJSON(value?: FcbJustificatifAbsenceGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'idJustificatif': value.idJustificatif,\n 'anneeScolaire': value.anneeScolaire,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'genre': value.genre,\n 'type': value.type,\n 'accepte': value.accepte,\n 'plages': value.plages,\n 'remarque': value.remarque,\n 'jour1': value.jour1,\n 'jour2': value.jour2,\n 'jour3': value.jour3,\n 'jour4': value.jour4,\n 'jour5': value.jour5,\n 'jour6': value.jour6,\n 'jour7': value.jour7,\n 'jours': value.jours === undefined ? undefined : (value.jours === null ? null : (value.jours as Array).map(EJoursToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbJustificatifAbsenceGridDto } from './FcbJustificatifAbsenceGridDto';\nimport {\n FcbJustificatifAbsenceGridDtoFromJSON,\n FcbJustificatifAbsenceGridDtoFromJSONTyped,\n FcbJustificatifAbsenceGridDtoToJSON,\n} from './FcbJustificatifAbsenceGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbJustificatifAbsenceGridDtoPaginatedResults\n */\nexport interface FcbJustificatifAbsenceGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbJustificatifAbsenceGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbJustificatifAbsenceGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbJustificatifAbsenceGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbJustificatifAbsenceGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbJustificatifAbsenceGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbJustificatifAbsenceGridDtoPaginatedResultsFromJSON(json: any): FcbJustificatifAbsenceGridDtoPaginatedResults {\n return FcbJustificatifAbsenceGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbJustificatifAbsenceGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbJustificatifAbsenceGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbJustificatifAbsenceGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbJustificatifAbsenceGridDtoPaginatedResultsToJSON(value?: FcbJustificatifAbsenceGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbJustificatifAbsenceGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbJustificatifsAbsenceDetailsDto\n */\nexport interface FcbJustificatifsAbsenceDetailsDto {\n /**\n * \n * @type {Array}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n plages?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n jours?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n idjustificatif?: number;\n /**\n * \n * @type {string}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n idjustificatifGenre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n idjustificatifType?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n accepte?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n dateRemise?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n jour1?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n jour2?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n jour3?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n jour4?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n jour5?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n jour6?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n jour7?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbJustificatifsAbsenceDetailsDto\n */\n idcentre?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbJustificatifsAbsenceDetailsDto interface.\n */\nexport function instanceOfFcbJustificatifsAbsenceDetailsDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbJustificatifsAbsenceDetailsDtoFromJSON(json: any): FcbJustificatifsAbsenceDetailsDto {\n return FcbJustificatifsAbsenceDetailsDtoFromJSONTyped(json, false);\n}\n\nexport function FcbJustificatifsAbsenceDetailsDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbJustificatifsAbsenceDetailsDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'plages': !exists(json, 'plages') ? undefined : json['plages'],\n 'jours': !exists(json, 'jours') ? undefined : json['jours'],\n 'idjustificatif': !exists(json, 'idjustificatif') ? undefined : json['idjustificatif'],\n 'idjustificatifGenre': !exists(json, 'idjustificatifGenre') ? undefined : json['idjustificatifGenre'],\n 'idjustificatifType': !exists(json, 'idjustificatifType') ? undefined : json['idjustificatifType'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'accepte': !exists(json, 'accepte') ? undefined : json['accepte'],\n 'dateRemise': !exists(json, 'dateRemise') ? undefined : (json['dateRemise'] === null ? null : new Date(json['dateRemise'])),\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'jour1': !exists(json, 'jour1') ? undefined : json['jour1'],\n 'jour2': !exists(json, 'jour2') ? undefined : json['jour2'],\n 'jour3': !exists(json, 'jour3') ? undefined : json['jour3'],\n 'jour4': !exists(json, 'jour4') ? undefined : json['jour4'],\n 'jour5': !exists(json, 'jour5') ? undefined : json['jour5'],\n 'jour6': !exists(json, 'jour6') ? undefined : json['jour6'],\n 'jour7': !exists(json, 'jour7') ? undefined : json['jour7'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n };\n}\n\nexport function FcbJustificatifsAbsenceDetailsDtoToJSON(value?: FcbJustificatifsAbsenceDetailsDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'plages': value.plages,\n 'jours': value.jours,\n 'idjustificatif': value.idjustificatif,\n 'idjustificatifGenre': value.idjustificatifGenre,\n 'idjustificatifType': value.idjustificatifType,\n 'idapprenant': value.idapprenant,\n 'remarque': value.remarque,\n 'accepte': value.accepte,\n 'dateRemise': value.dateRemise === undefined ? undefined : (value.dateRemise === null ? null : value.dateRemise.toISOString()),\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'jour1': value.jour1,\n 'jour2': value.jour2,\n 'jour3': value.jour3,\n 'jour4': value.jour4,\n 'jour5': value.jour5,\n 'jour6': value.jour6,\n 'jour7': value.jour7,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idcentre': value.idcentre,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbLieuxCoursDto\n */\nexport interface FcbLieuxCoursDto {\n /**\n * \n * @type {number}\n * @memberof FcbLieuxCoursDto\n */\n idlieu?: number;\n /**\n * \n * @type {number}\n * @memberof FcbLieuxCoursDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursDto\n */\n tel?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursDto\n */\n fax?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbLieuxCoursDto\n */\n creationUser?: number;\n /**\n * \n * @type {number}\n * @memberof FcbLieuxCoursDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbLieuxCoursDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbLieuxCoursDto\n */\n modificationDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbLieuxCoursDto interface.\n */\nexport function instanceOfFcbLieuxCoursDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbLieuxCoursDtoFromJSON(json: any): FcbLieuxCoursDto {\n return FcbLieuxCoursDtoFromJSONTyped(json, false);\n}\n\nexport function FcbLieuxCoursDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbLieuxCoursDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieu': !exists(json, 'idlieu') ? undefined : json['idlieu'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'tel': !exists(json, 'tel') ? undefined : json['tel'],\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n };\n}\n\nexport function FcbLieuxCoursDtoToJSON(value?: FcbLieuxCoursDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieu': value.idlieu,\n 'idcentre': value.idcentre,\n 'code': value.code,\n 'nom': value.nom,\n 'codePays': value.codePays,\n 'codePostal': value.codePostal,\n 'adresse': value.adresse,\n 'localite': value.localite,\n 'commune': value.commune,\n 'tel': value.tel,\n 'fax': value.fax,\n 'creationUser': value.creationUser,\n 'modificationUser': value.modificationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbLieuxCoursGridDto\n */\nexport interface FcbLieuxCoursGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbLieuxCoursGridDto\n */\n idlieu?: number;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n pays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n tel?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLieuxCoursGridDto\n */\n fax?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbLieuxCoursGridDto interface.\n */\nexport function instanceOfFcbLieuxCoursGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbLieuxCoursGridDtoFromJSON(json: any): FcbLieuxCoursGridDto {\n return FcbLieuxCoursGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbLieuxCoursGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbLieuxCoursGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieu': !exists(json, 'idlieu') ? undefined : json['idlieu'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'pays': !exists(json, 'pays') ? undefined : json['pays'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'tel': !exists(json, 'tel') ? undefined : json['tel'],\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n };\n}\n\nexport function FcbLieuxCoursGridDtoToJSON(value?: FcbLieuxCoursGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieu': value.idlieu,\n 'code': value.code,\n 'nom': value.nom,\n 'codePays': value.codePays,\n 'pays': value.pays,\n 'codePostal': value.codePostal,\n 'adresse': value.adresse,\n 'localite': value.localite,\n 'commune': value.commune,\n 'tel': value.tel,\n 'fax': value.fax,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbLieuxCoursGridDto } from './FcbLieuxCoursGridDto';\nimport {\n FcbLieuxCoursGridDtoFromJSON,\n FcbLieuxCoursGridDtoFromJSONTyped,\n FcbLieuxCoursGridDtoToJSON,\n} from './FcbLieuxCoursGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbLieuxCoursGridDtoPaginatedResults\n */\nexport interface FcbLieuxCoursGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbLieuxCoursGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbLieuxCoursGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbLieuxCoursGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbLieuxCoursGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbLieuxCoursGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbLieuxCoursGridDtoPaginatedResultsFromJSON(json: any): FcbLieuxCoursGridDtoPaginatedResults {\n return FcbLieuxCoursGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbLieuxCoursGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbLieuxCoursGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbLieuxCoursGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbLieuxCoursGridDtoPaginatedResultsToJSON(value?: FcbLieuxCoursGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbLieuxCoursGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbLocalDto\n */\nexport interface FcbLocalDto {\n /**\n * \n * @type {number}\n * @memberof FcbLocalDto\n */\n idlocal?: number;\n /**\n * \n * @type {string}\n * @memberof FcbLocalDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLocalDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbLocalDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbLocalDto\n */\n idlieu?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbLocalDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbLocalDto interface.\n */\nexport function instanceOfFcbLocalDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbLocalDtoFromJSON(json: any): FcbLocalDto {\n return FcbLocalDtoFromJSONTyped(json, false);\n}\n\nexport function FcbLocalDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbLocalDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlocal': !exists(json, 'idlocal') ? undefined : json['idlocal'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idlieu': !exists(json, 'idlieu') ? undefined : json['idlieu'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbLocalDtoToJSON(value?: FcbLocalDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlocal': value.idlocal,\n 'code': value.code,\n 'description': value.description,\n 'idcentre': value.idcentre,\n 'idlieu': value.idlieu,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbLocalGridDto\n */\nexport interface FcbLocalGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbLocalGridDto\n */\n idlocal?: number;\n /**\n * \n * @type {string}\n * @memberof FcbLocalGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbLocalGridDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbLocalGridDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbLocalGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbLocalGridDto\n */\n idlieu?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbLocalGridDto\n */\n lieu?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbLocalGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbLocalGridDto interface.\n */\nexport function instanceOfFcbLocalGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbLocalGridDtoFromJSON(json: any): FcbLocalGridDto {\n return FcbLocalGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbLocalGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbLocalGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlocal': !exists(json, 'idlocal') ? undefined : json['idlocal'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'idlieu': !exists(json, 'idlieu') ? undefined : json['idlieu'],\n 'lieu': !exists(json, 'lieu') ? undefined : json['lieu'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbLocalGridDtoToJSON(value?: FcbLocalGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlocal': value.idlocal,\n 'code': value.code,\n 'description': value.description,\n 'idcentre': value.idcentre,\n 'centre': value.centre,\n 'idlieu': value.idlieu,\n 'lieu': value.lieu,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbLocalGridDto } from './FcbLocalGridDto';\nimport {\n FcbLocalGridDtoFromJSON,\n FcbLocalGridDtoFromJSONTyped,\n FcbLocalGridDtoToJSON,\n} from './FcbLocalGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbLocalGridDtoPaginatedResults\n */\nexport interface FcbLocalGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbLocalGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbLocalGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbLocalGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbLocalGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbLocalGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbLocalGridDtoPaginatedResultsFromJSON(json: any): FcbLocalGridDtoPaginatedResults {\n return FcbLocalGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbLocalGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbLocalGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbLocalGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbLocalGridDtoPaginatedResultsToJSON(value?: FcbLocalGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbLocalGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMatiereReferentielDto\n */\nexport interface FcbMatiereReferentielDto {\n /**\n * \n * @type {string}\n * @memberof FcbMatiereReferentielDto\n */\n idmatiere?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n idreferentiel?: number;\n /**\n * \n * @type {string}\n * @memberof FcbMatiereReferentielDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n nbheures?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n travail?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n pcReussite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n examen?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbMatiereReferentielDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n pcreussite1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbMatiereReferentielDto\n */\n creationDate?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbMatiereReferentielDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbMatiereReferentielDto\n */\n idmatiereReferentielGuid?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n categorie?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n idprojetFinancement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n idmatiereReferentiel?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbMatiereReferentielDto\n */\n isEditable?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n niveau?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMatiereReferentielDto\n */\n uaa?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMatiereReferentielDto\n */\n isVisibleBulletin?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMatiereReferentielDto\n */\n sommative?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielDto\n */\n idmatiereParent?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbMatiereReferentielDto interface.\n */\nexport function instanceOfFcbMatiereReferentielDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMatiereReferentielDtoFromJSON(json: any): FcbMatiereReferentielDto {\n return FcbMatiereReferentielDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMatiereReferentielDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMatiereReferentielDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idmatiere': !exists(json, 'idmatiere') ? undefined : json['idmatiere'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'nbheures': !exists(json, 'nbheures') ? undefined : json['nbheures'],\n 'travail': !exists(json, 'travail') ? undefined : json['travail'],\n 'pcReussite': !exists(json, 'pcReussite') ? undefined : json['pcReussite'],\n 'examen': !exists(json, 'examen') ? undefined : json['examen'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'pcreussite1': !exists(json, 'pcreussite1') ? undefined : json['pcreussite1'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idmatiereReferentielGuid': !exists(json, 'idmatiereReferentielGuid') ? undefined : json['idmatiereReferentielGuid'],\n 'categorie': !exists(json, 'categorie') ? undefined : json['categorie'],\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'idmatiereReferentiel': !exists(json, 'idmatiereReferentiel') ? undefined : json['idmatiereReferentiel'],\n 'isEditable': !exists(json, 'isEditable') ? undefined : json['isEditable'],\n 'niveau': !exists(json, 'niveau') ? undefined : json['niveau'],\n 'uaa': !exists(json, 'uaa') ? undefined : json['uaa'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'sommative': !exists(json, 'sommative') ? undefined : json['sommative'],\n 'idmatiereParent': !exists(json, 'idmatiereParent') ? undefined : json['idmatiereParent'],\n };\n}\n\nexport function FcbMatiereReferentielDtoToJSON(value?: FcbMatiereReferentielDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idmatiere': value.idmatiere,\n 'idreferentiel': value.idreferentiel,\n 'description': value.description,\n 'nbheures': value.nbheures,\n 'travail': value.travail,\n 'pcReussite': value.pcReussite,\n 'examen': value.examen,\n 'remarque': value.remarque,\n 'pcreussite1': value.pcreussite1,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idmatiereReferentielGuid': value.idmatiereReferentielGuid,\n 'categorie': value.categorie,\n 'idprojetFinancement': value.idprojetFinancement,\n 'idmatiereReferentiel': value.idmatiereReferentiel,\n 'isEditable': value.isEditable,\n 'niveau': value.niveau,\n 'uaa': value.uaa,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'sommative': value.sommative,\n 'idmatiereParent': value.idmatiereParent,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMatiereReferentielGridDto\n */\nexport interface FcbMatiereReferentielGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbMatiereReferentielGridDto\n */\n idmatiere?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDto\n */\n idreferentiel?: number;\n /**\n * \n * @type {string}\n * @memberof FcbMatiereReferentielGridDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDto\n */\n travail?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDto\n */\n nbheures?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDto\n */\n pcReussite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDto\n */\n examen?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDto\n */\n categorie?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDto\n */\n idprojetFinancement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbMatiereReferentielGridDto\n */\n projetFinancement?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDto\n */\n idmatiereReferentiel?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbMatiereReferentielGridDto\n */\n isLinkedToClasse?: boolean;\n /**\n * \n * @type {string}\n * @memberof FcbMatiereReferentielGridDto\n */\n degre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDto\n */\n niveau?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbMatiereReferentielGridDto\n */\n matiereParent?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMatiereReferentielGridDto\n */\n uaa?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMatiereReferentielGridDto\n */\n isVisibleBulletin?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMatiereReferentielGridDto\n */\n sommative?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbMatiereReferentielGridDto interface.\n */\nexport function instanceOfFcbMatiereReferentielGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMatiereReferentielGridDtoFromJSON(json: any): FcbMatiereReferentielGridDto {\n return FcbMatiereReferentielGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMatiereReferentielGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMatiereReferentielGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idmatiere': !exists(json, 'idmatiere') ? undefined : json['idmatiere'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'travail': !exists(json, 'travail') ? undefined : json['travail'],\n 'nbheures': !exists(json, 'nbheures') ? undefined : json['nbheures'],\n 'pcReussite': !exists(json, 'pcReussite') ? undefined : json['pcReussite'],\n 'examen': !exists(json, 'examen') ? undefined : json['examen'],\n 'categorie': !exists(json, 'categorie') ? undefined : json['categorie'],\n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'projetFinancement': !exists(json, 'projetFinancement') ? undefined : json['projetFinancement'],\n 'idmatiereReferentiel': !exists(json, 'idmatiereReferentiel') ? undefined : json['idmatiereReferentiel'],\n 'isLinkedToClasse': !exists(json, 'isLinkedToClasse') ? undefined : json['isLinkedToClasse'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'niveau': !exists(json, 'niveau') ? undefined : json['niveau'],\n 'matiereParent': !exists(json, 'matiereParent') ? undefined : json['matiereParent'],\n 'uaa': !exists(json, 'uaa') ? undefined : json['uaa'],\n 'isVisibleBulletin': !exists(json, 'isVisibleBulletin') ? undefined : json['isVisibleBulletin'],\n 'sommative': !exists(json, 'sommative') ? undefined : json['sommative'],\n };\n}\n\nexport function FcbMatiereReferentielGridDtoToJSON(value?: FcbMatiereReferentielGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idmatiere': value.idmatiere,\n 'idreferentiel': value.idreferentiel,\n 'description': value.description,\n 'travail': value.travail,\n 'nbheures': value.nbheures,\n 'pcReussite': value.pcReussite,\n 'examen': value.examen,\n 'categorie': value.categorie,\n 'idprojetFinancement': value.idprojetFinancement,\n 'projetFinancement': value.projetFinancement,\n 'idmatiereReferentiel': value.idmatiereReferentiel,\n 'isLinkedToClasse': value.isLinkedToClasse,\n 'degre': value.degre,\n 'niveau': value.niveau,\n 'matiereParent': value.matiereParent,\n 'uaa': value.uaa,\n 'isVisibleBulletin': value.isVisibleBulletin,\n 'sommative': value.sommative,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbMatiereReferentielGridDto } from './FcbMatiereReferentielGridDto';\nimport {\n FcbMatiereReferentielGridDtoFromJSON,\n FcbMatiereReferentielGridDtoFromJSONTyped,\n FcbMatiereReferentielGridDtoToJSON,\n} from './FcbMatiereReferentielGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbMatiereReferentielGridDtoPaginatedResults\n */\nexport interface FcbMatiereReferentielGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbMatiereReferentielGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMatiereReferentielGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMatiereReferentielGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMatiereReferentielGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbMatiereReferentielGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMatiereReferentielGridDtoPaginatedResultsFromJSON(json: any): FcbMatiereReferentielGridDtoPaginatedResults {\n return FcbMatiereReferentielGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbMatiereReferentielGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMatiereReferentielGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbMatiereReferentielGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbMatiereReferentielGridDtoPaginatedResultsToJSON(value?: FcbMatiereReferentielGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbMatiereReferentielGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMetierAgrementGridDto\n */\nexport interface FcbMetierAgrementGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbMetierAgrementGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierAgrementGridDto\n */\n stade?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMetierAgrementGridDto\n */\n accord?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierAgrementGridDto\n */\n code?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMetierAgrementGridDto\n */\n idmetier?: number;\n}\n\n/**\n * Check if a given object implements the FcbMetierAgrementGridDto interface.\n */\nexport function instanceOfFcbMetierAgrementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierAgrementGridDtoFromJSON(json: any): FcbMetierAgrementGridDto {\n return FcbMetierAgrementGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetierAgrementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierAgrementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'accord': !exists(json, 'accord') ? undefined : json['accord'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n };\n}\n\nexport function FcbMetierAgrementGridDtoToJSON(value?: FcbMetierAgrementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': value.libelle,\n 'stade': value.stade,\n 'accord': value.accord,\n 'code': value.code,\n 'idmetier': value.idmetier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbMetierAgrementGridDto } from './FcbMetierAgrementGridDto';\nimport {\n FcbMetierAgrementGridDtoFromJSON,\n FcbMetierAgrementGridDtoFromJSONTyped,\n FcbMetierAgrementGridDtoToJSON,\n} from './FcbMetierAgrementGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbMetierAgrementGridDtoPaginatedResults\n */\nexport interface FcbMetierAgrementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbMetierAgrementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierAgrementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierAgrementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierAgrementGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbMetierAgrementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierAgrementGridDtoPaginatedResultsFromJSON(json: any): FcbMetierAgrementGridDtoPaginatedResults {\n return FcbMetierAgrementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbMetierAgrementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierAgrementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbMetierAgrementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbMetierAgrementGridDtoPaginatedResultsToJSON(value?: FcbMetierAgrementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbMetierAgrementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMetierClauseGridDto\n */\nexport interface FcbMetierClauseGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbMetierClauseGridDto\n */\n indice?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMetierClauseGridDto\n */\n idmetier?: number;\n /**\n * \n * @type {string}\n * @memberof FcbMetierClauseGridDto\n */\n description?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierClauseGridDto interface.\n */\nexport function instanceOfFcbMetierClauseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierClauseGridDtoFromJSON(json: any): FcbMetierClauseGridDto {\n return FcbMetierClauseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetierClauseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierClauseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'indice': !exists(json, 'indice') ? undefined : json['indice'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n };\n}\n\nexport function FcbMetierClauseGridDtoToJSON(value?: FcbMetierClauseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'indice': value.indice,\n 'idmetier': value.idmetier,\n 'description': value.description,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbMetierClauseGridDto } from './FcbMetierClauseGridDto';\nimport {\n FcbMetierClauseGridDtoFromJSON,\n FcbMetierClauseGridDtoFromJSONTyped,\n FcbMetierClauseGridDtoToJSON,\n} from './FcbMetierClauseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbMetierClauseGridDtoPaginatedResults\n */\nexport interface FcbMetierClauseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbMetierClauseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierClauseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierClauseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierClauseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbMetierClauseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierClauseGridDtoPaginatedResultsFromJSON(json: any): FcbMetierClauseGridDtoPaginatedResults {\n return FcbMetierClauseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbMetierClauseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierClauseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbMetierClauseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbMetierClauseGridDtoPaginatedResultsToJSON(value?: FcbMetierClauseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbMetierClauseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMetierClauseLiesGridDto\n */\nexport interface FcbMetierClauseLiesGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbMetierClauseLiesGridDto\n */\n titre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMetierClauseLiesGridDto\n */\n idclause?: number;\n /**\n * \n * @type {string}\n * @memberof FcbMetierClauseLiesGridDto\n */\n description?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierClauseLiesGridDto interface.\n */\nexport function instanceOfFcbMetierClauseLiesGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierClauseLiesGridDtoFromJSON(json: any): FcbMetierClauseLiesGridDto {\n return FcbMetierClauseLiesGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetierClauseLiesGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierClauseLiesGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'titre': !exists(json, 'titre') ? undefined : json['titre'],\n 'idclause': !exists(json, 'idclause') ? undefined : json['idclause'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n };\n}\n\nexport function FcbMetierClauseLiesGridDtoToJSON(value?: FcbMetierClauseLiesGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'titre': value.titre,\n 'idclause': value.idclause,\n 'description': value.description,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbMetierClauseLiesGridDto } from './FcbMetierClauseLiesGridDto';\nimport {\n FcbMetierClauseLiesGridDtoFromJSON,\n FcbMetierClauseLiesGridDtoFromJSONTyped,\n FcbMetierClauseLiesGridDtoToJSON,\n} from './FcbMetierClauseLiesGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbMetierClauseLiesGridDtoPaginatedResults\n */\nexport interface FcbMetierClauseLiesGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbMetierClauseLiesGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierClauseLiesGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierClauseLiesGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierClauseLiesGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbMetierClauseLiesGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierClauseLiesGridDtoPaginatedResultsFromJSON(json: any): FcbMetierClauseLiesGridDtoPaginatedResults {\n return FcbMetierClauseLiesGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbMetierClauseLiesGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierClauseLiesGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbMetierClauseLiesGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbMetierClauseLiesGridDtoPaginatedResultsToJSON(value?: FcbMetierClauseLiesGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbMetierClauseLiesGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMetierClausesLieesDto\n */\nexport interface FcbMetierClausesLieesDto {\n /**\n * \n * @type {number}\n * @memberof FcbMetierClausesLieesDto\n */\n idMetier?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierClausesLieesDto\n */\n idsClause?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierClausesLieesDto interface.\n */\nexport function instanceOfFcbMetierClausesLieesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierClausesLieesDtoFromJSON(json: any): FcbMetierClausesLieesDto {\n return FcbMetierClausesLieesDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetierClausesLieesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierClausesLieesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idMetier': !exists(json, 'idMetier') ? undefined : json['idMetier'],\n 'idsClause': !exists(json, 'idsClause') ? undefined : json['idsClause'],\n };\n}\n\nexport function FcbMetierClausesLieesDtoToJSON(value?: FcbMetierClausesLieesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idMetier': value.idMetier,\n 'idsClause': value.idsClause,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMetierConseillersLiesDto\n */\nexport interface FcbMetierConseillersLiesDto {\n /**\n * \n * @type {number}\n * @memberof FcbMetierConseillersLiesDto\n */\n idMetiers?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierConseillersLiesDto\n */\n idsConseillers?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierConseillersLiesDto interface.\n */\nexport function instanceOfFcbMetierConseillersLiesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierConseillersLiesDtoFromJSON(json: any): FcbMetierConseillersLiesDto {\n return FcbMetierConseillersLiesDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetierConseillersLiesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierConseillersLiesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idMetiers': !exists(json, 'idMetiers') ? undefined : json['idMetiers'],\n 'idsConseillers': !exists(json, 'idsConseillers') ? undefined : json['idsConseillers'],\n };\n}\n\nexport function FcbMetierConseillersLiesDtoToJSON(value?: FcbMetierConseillersLiesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idMetiers': value.idMetiers,\n 'idsConseillers': value.idsConseillers,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMetierConseillersLiesGridDto\n */\nexport interface FcbMetierConseillersLiesGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbMetierConseillersLiesGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierConseillersLiesGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierConseillersLiesGridDto\n */\n idConseiller?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierConseillersLiesGridDto interface.\n */\nexport function instanceOfFcbMetierConseillersLiesGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierConseillersLiesGridDtoFromJSON(json: any): FcbMetierConseillersLiesGridDto {\n return FcbMetierConseillersLiesGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetierConseillersLiesGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierConseillersLiesGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'idConseiller': !exists(json, 'idConseiller') ? undefined : json['idConseiller'],\n };\n}\n\nexport function FcbMetierConseillersLiesGridDtoToJSON(value?: FcbMetierConseillersLiesGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n 'prenom': value.prenom,\n 'idConseiller': value.idConseiller,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbMetierConseillersLiesGridDto } from './FcbMetierConseillersLiesGridDto';\nimport {\n FcbMetierConseillersLiesGridDtoFromJSON,\n FcbMetierConseillersLiesGridDtoFromJSONTyped,\n FcbMetierConseillersLiesGridDtoToJSON,\n} from './FcbMetierConseillersLiesGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbMetierConseillersLiesGridDtoPaginatedResults\n */\nexport interface FcbMetierConseillersLiesGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbMetierConseillersLiesGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierConseillersLiesGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierConseillersLiesGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierConseillersLiesGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbMetierConseillersLiesGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierConseillersLiesGridDtoPaginatedResultsFromJSON(json: any): FcbMetierConseillersLiesGridDtoPaginatedResults {\n return FcbMetierConseillersLiesGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbMetierConseillersLiesGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierConseillersLiesGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbMetierConseillersLiesGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbMetierConseillersLiesGridDtoPaginatedResultsToJSON(value?: FcbMetierConseillersLiesGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbMetierConseillersLiesGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPlanLocalisationDatumDto\n */\nexport interface FcbPlanLocalisationDatumDto {\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDatumDto\n */\n idplanData?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n financementType?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n financementProjet?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDatumDto\n */\n idreferentiel?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDatumDto\n */\n idplan?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n iddegre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDatumDto\n */\n idmetier?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n idgenreClasse?: string;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n specificiteCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n libelle?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbPlanLocalisationDatumDto\n */\n datePremierCours?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDatumDto\n */\n nbheuresSemestre1?: number;\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDatumDto\n */\n nbheuresSemestre2?: number;\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDatumDto\n */\n nbapprenants?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n remarqueCentre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n remarqueConseiller?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDatumDto\n */\n idconseillerPedagogique?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDatumDto\n */\n idclasse?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbPlanLocalisationDatumDto interface.\n */\nexport function instanceOfFcbPlanLocalisationDatumDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPlanLocalisationDatumDtoFromJSON(json: any): FcbPlanLocalisationDatumDto {\n return FcbPlanLocalisationDatumDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPlanLocalisationDatumDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPlanLocalisationDatumDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idplanData': !exists(json, 'idplanData') ? undefined : json['idplanData'],\n 'financementType': !exists(json, 'financementType') ? undefined : json['financementType'],\n 'financementProjet': !exists(json, 'financementProjet') ? undefined : json['financementProjet'],\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'idplan': !exists(json, 'idplan') ? undefined : json['idplan'],\n 'iddegre': !exists(json, 'iddegre') ? undefined : json['iddegre'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idgenreClasse': !exists(json, 'idgenreClasse') ? undefined : json['idgenreClasse'],\n 'specificiteCours': !exists(json, 'specificiteCours') ? undefined : json['specificiteCours'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'datePremierCours': !exists(json, 'datePremierCours') ? undefined : (new Date(json['datePremierCours'])),\n 'nbheuresSemestre1': !exists(json, 'nbheuresSemestre1') ? undefined : json['nbheuresSemestre1'],\n 'nbheuresSemestre2': !exists(json, 'nbheuresSemestre2') ? undefined : json['nbheuresSemestre2'],\n 'nbapprenants': !exists(json, 'nbapprenants') ? undefined : json['nbapprenants'],\n 'remarqueCentre': !exists(json, 'remarqueCentre') ? undefined : json['remarqueCentre'],\n 'remarqueConseiller': !exists(json, 'remarqueConseiller') ? undefined : json['remarqueConseiller'],\n 'idconseillerPedagogique': !exists(json, 'idconseillerPedagogique') ? undefined : json['idconseillerPedagogique'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n };\n}\n\nexport function FcbPlanLocalisationDatumDtoToJSON(value?: FcbPlanLocalisationDatumDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idplanData': value.idplanData,\n 'financementType': value.financementType,\n 'financementProjet': value.financementProjet,\n 'typeCours': value.typeCours,\n 'idreferentiel': value.idreferentiel,\n 'idplan': value.idplan,\n 'iddegre': value.iddegre,\n 'idmetier': value.idmetier,\n 'idgenreClasse': value.idgenreClasse,\n 'specificiteCours': value.specificiteCours,\n 'libelle': value.libelle,\n 'datePremierCours': value.datePremierCours === undefined ? undefined : (value.datePremierCours.toISOString()),\n 'nbheuresSemestre1': value.nbheuresSemestre1,\n 'nbheuresSemestre2': value.nbheuresSemestre2,\n 'nbapprenants': value.nbapprenants,\n 'remarqueCentre': value.remarqueCentre,\n 'remarqueConseiller': value.remarqueConseiller,\n 'idconseillerPedagogique': value.idconseillerPedagogique,\n 'idclasse': value.idclasse,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbClauseDto } from './FcbClauseDto';\nimport {\n FcbClauseDtoFromJSON,\n FcbClauseDtoFromJSONTyped,\n FcbClauseDtoToJSON,\n} from './FcbClauseDto';\nimport type { FcbConseillerPedagogiqueDto } from './FcbConseillerPedagogiqueDto';\nimport {\n FcbConseillerPedagogiqueDtoFromJSON,\n FcbConseillerPedagogiqueDtoFromJSONTyped,\n FcbConseillerPedagogiqueDtoToJSON,\n} from './FcbConseillerPedagogiqueDto';\nimport type { FcbPlanLocalisationDatumDto } from './FcbPlanLocalisationDatumDto';\nimport {\n FcbPlanLocalisationDatumDtoFromJSON,\n FcbPlanLocalisationDatumDtoFromJSONTyped,\n FcbPlanLocalisationDatumDtoToJSON,\n} from './FcbPlanLocalisationDatumDto';\n\n/**\n * \n * @export\n * @interface FcbMetierDetailDto\n */\nexport interface FcbMetierDetailDto {\n /**\n * \n * @type {Array}\n * @memberof FcbMetierDetailDto\n */\n clauses?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierDetailDto\n */\n conseillers?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierDetailDto\n */\n planLocalisationDatum?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FcbMetierDetailDto\n */\n idmetier?: number;\n /**\n * \n * @type {number}\n * @memberof FcbMetierDetailDto\n */\n idstade?: number;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n codesecteur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n code?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMetierDetailDto\n */\n integre?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n masculin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n feminin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n comissionParitaire?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMetierDetailDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMetierDetailDto\n */\n pratique?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbMetierDetailDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbMetierDetailDto\n */\n creationDate?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbMetierDetailDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbMetierDetailDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n idmetierGuid?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n degreFinal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n degreFinalAdditionnel?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDetailDto\n */\n ifapmeSide?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierDetailDto\n */\n commissionParitaires?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierDetailDto interface.\n */\nexport function instanceOfFcbMetierDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierDetailDtoFromJSON(json: any): FcbMetierDetailDto {\n return FcbMetierDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetierDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'clauses': !exists(json, 'clauses') ? undefined : (json['clauses'] === null ? null : (json['clauses'] as Array).map(FcbClauseDtoFromJSON)),\n 'conseillers': !exists(json, 'conseillers') ? undefined : (json['conseillers'] === null ? null : (json['conseillers'] as Array).map(FcbConseillerPedagogiqueDtoFromJSON)),\n 'planLocalisationDatum': !exists(json, 'planLocalisationDatum') ? undefined : (json['planLocalisationDatum'] === null ? null : (json['planLocalisationDatum'] as Array).map(FcbPlanLocalisationDatumDtoFromJSON)),\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'codesecteur': !exists(json, 'codesecteur') ? undefined : json['codesecteur'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'integre': !exists(json, 'integre') ? undefined : json['integre'],\n 'masculin': !exists(json, 'masculin') ? undefined : json['masculin'],\n 'feminin': !exists(json, 'feminin') ? undefined : json['feminin'],\n 'comissionParitaire': !exists(json, 'comissionParitaire') ? undefined : json['comissionParitaire'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'pratique': !exists(json, 'pratique') ? undefined : json['pratique'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idmetierGuid': !exists(json, 'idmetierGuid') ? undefined : json['idmetierGuid'],\n 'degreFinal': !exists(json, 'degreFinal') ? undefined : json['degreFinal'],\n 'degreFinalAdditionnel': !exists(json, 'degreFinalAdditionnel') ? undefined : json['degreFinalAdditionnel'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n 'commissionParitaires': !exists(json, 'commissionParitaires') ? undefined : json['commissionParitaires'],\n };\n}\n\nexport function FcbMetierDetailDtoToJSON(value?: FcbMetierDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'clauses': value.clauses === undefined ? undefined : (value.clauses === null ? null : (value.clauses as Array).map(FcbClauseDtoToJSON)),\n 'conseillers': value.conseillers === undefined ? undefined : (value.conseillers === null ? null : (value.conseillers as Array).map(FcbConseillerPedagogiqueDtoToJSON)),\n 'planLocalisationDatum': value.planLocalisationDatum === undefined ? undefined : (value.planLocalisationDatum === null ? null : (value.planLocalisationDatum as Array).map(FcbPlanLocalisationDatumDtoToJSON)),\n 'idmetier': value.idmetier,\n 'idstade': value.idstade,\n 'codesecteur': value.codesecteur,\n 'code': value.code,\n 'integre': value.integre,\n 'masculin': value.masculin,\n 'feminin': value.feminin,\n 'comissionParitaire': value.comissionParitaire,\n 'actif': value.actif,\n 'remarque': value.remarque,\n 'pratique': value.pratique,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idmetierGuid': value.idmetierGuid,\n 'degreFinal': value.degreFinal,\n 'degreFinalAdditionnel': value.degreFinalAdditionnel,\n 'ifapmeSide': value.ifapmeSide,\n 'commissionParitaires': value.commissionParitaires,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMetierDto\n */\nexport interface FcbMetierDto {\n /**\n * \n * @type {number}\n * @memberof FcbMetierDto\n */\n idmetier?: number;\n /**\n * \n * @type {number}\n * @memberof FcbMetierDto\n */\n idstade?: number;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n codesecteur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n code?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMetierDto\n */\n integre?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n masculin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n feminin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n comissionParitaire?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMetierDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMetierDto\n */\n pratique?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbMetierDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbMetierDto\n */\n creationDate?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbMetierDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbMetierDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n idmetierGuid?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n degreFinal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n degreFinalAdditionnel?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierDto\n */\n ifapmeSide?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierDto\n */\n commissionParitaires?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierDto interface.\n */\nexport function instanceOfFcbMetierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierDtoFromJSON(json: any): FcbMetierDto {\n return FcbMetierDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'codesecteur': !exists(json, 'codesecteur') ? undefined : json['codesecteur'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'integre': !exists(json, 'integre') ? undefined : json['integre'],\n 'masculin': !exists(json, 'masculin') ? undefined : json['masculin'],\n 'feminin': !exists(json, 'feminin') ? undefined : json['feminin'],\n 'comissionParitaire': !exists(json, 'comissionParitaire') ? undefined : json['comissionParitaire'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'pratique': !exists(json, 'pratique') ? undefined : json['pratique'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idmetierGuid': !exists(json, 'idmetierGuid') ? undefined : json['idmetierGuid'],\n 'degreFinal': !exists(json, 'degreFinal') ? undefined : json['degreFinal'],\n 'degreFinalAdditionnel': !exists(json, 'degreFinalAdditionnel') ? undefined : json['degreFinalAdditionnel'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n 'commissionParitaires': !exists(json, 'commissionParitaires') ? undefined : json['commissionParitaires'],\n };\n}\n\nexport function FcbMetierDtoToJSON(value?: FcbMetierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idmetier': value.idmetier,\n 'idstade': value.idstade,\n 'codesecteur': value.codesecteur,\n 'code': value.code,\n 'integre': value.integre,\n 'masculin': value.masculin,\n 'feminin': value.feminin,\n 'comissionParitaire': value.comissionParitaire,\n 'actif': value.actif,\n 'remarque': value.remarque,\n 'pratique': value.pratique,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idmetierGuid': value.idmetierGuid,\n 'degreFinal': value.degreFinal,\n 'degreFinalAdditionnel': value.degreFinalAdditionnel,\n 'ifapmeSide': value.ifapmeSide,\n 'commissionParitaires': value.commissionParitaires,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMetierGridDto\n */\nexport interface FcbMetierGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbMetierGridDto\n */\n idmetier?: number;\n /**\n * \n * @type {number}\n * @memberof FcbMetierGridDto\n */\n idstade?: number;\n /**\n * \n * @type {string}\n * @memberof FcbMetierGridDto\n */\n stade?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetierGridDto\n */\n masculin?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMetierGridDto\n */\n integre?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbMetierGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierGridDto interface.\n */\nexport function instanceOfFcbMetierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierGridDtoFromJSON(json: any): FcbMetierGridDto {\n return FcbMetierGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'masculin': !exists(json, 'masculin') ? undefined : json['masculin'],\n 'integre': !exists(json, 'integre') ? undefined : json['integre'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbMetierGridDtoToJSON(value?: FcbMetierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idmetier': value.idmetier,\n 'idstade': value.idstade,\n 'stade': value.stade,\n 'code': value.code,\n 'masculin': value.masculin,\n 'integre': value.integre,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbMetierGridDto } from './FcbMetierGridDto';\nimport {\n FcbMetierGridDtoFromJSON,\n FcbMetierGridDtoFromJSONTyped,\n FcbMetierGridDtoToJSON,\n} from './FcbMetierGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbMetierGridDtoPaginatedResults\n */\nexport interface FcbMetierGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbMetierGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetierGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetierGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbMetierGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetierGridDtoPaginatedResultsFromJSON(json: any): FcbMetierGridDtoPaginatedResults {\n return FcbMetierGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbMetierGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetierGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbMetierGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbMetierGridDtoPaginatedResultsToJSON(value?: FcbMetierGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbMetierGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMetiersLocalisationGridDto\n */\nexport interface FcbMetiersLocalisationGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbMetiersLocalisationGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetiersLocalisationGridDto\n */\n degre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetiersLocalisationGridDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMetiersLocalisationGridDto\n */\n anneeScolaire?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbMetiersLocalisationGridDto interface.\n */\nexport function instanceOfFcbMetiersLocalisationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetiersLocalisationGridDtoFromJSON(json: any): FcbMetiersLocalisationGridDto {\n return FcbMetiersLocalisationGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMetiersLocalisationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetiersLocalisationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n };\n}\n\nexport function FcbMetiersLocalisationGridDtoToJSON(value?: FcbMetiersLocalisationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'centre': value.centre,\n 'degre': value.degre,\n 'typeCours': value.typeCours,\n 'anneeScolaire': value.anneeScolaire,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbMetiersLocalisationGridDto } from './FcbMetiersLocalisationGridDto';\nimport {\n FcbMetiersLocalisationGridDtoFromJSON,\n FcbMetiersLocalisationGridDtoFromJSONTyped,\n FcbMetiersLocalisationGridDtoToJSON,\n} from './FcbMetiersLocalisationGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbMetiersLocalisationGridDtoPaginatedResults\n */\nexport interface FcbMetiersLocalisationGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbMetiersLocalisationGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMetiersLocalisationGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMetiersLocalisationGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMetiersLocalisationGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbMetiersLocalisationGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMetiersLocalisationGridDtoPaginatedResultsFromJSON(json: any): FcbMetiersLocalisationGridDtoPaginatedResults {\n return FcbMetiersLocalisationGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbMetiersLocalisationGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMetiersLocalisationGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbMetiersLocalisationGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbMetiersLocalisationGridDtoPaginatedResultsToJSON(value?: FcbMetiersLocalisationGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbMetiersLocalisationGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbMinervalGridDto\n */\nexport interface FcbMinervalGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbMinervalGridDto\n */\n idApprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbMinervalGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMinervalGridDto\n */\n idInscription?: number;\n /**\n * \n * @type {string}\n * @memberof FcbMinervalGridDto\n */\n codeInscription?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbMinervalGridDto\n */\n minerval?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbMinervalGridDto\n */\n idClasse?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbMinervalGridDto\n */\n codeClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbMinervalGridDto\n */\n nomClasse?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbMinervalGridDto interface.\n */\nexport function instanceOfFcbMinervalGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMinervalGridDtoFromJSON(json: any): FcbMinervalGridDto {\n return FcbMinervalGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbMinervalGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMinervalGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idInscription': !exists(json, 'idInscription') ? undefined : json['idInscription'],\n 'codeInscription': !exists(json, 'codeInscription') ? undefined : json['codeInscription'],\n 'minerval': !exists(json, 'minerval') ? undefined : json['minerval'],\n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : json['codeClasse'],\n 'nomClasse': !exists(json, 'nomClasse') ? undefined : json['nomClasse'],\n };\n}\n\nexport function FcbMinervalGridDtoToJSON(value?: FcbMinervalGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'anneeScolaire': value.anneeScolaire,\n 'idInscription': value.idInscription,\n 'codeInscription': value.codeInscription,\n 'minerval': value.minerval,\n 'idClasse': value.idClasse,\n 'codeClasse': value.codeClasse,\n 'nomClasse': value.nomClasse,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbMinervalGridDto } from './FcbMinervalGridDto';\nimport {\n FcbMinervalGridDtoFromJSON,\n FcbMinervalGridDtoFromJSONTyped,\n FcbMinervalGridDtoToJSON,\n} from './FcbMinervalGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbMinervalGridDtoPaginatedResults\n */\nexport interface FcbMinervalGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbMinervalGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbMinervalGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbMinervalGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbMinervalGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbMinervalGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbMinervalGridDtoPaginatedResultsFromJSON(json: any): FcbMinervalGridDtoPaginatedResults {\n return FcbMinervalGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbMinervalGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbMinervalGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbMinervalGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbMinervalGridDtoPaginatedResultsToJSON(value?: FcbMinervalGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbMinervalGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPaiementDto\n */\nexport interface FcbPaiementDto {\n /**\n * \n * @type {number}\n * @memberof FcbPaiementDto\n */\n idpaiement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPaiementDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbPaiementDto\n */\n datePaiement?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementDto\n */\n montantDu?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementDto\n */\n montantPaye?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementDto\n */\n idmode?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbPaiementDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbPaiementDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementDto\n */\n idcentre?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbPaiementDto interface.\n */\nexport function instanceOfFcbPaiementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPaiementDtoFromJSON(json: any): FcbPaiementDto {\n return FcbPaiementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPaiementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPaiementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpaiement': !exists(json, 'idpaiement') ? undefined : json['idpaiement'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'datePaiement': !exists(json, 'datePaiement') ? undefined : (new Date(json['datePaiement'])),\n 'montantDu': !exists(json, 'montantDu') ? undefined : json['montantDu'],\n 'montantPaye': !exists(json, 'montantPaye') ? undefined : json['montantPaye'],\n 'idmode': !exists(json, 'idmode') ? undefined : json['idmode'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n };\n}\n\nexport function FcbPaiementDtoToJSON(value?: FcbPaiementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpaiement': value.idpaiement,\n 'idapprenant': value.idapprenant,\n 'anneeScolaire': value.anneeScolaire,\n 'datePaiement': value.datePaiement === undefined ? undefined : (value.datePaiement.toISOString()),\n 'montantDu': value.montantDu,\n 'montantPaye': value.montantPaye,\n 'idmode': value.idmode,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idinscription': value.idinscription,\n 'idcentre': value.idcentre,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPaiementGridDto\n */\nexport interface FcbPaiementGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbPaiementGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPaiementGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbPaiementGridDto\n */\n datePaiement?: Date;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementGridDto\n */\n idmode?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbPaiementGridDto\n */\n modePaiement?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementGridDto\n */\n montantPaye?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementGridDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbPaiementGridDto\n */\n nomCentre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaiementGridDto\n */\n idPaiement?: number;\n}\n\n/**\n * Check if a given object implements the FcbPaiementGridDto interface.\n */\nexport function instanceOfFcbPaiementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPaiementGridDtoFromJSON(json: any): FcbPaiementGridDto {\n return FcbPaiementGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPaiementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPaiementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'datePaiement': !exists(json, 'datePaiement') ? undefined : (new Date(json['datePaiement'])),\n 'idmode': !exists(json, 'idmode') ? undefined : json['idmode'],\n 'modePaiement': !exists(json, 'modePaiement') ? undefined : json['modePaiement'],\n 'montantPaye': !exists(json, 'montantPaye') ? undefined : json['montantPaye'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'nomCentre': !exists(json, 'nomCentre') ? undefined : json['nomCentre'],\n 'idPaiement': !exists(json, 'idPaiement') ? undefined : json['idPaiement'],\n };\n}\n\nexport function FcbPaiementGridDtoToJSON(value?: FcbPaiementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'anneeScolaire': value.anneeScolaire,\n 'datePaiement': value.datePaiement === undefined ? undefined : (value.datePaiement.toISOString()),\n 'idmode': value.idmode,\n 'modePaiement': value.modePaiement,\n 'montantPaye': value.montantPaye,\n 'idcentre': value.idcentre,\n 'nomCentre': value.nomCentre,\n 'idPaiement': value.idPaiement,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbPaiementGridDto } from './FcbPaiementGridDto';\nimport {\n FcbPaiementGridDtoFromJSON,\n FcbPaiementGridDtoFromJSONTyped,\n FcbPaiementGridDtoToJSON,\n} from './FcbPaiementGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbPaiementGridDtoPaginatedResults\n */\nexport interface FcbPaiementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbPaiementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbPaiementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbPaiementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbPaiementGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbPaiementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPaiementGridDtoPaginatedResultsFromJSON(json: any): FcbPaiementGridDtoPaginatedResults {\n return FcbPaiementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbPaiementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPaiementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbPaiementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbPaiementGridDtoPaginatedResultsToJSON(value?: FcbPaiementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbPaiementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPaysDto\n */\nexport interface FcbPaysDto {\n /**\n * \n * @type {string}\n * @memberof FcbPaysDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPaysDto\n */\n pays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPaysDto\n */\n masculin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPaysDto\n */\n feminin?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPaysDto\n */\n europe?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaysDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbPaysDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaysDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbPaysDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaysDto\n */\n paysId?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbPaysDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbPaysDto interface.\n */\nexport function instanceOfFcbPaysDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPaysDtoFromJSON(json: any): FcbPaysDto {\n return FcbPaysDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPaysDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPaysDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'pays': !exists(json, 'pays') ? undefined : json['pays'],\n 'masculin': !exists(json, 'masculin') ? undefined : json['masculin'],\n 'feminin': !exists(json, 'feminin') ? undefined : json['feminin'],\n 'europe': !exists(json, 'europe') ? undefined : json['europe'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'paysId': !exists(json, 'paysId') ? undefined : json['paysId'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbPaysDtoToJSON(value?: FcbPaysDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codePays': value.codePays,\n 'pays': value.pays,\n 'masculin': value.masculin,\n 'feminin': value.feminin,\n 'europe': value.europe,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'paysId': value.paysId,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPaysGridDto\n */\nexport interface FcbPaysGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbPaysGridDto\n */\n codePays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPaysGridDto\n */\n pays?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPaysGridDto\n */\n masculin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPaysGridDto\n */\n feminin?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPaysGridDto\n */\n europe?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaysGridDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbPaysGridDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbPaysGridDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbPaysGridDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPaysGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbPaysGridDto interface.\n */\nexport function instanceOfFcbPaysGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPaysGridDtoFromJSON(json: any): FcbPaysGridDto {\n return FcbPaysGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPaysGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPaysGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'pays': !exists(json, 'pays') ? undefined : json['pays'],\n 'masculin': !exists(json, 'masculin') ? undefined : json['masculin'],\n 'feminin': !exists(json, 'feminin') ? undefined : json['feminin'],\n 'europe': !exists(json, 'europe') ? undefined : json['europe'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbPaysGridDtoToJSON(value?: FcbPaysGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codePays': value.codePays,\n 'pays': value.pays,\n 'masculin': value.masculin,\n 'feminin': value.feminin,\n 'europe': value.europe,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbPaysGridDto } from './FcbPaysGridDto';\nimport {\n FcbPaysGridDtoFromJSON,\n FcbPaysGridDtoFromJSONTyped,\n FcbPaysGridDtoToJSON,\n} from './FcbPaysGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbPaysGridDtoPaginatedResults\n */\nexport interface FcbPaysGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbPaysGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbPaysGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbPaysGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbPaysGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbPaysGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPaysGridDtoPaginatedResultsFromJSON(json: any): FcbPaysGridDtoPaginatedResults {\n return FcbPaysGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbPaysGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPaysGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbPaysGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbPaysGridDtoPaginatedResultsToJSON(value?: FcbPaysGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbPaysGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPersonnelTutelleDto\n */\nexport interface FcbPersonnelTutelleDto {\n /**\n * \n * @type {number}\n * @memberof FcbPersonnelTutelleDto\n */\n iddelegueTutelle?: number;\n /**\n * \n * @type {number}\n * @memberof FcbPersonnelTutelleDto\n */\n idserviceTutelle?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleDto\n */\n type?: string;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleDto\n */\n codesexe?: string;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleDto\n */\n prenom?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPersonnelTutelleDto\n */\n independant?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleDto\n */\n email?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbPersonnelTutelleDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbPersonnelTutelleDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbPersonnelTutelleDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbPersonnelTutelleDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleDto\n */\n idpersonnelTutelleGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPersonnelTutelleDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbPersonnelTutelleDto interface.\n */\nexport function instanceOfFcbPersonnelTutelleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPersonnelTutelleDtoFromJSON(json: any): FcbPersonnelTutelleDto {\n return FcbPersonnelTutelleDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPersonnelTutelleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPersonnelTutelleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddelegueTutelle': !exists(json, 'iddelegueTutelle') ? undefined : json['iddelegueTutelle'],\n 'idserviceTutelle': !exists(json, 'idserviceTutelle') ? undefined : json['idserviceTutelle'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'independant': !exists(json, 'independant') ? undefined : json['independant'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idpersonnelTutelleGuid': !exists(json, 'idpersonnelTutelleGuid') ? undefined : json['idpersonnelTutelleGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbPersonnelTutelleDtoToJSON(value?: FcbPersonnelTutelleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddelegueTutelle': value.iddelegueTutelle,\n 'idserviceTutelle': value.idserviceTutelle,\n 'type': value.type,\n 'code': value.code,\n 'codesexe': value.codesexe,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'independant': value.independant,\n 'registreNational': value.registreNational,\n 'gsm': value.gsm,\n 'email': value.email,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idpersonnelTutelleGuid': value.idpersonnelTutelleGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPersonnelTutelleGridDto\n */\nexport interface FcbPersonnelTutelleGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbPersonnelTutelleGridDto\n */\n iddelegueTutelle?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleGridDto\n */\n codesexe?: string;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPersonnelTutelleGridDto\n */\n independant?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPersonnelTutelleGridDto\n */\n email?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPersonnelTutelleGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbPersonnelTutelleGridDto interface.\n */\nexport function instanceOfFcbPersonnelTutelleGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPersonnelTutelleGridDtoFromJSON(json: any): FcbPersonnelTutelleGridDto {\n return FcbPersonnelTutelleGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPersonnelTutelleGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPersonnelTutelleGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iddelegueTutelle': !exists(json, 'iddelegueTutelle') ? undefined : json['iddelegueTutelle'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'independant': !exists(json, 'independant') ? undefined : json['independant'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbPersonnelTutelleGridDtoToJSON(value?: FcbPersonnelTutelleGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iddelegueTutelle': value.iddelegueTutelle,\n 'code': value.code,\n 'codesexe': value.codesexe,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'independant': value.independant,\n 'gsm': value.gsm,\n 'email': value.email,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbPersonnelTutelleGridDto } from './FcbPersonnelTutelleGridDto';\nimport {\n FcbPersonnelTutelleGridDtoFromJSON,\n FcbPersonnelTutelleGridDtoFromJSONTyped,\n FcbPersonnelTutelleGridDtoToJSON,\n} from './FcbPersonnelTutelleGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbPersonnelTutelleGridDtoPaginatedResults\n */\nexport interface FcbPersonnelTutelleGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbPersonnelTutelleGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbPersonnelTutelleGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbPersonnelTutelleGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbPersonnelTutelleGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbPersonnelTutelleGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPersonnelTutelleGridDtoPaginatedResultsFromJSON(json: any): FcbPersonnelTutelleGridDtoPaginatedResults {\n return FcbPersonnelTutelleGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbPersonnelTutelleGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPersonnelTutelleGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbPersonnelTutelleGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbPersonnelTutelleGridDtoPaginatedResultsToJSON(value?: FcbPersonnelTutelleGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbPersonnelTutelleGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPlageHoraireDetailDto\n */\nexport interface FcbPlageHoraireDetailDto {\n /**\n * \n * @type {number}\n * @memberof FcbPlageHoraireDetailDto\n */\n numero?: number;\n /**\n * \n * @type {number}\n * @memberof FcbPlageHoraireDetailDto\n */\n idplage?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPlageHoraireDetailDto\n */\n heureDebut?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbPlageHoraireDetailDto interface.\n */\nexport function instanceOfFcbPlageHoraireDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPlageHoraireDetailDtoFromJSON(json: any): FcbPlageHoraireDetailDto {\n return FcbPlageHoraireDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPlageHoraireDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPlageHoraireDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'idplage': !exists(json, 'idplage') ? undefined : json['idplage'],\n 'heureDebut': !exists(json, 'heureDebut') ? undefined : json['heureDebut'],\n };\n}\n\nexport function FcbPlageHoraireDetailDtoToJSON(value?: FcbPlageHoraireDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'numero': value.numero,\n 'idplage': value.idplage,\n 'heureDebut': value.heureDebut,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbPlageHoraireDetailDto } from './FcbPlageHoraireDetailDto';\nimport {\n FcbPlageHoraireDetailDtoFromJSON,\n FcbPlageHoraireDetailDtoFromJSONTyped,\n FcbPlageHoraireDetailDtoToJSON,\n} from './FcbPlageHoraireDetailDto';\n\n/**\n * \n * @export\n * @interface FcbPlageHoraireDto\n */\nexport interface FcbPlageHoraireDto {\n /**\n * \n * @type {number}\n * @memberof FcbPlageHoraireDto\n */\n idplage?: number;\n /**\n * \n * @type {number}\n * @memberof FcbPlageHoraireDto\n */\n idstade?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbPlageHoraireDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPlageHoraireDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbPlageHoraireDto\n */\n duree?: number | null;\n /**\n * \n * @type {Array}\n * @memberof FcbPlageHoraireDto\n */\n plagesDetails?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbPlageHoraireDto interface.\n */\nexport function instanceOfFcbPlageHoraireDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPlageHoraireDtoFromJSON(json: any): FcbPlageHoraireDto {\n return FcbPlageHoraireDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPlageHoraireDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPlageHoraireDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idplage': !exists(json, 'idplage') ? undefined : json['idplage'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'duree': !exists(json, 'duree') ? undefined : json['duree'],\n 'plagesDetails': !exists(json, 'plagesDetails') ? undefined : (json['plagesDetails'] === null ? null : (json['plagesDetails'] as Array).map(FcbPlageHoraireDetailDtoFromJSON)),\n };\n}\n\nexport function FcbPlageHoraireDtoToJSON(value?: FcbPlageHoraireDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idplage': value.idplage,\n 'idstade': value.idstade,\n 'idcentre': value.idcentre,\n 'description': value.description,\n 'duree': value.duree,\n 'plagesDetails': value.plagesDetails === undefined ? undefined : (value.plagesDetails === null ? null : (value.plagesDetails as Array).map(FcbPlageHoraireDetailDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPlageHoraireGridDto\n */\nexport interface FcbPlageHoraireGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbPlageHoraireGridDto\n */\n idplage?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPlageHoraireGridDto\n */\n description?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbPlageHoraireGridDto interface.\n */\nexport function instanceOfFcbPlageHoraireGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPlageHoraireGridDtoFromJSON(json: any): FcbPlageHoraireGridDto {\n return FcbPlageHoraireGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPlageHoraireGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPlageHoraireGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idplage': !exists(json, 'idplage') ? undefined : json['idplage'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n };\n}\n\nexport function FcbPlageHoraireGridDtoToJSON(value?: FcbPlageHoraireGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idplage': value.idplage,\n 'description': value.description,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbPlageHoraireGridDto } from './FcbPlageHoraireGridDto';\nimport {\n FcbPlageHoraireGridDtoFromJSON,\n FcbPlageHoraireGridDtoFromJSONTyped,\n FcbPlageHoraireGridDtoToJSON,\n} from './FcbPlageHoraireGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbPlageHoraireGridDtoPaginatedResults\n */\nexport interface FcbPlageHoraireGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbPlageHoraireGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbPlageHoraireGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbPlageHoraireGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbPlageHoraireGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbPlageHoraireGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPlageHoraireGridDtoPaginatedResultsFromJSON(json: any): FcbPlageHoraireGridDtoPaginatedResults {\n return FcbPlageHoraireGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbPlageHoraireGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPlageHoraireGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbPlageHoraireGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbPlageHoraireGridDtoPaginatedResultsToJSON(value?: FcbPlageHoraireGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbPlageHoraireGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPlanAgrementDto\n */\nexport interface FcbPlanAgrementDto {\n /**\n * \n * @type {number}\n * @memberof FcbPlanAgrementDto\n */\n idPlanAgrement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbPlanAgrementDto\n */\n idCentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPlanAgrementDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbPlanAgrementDto\n */\n dateValidation?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanAgrementDto\n */\n url?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanAgrementDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbPlanAgrementDto\n */\n idStatut?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPlanAgrementDto\n */\n bloque?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbPlanAgrementDto interface.\n */\nexport function instanceOfFcbPlanAgrementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPlanAgrementDtoFromJSON(json: any): FcbPlanAgrementDto {\n return FcbPlanAgrementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPlanAgrementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPlanAgrementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idPlanAgrement': !exists(json, 'idPlanAgrement') ? undefined : json['idPlanAgrement'],\n 'idCentre': !exists(json, 'idCentre') ? undefined : json['idCentre'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'dateValidation': !exists(json, 'dateValidation') ? undefined : (json['dateValidation'] === null ? null : new Date(json['dateValidation'])),\n 'url': !exists(json, 'url') ? undefined : json['url'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idStatut': !exists(json, 'idStatut') ? undefined : json['idStatut'],\n 'bloque': !exists(json, 'bloque') ? undefined : json['bloque'],\n };\n}\n\nexport function FcbPlanAgrementDtoToJSON(value?: FcbPlanAgrementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idPlanAgrement': value.idPlanAgrement,\n 'idCentre': value.idCentre,\n 'anneeAcademique': value.anneeAcademique,\n 'dateValidation': value.dateValidation === undefined ? undefined : (value.dateValidation === null ? null : value.dateValidation.toISOString()),\n 'url': value.url,\n 'remarque': value.remarque,\n 'idStatut': value.idStatut,\n 'bloque': value.bloque,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPlanLocalisationDto\n */\nexport interface FcbPlanLocalisationDto {\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDto\n */\n idPlan?: number;\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDto\n */\n idCentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbPlanLocalisationDto\n */\n dateValidation?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDto\n */\n url?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbPlanLocalisationDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbPlanLocalisationDto\n */\n idStatut?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPlanLocalisationDto\n */\n bloque?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPlanLocalisationDto\n */\n displayButton?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbPlanLocalisationDto interface.\n */\nexport function instanceOfFcbPlanLocalisationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPlanLocalisationDtoFromJSON(json: any): FcbPlanLocalisationDto {\n return FcbPlanLocalisationDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPlanLocalisationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPlanLocalisationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idPlan': !exists(json, 'idPlan') ? undefined : json['idPlan'],\n 'idCentre': !exists(json, 'idCentre') ? undefined : json['idCentre'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'dateValidation': !exists(json, 'dateValidation') ? undefined : (json['dateValidation'] === null ? null : new Date(json['dateValidation'])),\n 'url': !exists(json, 'url') ? undefined : json['url'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idStatut': !exists(json, 'idStatut') ? undefined : json['idStatut'],\n 'bloque': !exists(json, 'bloque') ? undefined : json['bloque'],\n 'displayButton': !exists(json, 'displayButton') ? undefined : json['displayButton'],\n };\n}\n\nexport function FcbPlanLocalisationDtoToJSON(value?: FcbPlanLocalisationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idPlan': value.idPlan,\n 'idCentre': value.idCentre,\n 'anneeAcademique': value.anneeAcademique,\n 'dateValidation': value.dateValidation === undefined ? undefined : (value.dateValidation === null ? null : value.dateValidation.toISOString()),\n 'url': value.url,\n 'remarque': value.remarque,\n 'idStatut': value.idStatut,\n 'bloque': value.bloque,\n 'displayButton': value.displayButton,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbPresenceFormateurDto\n */\nexport interface FcbPresenceFormateurDto {\n /**\n * \n * @type {number}\n * @memberof FcbPresenceFormateurDto\n */\n idclasseHoraire?: number;\n /**\n * \n * @type {number}\n * @memberof FcbPresenceFormateurDto\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbPresenceFormateurDto\n */\n formateur?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbPresenceFormateurDto\n */\n principal?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbPresenceFormateurDto\n */\n statut?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbPresenceFormateurDto interface.\n */\nexport function instanceOfFcbPresenceFormateurDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbPresenceFormateurDtoFromJSON(json: any): FcbPresenceFormateurDto {\n return FcbPresenceFormateurDtoFromJSONTyped(json, false);\n}\n\nexport function FcbPresenceFormateurDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbPresenceFormateurDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasseHoraire': !exists(json, 'idclasseHoraire') ? undefined : json['idclasseHoraire'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'principal': !exists(json, 'principal') ? undefined : json['principal'],\n 'statut': !exists(json, 'statut') ? undefined : json['statut'],\n };\n}\n\nexport function FcbPresenceFormateurDtoToJSON(value?: FcbPresenceFormateurDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasseHoraire': value.idclasseHoraire,\n 'idformateur': value.idformateur,\n 'formateur': value.formateur,\n 'principal': value.principal,\n 'statut': value.statut,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbProfessionFormateurDto\n */\nexport interface FcbProfessionFormateurDto {\n /**\n * \n * @type {number}\n * @memberof FcbProfessionFormateurDto\n */\n idprofession?: number;\n /**\n * \n * @type {string}\n * @memberof FcbProfessionFormateurDto\n */\n libelle?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbProfessionFormateurDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbProfessionFormateurDto interface.\n */\nexport function instanceOfFcbProfessionFormateurDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbProfessionFormateurDtoFromJSON(json: any): FcbProfessionFormateurDto {\n return FcbProfessionFormateurDtoFromJSONTyped(json, false);\n}\n\nexport function FcbProfessionFormateurDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbProfessionFormateurDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idprofession': !exists(json, 'idprofession') ? undefined : json['idprofession'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbProfessionFormateurDtoToJSON(value?: FcbProfessionFormateurDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idprofession': value.idprofession,\n 'libelle': value.libelle,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbProfessionFormateurDto } from './FcbProfessionFormateurDto';\nimport {\n FcbProfessionFormateurDtoFromJSON,\n FcbProfessionFormateurDtoFromJSONTyped,\n FcbProfessionFormateurDtoToJSON,\n} from './FcbProfessionFormateurDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbProfessionFormateurDtoPaginatedResults\n */\nexport interface FcbProfessionFormateurDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbProfessionFormateurDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbProfessionFormateurDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbProfessionFormateurDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbProfessionFormateurDtoPaginatedResults interface.\n */\nexport function instanceOfFcbProfessionFormateurDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbProfessionFormateurDtoPaginatedResultsFromJSON(json: any): FcbProfessionFormateurDtoPaginatedResults {\n return FcbProfessionFormateurDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbProfessionFormateurDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbProfessionFormateurDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbProfessionFormateurDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbProfessionFormateurDtoPaginatedResultsToJSON(value?: FcbProfessionFormateurDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbProfessionFormateurDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbProjetFinancementDto\n */\nexport interface FcbProjetFinancementDto {\n /**\n * \n * @type {number}\n * @memberof FcbProjetFinancementDto\n */\n idprojetFinancement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbProjetFinancementDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbProjetFinancementDto\n */\n idfinancementType?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbProjetFinancementDto\n */\n code?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbProjetFinancementDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbProjetFinancementDto interface.\n */\nexport function instanceOfFcbProjetFinancementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbProjetFinancementDtoFromJSON(json: any): FcbProjetFinancementDto {\n return FcbProjetFinancementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbProjetFinancementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbProjetFinancementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idfinancementType': !exists(json, 'idfinancementType') ? undefined : json['idfinancementType'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbProjetFinancementDtoToJSON(value?: FcbProjetFinancementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idprojetFinancement': value.idprojetFinancement,\n 'libelle': value.libelle,\n 'idfinancementType': value.idfinancementType,\n 'code': value.code,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbProjetFinancementGridDto\n */\nexport interface FcbProjetFinancementGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbProjetFinancementGridDto\n */\n idprojetFinancement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbProjetFinancementGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbProjetFinancementGridDto\n */\n idfinancementType?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbProjetFinancementGridDto\n */\n code?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbProjetFinancementGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbProjetFinancementGridDto interface.\n */\nexport function instanceOfFcbProjetFinancementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbProjetFinancementGridDtoFromJSON(json: any): FcbProjetFinancementGridDto {\n return FcbProjetFinancementGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbProjetFinancementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbProjetFinancementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idprojetFinancement': !exists(json, 'idprojetFinancement') ? undefined : json['idprojetFinancement'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idfinancementType': !exists(json, 'idfinancementType') ? undefined : json['idfinancementType'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbProjetFinancementGridDtoToJSON(value?: FcbProjetFinancementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idprojetFinancement': value.idprojetFinancement,\n 'libelle': value.libelle,\n 'idfinancementType': value.idfinancementType,\n 'code': value.code,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbProjetFinancementGridDto } from './FcbProjetFinancementGridDto';\nimport {\n FcbProjetFinancementGridDtoFromJSON,\n FcbProjetFinancementGridDtoFromJSONTyped,\n FcbProjetFinancementGridDtoToJSON,\n} from './FcbProjetFinancementGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbProjetFinancementGridDtoPaginatedResults\n */\nexport interface FcbProjetFinancementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbProjetFinancementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbProjetFinancementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbProjetFinancementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbProjetFinancementGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbProjetFinancementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbProjetFinancementGridDtoPaginatedResultsFromJSON(json: any): FcbProjetFinancementGridDtoPaginatedResults {\n return FcbProjetFinancementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbProjetFinancementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbProjetFinancementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbProjetFinancementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbProjetFinancementGridDtoPaginatedResultsToJSON(value?: FcbProjetFinancementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbProjetFinancementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRapportGridDto\n */\nexport interface FcbRapportGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbRapportGridDto\n */\n rapportId?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRapportGridDto\n */\n rapportName?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbRapportGridDto interface.\n */\nexport function instanceOfFcbRapportGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRapportGridDtoFromJSON(json: any): FcbRapportGridDto {\n return FcbRapportGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRapportGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRapportGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'rapportId': !exists(json, 'rapportId') ? undefined : json['rapportId'],\n 'rapportName': !exists(json, 'rapportName') ? undefined : json['rapportName'],\n };\n}\n\nexport function FcbRapportGridDtoToJSON(value?: FcbRapportGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'rapportId': value.rapportId,\n 'rapportName': value.rapportName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRapportGridDto } from './FcbRapportGridDto';\nimport {\n FcbRapportGridDtoFromJSON,\n FcbRapportGridDtoFromJSONTyped,\n FcbRapportGridDtoToJSON,\n} from './FcbRapportGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRapportGridDtoPaginatedResults\n */\nexport interface FcbRapportGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRapportGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRapportGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRapportGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRapportGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRapportGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRapportGridDtoPaginatedResultsFromJSON(json: any): FcbRapportGridDtoPaginatedResults {\n return FcbRapportGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRapportGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRapportGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRapportGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRapportGridDtoPaginatedResultsToJSON(value?: FcbRapportGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRapportGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheAgrementLocalisationDto\n */\nexport interface FcbRechercheAgrementLocalisationDto {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheAgrementLocalisationDto\n */\n idplanAgrement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheAgrementLocalisationDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheAgrementLocalisationDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheAgrementLocalisationDto\n */\n dateValidation?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheAgrementLocalisationDto\n */\n nbauditeurAgree?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheAgrementLocalisationDto\n */\n statutLocalisationAgrement?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheAgrementLocalisationDto\n */\n iduser?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheAgrementLocalisationDto interface.\n */\nexport function instanceOfFcbRechercheAgrementLocalisationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheAgrementLocalisationDtoFromJSON(json: any): FcbRechercheAgrementLocalisationDto {\n return FcbRechercheAgrementLocalisationDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheAgrementLocalisationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheAgrementLocalisationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idplanAgrement': !exists(json, 'idplanAgrement') ? undefined : json['idplanAgrement'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'dateValidation': !exists(json, 'dateValidation') ? undefined : json['dateValidation'],\n 'nbauditeurAgree': !exists(json, 'nbauditeurAgree') ? undefined : json['nbauditeurAgree'],\n 'statutLocalisationAgrement': !exists(json, 'statutLocalisationAgrement') ? undefined : json['statutLocalisationAgrement'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n };\n}\n\nexport function FcbRechercheAgrementLocalisationDtoToJSON(value?: FcbRechercheAgrementLocalisationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idplanAgrement': value.idplanAgrement,\n 'anneeAcademique': value.anneeAcademique,\n 'centre': value.centre,\n 'dateValidation': value.dateValidation,\n 'nbauditeurAgree': value.nbauditeurAgree,\n 'statutLocalisationAgrement': value.statutLocalisationAgrement,\n 'iduser': value.iduser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheAgrementLocalisationDto } from './FcbRechercheAgrementLocalisationDto';\nimport {\n FcbRechercheAgrementLocalisationDtoFromJSON,\n FcbRechercheAgrementLocalisationDtoFromJSONTyped,\n FcbRechercheAgrementLocalisationDtoToJSON,\n} from './FcbRechercheAgrementLocalisationDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheAgrementLocalisationDtoPaginatedResults\n */\nexport interface FcbRechercheAgrementLocalisationDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheAgrementLocalisationDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheAgrementLocalisationDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheAgrementLocalisationDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheAgrementLocalisationDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheAgrementLocalisationDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheAgrementLocalisationDtoPaginatedResultsFromJSON(json: any): FcbRechercheAgrementLocalisationDtoPaginatedResults {\n return FcbRechercheAgrementLocalisationDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheAgrementLocalisationDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheAgrementLocalisationDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheAgrementLocalisationDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheAgrementLocalisationDtoPaginatedResultsToJSON(value?: FcbRechercheAgrementLocalisationDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheAgrementLocalisationDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheApprenantDeliberationTypeDto\n */\nexport interface FcbRechercheApprenantDeliberationTypeDto {\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n prenom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idtypeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n deliberation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n deliberation2sess?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idbulletinApprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idbulletinApprenantType?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n metier?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n degre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idstade?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n validationDirection1sess?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n validationDirection2sess?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n canPrintBulletin?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idfichier1s?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n idfichier2s?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRechercheApprenantDeliberationTypeDto\n */\n has2Sess?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheApprenantDeliberationTypeDto interface.\n */\nexport function instanceOfFcbRechercheApprenantDeliberationTypeDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheApprenantDeliberationTypeDtoFromJSON(json: any): FcbRechercheApprenantDeliberationTypeDto {\n return FcbRechercheApprenantDeliberationTypeDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheApprenantDeliberationTypeDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheApprenantDeliberationTypeDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idtypeCours': !exists(json, 'idtypeCours') ? undefined : json['idtypeCours'],\n 'deliberation': !exists(json, 'deliberation') ? undefined : json['deliberation'],\n 'deliberation2sess': !exists(json, 'deliberation2sess') ? undefined : json['deliberation2sess'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idbulletinApprenant': !exists(json, 'idbulletinApprenant') ? undefined : json['idbulletinApprenant'],\n 'idbulletinApprenantType': !exists(json, 'idbulletinApprenantType') ? undefined : json['idbulletinApprenantType'],\n 'metier': !exists(json, 'metier') ? undefined : json['metier'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'validationDirection1sess': !exists(json, 'validationDirection1sess') ? undefined : (json['validationDirection1sess'] === null ? null : new Date(json['validationDirection1sess'])),\n 'validationDirection2sess': !exists(json, 'validationDirection2sess') ? undefined : (json['validationDirection2sess'] === null ? null : new Date(json['validationDirection2sess'])),\n 'canPrintBulletin': !exists(json, 'canPrintBulletin') ? undefined : json['canPrintBulletin'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'idfichier1s': !exists(json, 'idfichier1s') ? undefined : json['idfichier1s'],\n 'idfichier2s': !exists(json, 'idfichier2s') ? undefined : json['idfichier2s'],\n 'has2Sess': !exists(json, 'has2Sess') ? undefined : json['has2Sess'],\n };\n}\n\nexport function FcbRechercheApprenantDeliberationTypeDtoToJSON(value?: FcbRechercheApprenantDeliberationTypeDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'idapprenant': value.idapprenant,\n 'anneeScolaire': value.anneeScolaire,\n 'idtypeCours': value.idtypeCours,\n 'deliberation': value.deliberation,\n 'deliberation2sess': value.deliberation2sess,\n 'idcentre': value.idcentre,\n 'idbulletinApprenant': value.idbulletinApprenant,\n 'idbulletinApprenantType': value.idbulletinApprenantType,\n 'metier': value.metier,\n 'degre': value.degre,\n 'idclasse': value.idclasse,\n 'idstade': value.idstade,\n 'validationDirection1sess': value.validationDirection1sess === undefined ? undefined : (value.validationDirection1sess === null ? null : value.validationDirection1sess.toISOString()),\n 'validationDirection2sess': value.validationDirection2sess === undefined ? undefined : (value.validationDirection2sess === null ? null : value.validationDirection2sess.toISOString()),\n 'canPrintBulletin': value.canPrintBulletin,\n 'idinscription': value.idinscription,\n 'idfichier1s': value.idfichier1s,\n 'idfichier2s': value.idfichier2s,\n 'has2Sess': value.has2Sess,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheApprenantDeliberationTypeDto } from './FcbRechercheApprenantDeliberationTypeDto';\nimport {\n FcbRechercheApprenantDeliberationTypeDtoFromJSON,\n FcbRechercheApprenantDeliberationTypeDtoFromJSONTyped,\n FcbRechercheApprenantDeliberationTypeDtoToJSON,\n} from './FcbRechercheApprenantDeliberationTypeDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheApprenantDeliberationTypeDtoPaginatedResults\n */\nexport interface FcbRechercheApprenantDeliberationTypeDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantDeliberationTypeDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheApprenantDeliberationTypeDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheApprenantDeliberationTypeDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheApprenantDeliberationTypeDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheApprenantDeliberationTypeDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheApprenantDeliberationTypeDtoPaginatedResultsFromJSON(json: any): FcbRechercheApprenantDeliberationTypeDtoPaginatedResults {\n return FcbRechercheApprenantDeliberationTypeDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheApprenantDeliberationTypeDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheApprenantDeliberationTypeDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheApprenantDeliberationTypeDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheApprenantDeliberationTypeDtoPaginatedResultsToJSON(value?: FcbRechercheApprenantDeliberationTypeDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheApprenantDeliberationTypeDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EStatutContrat } from './EStatutContrat';\nimport {\n EStatutContratFromJSON,\n EStatutContratFromJSONTyped,\n EStatutContratToJSON,\n} from './EStatutContrat';\n\n/**\n * \n * @export\n * @interface FcbRechercheApprenantViewDto\n */\nexport interface FcbRechercheApprenantViewDto {\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheApprenantViewDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheApprenantViewDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n azureEmail?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n fax?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantViewDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n interne?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n nomSa?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n prenomSa?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRechercheApprenantViewDto\n */\n isDeceased?: boolean;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheApprenantViewDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {EStatutContrat}\n * @memberof FcbRechercheApprenantViewDto\n */\n statutContrat?: EStatutContrat;\n /**\n * \n * @type {boolean}\n * @memberof FcbRechercheApprenantViewDto\n */\n encours?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRechercheApprenantViewDto\n */\n enattente?: boolean | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheApprenantViewDto\n */\n readonly distinctsInscriptions?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheApprenantViewDto\n */\n readonly distinctsClasses?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheApprenantViewDto interface.\n */\nexport function instanceOfFcbRechercheApprenantViewDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheApprenantViewDtoFromJSON(json: any): FcbRechercheApprenantViewDto {\n return FcbRechercheApprenantViewDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheApprenantViewDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheApprenantViewDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'azureEmail': !exists(json, 'azureEmail') ? undefined : json['azureEmail'],\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'interne': !exists(json, 'interne') ? undefined : json['interne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'nomSa': !exists(json, 'nomSa') ? undefined : json['nomSa'],\n 'prenomSa': !exists(json, 'prenomSa') ? undefined : json['prenomSa'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'isDeceased': !exists(json, 'isDeceased') ? undefined : json['isDeceased'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'statutContrat': !exists(json, 'statutContrat') ? undefined : EStatutContratFromJSON(json['statutContrat']),\n 'encours': !exists(json, 'encours') ? undefined : json['encours'],\n 'enattente': !exists(json, 'enattente') ? undefined : json['enattente'],\n 'distinctsInscriptions': !exists(json, 'distinctsInscriptions') ? undefined : json['distinctsInscriptions'],\n 'distinctsClasses': !exists(json, 'distinctsClasses') ? undefined : json['distinctsClasses'],\n };\n}\n\nexport function FcbRechercheApprenantViewDtoToJSON(value?: FcbRechercheApprenantViewDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'email': value.email,\n 'azureEmail': value.azureEmail,\n 'fax': value.fax,\n 'gsm': value.gsm,\n 'localite': value.localite,\n 'localiteNaissance': value.localiteNaissance,\n 'idapprenant': value.idapprenant,\n 'interne': value.interne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'nomSa': value.nomSa,\n 'prenomSa': value.prenomSa,\n 'telephone': value.telephone,\n 'anneeScolaire': value.anneeScolaire,\n 'isDeceased': value.isDeceased,\n 'registreNational': value.registreNational,\n 'statutContrat': EStatutContratToJSON(value.statutContrat),\n 'encours': value.encours,\n 'enattente': value.enattente,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheApprenantViewDto } from './FcbRechercheApprenantViewDto';\nimport {\n FcbRechercheApprenantViewDtoFromJSON,\n FcbRechercheApprenantViewDtoFromJSONTyped,\n FcbRechercheApprenantViewDtoToJSON,\n} from './FcbRechercheApprenantViewDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheApprenantViewDtoPaginatedResults\n */\nexport interface FcbRechercheApprenantViewDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheApprenantViewDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheApprenantViewDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheApprenantViewDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheApprenantViewDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheApprenantViewDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheApprenantViewDtoPaginatedResultsFromJSON(json: any): FcbRechercheApprenantViewDtoPaginatedResults {\n return FcbRechercheApprenantViewDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheApprenantViewDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheApprenantViewDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheApprenantViewDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheApprenantViewDtoPaginatedResultsToJSON(value?: FcbRechercheApprenantViewDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheApprenantViewDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\nexport interface FcbRechercheClasseHoraireRemplacementDefinitiveDto {\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\n classe?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\n idClasseMatiere?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\n idRemplacement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\n idClasse?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\n remplacant?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\n idRemplacant?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\n contrat?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDto\n */\n idFormateurLocalisationContrat?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheClasseHoraireRemplacementDefinitiveDto interface.\n */\nexport function instanceOfFcbRechercheClasseHoraireRemplacementDefinitiveDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheClasseHoraireRemplacementDefinitiveDtoFromJSON(json: any): FcbRechercheClasseHoraireRemplacementDefinitiveDto {\n return FcbRechercheClasseHoraireRemplacementDefinitiveDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheClasseHoraireRemplacementDefinitiveDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheClasseHoraireRemplacementDefinitiveDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'idClasseMatiere': !exists(json, 'idClasseMatiere') ? undefined : json['idClasseMatiere'],\n 'idRemplacement': !exists(json, 'idRemplacement') ? undefined : json['idRemplacement'],\n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'remplacant': !exists(json, 'remplacant') ? undefined : json['remplacant'],\n 'idRemplacant': !exists(json, 'idRemplacant') ? undefined : json['idRemplacant'],\n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'idFormateurLocalisationContrat': !exists(json, 'idFormateurLocalisationContrat') ? undefined : json['idFormateurLocalisationContrat'],\n };\n}\n\nexport function FcbRechercheClasseHoraireRemplacementDefinitiveDtoToJSON(value?: FcbRechercheClasseHoraireRemplacementDefinitiveDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'classe': value.classe,\n 'idClasseMatiere': value.idClasseMatiere,\n 'idRemplacement': value.idRemplacement,\n 'idClasse': value.idClasse,\n 'description': value.description,\n 'remplacant': value.remplacant,\n 'idRemplacant': value.idRemplacant,\n 'contrat': value.contrat,\n 'idFormateurLocalisationContrat': value.idFormateurLocalisationContrat,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheClasseHoraireRemplacementDefinitiveDto } from './FcbRechercheClasseHoraireRemplacementDefinitiveDto';\nimport {\n FcbRechercheClasseHoraireRemplacementDefinitiveDtoFromJSON,\n FcbRechercheClasseHoraireRemplacementDefinitiveDtoFromJSONTyped,\n FcbRechercheClasseHoraireRemplacementDefinitiveDtoToJSON,\n} from './FcbRechercheClasseHoraireRemplacementDefinitiveDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults\n */\nexport interface FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResultsFromJSON(json: any): FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults {\n return FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheClasseHoraireRemplacementDefinitiveDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResultsToJSON(value?: FcbRechercheClasseHoraireRemplacementDefinitiveDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheClasseHoraireRemplacementDefinitiveDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\nexport interface FcbRechercheClasseHoraireRemplacementOccasionnelDto {\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n classeMatiere?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n heure?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n remplacant?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n idremplacant?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n idremplacement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n idclasseHoraire?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n reporte?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n contrat?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n idformateurLocalisationContrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDto\n */\n iduser?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheClasseHoraireRemplacementOccasionnelDto interface.\n */\nexport function instanceOfFcbRechercheClasseHoraireRemplacementOccasionnelDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheClasseHoraireRemplacementOccasionnelDtoFromJSON(json: any): FcbRechercheClasseHoraireRemplacementOccasionnelDto {\n return FcbRechercheClasseHoraireRemplacementOccasionnelDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheClasseHoraireRemplacementOccasionnelDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheClasseHoraireRemplacementOccasionnelDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'classeMatiere': !exists(json, 'classeMatiere') ? undefined : json['classeMatiere'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'heure': !exists(json, 'heure') ? undefined : json['heure'],\n 'remplacant': !exists(json, 'remplacant') ? undefined : json['remplacant'],\n 'idremplacant': !exists(json, 'idremplacant') ? undefined : json['idremplacant'],\n 'idremplacement': !exists(json, 'idremplacement') ? undefined : json['idremplacement'],\n 'idclasseHoraire': !exists(json, 'idclasseHoraire') ? undefined : json['idclasseHoraire'],\n 'reporte': !exists(json, 'reporte') ? undefined : json['reporte'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n };\n}\n\nexport function FcbRechercheClasseHoraireRemplacementOccasionnelDtoToJSON(value?: FcbRechercheClasseHoraireRemplacementOccasionnelDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'classe': value.classe,\n 'classeMatiere': value.classeMatiere,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'heure': value.heure,\n 'remplacant': value.remplacant,\n 'idremplacant': value.idremplacant,\n 'idremplacement': value.idremplacement,\n 'idclasseHoraire': value.idclasseHoraire,\n 'reporte': value.reporte,\n 'idcentre': value.idcentre,\n 'contrat': value.contrat,\n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n 'iduser': value.iduser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheClasseHoraireRemplacementOccasionnelDto } from './FcbRechercheClasseHoraireRemplacementOccasionnelDto';\nimport {\n FcbRechercheClasseHoraireRemplacementOccasionnelDtoFromJSON,\n FcbRechercheClasseHoraireRemplacementOccasionnelDtoFromJSONTyped,\n FcbRechercheClasseHoraireRemplacementOccasionnelDtoToJSON,\n} from './FcbRechercheClasseHoraireRemplacementOccasionnelDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults\n */\nexport interface FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResultsFromJSON(json: any): FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults {\n return FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheClasseHoraireRemplacementOccasionnelDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResultsToJSON(value?: FcbRechercheClasseHoraireRemplacementOccasionnelDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheClasseHoraireRemplacementOccasionnelDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\nexport interface FcbRechercheClasseHoraireRemplacementSimultaneDto {\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n classe?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n idClasseMatiere?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n idRemplacement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n idClasse?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n remplacant?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n idRemplacant?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n contrat?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDto\n */\n idFormateurLocalisationContrat?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheClasseHoraireRemplacementSimultaneDto interface.\n */\nexport function instanceOfFcbRechercheClasseHoraireRemplacementSimultaneDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheClasseHoraireRemplacementSimultaneDtoFromJSON(json: any): FcbRechercheClasseHoraireRemplacementSimultaneDto {\n return FcbRechercheClasseHoraireRemplacementSimultaneDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheClasseHoraireRemplacementSimultaneDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheClasseHoraireRemplacementSimultaneDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'idClasseMatiere': !exists(json, 'idClasseMatiere') ? undefined : json['idClasseMatiere'],\n 'idRemplacement': !exists(json, 'idRemplacement') ? undefined : json['idRemplacement'],\n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'remplacant': !exists(json, 'remplacant') ? undefined : json['remplacant'],\n 'idRemplacant': !exists(json, 'idRemplacant') ? undefined : json['idRemplacant'],\n 'contrat': !exists(json, 'contrat') ? undefined : json['contrat'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idFormateurLocalisationContrat': !exists(json, 'idFormateurLocalisationContrat') ? undefined : json['idFormateurLocalisationContrat'],\n };\n}\n\nexport function FcbRechercheClasseHoraireRemplacementSimultaneDtoToJSON(value?: FcbRechercheClasseHoraireRemplacementSimultaneDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'classe': value.classe,\n 'idClasseMatiere': value.idClasseMatiere,\n 'idRemplacement': value.idRemplacement,\n 'idClasse': value.idClasse,\n 'description': value.description,\n 'remplacant': value.remplacant,\n 'idRemplacant': value.idRemplacant,\n 'contrat': value.contrat,\n 'idcentre': value.idcentre,\n 'idFormateurLocalisationContrat': value.idFormateurLocalisationContrat,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheClasseHoraireRemplacementSimultaneDto } from './FcbRechercheClasseHoraireRemplacementSimultaneDto';\nimport {\n FcbRechercheClasseHoraireRemplacementSimultaneDtoFromJSON,\n FcbRechercheClasseHoraireRemplacementSimultaneDtoFromJSONTyped,\n FcbRechercheClasseHoraireRemplacementSimultaneDtoToJSON,\n} from './FcbRechercheClasseHoraireRemplacementSimultaneDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults\n */\nexport interface FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResultsFromJSON(json: any): FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults {\n return FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheClasseHoraireRemplacementSimultaneDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResultsToJSON(value?: FcbRechercheClasseHoraireRemplacementSimultaneDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheClasseHoraireRemplacementSimultaneDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheClasseMiseAJourMasseGridDto\n */\nexport interface FcbRechercheClasseMiseAJourMasseGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n nomClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n lieucours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n dateCours?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n genre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n particulariteCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n idlieu?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n idsecteur?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n iddegre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n typeProjet?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n statutLocalisationAgrement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n dateValidation?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n premierCours?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n conseiller?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDto\n */\n iduser?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheClasseMiseAJourMasseGridDto interface.\n */\nexport function instanceOfFcbRechercheClasseMiseAJourMasseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheClasseMiseAJourMasseGridDtoFromJSON(json: any): FcbRechercheClasseMiseAJourMasseGridDto {\n return FcbRechercheClasseMiseAJourMasseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheClasseMiseAJourMasseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheClasseMiseAJourMasseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nomClasse': !exists(json, 'nomClasse') ? undefined : json['nomClasse'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'lieucours': !exists(json, 'lieucours') ? undefined : json['lieucours'],\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'dateCours': !exists(json, 'dateCours') ? undefined : (json['dateCours'] === null ? null : new Date(json['dateCours'])),\n 'genre': !exists(json, 'genre') ? undefined : json['genre'],\n 'particulariteCours': !exists(json, 'particulariteCours') ? undefined : json['particulariteCours'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idlieu': !exists(json, 'idlieu') ? undefined : json['idlieu'],\n 'idsecteur': !exists(json, 'idsecteur') ? undefined : json['idsecteur'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'iddegre': !exists(json, 'iddegre') ? undefined : json['iddegre'],\n 'typeProjet': !exists(json, 'typeProjet') ? undefined : json['typeProjet'],\n 'statutLocalisationAgrement': !exists(json, 'statutLocalisationAgrement') ? undefined : json['statutLocalisationAgrement'],\n 'dateValidation': !exists(json, 'dateValidation') ? undefined : json['dateValidation'],\n 'premierCours': !exists(json, 'premierCours') ? undefined : (json['premierCours'] === null ? null : new Date(json['premierCours'])),\n 'conseiller': !exists(json, 'conseiller') ? undefined : json['conseiller'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n };\n}\n\nexport function FcbRechercheClasseMiseAJourMasseGridDtoToJSON(value?: FcbRechercheClasseMiseAJourMasseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': value.code,\n 'nomClasse': value.nomClasse,\n 'anneeAcademique': value.anneeAcademique,\n 'lieucours': value.lieucours,\n 'typeCours': value.typeCours,\n 'dateCours': value.dateCours === undefined ? undefined : (value.dateCours === null ? null : value.dateCours.toISOString()),\n 'genre': value.genre,\n 'particulariteCours': value.particulariteCours,\n 'remarque': value.remarque,\n 'idclasse': value.idclasse,\n 'idcentre': value.idcentre,\n 'idlieu': value.idlieu,\n 'idsecteur': value.idsecteur,\n 'idmetier': value.idmetier,\n 'iddegre': value.iddegre,\n 'typeProjet': value.typeProjet,\n 'statutLocalisationAgrement': value.statutLocalisationAgrement,\n 'dateValidation': value.dateValidation,\n 'premierCours': value.premierCours === undefined ? undefined : (value.premierCours === null ? null : value.premierCours.toISOString()),\n 'conseiller': value.conseiller,\n 'iduser': value.iduser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheClasseMiseAJourMasseGridDto } from './FcbRechercheClasseMiseAJourMasseGridDto';\nimport {\n FcbRechercheClasseMiseAJourMasseGridDtoFromJSON,\n FcbRechercheClasseMiseAJourMasseGridDtoFromJSONTyped,\n FcbRechercheClasseMiseAJourMasseGridDtoToJSON,\n} from './FcbRechercheClasseMiseAJourMasseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults\n */\nexport interface FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResultsFromJSON(json: any): FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults {\n return FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheClasseMiseAJourMasseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResultsToJSON(value?: FcbRechercheClasseMiseAJourMasseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheClasseMiseAJourMasseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheDateAbsenceDto\n */\nexport interface FcbRechercheDateAbsenceDto {\n /**\n * \n * @type {string}\n * @memberof FcbRechercheDateAbsenceDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheDateAbsenceDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheDateAbsenceDto\n */\n codeclasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheDateAbsenceDto\n */\n jour?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheDateAbsenceDto\n */\n heures?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheDateAbsenceDto\n */\n statutAbsence?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheDateAbsenceDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheDateAbsenceDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheDateAbsenceDto\n */\n orderjour?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheDateAbsenceDto interface.\n */\nexport function instanceOfFcbRechercheDateAbsenceDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheDateAbsenceDtoFromJSON(json: any): FcbRechercheDateAbsenceDto {\n return FcbRechercheDateAbsenceDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheDateAbsenceDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheDateAbsenceDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'codeclasse': !exists(json, 'codeclasse') ? undefined : json['codeclasse'],\n 'jour': !exists(json, 'jour') ? undefined : json['jour'],\n 'heures': !exists(json, 'heures') ? undefined : json['heures'],\n 'statutAbsence': !exists(json, 'statutAbsence') ? undefined : json['statutAbsence'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'orderjour': !exists(json, 'orderjour') ? undefined : (json['orderjour'] === null ? null : new Date(json['orderjour'])),\n };\n}\n\nexport function FcbRechercheDateAbsenceDtoToJSON(value?: FcbRechercheDateAbsenceDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeScolaire': value.anneeScolaire,\n 'classe': value.classe,\n 'codeclasse': value.codeclasse,\n 'jour': value.jour,\n 'heures': value.heures,\n 'statutAbsence': value.statutAbsence,\n 'idapprenant': value.idapprenant,\n 'idclasse': value.idclasse,\n 'orderjour': value.orderjour === undefined ? undefined : (value.orderjour === null ? null : value.orderjour.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheDateAbsenceDto } from './FcbRechercheDateAbsenceDto';\nimport {\n FcbRechercheDateAbsenceDtoFromJSON,\n FcbRechercheDateAbsenceDtoFromJSONTyped,\n FcbRechercheDateAbsenceDtoToJSON,\n} from './FcbRechercheDateAbsenceDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheDateAbsenceDtoPaginatedResults\n */\nexport interface FcbRechercheDateAbsenceDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheDateAbsenceDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheDateAbsenceDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheDateAbsenceDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheDateAbsenceDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheDateAbsenceDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheDateAbsenceDtoPaginatedResultsFromJSON(json: any): FcbRechercheDateAbsenceDtoPaginatedResults {\n return FcbRechercheDateAbsenceDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheDateAbsenceDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheDateAbsenceDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheDateAbsenceDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheDateAbsenceDtoPaginatedResultsToJSON(value?: FcbRechercheDateAbsenceDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheDateAbsenceDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheExportGapDto\n */\nexport interface FcbRechercheExportGapDto {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapDto\n */\n idexport?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapDto\n */\n date?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapDto\n */\n description?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRechercheExportGapDto\n */\n valide?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheExportGapDto interface.\n */\nexport function instanceOfFcbRechercheExportGapDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheExportGapDtoFromJSON(json: any): FcbRechercheExportGapDto {\n return FcbRechercheExportGapDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheExportGapDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheExportGapDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'date': !exists(json, 'date') ? undefined : json['date'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'valide': !exists(json, 'valide') ? undefined : json['valide'],\n };\n}\n\nexport function FcbRechercheExportGapDtoToJSON(value?: FcbRechercheExportGapDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexport': value.idexport,\n 'date': value.date,\n 'centre': value.centre,\n 'description': value.description,\n 'valide': value.valide,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheExportGapDto } from './FcbRechercheExportGapDto';\nimport {\n FcbRechercheExportGapDtoFromJSON,\n FcbRechercheExportGapDtoFromJSONTyped,\n FcbRechercheExportGapDtoToJSON,\n} from './FcbRechercheExportGapDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheExportGapDtoPaginatedResults\n */\nexport interface FcbRechercheExportGapDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheExportGapDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheExportGapDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheExportGapDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheExportGapDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheExportGapDtoPaginatedResultsFromJSON(json: any): FcbRechercheExportGapDtoPaginatedResults {\n return FcbRechercheExportGapDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheExportGapDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheExportGapDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheExportGapDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheExportGapDtoPaginatedResultsToJSON(value?: FcbRechercheExportGapDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheExportGapDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheExportGapPrestationDto\n */\nexport interface FcbRechercheExportGapPrestationDto {\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheExportGapPrestationDto\n */\n jour?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapPrestationDto\n */\n codeClasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapPrestationDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapPrestationDto\n */\n formateur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapPrestationDto\n */\n matricule?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapPrestationDto\n */\n ancienMatricule?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapPrestationDto\n */\n count?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapPrestationDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapPrestationDto\n */\n idexport?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheExportGapPrestationDto interface.\n */\nexport function instanceOfFcbRechercheExportGapPrestationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheExportGapPrestationDtoFromJSON(json: any): FcbRechercheExportGapPrestationDto {\n return FcbRechercheExportGapPrestationDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheExportGapPrestationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheExportGapPrestationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'jour': !exists(json, 'jour') ? undefined : (json['jour'] === null ? null : new Date(json['jour'])),\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : json['codeClasse'],\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'matricule': !exists(json, 'matricule') ? undefined : json['matricule'],\n 'ancienMatricule': !exists(json, 'ancienMatricule') ? undefined : json['ancienMatricule'],\n 'count': !exists(json, 'count') ? undefined : json['count'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n };\n}\n\nexport function FcbRechercheExportGapPrestationDtoToJSON(value?: FcbRechercheExportGapPrestationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'jour': value.jour === undefined ? undefined : (value.jour === null ? null : value.jour.toISOString()),\n 'codeClasse': value.codeClasse,\n 'classe': value.classe,\n 'formateur': value.formateur,\n 'matricule': value.matricule,\n 'ancienMatricule': value.ancienMatricule,\n 'count': value.count,\n 'idformateur': value.idformateur,\n 'idexport': value.idexport,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheExportGapPrestationDto } from './FcbRechercheExportGapPrestationDto';\nimport {\n FcbRechercheExportGapPrestationDtoFromJSON,\n FcbRechercheExportGapPrestationDtoFromJSONTyped,\n FcbRechercheExportGapPrestationDtoToJSON,\n} from './FcbRechercheExportGapPrestationDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheExportGapPrestationDtoPaginatedResults\n */\nexport interface FcbRechercheExportGapPrestationDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapPrestationDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheExportGapPrestationDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheExportGapPrestationDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheExportGapPrestationDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheExportGapPrestationDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheExportGapPrestationDtoPaginatedResultsFromJSON(json: any): FcbRechercheExportGapPrestationDtoPaginatedResults {\n return FcbRechercheExportGapPrestationDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheExportGapPrestationDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheExportGapPrestationDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheExportGapPrestationDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheExportGapPrestationDtoPaginatedResultsToJSON(value?: FcbRechercheExportGapPrestationDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheExportGapPrestationDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheExportGapRemplacementDto\n */\nexport interface FcbRechercheExportGapRemplacementDto {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapRemplacementDto\n */\n idexport?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheExportGapRemplacementDto\n */\n jour?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapRemplacementDto\n */\n matricule?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapRemplacementDto\n */\n codeClasse?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapRemplacementDto\n */\n idremplacement?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapRemplacementDto\n */\n idremplacant?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapRemplacementDto\n */\n count?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheExportGapRemplacementDto\n */\n signe?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapRemplacementDto\n */\n maxcontrat?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheExportGapRemplacementDto interface.\n */\nexport function instanceOfFcbRechercheExportGapRemplacementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheExportGapRemplacementDtoFromJSON(json: any): FcbRechercheExportGapRemplacementDto {\n return FcbRechercheExportGapRemplacementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheExportGapRemplacementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheExportGapRemplacementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'jour': !exists(json, 'jour') ? undefined : (json['jour'] === null ? null : new Date(json['jour'])),\n 'matricule': !exists(json, 'matricule') ? undefined : json['matricule'],\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : json['codeClasse'],\n 'idremplacement': !exists(json, 'idremplacement') ? undefined : json['idremplacement'],\n 'idremplacant': !exists(json, 'idremplacant') ? undefined : json['idremplacant'],\n 'count': !exists(json, 'count') ? undefined : json['count'],\n 'signe': !exists(json, 'signe') ? undefined : json['signe'],\n 'maxcontrat': !exists(json, 'maxcontrat') ? undefined : json['maxcontrat'],\n };\n}\n\nexport function FcbRechercheExportGapRemplacementDtoToJSON(value?: FcbRechercheExportGapRemplacementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexport': value.idexport,\n 'jour': value.jour === undefined ? undefined : (value.jour === null ? null : value.jour.toISOString()),\n 'matricule': value.matricule,\n 'codeClasse': value.codeClasse,\n 'idremplacement': value.idremplacement,\n 'idremplacant': value.idremplacant,\n 'count': value.count,\n 'signe': value.signe,\n 'maxcontrat': value.maxcontrat,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheExportGapRemplacementDto } from './FcbRechercheExportGapRemplacementDto';\nimport {\n FcbRechercheExportGapRemplacementDtoFromJSON,\n FcbRechercheExportGapRemplacementDtoFromJSONTyped,\n FcbRechercheExportGapRemplacementDtoToJSON,\n} from './FcbRechercheExportGapRemplacementDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheExportGapRemplacementDtoPaginatedResults\n */\nexport interface FcbRechercheExportGapRemplacementDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheExportGapRemplacementDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheExportGapRemplacementDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheExportGapRemplacementDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheExportGapRemplacementDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheExportGapRemplacementDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheExportGapRemplacementDtoPaginatedResultsFromJSON(json: any): FcbRechercheExportGapRemplacementDtoPaginatedResults {\n return FcbRechercheExportGapRemplacementDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheExportGapRemplacementDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheExportGapRemplacementDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheExportGapRemplacementDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheExportGapRemplacementDtoPaginatedResultsToJSON(value?: FcbRechercheExportGapRemplacementDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheExportGapRemplacementDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheImpressionDto\n */\nexport interface FcbRechercheImpressionDto {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheImpressionDto\n */\n idimpression?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheImpressionDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheImpressionDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheImpressionDto\n */\n actif?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheImpressionDto\n */\n rapport?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheImpressionDto\n */\n module?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheImpressionDto\n */\n acces?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheImpressionDto\n */\n centre?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheImpressionDto interface.\n */\nexport function instanceOfFcbRechercheImpressionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheImpressionDtoFromJSON(json: any): FcbRechercheImpressionDto {\n return FcbRechercheImpressionDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheImpressionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheImpressionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idimpression': !exists(json, 'idimpression') ? undefined : json['idimpression'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'rapport': !exists(json, 'rapport') ? undefined : json['rapport'],\n 'module': !exists(json, 'module') ? undefined : json['module'],\n 'acces': !exists(json, 'acces') ? undefined : json['acces'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n };\n}\n\nexport function FcbRechercheImpressionDtoToJSON(value?: FcbRechercheImpressionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idimpression': value.idimpression,\n 'nom': value.nom,\n 'description': value.description,\n 'actif': value.actif,\n 'rapport': value.rapport,\n 'module': value.module,\n 'acces': value.acces,\n 'centre': value.centre,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheImpressionDto } from './FcbRechercheImpressionDto';\nimport {\n FcbRechercheImpressionDtoFromJSON,\n FcbRechercheImpressionDtoFromJSONTyped,\n FcbRechercheImpressionDtoToJSON,\n} from './FcbRechercheImpressionDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheImpressionDtoPaginatedResults\n */\nexport interface FcbRechercheImpressionDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheImpressionDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheImpressionDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheImpressionDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheImpressionDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheImpressionDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheImpressionDtoPaginatedResultsFromJSON(json: any): FcbRechercheImpressionDtoPaginatedResults {\n return FcbRechercheImpressionDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheImpressionDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheImpressionDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheImpressionDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheImpressionDtoPaginatedResultsToJSON(value?: FcbRechercheImpressionDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheImpressionDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRecherchePlanAgrementClasseDto\n */\nexport interface FcbRecherchePlanAgrementClasseDto {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n idClasse?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n idStatutAgrement?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n codeConseillerAgrement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n codeMetier?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n idMetier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n idDegre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n specificite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n genre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n idReferentiel?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n codeReferentiel?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n financement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n ppb?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n nbApprenantAgrement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n dateCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n remarqueCentreAgrement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n gestionInterneAgrement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n remarqueConseillerAgrement?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n idPlanAgrement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n dateLocalisation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n statutLocalisationAgrement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanAgrementClasseDto\n */\n coherent?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchePlanAgrementClasseDto interface.\n */\nexport function instanceOfFcbRecherchePlanAgrementClasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchePlanAgrementClasseDtoFromJSON(json: any): FcbRecherchePlanAgrementClasseDto {\n return FcbRecherchePlanAgrementClasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchePlanAgrementClasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchePlanAgrementClasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'idStatutAgrement': !exists(json, 'idStatutAgrement') ? undefined : json['idStatutAgrement'],\n 'codeConseillerAgrement': !exists(json, 'codeConseillerAgrement') ? undefined : json['codeConseillerAgrement'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : json['codeMetier'],\n 'idMetier': !exists(json, 'idMetier') ? undefined : json['idMetier'],\n 'idDegre': !exists(json, 'idDegre') ? undefined : json['idDegre'],\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'specificite': !exists(json, 'specificite') ? undefined : json['specificite'],\n 'genre': !exists(json, 'genre') ? undefined : json['genre'],\n 'idReferentiel': !exists(json, 'idReferentiel') ? undefined : json['idReferentiel'],\n 'codeReferentiel': !exists(json, 'codeReferentiel') ? undefined : json['codeReferentiel'],\n 'financement': !exists(json, 'financement') ? undefined : json['financement'],\n 'ppb': !exists(json, 'ppb') ? undefined : json['ppb'],\n 'nbApprenantAgrement': !exists(json, 'nbApprenantAgrement') ? undefined : json['nbApprenantAgrement'],\n 'dateCours': !exists(json, 'dateCours') ? undefined : json['dateCours'],\n 'remarqueCentreAgrement': !exists(json, 'remarqueCentreAgrement') ? undefined : json['remarqueCentreAgrement'],\n 'gestionInterneAgrement': !exists(json, 'gestionInterneAgrement') ? undefined : json['gestionInterneAgrement'],\n 'remarqueConseillerAgrement': !exists(json, 'remarqueConseillerAgrement') ? undefined : json['remarqueConseillerAgrement'],\n 'idPlanAgrement': !exists(json, 'idPlanAgrement') ? undefined : json['idPlanAgrement'],\n 'dateLocalisation': !exists(json, 'dateLocalisation') ? undefined : json['dateLocalisation'],\n 'statutLocalisationAgrement': !exists(json, 'statutLocalisationAgrement') ? undefined : json['statutLocalisationAgrement'],\n 'coherent': !exists(json, 'coherent') ? undefined : json['coherent'],\n };\n}\n\nexport function FcbRecherchePlanAgrementClasseDtoToJSON(value?: FcbRecherchePlanAgrementClasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'idStatutAgrement': value.idStatutAgrement,\n 'codeConseillerAgrement': value.codeConseillerAgrement,\n 'nom': value.nom,\n 'codeMetier': value.codeMetier,\n 'idMetier': value.idMetier,\n 'idDegre': value.idDegre,\n 'typeCours': value.typeCours,\n 'specificite': value.specificite,\n 'genre': value.genre,\n 'idReferentiel': value.idReferentiel,\n 'codeReferentiel': value.codeReferentiel,\n 'financement': value.financement,\n 'ppb': value.ppb,\n 'nbApprenantAgrement': value.nbApprenantAgrement,\n 'dateCours': value.dateCours,\n 'remarqueCentreAgrement': value.remarqueCentreAgrement,\n 'gestionInterneAgrement': value.gestionInterneAgrement,\n 'remarqueConseillerAgrement': value.remarqueConseillerAgrement,\n 'idPlanAgrement': value.idPlanAgrement,\n 'dateLocalisation': value.dateLocalisation,\n 'statutLocalisationAgrement': value.statutLocalisationAgrement,\n 'coherent': value.coherent,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRecherchePlanAgrementClasseDto } from './FcbRecherchePlanAgrementClasseDto';\nimport {\n FcbRecherchePlanAgrementClasseDtoFromJSON,\n FcbRecherchePlanAgrementClasseDtoFromJSONTyped,\n FcbRecherchePlanAgrementClasseDtoToJSON,\n} from './FcbRecherchePlanAgrementClasseDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRecherchePlanAgrementClasseDtoPaginatedResults\n */\nexport interface FcbRecherchePlanAgrementClasseDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanAgrementClasseDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchePlanAgrementClasseDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchePlanAgrementClasseDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchePlanAgrementClasseDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRecherchePlanAgrementClasseDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchePlanAgrementClasseDtoPaginatedResultsFromJSON(json: any): FcbRecherchePlanAgrementClasseDtoPaginatedResults {\n return FcbRecherchePlanAgrementClasseDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchePlanAgrementClasseDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchePlanAgrementClasseDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRecherchePlanAgrementClasseDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRecherchePlanAgrementClasseDtoPaginatedResultsToJSON(value?: FcbRecherchePlanAgrementClasseDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRecherchePlanAgrementClasseDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRecherchePlanLocalisationClasseDto\n */\nexport interface FcbRecherchePlanLocalisationClasseDto {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n idClasse?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n idStatutLocalisation?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n codeConseiller?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n codeMetier?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n idMetier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n idDegre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n specificite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n genre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n idReferentiel?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n codeReferentiel?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n financement?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n ppb?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n nbApprenantLocalisation?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n dateCours?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n remarqueCentre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n gestionInterne?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n remarqueConseiller?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n idPlanLocalisation?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n nomFin?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationClasseDto\n */\n idUser?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchePlanLocalisationClasseDto interface.\n */\nexport function instanceOfFcbRecherchePlanLocalisationClasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchePlanLocalisationClasseDtoFromJSON(json: any): FcbRecherchePlanLocalisationClasseDto {\n return FcbRecherchePlanLocalisationClasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchePlanLocalisationClasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchePlanLocalisationClasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'idStatutLocalisation': !exists(json, 'idStatutLocalisation') ? undefined : json['idStatutLocalisation'],\n 'codeConseiller': !exists(json, 'codeConseiller') ? undefined : json['codeConseiller'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : json['codeMetier'],\n 'idMetier': !exists(json, 'idMetier') ? undefined : json['idMetier'],\n 'idDegre': !exists(json, 'idDegre') ? undefined : json['idDegre'],\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'specificite': !exists(json, 'specificite') ? undefined : json['specificite'],\n 'genre': !exists(json, 'genre') ? undefined : json['genre'],\n 'idReferentiel': !exists(json, 'idReferentiel') ? undefined : json['idReferentiel'],\n 'codeReferentiel': !exists(json, 'codeReferentiel') ? undefined : json['codeReferentiel'],\n 'financement': !exists(json, 'financement') ? undefined : json['financement'],\n 'ppb': !exists(json, 'ppb') ? undefined : json['ppb'],\n 'nbApprenantLocalisation': !exists(json, 'nbApprenantLocalisation') ? undefined : json['nbApprenantLocalisation'],\n 'dateCours': !exists(json, 'dateCours') ? undefined : json['dateCours'],\n 'remarqueCentre': !exists(json, 'remarqueCentre') ? undefined : json['remarqueCentre'],\n 'gestionInterne': !exists(json, 'gestionInterne') ? undefined : json['gestionInterne'],\n 'remarqueConseiller': !exists(json, 'remarqueConseiller') ? undefined : json['remarqueConseiller'],\n 'idPlanLocalisation': !exists(json, 'idPlanLocalisation') ? undefined : json['idPlanLocalisation'],\n 'nomFin': !exists(json, 'nomFin') ? undefined : json['nomFin'],\n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n };\n}\n\nexport function FcbRecherchePlanLocalisationClasseDtoToJSON(value?: FcbRecherchePlanLocalisationClasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'idStatutLocalisation': value.idStatutLocalisation,\n 'codeConseiller': value.codeConseiller,\n 'nom': value.nom,\n 'codeMetier': value.codeMetier,\n 'idMetier': value.idMetier,\n 'idDegre': value.idDegre,\n 'typeCours': value.typeCours,\n 'specificite': value.specificite,\n 'genre': value.genre,\n 'idReferentiel': value.idReferentiel,\n 'codeReferentiel': value.codeReferentiel,\n 'financement': value.financement,\n 'ppb': value.ppb,\n 'nbApprenantLocalisation': value.nbApprenantLocalisation,\n 'dateCours': value.dateCours,\n 'remarqueCentre': value.remarqueCentre,\n 'gestionInterne': value.gestionInterne,\n 'remarqueConseiller': value.remarqueConseiller,\n 'idPlanLocalisation': value.idPlanLocalisation,\n 'nomFin': value.nomFin,\n 'idUser': value.idUser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRecherchePlanLocalisationClasseDto } from './FcbRecherchePlanLocalisationClasseDto';\nimport {\n FcbRecherchePlanLocalisationClasseDtoFromJSON,\n FcbRecherchePlanLocalisationClasseDtoFromJSONTyped,\n FcbRecherchePlanLocalisationClasseDtoToJSON,\n} from './FcbRecherchePlanLocalisationClasseDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRecherchePlanLocalisationClasseDtoPaginatedResults\n */\nexport interface FcbRecherchePlanLocalisationClasseDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationClasseDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchePlanLocalisationClasseDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchePlanLocalisationClasseDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchePlanLocalisationClasseDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRecherchePlanLocalisationClasseDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchePlanLocalisationClasseDtoPaginatedResultsFromJSON(json: any): FcbRecherchePlanLocalisationClasseDtoPaginatedResults {\n return FcbRecherchePlanLocalisationClasseDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchePlanLocalisationClasseDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchePlanLocalisationClasseDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRecherchePlanLocalisationClasseDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRecherchePlanLocalisationClasseDtoPaginatedResultsToJSON(value?: FcbRecherchePlanLocalisationClasseDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRecherchePlanLocalisationClasseDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRecherchePlanLocalisationDto\n */\nexport interface FcbRecherchePlanLocalisationDto {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationDto\n */\n idplan?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationDto\n */\n dateValidation?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchePlanLocalisationDto\n */\n statutLocalisationAgrement?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationDto\n */\n iduser?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchePlanLocalisationDto interface.\n */\nexport function instanceOfFcbRecherchePlanLocalisationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchePlanLocalisationDtoFromJSON(json: any): FcbRecherchePlanLocalisationDto {\n return FcbRecherchePlanLocalisationDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchePlanLocalisationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchePlanLocalisationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idplan': !exists(json, 'idplan') ? undefined : json['idplan'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'dateValidation': !exists(json, 'dateValidation') ? undefined : json['dateValidation'],\n 'statutLocalisationAgrement': !exists(json, 'statutLocalisationAgrement') ? undefined : json['statutLocalisationAgrement'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n };\n}\n\nexport function FcbRecherchePlanLocalisationDtoToJSON(value?: FcbRecherchePlanLocalisationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idplan': value.idplan,\n 'anneeAcademique': value.anneeAcademique,\n 'centre': value.centre,\n 'dateValidation': value.dateValidation,\n 'statutLocalisationAgrement': value.statutLocalisationAgrement,\n 'iduser': value.iduser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRecherchePlanLocalisationDto } from './FcbRecherchePlanLocalisationDto';\nimport {\n FcbRecherchePlanLocalisationDtoFromJSON,\n FcbRecherchePlanLocalisationDtoFromJSONTyped,\n FcbRecherchePlanLocalisationDtoToJSON,\n} from './FcbRecherchePlanLocalisationDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRecherchePlanLocalisationDtoPaginatedResults\n */\nexport interface FcbRecherchePlanLocalisationDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchePlanLocalisationDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchePlanLocalisationDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchePlanLocalisationDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchePlanLocalisationDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRecherchePlanLocalisationDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchePlanLocalisationDtoPaginatedResultsFromJSON(json: any): FcbRecherchePlanLocalisationDtoPaginatedResults {\n return FcbRecherchePlanLocalisationDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchePlanLocalisationDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchePlanLocalisationDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRecherchePlanLocalisationDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRecherchePlanLocalisationDtoPaginatedResultsToJSON(value?: FcbRecherchePlanLocalisationDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRecherchePlanLocalisationDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheRemplacementDto\n */\nexport interface FcbRechercheRemplacementDto {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheRemplacementDto\n */\n idremplacement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheRemplacementDto\n */\n remplace?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheRemplacementDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheRemplacementDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheRemplacementDto\n */\n idTypeRemplacement?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheRemplacementDto\n */\n typeRemplacement?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheRemplacementDto\n */\n idLegitimite?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheRemplacementDto\n */\n legitimite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRechercheRemplacementDto\n */\n dateDebutSearch?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheRemplacementDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheRemplacementDto\n */\n iduser?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheRemplacementDto interface.\n */\nexport function instanceOfFcbRechercheRemplacementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheRemplacementDtoFromJSON(json: any): FcbRechercheRemplacementDto {\n return FcbRechercheRemplacementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheRemplacementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheRemplacementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idremplacement': !exists(json, 'idremplacement') ? undefined : json['idremplacement'],\n 'remplace': !exists(json, 'remplace') ? undefined : json['remplace'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'idTypeRemplacement': !exists(json, 'idTypeRemplacement') ? undefined : json['idTypeRemplacement'],\n 'typeRemplacement': !exists(json, 'typeRemplacement') ? undefined : json['typeRemplacement'],\n 'idLegitimite': !exists(json, 'idLegitimite') ? undefined : json['idLegitimite'],\n 'legitimite': !exists(json, 'legitimite') ? undefined : json['legitimite'],\n 'dateDebutSearch': !exists(json, 'dateDebutSearch') ? undefined : (json['dateDebutSearch'] === null ? null : new Date(json['dateDebutSearch'])),\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n };\n}\n\nexport function FcbRechercheRemplacementDtoToJSON(value?: FcbRechercheRemplacementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idremplacement': value.idremplacement,\n 'remplace': value.remplace,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'idTypeRemplacement': value.idTypeRemplacement,\n 'typeRemplacement': value.typeRemplacement,\n 'idLegitimite': value.idLegitimite,\n 'legitimite': value.legitimite,\n 'dateDebutSearch': value.dateDebutSearch === undefined ? undefined : (value.dateDebutSearch === null ? null : value.dateDebutSearch.toISOString()),\n 'anneeAcademique': value.anneeAcademique,\n 'iduser': value.iduser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheRemplacementDto } from './FcbRechercheRemplacementDto';\nimport {\n FcbRechercheRemplacementDtoFromJSON,\n FcbRechercheRemplacementDtoFromJSONTyped,\n FcbRechercheRemplacementDtoToJSON,\n} from './FcbRechercheRemplacementDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheRemplacementDtoPaginatedResults\n */\nexport interface FcbRechercheRemplacementDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheRemplacementDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheRemplacementDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheRemplacementDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheRemplacementDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheRemplacementDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheRemplacementDtoPaginatedResultsFromJSON(json: any): FcbRechercheRemplacementDtoPaginatedResults {\n return FcbRechercheRemplacementDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheRemplacementDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheRemplacementDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheRemplacementDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheRemplacementDtoPaginatedResultsToJSON(value?: FcbRechercheRemplacementDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheRemplacementDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheapprenantValidationcemasseDto\n */\nexport interface FcbRechercheapprenantValidationcemasseDto {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n dateNaissance?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n idformation?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n degre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n masculin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n codeclasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n agrement?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheapprenantValidationcemasseDto\n */\n iduser?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheapprenantValidationcemasseDto interface.\n */\nexport function instanceOfFcbRechercheapprenantValidationcemasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheapprenantValidationcemasseDtoFromJSON(json: any): FcbRechercheapprenantValidationcemasseDto {\n return FcbRechercheapprenantValidationcemasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheapprenantValidationcemasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheapprenantValidationcemasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : json['dateNaissance'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idformation': !exists(json, 'idformation') ? undefined : json['idformation'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'masculin': !exists(json, 'masculin') ? undefined : json['masculin'],\n 'codeclasse': !exists(json, 'codeclasse') ? undefined : json['codeclasse'],\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'agrement': !exists(json, 'agrement') ? undefined : json['agrement'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n };\n}\n\nexport function FcbRechercheapprenantValidationcemasseDtoToJSON(value?: FcbRechercheapprenantValidationcemasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance,\n 'idcentre': value.idcentre,\n 'idformation': value.idformation,\n 'idmetier': value.idmetier,\n 'degre': value.degre,\n 'masculin': value.masculin,\n 'codeclasse': value.codeclasse,\n 'classe': value.classe,\n 'agrement': value.agrement,\n 'iduser': value.iduser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheapprenantValidationcemasseDto } from './FcbRechercheapprenantValidationcemasseDto';\nimport {\n FcbRechercheapprenantValidationcemasseDtoFromJSON,\n FcbRechercheapprenantValidationcemasseDtoFromJSONTyped,\n FcbRechercheapprenantValidationcemasseDtoToJSON,\n} from './FcbRechercheapprenantValidationcemasseDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheapprenantValidationcemasseDtoPaginatedResults\n */\nexport interface FcbRechercheapprenantValidationcemasseDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheapprenantValidationcemasseDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheapprenantValidationcemasseDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheapprenantValidationcemasseDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheapprenantValidationcemasseDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheapprenantValidationcemasseDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheapprenantValidationcemasseDtoPaginatedResultsFromJSON(json: any): FcbRechercheapprenantValidationcemasseDtoPaginatedResults {\n return FcbRechercheapprenantValidationcemasseDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheapprenantValidationcemasseDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheapprenantValidationcemasseDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheapprenantValidationcemasseDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheapprenantValidationcemasseDtoPaginatedResultsToJSON(value?: FcbRechercheapprenantValidationcemasseDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheapprenantValidationcemasseDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRecherchecalendrierClasseDto\n */\nexport interface FcbRecherchecalendrierClasseDto {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierClasseDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierClasseDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchecalendrierClasseDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchecalendrierClasseDto\n */\n nom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRecherchecalendrierClasseDto\n */\n jour?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchecalendrierClasseDto interface.\n */\nexport function instanceOfFcbRecherchecalendrierClasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchecalendrierClasseDtoFromJSON(json: any): FcbRecherchecalendrierClasseDto {\n return FcbRecherchecalendrierClasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchecalendrierClasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchecalendrierClasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'jour': !exists(json, 'jour') ? undefined : (json['jour'] === null ? null : new Date(json['jour'])),\n };\n}\n\nexport function FcbRecherchecalendrierClasseDtoToJSON(value?: FcbRecherchecalendrierClasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idclasse': value.idclasse,\n 'idcentre': value.idcentre,\n 'code': value.code,\n 'nom': value.nom,\n 'jour': value.jour === undefined ? undefined : (value.jour === null ? null : value.jour.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRecherchecalendrierClasseDto } from './FcbRecherchecalendrierClasseDto';\nimport {\n FcbRecherchecalendrierClasseDtoFromJSON,\n FcbRecherchecalendrierClasseDtoFromJSONTyped,\n FcbRecherchecalendrierClasseDtoToJSON,\n} from './FcbRecherchecalendrierClasseDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRecherchecalendrierClasseDtoPaginatedResults\n */\nexport interface FcbRecherchecalendrierClasseDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierClasseDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchecalendrierClasseDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchecalendrierClasseDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchecalendrierClasseDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRecherchecalendrierClasseDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchecalendrierClasseDtoPaginatedResultsFromJSON(json: any): FcbRecherchecalendrierClasseDtoPaginatedResults {\n return FcbRecherchecalendrierClasseDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchecalendrierClasseDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchecalendrierClasseDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRecherchecalendrierClasseDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRecherchecalendrierClasseDtoPaginatedResultsToJSON(value?: FcbRecherchecalendrierClasseDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRecherchecalendrierClasseDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRecherchecalendrierFormateurDto\n */\nexport interface FcbRecherchecalendrierFormateurDto {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierFormateurDto\n */\n idcentre?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierFormateurDto\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchecalendrierFormateurDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchecalendrierFormateurDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchecalendrierFormateurDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchecalendrierFormateurDto\n */\n formateur?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRecherchecalendrierFormateurDto\n */\n jour?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchecalendrierFormateurDto\n */\n heureDebut?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchecalendrierFormateurDto interface.\n */\nexport function instanceOfFcbRecherchecalendrierFormateurDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchecalendrierFormateurDtoFromJSON(json: any): FcbRecherchecalendrierFormateurDto {\n return FcbRecherchecalendrierFormateurDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchecalendrierFormateurDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchecalendrierFormateurDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'jour': !exists(json, 'jour') ? undefined : (json['jour'] === null ? null : new Date(json['jour'])),\n 'heureDebut': !exists(json, 'heureDebut') ? undefined : json['heureDebut'],\n };\n}\n\nexport function FcbRecherchecalendrierFormateurDtoToJSON(value?: FcbRecherchecalendrierFormateurDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'idformateur': value.idformateur,\n 'nom': value.nom,\n 'code': value.code,\n 'description': value.description,\n 'formateur': value.formateur,\n 'jour': value.jour === undefined ? undefined : (value.jour === null ? null : value.jour.toISOString()),\n 'heureDebut': value.heureDebut,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRecherchecalendrierFormateurDto } from './FcbRecherchecalendrierFormateurDto';\nimport {\n FcbRecherchecalendrierFormateurDtoFromJSON,\n FcbRecherchecalendrierFormateurDtoFromJSONTyped,\n FcbRecherchecalendrierFormateurDtoToJSON,\n} from './FcbRecherchecalendrierFormateurDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRecherchecalendrierFormateurDtoPaginatedResults\n */\nexport interface FcbRecherchecalendrierFormateurDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierFormateurDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchecalendrierFormateurDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchecalendrierFormateurDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchecalendrierFormateurDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRecherchecalendrierFormateurDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchecalendrierFormateurDtoPaginatedResultsFromJSON(json: any): FcbRecherchecalendrierFormateurDtoPaginatedResults {\n return FcbRecherchecalendrierFormateurDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchecalendrierFormateurDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchecalendrierFormateurDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRecherchecalendrierFormateurDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRecherchecalendrierFormateurDtoPaginatedResultsToJSON(value?: FcbRecherchecalendrierFormateurDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRecherchecalendrierFormateurDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRecherchecalendrierVisiteDto\n */\nexport interface FcbRecherchecalendrierVisiteDto {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierVisiteDto\n */\n idvisite?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierVisiteDto\n */\n iduser?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierVisiteDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchecalendrierVisiteDto\n */\n visite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRecherchecalendrierVisiteDto\n */\n datevisiteDebut?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchecalendrierVisiteDto\n */\n datevisiteFin?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchecalendrierVisiteDto interface.\n */\nexport function instanceOfFcbRecherchecalendrierVisiteDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchecalendrierVisiteDtoFromJSON(json: any): FcbRecherchecalendrierVisiteDto {\n return FcbRecherchecalendrierVisiteDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchecalendrierVisiteDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchecalendrierVisiteDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idvisite': !exists(json, 'idvisite') ? undefined : json['idvisite'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'visite': !exists(json, 'visite') ? undefined : json['visite'],\n 'datevisiteDebut': !exists(json, 'datevisiteDebut') ? undefined : (json['datevisiteDebut'] === null ? null : new Date(json['datevisiteDebut'])),\n 'datevisiteFin': !exists(json, 'datevisiteFin') ? undefined : json['datevisiteFin'],\n };\n}\n\nexport function FcbRecherchecalendrierVisiteDtoToJSON(value?: FcbRecherchecalendrierVisiteDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idvisite': value.idvisite,\n 'iduser': value.iduser,\n 'idcentre': value.idcentre,\n 'visite': value.visite,\n 'datevisiteDebut': value.datevisiteDebut === undefined ? undefined : (value.datevisiteDebut === null ? null : value.datevisiteDebut.toISOString()),\n 'datevisiteFin': value.datevisiteFin,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRecherchecalendrierVisiteDto } from './FcbRecherchecalendrierVisiteDto';\nimport {\n FcbRecherchecalendrierVisiteDtoFromJSON,\n FcbRecherchecalendrierVisiteDtoFromJSONTyped,\n FcbRecherchecalendrierVisiteDtoToJSON,\n} from './FcbRecherchecalendrierVisiteDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRecherchecalendrierVisiteDtoPaginatedResults\n */\nexport interface FcbRecherchecalendrierVisiteDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchecalendrierVisiteDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchecalendrierVisiteDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchecalendrierVisiteDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchecalendrierVisiteDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRecherchecalendrierVisiteDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchecalendrierVisiteDtoPaginatedResultsFromJSON(json: any): FcbRecherchecalendrierVisiteDtoPaginatedResults {\n return FcbRecherchecalendrierVisiteDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchecalendrierVisiteDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchecalendrierVisiteDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRecherchecalendrierVisiteDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRecherchecalendrierVisiteDtoPaginatedResultsToJSON(value?: FcbRecherchecalendrierVisiteDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRecherchecalendrierVisiteDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRechercheexportDto\n */\nexport interface FcbRechercheexportDto {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheexportDto\n */\n idexport?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheexportDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheexportDto\n */\n type?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheexportDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheexportDto\n */\n actif?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRechercheexportDto\n */\n iddb?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheexportDto\n */\n db?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheexportDto\n */\n module?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheexportDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRechercheexportDto\n */\n acces?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRechercheexportDto\n */\n readonly actifComputed?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbRechercheexportDto interface.\n */\nexport function instanceOfFcbRechercheexportDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheexportDtoFromJSON(json: any): FcbRechercheexportDto {\n return FcbRechercheexportDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheexportDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheexportDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'iddb': !exists(json, 'iddb') ? undefined : json['iddb'],\n 'db': !exists(json, 'db') ? undefined : json['db'],\n 'module': !exists(json, 'module') ? undefined : json['module'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'acces': !exists(json, 'acces') ? undefined : json['acces'],\n 'actifComputed': !exists(json, 'actifComputed') ? undefined : json['actifComputed'],\n };\n}\n\nexport function FcbRechercheexportDtoToJSON(value?: FcbRechercheexportDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexport': value.idexport,\n 'nom': value.nom,\n 'type': value.type,\n 'description': value.description,\n 'actif': value.actif,\n 'iddb': value.iddb,\n 'db': value.db,\n 'module': value.module,\n 'centre': value.centre,\n 'acces': value.acces,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRechercheexportDto } from './FcbRechercheexportDto';\nimport {\n FcbRechercheexportDtoFromJSON,\n FcbRechercheexportDtoFromJSONTyped,\n FcbRechercheexportDtoToJSON,\n} from './FcbRechercheexportDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRechercheexportDtoPaginatedResults\n */\nexport interface FcbRechercheexportDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRechercheexportDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheexportDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRechercheexportDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRechercheexportDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRechercheexportDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRechercheexportDtoPaginatedResultsFromJSON(json: any): FcbRechercheexportDtoPaginatedResults {\n return FcbRechercheexportDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRechercheexportDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRechercheexportDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRechercheexportDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRechercheexportDtoPaginatedResultsToJSON(value?: FcbRechercheexportDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRechercheexportDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRecherchestatPresenceApprenantDto\n */\nexport interface FcbRecherchestatPresenceApprenantDto {\n /**\n * \n * @type {string}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n codeclasse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n statutInscription?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n nbretot?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n nbrex?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n nbrejdtc?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n nbreo?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n percentPresence?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRecherchestatPresenceApprenantDto\n */\n dateFin?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchestatPresenceApprenantDto interface.\n */\nexport function instanceOfFcbRecherchestatPresenceApprenantDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchestatPresenceApprenantDtoFromJSON(json: any): FcbRecherchestatPresenceApprenantDto {\n return FcbRecherchestatPresenceApprenantDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchestatPresenceApprenantDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchestatPresenceApprenantDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'codeclasse': !exists(json, 'codeclasse') ? undefined : json['codeclasse'],\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'statutInscription': !exists(json, 'statutInscription') ? undefined : json['statutInscription'],\n 'nbretot': !exists(json, 'nbretot') ? undefined : json['nbretot'],\n 'nbrex': !exists(json, 'nbrex') ? undefined : json['nbrex'],\n 'nbrejdtc': !exists(json, 'nbrejdtc') ? undefined : json['nbrejdtc'],\n 'nbreo': !exists(json, 'nbreo') ? undefined : json['nbreo'],\n 'percentPresence': !exists(json, 'percentPresence') ? undefined : json['percentPresence'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n };\n}\n\nexport function FcbRecherchestatPresenceApprenantDtoToJSON(value?: FcbRecherchestatPresenceApprenantDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeScolaire': value.anneeScolaire,\n 'idapprenant': value.idapprenant,\n 'idclasse': value.idclasse,\n 'codeclasse': value.codeclasse,\n 'classe': value.classe,\n 'statutInscription': value.statutInscription,\n 'nbretot': value.nbretot,\n 'nbrex': value.nbrex,\n 'nbrejdtc': value.nbrejdtc,\n 'nbreo': value.nbreo,\n 'percentPresence': value.percentPresence,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRecherchestatPresenceApprenantDto } from './FcbRecherchestatPresenceApprenantDto';\nimport {\n FcbRecherchestatPresenceApprenantDtoFromJSON,\n FcbRecherchestatPresenceApprenantDtoFromJSONTyped,\n FcbRecherchestatPresenceApprenantDtoToJSON,\n} from './FcbRecherchestatPresenceApprenantDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRecherchestatPresenceApprenantDtoPaginatedResults\n */\nexport interface FcbRecherchestatPresenceApprenantDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRecherchestatPresenceApprenantDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchestatPresenceApprenantDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRecherchestatPresenceApprenantDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRecherchestatPresenceApprenantDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRecherchestatPresenceApprenantDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRecherchestatPresenceApprenantDtoPaginatedResultsFromJSON(json: any): FcbRecherchestatPresenceApprenantDtoPaginatedResults {\n return FcbRecherchestatPresenceApprenantDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRecherchestatPresenceApprenantDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRecherchestatPresenceApprenantDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRecherchestatPresenceApprenantDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRecherchestatPresenceApprenantDtoPaginatedResultsToJSON(value?: FcbRecherchestatPresenceApprenantDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRecherchestatPresenceApprenantDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbReferentielDto\n */\nexport interface FcbReferentielDto {\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n idreferentiel?: number;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n idmetier?: number;\n /**\n * \n * @type {string}\n * @memberof FcbReferentielDto\n */\n iddegre?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbReferentielDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbReferentielDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n nbheures?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbReferentielDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n coutmatiere?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n nbcandidat?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n nbseances?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbReferentielDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbReferentielDto\n */\n test?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n pcreussite?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbReferentielDto\n */\n codereferentiel?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbReferentielDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbReferentielDto\n */\n creationDate?: Date;\n /**\n * \n * @type {string}\n * @memberof FcbReferentielDto\n */\n idreferentielGuid?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n idtypeReussite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n pcreport?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n heureReelle?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n coutglobal?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbReferentielDto\n */\n deliberee?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbReferentielDto\n */\n e8E9?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n idtypeBulletin?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielDto\n */\n idcertification?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbReferentielDto\n */\n linkedToClasses?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbReferentielDto interface.\n */\nexport function instanceOfFcbReferentielDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbReferentielDtoFromJSON(json: any): FcbReferentielDto {\n return FcbReferentielDtoFromJSONTyped(json, false);\n}\n\nexport function FcbReferentielDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbReferentielDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'iddegre': !exists(json, 'iddegre') ? undefined : json['iddegre'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'nbheures': !exists(json, 'nbheures') ? undefined : json['nbheures'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'coutmatiere': !exists(json, 'coutmatiere') ? undefined : json['coutmatiere'],\n 'nbcandidat': !exists(json, 'nbcandidat') ? undefined : json['nbcandidat'],\n 'nbseances': !exists(json, 'nbseances') ? undefined : json['nbseances'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'test': !exists(json, 'test') ? undefined : json['test'],\n 'pcreussite': !exists(json, 'pcreussite') ? undefined : json['pcreussite'],\n 'codereferentiel': !exists(json, 'codereferentiel') ? undefined : json['codereferentiel'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'idreferentielGuid': !exists(json, 'idreferentielGuid') ? undefined : json['idreferentielGuid'],\n 'idtypeReussite': !exists(json, 'idtypeReussite') ? undefined : json['idtypeReussite'],\n 'pcreport': !exists(json, 'pcreport') ? undefined : json['pcreport'],\n 'heureReelle': !exists(json, 'heureReelle') ? undefined : json['heureReelle'],\n 'coutglobal': !exists(json, 'coutglobal') ? undefined : json['coutglobal'],\n 'deliberee': !exists(json, 'deliberee') ? undefined : json['deliberee'],\n 'e8E9': !exists(json, 'e8E9') ? undefined : json['e8E9'],\n 'idtypeBulletin': !exists(json, 'idtypeBulletin') ? undefined : json['idtypeBulletin'],\n 'idcertification': !exists(json, 'idcertification') ? undefined : json['idcertification'],\n 'linkedToClasses': !exists(json, 'linkedToClasses') ? undefined : json['linkedToClasses'],\n };\n}\n\nexport function FcbReferentielDtoToJSON(value?: FcbReferentielDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idreferentiel': value.idreferentiel,\n 'idmetier': value.idmetier,\n 'iddegre': value.iddegre,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'description': value.description,\n 'nbheures': value.nbheures,\n 'remarque': value.remarque,\n 'coutmatiere': value.coutmatiere,\n 'nbcandidat': value.nbcandidat,\n 'nbseances': value.nbseances,\n 'actif': value.actif,\n 'test': value.test,\n 'pcreussite': value.pcreussite,\n 'codereferentiel': value.codereferentiel,\n 'creationUser': value.creationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'idreferentielGuid': value.idreferentielGuid,\n 'idtypeReussite': value.idtypeReussite,\n 'pcreport': value.pcreport,\n 'heureReelle': value.heureReelle,\n 'coutglobal': value.coutglobal,\n 'deliberee': value.deliberee,\n 'e8E9': value.e8E9,\n 'idtypeBulletin': value.idtypeBulletin,\n 'idcertification': value.idcertification,\n 'linkedToClasses': value.linkedToClasses,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbReferentielGridDto\n */\nexport interface FcbReferentielGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbReferentielGridDto\n */\n idreferentiel?: number;\n /**\n * \n * @type {string}\n * @memberof FcbReferentielGridDto\n */\n iddegre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbReferentielGridDto\n */\n degre?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbReferentielGridDto\n */\n date?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbReferentielGridDto\n */\n nbheures?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbReferentielGridDto\n */\n codereferentiel?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbReferentielGridDto\n */\n description?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbReferentielGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbReferentielGridDto interface.\n */\nexport function instanceOfFcbReferentielGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbReferentielGridDtoFromJSON(json: any): FcbReferentielGridDto {\n return FcbReferentielGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbReferentielGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbReferentielGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'iddegre': !exists(json, 'iddegre') ? undefined : json['iddegre'],\n 'degre': !exists(json, 'degre') ? undefined : json['degre'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'nbheures': !exists(json, 'nbheures') ? undefined : json['nbheures'],\n 'codereferentiel': !exists(json, 'codereferentiel') ? undefined : json['codereferentiel'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbReferentielGridDtoToJSON(value?: FcbReferentielGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idreferentiel': value.idreferentiel,\n 'iddegre': value.iddegre,\n 'degre': value.degre,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'nbheures': value.nbheures,\n 'codereferentiel': value.codereferentiel,\n 'description': value.description,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbReferentielGridDto } from './FcbReferentielGridDto';\nimport {\n FcbReferentielGridDtoFromJSON,\n FcbReferentielGridDtoFromJSONTyped,\n FcbReferentielGridDtoToJSON,\n} from './FcbReferentielGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbReferentielGridDtoPaginatedResults\n */\nexport interface FcbReferentielGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbReferentielGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbReferentielGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbReferentielGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbReferentielGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbReferentielGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbReferentielGridDtoPaginatedResultsFromJSON(json: any): FcbReferentielGridDtoPaginatedResults {\n return FcbReferentielGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbReferentielGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbReferentielGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbReferentielGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbReferentielGridDtoPaginatedResultsToJSON(value?: FcbReferentielGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbReferentielGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRemplacementDefinitifDto\n */\nexport interface FcbRemplacementDefinitifDto {\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDefinitifDto\n */\n idremplacement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDefinitifDto\n */\n idremplacant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDefinitifDto\n */\n idformateurLocalisationContrat?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDefinitifDto\n */\n idclasseMatiere?: number;\n}\n\n/**\n * Check if a given object implements the FcbRemplacementDefinitifDto interface.\n */\nexport function instanceOfFcbRemplacementDefinitifDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRemplacementDefinitifDtoFromJSON(json: any): FcbRemplacementDefinitifDto {\n return FcbRemplacementDefinitifDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRemplacementDefinitifDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRemplacementDefinitifDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idremplacement': !exists(json, 'idremplacement') ? undefined : json['idremplacement'],\n 'idremplacant': !exists(json, 'idremplacant') ? undefined : json['idremplacant'],\n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n };\n}\n\nexport function FcbRemplacementDefinitifDtoToJSON(value?: FcbRemplacementDefinitifDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idremplacement': value.idremplacement,\n 'idremplacant': value.idremplacant,\n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n 'idclasseMatiere': value.idclasseMatiere,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRemplacementDto\n */\nexport interface FcbRemplacementDto {\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDto\n */\n idremplacement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDto\n */\n idcentre?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDto\n */\n idremplace?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDto\n */\n idtypeRemplacement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDto\n */\n idremplacant?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRemplacementDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRemplacementDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRemplacementDto\n */\n raison?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRemplacementDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbRemplacementDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRemplacementDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDto\n */\n idremplacementLegitimite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementDto\n */\n idformateurLocalisationContrat?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbRemplacementDto interface.\n */\nexport function instanceOfFcbRemplacementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRemplacementDtoFromJSON(json: any): FcbRemplacementDto {\n return FcbRemplacementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRemplacementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRemplacementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idremplacement': !exists(json, 'idremplacement') ? undefined : json['idremplacement'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idremplace': !exists(json, 'idremplace') ? undefined : json['idremplace'],\n 'idtypeRemplacement': !exists(json, 'idtypeRemplacement') ? undefined : json['idtypeRemplacement'],\n 'idremplacant': !exists(json, 'idremplacant') ? undefined : json['idremplacant'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'raison': !exists(json, 'raison') ? undefined : json['raison'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idremplacementLegitimite': !exists(json, 'idremplacementLegitimite') ? undefined : json['idremplacementLegitimite'],\n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n };\n}\n\nexport function FcbRemplacementDtoToJSON(value?: FcbRemplacementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idremplacement': value.idremplacement,\n 'idcentre': value.idcentre,\n 'idremplace': value.idremplace,\n 'idtypeRemplacement': value.idtypeRemplacement,\n 'idremplacant': value.idremplacant,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'raison': value.raison,\n 'remarque': value.remarque,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idremplacementLegitimite': value.idremplacementLegitimite,\n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRemplacementGridDto\n */\nexport interface FcbRemplacementGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementGridDto\n */\n idremplacement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementGridDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbRemplacementGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementGridDto\n */\n idremplace?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementGridDto\n */\n idtypeRemplacement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbRemplacementGridDto\n */\n description?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRemplacementGridDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRemplacementGridDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRemplacementGridDto\n */\n raison?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRemplacementGridDto\n */\n remarque?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbRemplacementGridDto interface.\n */\nexport function instanceOfFcbRemplacementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRemplacementGridDtoFromJSON(json: any): FcbRemplacementGridDto {\n return FcbRemplacementGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRemplacementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRemplacementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idremplacement': !exists(json, 'idremplacement') ? undefined : json['idremplacement'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'idremplace': !exists(json, 'idremplace') ? undefined : json['idremplace'],\n 'idtypeRemplacement': !exists(json, 'idtypeRemplacement') ? undefined : json['idtypeRemplacement'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'raison': !exists(json, 'raison') ? undefined : json['raison'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n };\n}\n\nexport function FcbRemplacementGridDtoToJSON(value?: FcbRemplacementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idremplacement': value.idremplacement,\n 'idcentre': value.idcentre,\n 'centre': value.centre,\n 'idremplace': value.idremplace,\n 'idtypeRemplacement': value.idtypeRemplacement,\n 'description': value.description,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'raison': value.raison,\n 'remarque': value.remarque,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRemplacementGridDto } from './FcbRemplacementGridDto';\nimport {\n FcbRemplacementGridDtoFromJSON,\n FcbRemplacementGridDtoFromJSONTyped,\n FcbRemplacementGridDtoToJSON,\n} from './FcbRemplacementGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRemplacementGridDtoPaginatedResults\n */\nexport interface FcbRemplacementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRemplacementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRemplacementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRemplacementGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRemplacementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRemplacementGridDtoPaginatedResultsFromJSON(json: any): FcbRemplacementGridDtoPaginatedResults {\n return FcbRemplacementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRemplacementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRemplacementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRemplacementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRemplacementGridDtoPaginatedResultsToJSON(value?: FcbRemplacementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRemplacementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRemplacementSimultaneDto\n */\nexport interface FcbRemplacementSimultaneDto {\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementSimultaneDto\n */\n idremplacement?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementSimultaneDto\n */\n idremplacant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementSimultaneDto\n */\n idformateurLocalisationContrat?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRemplacementSimultaneDto\n */\n idclasseMatiere?: number;\n}\n\n/**\n * Check if a given object implements the FcbRemplacementSimultaneDto interface.\n */\nexport function instanceOfFcbRemplacementSimultaneDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRemplacementSimultaneDtoFromJSON(json: any): FcbRemplacementSimultaneDto {\n return FcbRemplacementSimultaneDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRemplacementSimultaneDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRemplacementSimultaneDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idremplacement': !exists(json, 'idremplacement') ? undefined : json['idremplacement'],\n 'idremplacant': !exists(json, 'idremplacant') ? undefined : json['idremplacant'],\n 'idformateurLocalisationContrat': !exists(json, 'idformateurLocalisationContrat') ? undefined : json['idformateurLocalisationContrat'],\n 'idclasseMatiere': !exists(json, 'idclasseMatiere') ? undefined : json['idclasseMatiere'],\n };\n}\n\nexport function FcbRemplacementSimultaneDtoToJSON(value?: FcbRemplacementSimultaneDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idremplacement': value.idremplacement,\n 'idremplacant': value.idremplacant,\n 'idformateurLocalisationContrat': value.idformateurLocalisationContrat,\n 'idclasseMatiere': value.idclasseMatiere,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbReportAccesPermissionDto\n */\nexport interface FcbReportAccesPermissionDto {\n /**\n * \n * @type {boolean}\n * @memberof FcbReportAccesPermissionDto\n */\n selected?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbReportAccesPermissionDto\n */\n idimpression?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbReportAccesPermissionDto\n */\n idlevel?: number;\n /**\n * \n * @type {string}\n * @memberof FcbReportAccesPermissionDto\n */\n description?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbReportAccesPermissionDto interface.\n */\nexport function instanceOfFcbReportAccesPermissionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbReportAccesPermissionDtoFromJSON(json: any): FcbReportAccesPermissionDto {\n return FcbReportAccesPermissionDtoFromJSONTyped(json, false);\n}\n\nexport function FcbReportAccesPermissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbReportAccesPermissionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selected': !exists(json, 'selected') ? undefined : json['selected'],\n 'idimpression': !exists(json, 'idimpression') ? undefined : json['idimpression'],\n 'idlevel': !exists(json, 'idlevel') ? undefined : json['idlevel'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n };\n}\n\nexport function FcbReportAccesPermissionDtoToJSON(value?: FcbReportAccesPermissionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selected': value.selected,\n 'idimpression': value.idimpression,\n 'idlevel': value.idlevel,\n 'description': value.description,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbReportCentrePermissionDto\n */\nexport interface FcbReportCentrePermissionDto {\n /**\n * \n * @type {boolean}\n * @memberof FcbReportCentrePermissionDto\n */\n selected?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbReportCentrePermissionDto\n */\n idimpression?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbReportCentrePermissionDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbReportCentrePermissionDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbReportCentrePermissionDto interface.\n */\nexport function instanceOfFcbReportCentrePermissionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbReportCentrePermissionDtoFromJSON(json: any): FcbReportCentrePermissionDto {\n return FcbReportCentrePermissionDtoFromJSONTyped(json, false);\n}\n\nexport function FcbReportCentrePermissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbReportCentrePermissionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selected': !exists(json, 'selected') ? undefined : json['selected'],\n 'idimpression': !exists(json, 'idimpression') ? undefined : json['idimpression'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function FcbReportCentrePermissionDtoToJSON(value?: FcbReportCentrePermissionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selected': value.selected,\n 'idimpression': value.idimpression,\n 'idcentre': value.idcentre,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbReportModulePermissionDto\n */\nexport interface FcbReportModulePermissionDto {\n /**\n * \n * @type {boolean}\n * @memberof FcbReportModulePermissionDto\n */\n selected?: boolean;\n /**\n * \n * @type {number}\n * @memberof FcbReportModulePermissionDto\n */\n idmodule?: number;\n /**\n * \n * @type {number}\n * @memberof FcbReportModulePermissionDto\n */\n idimpression?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbReportModulePermissionDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbReportModulePermissionDto interface.\n */\nexport function instanceOfFcbReportModulePermissionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbReportModulePermissionDtoFromJSON(json: any): FcbReportModulePermissionDto {\n return FcbReportModulePermissionDtoFromJSONTyped(json, false);\n}\n\nexport function FcbReportModulePermissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbReportModulePermissionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selected': !exists(json, 'selected') ? undefined : json['selected'],\n 'idmodule': !exists(json, 'idmodule') ? undefined : json['idmodule'],\n 'idimpression': !exists(json, 'idimpression') ? undefined : json['idimpression'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function FcbReportModulePermissionDtoToJSON(value?: FcbReportModulePermissionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selected': value.selected,\n 'idmodule': value.idmodule,\n 'idimpression': value.idimpression,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbReportAccesPermissionDto } from './FcbReportAccesPermissionDto';\nimport {\n FcbReportAccesPermissionDtoFromJSON,\n FcbReportAccesPermissionDtoFromJSONTyped,\n FcbReportAccesPermissionDtoToJSON,\n} from './FcbReportAccesPermissionDto';\nimport type { FcbReportCentrePermissionDto } from './FcbReportCentrePermissionDto';\nimport {\n FcbReportCentrePermissionDtoFromJSON,\n FcbReportCentrePermissionDtoFromJSONTyped,\n FcbReportCentrePermissionDtoToJSON,\n} from './FcbReportCentrePermissionDto';\nimport type { FcbReportModulePermissionDto } from './FcbReportModulePermissionDto';\nimport {\n FcbReportModulePermissionDtoFromJSON,\n FcbReportModulePermissionDtoFromJSONTyped,\n FcbReportModulePermissionDtoToJSON,\n} from './FcbReportModulePermissionDto';\n\n/**\n * \n * @export\n * @interface FcbReportPermissionsDto\n */\nexport interface FcbReportPermissionsDto {\n /**\n * \n * @type {Array}\n * @memberof FcbReportPermissionsDto\n */\n centres?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbReportPermissionsDto\n */\n acces?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbReportPermissionsDto\n */\n modules?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbReportPermissionsDto interface.\n */\nexport function instanceOfFcbReportPermissionsDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbReportPermissionsDtoFromJSON(json: any): FcbReportPermissionsDto {\n return FcbReportPermissionsDtoFromJSONTyped(json, false);\n}\n\nexport function FcbReportPermissionsDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbReportPermissionsDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'centres': !exists(json, 'centres') ? undefined : (json['centres'] === null ? null : (json['centres'] as Array).map(FcbReportCentrePermissionDtoFromJSON)),\n 'acces': !exists(json, 'acces') ? undefined : (json['acces'] === null ? null : (json['acces'] as Array).map(FcbReportAccesPermissionDtoFromJSON)),\n 'modules': !exists(json, 'modules') ? undefined : (json['modules'] === null ? null : (json['modules'] as Array).map(FcbReportModulePermissionDtoFromJSON)),\n };\n}\n\nexport function FcbReportPermissionsDtoToJSON(value?: FcbReportPermissionsDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'centres': value.centres === undefined ? undefined : (value.centres === null ? null : (value.centres as Array).map(FcbReportCentrePermissionDtoToJSON)),\n 'acces': value.acces === undefined ? undefined : (value.acces === null ? null : (value.acces as Array).map(FcbReportAccesPermissionDtoToJSON)),\n 'modules': value.modules === undefined ? undefined : (value.modules === null ? null : (value.modules as Array).map(FcbReportModulePermissionDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbRepresentantApprenantsliesDto\n */\nexport interface FcbRepresentantApprenantsliesDto {\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantApprenantsliesDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantApprenantsliesDto\n */\n idRepresentant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantApprenantsliesDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantApprenantsliesDto\n */\n prenom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRepresentantApprenantsliesDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantApprenantsliesDto\n */\n lienParente?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbRepresentantApprenantsliesDto interface.\n */\nexport function instanceOfFcbRepresentantApprenantsliesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRepresentantApprenantsliesDtoFromJSON(json: any): FcbRepresentantApprenantsliesDto {\n return FcbRepresentantApprenantsliesDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRepresentantApprenantsliesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRepresentantApprenantsliesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idRepresentant': !exists(json, 'idRepresentant') ? undefined : json['idRepresentant'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'lienParente': !exists(json, 'lienParente') ? undefined : json['lienParente'],\n };\n}\n\nexport function FcbRepresentantApprenantsliesDtoToJSON(value?: FcbRepresentantApprenantsliesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'idRepresentant': value.idRepresentant,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'lienParente': value.lienParente,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRepresentantApprenantsliesDto } from './FcbRepresentantApprenantsliesDto';\nimport {\n FcbRepresentantApprenantsliesDtoFromJSON,\n FcbRepresentantApprenantsliesDtoFromJSONTyped,\n FcbRepresentantApprenantsliesDtoToJSON,\n} from './FcbRepresentantApprenantsliesDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRepresentantApprenantsliesDtoPaginatedResults\n */\nexport interface FcbRepresentantApprenantsliesDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantApprenantsliesDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRepresentantApprenantsliesDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRepresentantApprenantsliesDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRepresentantApprenantsliesDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRepresentantApprenantsliesDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRepresentantApprenantsliesDtoPaginatedResultsFromJSON(json: any): FcbRepresentantApprenantsliesDtoPaginatedResults {\n return FcbRepresentantApprenantsliesDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRepresentantApprenantsliesDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRepresentantApprenantsliesDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRepresentantApprenantsliesDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRepresentantApprenantsliesDtoPaginatedResultsToJSON(value?: FcbRepresentantApprenantsliesDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRepresentantApprenantsliesDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface FcbRepresentantDoublonGridDto\n */\nexport interface FcbRepresentantDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantDoublonGridDto\n */\n idrepresentant?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbRepresentantDoublonGridDto\n */\n adresseDto?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRepresentantDoublonGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof FcbRepresentantDoublonGridDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRepresentantDoublonGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDoublonGridDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n isCollaborateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDoublonGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbRepresentantDoublonGridDto interface.\n */\nexport function instanceOfFcbRepresentantDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRepresentantDoublonGridDtoFromJSON(json: any): FcbRepresentantDoublonGridDto {\n return FcbRepresentantDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRepresentantDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRepresentantDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseDto': !exists(json, 'adresseDto') ? undefined : AdresseDtoFromJSON(json['adresseDto']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isCollaborateur': !exists(json, 'isCollaborateur') ? undefined : json['isCollaborateur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function FcbRepresentantDoublonGridDtoToJSON(value?: FcbRepresentantDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrepresentant': value.idrepresentant,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseDto': AdresseDtoToJSON(value.adresseDto),\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isTuteur': value.isTuteur,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isCollaborateur': value.isCollaborateur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRepresentantDoublonGridDto } from './FcbRepresentantDoublonGridDto';\nimport {\n FcbRepresentantDoublonGridDtoFromJSON,\n FcbRepresentantDoublonGridDtoFromJSONTyped,\n FcbRepresentantDoublonGridDtoToJSON,\n} from './FcbRepresentantDoublonGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRepresentantDoublonGridDtoPaginatedResults\n */\nexport interface FcbRepresentantDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRepresentantDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRepresentantDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRepresentantDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRepresentantDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRepresentantDoublonGridDtoPaginatedResultsFromJSON(json: any): FcbRepresentantDoublonGridDtoPaginatedResults {\n return FcbRepresentantDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRepresentantDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRepresentantDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRepresentantDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRepresentantDoublonGridDtoPaginatedResultsToJSON(value?: FcbRepresentantDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRepresentantDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface FcbRepresentantDto\n */\nexport interface FcbRepresentantDto {\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantDto\n */\n idrepresentant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n numeroNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n adresseNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRepresentantDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbRepresentantDto\n */\n telephoneRepresentant?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbRepresentantDto\n */\n telephoneProRepresentant?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof FcbRepresentantDto\n */\n gsmRepresentant?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof FcbRepresentantDto\n */\n emailRepresentant?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbRepresentantDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRepresentantDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n idrepresentantGuid?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n searchNom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantDto\n */\n searchPrenom?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbRepresentantDto\n */\n adresseRepresentant?: AdresseDto;\n /**\n * \n * @type {boolean}\n * @memberof FcbRepresentantDto\n */\n hasAddressDoublons?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbRepresentantDto interface.\n */\nexport function instanceOfFcbRepresentantDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRepresentantDtoFromJSON(json: any): FcbRepresentantDto {\n return FcbRepresentantDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRepresentantDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRepresentantDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'numeroNational': !exists(json, 'numeroNational') ? undefined : json['numeroNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'adresseNaissance': !exists(json, 'adresseNaissance') ? undefined : json['adresseNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'telephoneRepresentant': !exists(json, 'telephoneRepresentant') ? undefined : TelephoneDtoFromJSON(json['telephoneRepresentant']),\n 'telephoneProRepresentant': !exists(json, 'telephoneProRepresentant') ? undefined : TelephoneDtoFromJSON(json['telephoneProRepresentant']),\n 'gsmRepresentant': !exists(json, 'gsmRepresentant') ? undefined : TelephoneDtoFromJSON(json['gsmRepresentant']),\n 'emailRepresentant': !exists(json, 'emailRepresentant') ? undefined : EmailDtoFromJSON(json['emailRepresentant']),\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idrepresentantGuid': !exists(json, 'idrepresentantGuid') ? undefined : json['idrepresentantGuid'],\n 'searchNom': !exists(json, 'searchNom') ? undefined : json['searchNom'],\n 'searchPrenom': !exists(json, 'searchPrenom') ? undefined : json['searchPrenom'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'adresseRepresentant': !exists(json, 'adresseRepresentant') ? undefined : AdresseDtoFromJSON(json['adresseRepresentant']),\n 'hasAddressDoublons': !exists(json, 'hasAddressDoublons') ? undefined : json['hasAddressDoublons'],\n };\n}\n\nexport function FcbRepresentantDtoToJSON(value?: FcbRepresentantDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrepresentant': value.idrepresentant,\n 'nationalite': value.nationalite,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'numeroNational': value.numeroNational,\n 'numeroIdentification': value.numeroIdentification,\n 'adresseNaissance': value.adresseNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'telephoneRepresentant': TelephoneDtoToJSON(value.telephoneRepresentant),\n 'telephoneProRepresentant': TelephoneDtoToJSON(value.telephoneProRepresentant),\n 'gsmRepresentant': TelephoneDtoToJSON(value.gsmRepresentant),\n 'emailRepresentant': EmailDtoToJSON(value.emailRepresentant),\n 'codesexe': value.codesexe,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idrepresentantGuid': value.idrepresentantGuid,\n 'searchNom': value.searchNom,\n 'searchPrenom': value.searchPrenom,\n 'idpersonne': value.idpersonne,\n 'adresseRepresentant': AdresseDtoToJSON(value.adresseRepresentant),\n 'hasAddressDoublons': value.hasAddressDoublons,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\n\n/**\n * \n * @export\n * @interface FcbRepresentantGridDto\n */\nexport interface FcbRepresentantGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantGridDto\n */\n idrepresentant?: number;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbRepresentantGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantGridDto\n */\n telephonePro?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof FcbRepresentantGridDto\n */\n adresseRepresentant?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbRepresentantGridDto\n */\n readonly localite?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbRepresentantGridDto interface.\n */\nexport function instanceOfFcbRepresentantGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRepresentantGridDtoFromJSON(json: any): FcbRepresentantGridDto {\n return FcbRepresentantGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbRepresentantGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRepresentantGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'telephonePro': !exists(json, 'telephonePro') ? undefined : json['telephonePro'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'adresseRepresentant': !exists(json, 'adresseRepresentant') ? undefined : AdresseDtoFromJSON(json['adresseRepresentant']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n };\n}\n\nexport function FcbRepresentantGridDtoToJSON(value?: FcbRepresentantGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrepresentant': value.idrepresentant,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'telephone': value.telephone,\n 'telephonePro': value.telephonePro,\n 'email': value.email,\n 'gsm': value.gsm,\n 'adresseRepresentant': AdresseDtoToJSON(value.adresseRepresentant),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbRepresentantGridDto } from './FcbRepresentantGridDto';\nimport {\n FcbRepresentantGridDtoFromJSON,\n FcbRepresentantGridDtoFromJSONTyped,\n FcbRepresentantGridDtoToJSON,\n} from './FcbRepresentantGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbRepresentantGridDtoPaginatedResults\n */\nexport interface FcbRepresentantGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbRepresentantGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbRepresentantGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbRepresentantGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbRepresentantGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbRepresentantGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbRepresentantGridDtoPaginatedResultsFromJSON(json: any): FcbRepresentantGridDtoPaginatedResults {\n return FcbRepresentantGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbRepresentantGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbRepresentantGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbRepresentantGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbRepresentantGridDtoPaginatedResultsToJSON(value?: FcbRepresentantGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbRepresentantGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSecteurDto\n */\nexport interface FcbSecteurDto {\n /**\n * \n * @type {string}\n * @memberof FcbSecteurDto\n */\n codesecteur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSecteurDto\n */\n description?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSecteurDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbSecteurDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSecteurDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbSecteurDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSecteurDto\n */\n creationUser?: number;\n /**\n * \n * @type {string}\n * @memberof FcbSecteurDto\n */\n idSecteurGuid?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbSecteurDto interface.\n */\nexport function instanceOfFcbSecteurDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSecteurDtoFromJSON(json: any): FcbSecteurDto {\n return FcbSecteurDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSecteurDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSecteurDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codesecteur': !exists(json, 'codesecteur') ? undefined : json['codesecteur'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'idSecteurGuid': !exists(json, 'idSecteurGuid') ? undefined : json['idSecteurGuid'],\n };\n}\n\nexport function FcbSecteurDtoToJSON(value?: FcbSecteurDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codesecteur': value.codesecteur,\n 'description': value.description,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'actif': value.actif,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'creationUser': value.creationUser,\n 'idSecteurGuid': value.idSecteurGuid,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSecteurGridDto\n */\nexport interface FcbSecteurGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbSecteurGridDto\n */\n codesecteur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSecteurGridDto\n */\n description?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbSecteurGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbSecteurGridDto interface.\n */\nexport function instanceOfFcbSecteurGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSecteurGridDtoFromJSON(json: any): FcbSecteurGridDto {\n return FcbSecteurGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSecteurGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSecteurGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codesecteur': !exists(json, 'codesecteur') ? undefined : json['codesecteur'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbSecteurGridDtoToJSON(value?: FcbSecteurGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codesecteur': value.codesecteur,\n 'description': value.description,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbSecteurGridDto } from './FcbSecteurGridDto';\nimport {\n FcbSecteurGridDtoFromJSON,\n FcbSecteurGridDtoFromJSONTyped,\n FcbSecteurGridDtoToJSON,\n} from './FcbSecteurGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbSecteurGridDtoPaginatedResults\n */\nexport interface FcbSecteurGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbSecteurGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbSecteurGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbSecteurGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbSecteurGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbSecteurGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSecteurGridDtoPaginatedResultsFromJSON(json: any): FcbSecteurGridDtoPaginatedResults {\n return FcbSecteurGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbSecteurGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSecteurGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbSecteurGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbSecteurGridDtoPaginatedResultsToJSON(value?: FcbSecteurGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbSecteurGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSecteurHomogeneDto\n */\nexport interface FcbSecteurHomogeneDto {\n /**\n * \n * @type {number}\n * @memberof FcbSecteurHomogeneDto\n */\n idsecteur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbSecteurHomogeneDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbSecteurHomogeneDto\n */\n creationUser?: number;\n /**\n * \n * @type {number}\n * @memberof FcbSecteurHomogeneDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSecteurHomogeneDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSecteurHomogeneDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbSecteurHomogeneDto\n */\n idstade?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbSecteurHomogeneDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbSecteurHomogeneDto interface.\n */\nexport function instanceOfFcbSecteurHomogeneDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSecteurHomogeneDtoFromJSON(json: any): FcbSecteurHomogeneDto {\n return FcbSecteurHomogeneDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSecteurHomogeneDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSecteurHomogeneDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsecteur': !exists(json, 'idsecteur') ? undefined : json['idsecteur'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbSecteurHomogeneDtoToJSON(value?: FcbSecteurHomogeneDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsecteur': value.idsecteur,\n 'libelle': value.libelle,\n 'creationUser': value.creationUser,\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'idstade': value.idstade,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSecteurHomogeneGridDto\n */\nexport interface FcbSecteurHomogeneGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbSecteurHomogeneGridDto\n */\n idsecteur?: number;\n /**\n * \n * @type {string}\n * @memberof FcbSecteurHomogeneGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbSecteurHomogeneGridDto\n */\n idstade?: number;\n /**\n * \n * @type {string}\n * @memberof FcbSecteurHomogeneGridDto\n */\n stade?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbSecteurHomogeneGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbSecteurHomogeneGridDto interface.\n */\nexport function instanceOfFcbSecteurHomogeneGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSecteurHomogeneGridDtoFromJSON(json: any): FcbSecteurHomogeneGridDto {\n return FcbSecteurHomogeneGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSecteurHomogeneGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSecteurHomogeneGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsecteur': !exists(json, 'idsecteur') ? undefined : json['idsecteur'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'stade': !exists(json, 'stade') ? undefined : json['stade'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbSecteurHomogeneGridDtoToJSON(value?: FcbSecteurHomogeneGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsecteur': value.idsecteur,\n 'libelle': value.libelle,\n 'idstade': value.idstade,\n 'stade': value.stade,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbSecteurHomogeneGridDto } from './FcbSecteurHomogeneGridDto';\nimport {\n FcbSecteurHomogeneGridDtoFromJSON,\n FcbSecteurHomogeneGridDtoFromJSONTyped,\n FcbSecteurHomogeneGridDtoToJSON,\n} from './FcbSecteurHomogeneGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbSecteurHomogeneGridDtoPaginatedResults\n */\nexport interface FcbSecteurHomogeneGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbSecteurHomogeneGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbSecteurHomogeneGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbSecteurHomogeneGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbSecteurHomogeneGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbSecteurHomogeneGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSecteurHomogeneGridDtoPaginatedResultsFromJSON(json: any): FcbSecteurHomogeneGridDtoPaginatedResults {\n return FcbSecteurHomogeneGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbSecteurHomogeneGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSecteurHomogeneGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbSecteurHomogeneGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbSecteurHomogeneGridDtoPaginatedResultsToJSON(value?: FcbSecteurHomogeneGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbSecteurHomogeneGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbServiceTutelleCodePostalDto\n */\nexport interface FcbServiceTutelleCodePostalDto {\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleCodePostalDto\n */\n idserviceTutelle?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbServiceTutelleCodePostalDto\n */\n idcodePostaux?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbServiceTutelleCodePostalDto interface.\n */\nexport function instanceOfFcbServiceTutelleCodePostalDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbServiceTutelleCodePostalDtoFromJSON(json: any): FcbServiceTutelleCodePostalDto {\n return FcbServiceTutelleCodePostalDtoFromJSONTyped(json, false);\n}\n\nexport function FcbServiceTutelleCodePostalDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbServiceTutelleCodePostalDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idserviceTutelle': !exists(json, 'idserviceTutelle') ? undefined : json['idserviceTutelle'],\n 'idcodePostaux': !exists(json, 'idcodePostaux') ? undefined : json['idcodePostaux'],\n };\n}\n\nexport function FcbServiceTutelleCodePostalDtoToJSON(value?: FcbServiceTutelleCodePostalDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idserviceTutelle': value.idserviceTutelle,\n 'idcodePostaux': value.idcodePostaux,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbServiceTutelleDto\n */\nexport interface FcbServiceTutelleDto {\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleDto\n */\n idserviceTutelle?: number;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n codePays?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleDto\n */\n iddirectionTerritoriale?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleDto\n */\n idcop?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n fax?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n ouverture?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbServiceTutelleDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbServiceTutelleDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleDto\n */\n idserviceTutelleGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbServiceTutelleDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbServiceTutelleDto interface.\n */\nexport function instanceOfFcbServiceTutelleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbServiceTutelleDtoFromJSON(json: any): FcbServiceTutelleDto {\n return FcbServiceTutelleDtoFromJSONTyped(json, false);\n}\n\nexport function FcbServiceTutelleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbServiceTutelleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idserviceTutelle': !exists(json, 'idserviceTutelle') ? undefined : json['idserviceTutelle'],\n 'codePays': !exists(json, 'codePays') ? undefined : json['codePays'],\n 'iddirectionTerritoriale': !exists(json, 'iddirectionTerritoriale') ? undefined : json['iddirectionTerritoriale'],\n 'idcop': !exists(json, 'idcop') ? undefined : json['idcop'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n 'ouverture': !exists(json, 'ouverture') ? undefined : json['ouverture'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'idserviceTutelleGuid': !exists(json, 'idserviceTutelleGuid') ? undefined : json['idserviceTutelleGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbServiceTutelleDtoToJSON(value?: FcbServiceTutelleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idserviceTutelle': value.idserviceTutelle,\n 'codePays': value.codePays,\n 'iddirectionTerritoriale': value.iddirectionTerritoriale,\n 'idcop': value.idcop,\n 'code': value.code,\n 'nom': value.nom,\n 'adresse': value.adresse,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n 'commune': value.commune,\n 'telephone': value.telephone,\n 'fax': value.fax,\n 'ouverture': value.ouverture,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'creationUser': value.creationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'idserviceTutelleGuid': value.idserviceTutelleGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbServiceTutelleGridDto\n */\nexport interface FcbServiceTutelleGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleGridDto\n */\n idserviceTutelle?: number;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleGridDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleGridDto\n */\n fax?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbServiceTutelleGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbServiceTutelleGridDto interface.\n */\nexport function instanceOfFcbServiceTutelleGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbServiceTutelleGridDtoFromJSON(json: any): FcbServiceTutelleGridDto {\n return FcbServiceTutelleGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbServiceTutelleGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbServiceTutelleGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idserviceTutelle': !exists(json, 'idserviceTutelle') ? undefined : json['idserviceTutelle'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'fax': !exists(json, 'fax') ? undefined : json['fax'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbServiceTutelleGridDtoToJSON(value?: FcbServiceTutelleGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idserviceTutelle': value.idserviceTutelle,\n 'code': value.code,\n 'nom': value.nom,\n 'adresse': value.adresse,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n 'telephone': value.telephone,\n 'fax': value.fax,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbServiceTutelleGridDto } from './FcbServiceTutelleGridDto';\nimport {\n FcbServiceTutelleGridDtoFromJSON,\n FcbServiceTutelleGridDtoFromJSONTyped,\n FcbServiceTutelleGridDtoToJSON,\n} from './FcbServiceTutelleGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbServiceTutelleGridDtoPaginatedResults\n */\nexport interface FcbServiceTutelleGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbServiceTutelleGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbServiceTutelleGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbServiceTutelleGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbServiceTutelleGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbServiceTutelleGridDtoPaginatedResultsFromJSON(json: any): FcbServiceTutelleGridDtoPaginatedResults {\n return FcbServiceTutelleGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbServiceTutelleGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbServiceTutelleGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbServiceTutelleGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbServiceTutelleGridDtoPaginatedResultsToJSON(value?: FcbServiceTutelleGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbServiceTutelleGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbServiceTutelleLocaliteGridDto\n */\nexport interface FcbServiceTutelleLocaliteGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleLocaliteGridDto\n */\n idcodePostal?: number;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleLocaliteGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbServiceTutelleLocaliteGridDto\n */\n localite?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbServiceTutelleLocaliteGridDto interface.\n */\nexport function instanceOfFcbServiceTutelleLocaliteGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbServiceTutelleLocaliteGridDtoFromJSON(json: any): FcbServiceTutelleLocaliteGridDto {\n return FcbServiceTutelleLocaliteGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbServiceTutelleLocaliteGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbServiceTutelleLocaliteGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n };\n}\n\nexport function FcbServiceTutelleLocaliteGridDtoToJSON(value?: FcbServiceTutelleLocaliteGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcodePostal': value.idcodePostal,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbServiceTutelleLocaliteGridDto } from './FcbServiceTutelleLocaliteGridDto';\nimport {\n FcbServiceTutelleLocaliteGridDtoFromJSON,\n FcbServiceTutelleLocaliteGridDtoFromJSONTyped,\n FcbServiceTutelleLocaliteGridDtoToJSON,\n} from './FcbServiceTutelleLocaliteGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbServiceTutelleLocaliteGridDtoPaginatedResults\n */\nexport interface FcbServiceTutelleLocaliteGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbServiceTutelleLocaliteGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbServiceTutelleLocaliteGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbServiceTutelleLocaliteGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbServiceTutelleLocaliteGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbServiceTutelleLocaliteGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbServiceTutelleLocaliteGridDtoPaginatedResultsFromJSON(json: any): FcbServiceTutelleLocaliteGridDtoPaginatedResults {\n return FcbServiceTutelleLocaliteGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbServiceTutelleLocaliteGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbServiceTutelleLocaliteGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbServiceTutelleLocaliteGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbServiceTutelleLocaliteGridDtoPaginatedResultsToJSON(value?: FcbServiceTutelleLocaliteGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbServiceTutelleLocaliteGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSmsGridDto\n */\nexport interface FcbSmsGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbSmsGridDto\n */\n message?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSmsGridDto\n */\n dateEnvoi?: Date;\n /**\n * \n * @type {string}\n * @memberof FcbSmsGridDto\n */\n statut?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsGridDto\n */\n anneeScolaire?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbSmsGridDto interface.\n */\nexport function instanceOfFcbSmsGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSmsGridDtoFromJSON(json: any): FcbSmsGridDto {\n return FcbSmsGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSmsGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSmsGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'message': !exists(json, 'message') ? undefined : json['message'],\n 'dateEnvoi': !exists(json, 'dateEnvoi') ? undefined : (new Date(json['dateEnvoi'])),\n 'statut': !exists(json, 'statut') ? undefined : json['statut'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n };\n}\n\nexport function FcbSmsGridDtoToJSON(value?: FcbSmsGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'message': value.message,\n 'dateEnvoi': value.dateEnvoi === undefined ? undefined : (value.dateEnvoi.toISOString()),\n 'statut': value.statut,\n 'anneeScolaire': value.anneeScolaire,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbSmsGridDto } from './FcbSmsGridDto';\nimport {\n FcbSmsGridDtoFromJSON,\n FcbSmsGridDtoFromJSONTyped,\n FcbSmsGridDtoToJSON,\n} from './FcbSmsGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbSmsGridDtoPaginatedResults\n */\nexport interface FcbSmsGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbSmsGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbSmsGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbSmsGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbSmsGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbSmsGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSmsGridDtoPaginatedResultsFromJSON(json: any): FcbSmsGridDtoPaginatedResults {\n return FcbSmsGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbSmsGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSmsGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbSmsGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbSmsGridDtoPaginatedResultsToJSON(value?: FcbSmsGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbSmsGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSmsSuiviGridDto\n */\nexport interface FcbSmsSuiviGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbSmsSuiviGridDto\n */\n idlot?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsSuiviGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsSuiviGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSmsSuiviGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsSuiviGridDto\n */\n numero?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsSuiviGridDto\n */\n statut?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbSmsSuiviGridDto interface.\n */\nexport function instanceOfFcbSmsSuiviGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSmsSuiviGridDtoFromJSON(json: any): FcbSmsSuiviGridDto {\n return FcbSmsSuiviGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSmsSuiviGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSmsSuiviGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlot': !exists(json, 'idlot') ? undefined : json['idlot'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'statut': !exists(json, 'statut') ? undefined : json['statut'],\n };\n}\n\nexport function FcbSmsSuiviGridDtoToJSON(value?: FcbSmsSuiviGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlot': value.idlot,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'numero': value.numero,\n 'statut': value.statut,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbSmsSuiviGridDto } from './FcbSmsSuiviGridDto';\nimport {\n FcbSmsSuiviGridDtoFromJSON,\n FcbSmsSuiviGridDtoFromJSONTyped,\n FcbSmsSuiviGridDtoToJSON,\n} from './FcbSmsSuiviGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbSmsSuiviGridDtoPaginatedResults\n */\nexport interface FcbSmsSuiviGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbSmsSuiviGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbSmsSuiviGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbSmsSuiviGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbSmsSuiviGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbSmsSuiviGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSmsSuiviGridDtoPaginatedResultsFromJSON(json: any): FcbSmsSuiviGridDtoPaginatedResults {\n return FcbSmsSuiviGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbSmsSuiviGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSmsSuiviGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbSmsSuiviGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbSmsSuiviGridDtoPaginatedResultsToJSON(value?: FcbSmsSuiviGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbSmsSuiviGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ETypeDestinataireSms } from './ETypeDestinataireSms';\nimport {\n ETypeDestinataireSmsFromJSON,\n ETypeDestinataireSmsFromJSONTyped,\n ETypeDestinataireSmsToJSON,\n} from './ETypeDestinataireSms';\n\n/**\n * \n * @export\n * @interface FcbSmsUtilitaireDetailDto\n */\nexport interface FcbSmsUtilitaireDetailDto {\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n modificationUserName?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n recipientIds?: Array | null;\n /**\n * \n * @type {ETypeDestinataireSms}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n typeRecipient?: ETypeDestinataireSms;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n idlot?: number;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n idcentre?: number;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n idetat?: number;\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n message?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n dateEnvoi?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n idtype?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n coutsms?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireDetailDto\n */\n nbDestinataires?: number;\n}\n\n/**\n * Check if a given object implements the FcbSmsUtilitaireDetailDto interface.\n */\nexport function instanceOfFcbSmsUtilitaireDetailDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSmsUtilitaireDetailDtoFromJSON(json: any): FcbSmsUtilitaireDetailDto {\n return FcbSmsUtilitaireDetailDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSmsUtilitaireDetailDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSmsUtilitaireDetailDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'modificationUserName': !exists(json, 'modificationUserName') ? undefined : json['modificationUserName'],\n 'recipientIds': !exists(json, 'recipientIds') ? undefined : json['recipientIds'],\n 'typeRecipient': !exists(json, 'typeRecipient') ? undefined : ETypeDestinataireSmsFromJSON(json['typeRecipient']),\n 'idlot': !exists(json, 'idlot') ? undefined : json['idlot'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idetat': !exists(json, 'idetat') ? undefined : json['idetat'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'message': !exists(json, 'message') ? undefined : json['message'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'dateEnvoi': !exists(json, 'dateEnvoi') ? undefined : (json['dateEnvoi'] === null ? null : new Date(json['dateEnvoi'])),\n 'idtype': !exists(json, 'idtype') ? undefined : json['idtype'],\n 'coutsms': !exists(json, 'coutsms') ? undefined : json['coutsms'],\n 'nbDestinataires': !exists(json, 'nbDestinataires') ? undefined : json['nbDestinataires'],\n };\n}\n\nexport function FcbSmsUtilitaireDetailDtoToJSON(value?: FcbSmsUtilitaireDetailDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'creationUserName': value.creationUserName,\n 'modificationUserName': value.modificationUserName,\n 'recipientIds': value.recipientIds,\n 'typeRecipient': ETypeDestinataireSmsToJSON(value.typeRecipient),\n 'idlot': value.idlot,\n 'idcentre': value.idcentre,\n 'idetat': value.idetat,\n 'description': value.description,\n 'message': value.message,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'creationUser': value.creationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'dateEnvoi': value.dateEnvoi === undefined ? undefined : (value.dateEnvoi === null ? null : value.dateEnvoi.toISOString()),\n 'idtype': value.idtype,\n 'coutsms': value.coutsms,\n 'nbDestinataires': value.nbDestinataires,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSmsUtilitaireGridDto\n */\nexport interface FcbSmsUtilitaireGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireGridDto\n */\n type?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireGridDto\n */\n description?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSmsUtilitaireGridDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSmsUtilitaireGridDto\n */\n dateEnvoi?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireGridDto\n */\n etat?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireGridDto\n */\n nbredestinataire?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireGridDto\n */\n nbreenvoye?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireGridDto\n */\n nbreerreur?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireGridDto\n */\n message?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireGridDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbSmsUtilitaireGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireGridDto\n */\n idlot?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbSmsUtilitaireGridDto interface.\n */\nexport function instanceOfFcbSmsUtilitaireGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSmsUtilitaireGridDtoFromJSON(json: any): FcbSmsUtilitaireGridDto {\n return FcbSmsUtilitaireGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSmsUtilitaireGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSmsUtilitaireGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'dateEnvoi': !exists(json, 'dateEnvoi') ? undefined : (json['dateEnvoi'] === null ? null : new Date(json['dateEnvoi'])),\n 'etat': !exists(json, 'etat') ? undefined : json['etat'],\n 'nbredestinataire': !exists(json, 'nbredestinataire') ? undefined : json['nbredestinataire'],\n 'nbreenvoye': !exists(json, 'nbreenvoye') ? undefined : json['nbreenvoye'],\n 'nbreerreur': !exists(json, 'nbreerreur') ? undefined : json['nbreerreur'],\n 'message': !exists(json, 'message') ? undefined : json['message'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'idlot': !exists(json, 'idlot') ? undefined : json['idlot'],\n };\n}\n\nexport function FcbSmsUtilitaireGridDtoToJSON(value?: FcbSmsUtilitaireGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': value.code,\n 'type': value.type,\n 'description': value.description,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'dateEnvoi': value.dateEnvoi === undefined ? undefined : (value.dateEnvoi === null ? null : value.dateEnvoi.toISOString()),\n 'etat': value.etat,\n 'nbredestinataire': value.nbredestinataire,\n 'nbreenvoye': value.nbreenvoye,\n 'nbreerreur': value.nbreerreur,\n 'message': value.message,\n 'idcentre': value.idcentre,\n 'nom': value.nom,\n 'idlot': value.idlot,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbSmsUtilitaireGridDto } from './FcbSmsUtilitaireGridDto';\nimport {\n FcbSmsUtilitaireGridDtoFromJSON,\n FcbSmsUtilitaireGridDtoFromJSONTyped,\n FcbSmsUtilitaireGridDtoToJSON,\n} from './FcbSmsUtilitaireGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbSmsUtilitaireGridDtoPaginatedResults\n */\nexport interface FcbSmsUtilitaireGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbSmsUtilitaireGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbSmsUtilitaireGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbSmsUtilitaireGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbSmsUtilitaireGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbSmsUtilitaireGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSmsUtilitaireGridDtoPaginatedResultsFromJSON(json: any): FcbSmsUtilitaireGridDtoPaginatedResults {\n return FcbSmsUtilitaireGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbSmsUtilitaireGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSmsUtilitaireGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbSmsUtilitaireGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbSmsUtilitaireGridDtoPaginatedResultsToJSON(value?: FcbSmsUtilitaireGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbSmsUtilitaireGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSoldeGridDto\n */\nexport interface FcbSoldeGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbSoldeGridDto\n */\n nomCentre?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSoldeGridDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbSoldeGridDto\n */\n totalMontantDu?: number;\n /**\n * \n * @type {number}\n * @memberof FcbSoldeGridDto\n */\n totalMontantPaye?: number;\n /**\n * \n * @type {number}\n * @memberof FcbSoldeGridDto\n */\n totalMinerval?: number;\n /**\n * \n * @type {number}\n * @memberof FcbSoldeGridDto\n */\n idcentre?: number;\n}\n\n/**\n * Check if a given object implements the FcbSoldeGridDto interface.\n */\nexport function instanceOfFcbSoldeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSoldeGridDtoFromJSON(json: any): FcbSoldeGridDto {\n return FcbSoldeGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSoldeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSoldeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nomCentre': !exists(json, 'nomCentre') ? undefined : json['nomCentre'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'totalMontantDu': !exists(json, 'totalMontantDu') ? undefined : json['totalMontantDu'],\n 'totalMontantPaye': !exists(json, 'totalMontantPaye') ? undefined : json['totalMontantPaye'],\n 'totalMinerval': !exists(json, 'totalMinerval') ? undefined : json['totalMinerval'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n };\n}\n\nexport function FcbSoldeGridDtoToJSON(value?: FcbSoldeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nomCentre': value.nomCentre,\n 'anneeScolaire': value.anneeScolaire,\n 'totalMontantDu': value.totalMontantDu,\n 'totalMontantPaye': value.totalMontantPaye,\n 'totalMinerval': value.totalMinerval,\n 'idcentre': value.idcentre,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbSoldeGridDto } from './FcbSoldeGridDto';\nimport {\n FcbSoldeGridDtoFromJSON,\n FcbSoldeGridDtoFromJSONTyped,\n FcbSoldeGridDtoToJSON,\n} from './FcbSoldeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbSoldeGridDtoPaginatedResults\n */\nexport interface FcbSoldeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbSoldeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbSoldeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbSoldeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbSoldeGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbSoldeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSoldeGridDtoPaginatedResultsFromJSON(json: any): FcbSoldeGridDtoPaginatedResults {\n return FcbSoldeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbSoldeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSoldeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbSoldeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbSoldeGridDtoPaginatedResultsToJSON(value?: FcbSoldeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbSoldeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSpecificiteCoursDto\n */\nexport interface FcbSpecificiteCoursDto {\n /**\n * \n * @type {string}\n * @memberof FcbSpecificiteCoursDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSpecificiteCoursDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbSpecificiteCoursDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbSpecificiteCoursDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbSpecificiteCoursDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSpecificiteCoursDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbSpecificiteCoursDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbSpecificiteCoursDto\n */\n isCompanySearch?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbSpecificiteCoursDto interface.\n */\nexport function instanceOfFcbSpecificiteCoursDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSpecificiteCoursDtoFromJSON(json: any): FcbSpecificiteCoursDto {\n return FcbSpecificiteCoursDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSpecificiteCoursDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSpecificiteCoursDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'isCompanySearch': !exists(json, 'isCompanySearch') ? undefined : json['isCompanySearch'],\n };\n}\n\nexport function FcbSpecificiteCoursDtoToJSON(value?: FcbSpecificiteCoursDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': value.code,\n 'libelle': value.libelle,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'actif': value.actif,\n 'isCompanySearch': value.isCompanySearch,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbSpecificiteCoursGridDto\n */\nexport interface FcbSpecificiteCoursGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbSpecificiteCoursGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSpecificiteCoursGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbSpecificiteCoursGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbSpecificiteCoursGridDto\n */\n isCompanySearch?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbSpecificiteCoursGridDto interface.\n */\nexport function instanceOfFcbSpecificiteCoursGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSpecificiteCoursGridDtoFromJSON(json: any): FcbSpecificiteCoursGridDto {\n return FcbSpecificiteCoursGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSpecificiteCoursGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSpecificiteCoursGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'isCompanySearch': !exists(json, 'isCompanySearch') ? undefined : json['isCompanySearch'],\n };\n}\n\nexport function FcbSpecificiteCoursGridDtoToJSON(value?: FcbSpecificiteCoursGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': value.code,\n 'libelle': value.libelle,\n 'actif': value.actif,\n 'isCompanySearch': value.isCompanySearch,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbSpecificiteCoursGridDto } from './FcbSpecificiteCoursGridDto';\nimport {\n FcbSpecificiteCoursGridDtoFromJSON,\n FcbSpecificiteCoursGridDtoFromJSONTyped,\n FcbSpecificiteCoursGridDtoToJSON,\n} from './FcbSpecificiteCoursGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbSpecificiteCoursGridDtoPaginatedResults\n */\nexport interface FcbSpecificiteCoursGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbSpecificiteCoursGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbSpecificiteCoursGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbSpecificiteCoursGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbSpecificiteCoursGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbSpecificiteCoursGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSpecificiteCoursGridDtoPaginatedResultsFromJSON(json: any): FcbSpecificiteCoursGridDtoPaginatedResults {\n return FcbSpecificiteCoursGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbSpecificiteCoursGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSpecificiteCoursGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbSpecificiteCoursGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbSpecificiteCoursGridDtoPaginatedResultsToJSON(value?: FcbSpecificiteCoursGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbSpecificiteCoursGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbStadeDto\n */\nexport interface FcbStadeDto {\n /**\n * \n * @type {number}\n * @memberof FcbStadeDto\n */\n idstade?: number;\n /**\n * \n * @type {string}\n * @memberof FcbStadeDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbStadeDto\n */\n description?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbStadeDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbStadeDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbStadeDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbStadeDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbStadeDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbStadeDto\n */\n acquisIfapme?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbStadeDto interface.\n */\nexport function instanceOfFcbStadeDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbStadeDtoFromJSON(json: any): FcbStadeDto {\n return FcbStadeDtoFromJSONTyped(json, false);\n}\n\nexport function FcbStadeDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbStadeDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'acquisIfapme': !exists(json, 'acquisIfapme') ? undefined : json['acquisIfapme'],\n };\n}\n\nexport function FcbStadeDtoToJSON(value?: FcbStadeDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idstade': value.idstade,\n 'code': value.code,\n 'description': value.description,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'creationUser': value.creationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'actif': value.actif,\n 'acquisIfapme': value.acquisIfapme,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbStadeGridDto\n */\nexport interface FcbStadeGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbStadeGridDto\n */\n idstade?: number;\n /**\n * \n * @type {string}\n * @memberof FcbStadeGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbStadeGridDto\n */\n description?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbStadeGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbStadeGridDto\n */\n acquisIfapme?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbStadeGridDto interface.\n */\nexport function instanceOfFcbStadeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbStadeGridDtoFromJSON(json: any): FcbStadeGridDto {\n return FcbStadeGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbStadeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbStadeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idstade': !exists(json, 'idstade') ? undefined : json['idstade'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'acquisIfapme': !exists(json, 'acquisIfapme') ? undefined : json['acquisIfapme'],\n };\n}\n\nexport function FcbStadeGridDtoToJSON(value?: FcbStadeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idstade': value.idstade,\n 'code': value.code,\n 'description': value.description,\n 'actif': value.actif,\n 'acquisIfapme': value.acquisIfapme,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbStadeGridDto } from './FcbStadeGridDto';\nimport {\n FcbStadeGridDtoFromJSON,\n FcbStadeGridDtoFromJSONTyped,\n FcbStadeGridDtoToJSON,\n} from './FcbStadeGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbStadeGridDtoPaginatedResults\n */\nexport interface FcbStadeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbStadeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbStadeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbStadeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbStadeGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbStadeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbStadeGridDtoPaginatedResultsFromJSON(json: any): FcbStadeGridDtoPaginatedResults {\n return FcbStadeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbStadeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbStadeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbStadeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbStadeGridDtoPaginatedResultsToJSON(value?: FcbStadeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbStadeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbStatutSocialDto\n */\nexport interface FcbStatutSocialDto {\n /**\n * \n * @type {number}\n * @memberof FcbStatutSocialDto\n */\n idstatutSocial?: number;\n /**\n * \n * @type {string}\n * @memberof FcbStatutSocialDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbStatutSocialDto\n */\n idstatutSocialGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbStatutSocialDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbStatutSocialDto interface.\n */\nexport function instanceOfFcbStatutSocialDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbStatutSocialDtoFromJSON(json: any): FcbStatutSocialDto {\n return FcbStatutSocialDtoFromJSONTyped(json, false);\n}\n\nexport function FcbStatutSocialDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbStatutSocialDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idstatutSocial': !exists(json, 'idstatutSocial') ? undefined : json['idstatutSocial'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idstatutSocialGuid': !exists(json, 'idstatutSocialGuid') ? undefined : json['idstatutSocialGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbStatutSocialDtoToJSON(value?: FcbStatutSocialDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idstatutSocial': value.idstatutSocial,\n 'libelle': value.libelle,\n 'idstatutSocialGuid': value.idstatutSocialGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbStatutSocialGridDto\n */\nexport interface FcbStatutSocialGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbStatutSocialGridDto\n */\n idstatutSocial?: number;\n /**\n * \n * @type {string}\n * @memberof FcbStatutSocialGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbStatutSocialGridDto\n */\n idstatutSocialGuid?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbStatutSocialGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbStatutSocialGridDto interface.\n */\nexport function instanceOfFcbStatutSocialGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbStatutSocialGridDtoFromJSON(json: any): FcbStatutSocialGridDto {\n return FcbStatutSocialGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbStatutSocialGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbStatutSocialGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idstatutSocial': !exists(json, 'idstatutSocial') ? undefined : json['idstatutSocial'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'idstatutSocialGuid': !exists(json, 'idstatutSocialGuid') ? undefined : json['idstatutSocialGuid'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbStatutSocialGridDtoToJSON(value?: FcbStatutSocialGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idstatutSocial': value.idstatutSocial,\n 'libelle': value.libelle,\n 'idstatutSocialGuid': value.idstatutSocialGuid,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbStatutSocialGridDto } from './FcbStatutSocialGridDto';\nimport {\n FcbStatutSocialGridDtoFromJSON,\n FcbStatutSocialGridDtoFromJSONTyped,\n FcbStatutSocialGridDtoToJSON,\n} from './FcbStatutSocialGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbStatutSocialGridDtoPaginatedResults\n */\nexport interface FcbStatutSocialGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbStatutSocialGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbStatutSocialGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbStatutSocialGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbStatutSocialGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbStatutSocialGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbStatutSocialGridDtoPaginatedResultsFromJSON(json: any): FcbStatutSocialGridDtoPaginatedResults {\n return FcbStatutSocialGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbStatutSocialGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbStatutSocialGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbStatutSocialGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbStatutSocialGridDtoPaginatedResultsToJSON(value?: FcbStatutSocialGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbStatutSocialGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface SuiviApprenantActionEditDto\n */\nexport interface SuiviApprenantActionEditDto {\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantActionEditDto\n */\n idsuiviApprenantAction?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantActionEditDto\n */\n idsuiviApprenant?: number | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviApprenantActionEditDto\n */\n dateEcheance?: Date;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantActionEditDto\n */\n idtypeSuiviAction?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantActionEditDto\n */\n idcollaborateurCentre?: number;\n /**\n * \n * @type {Date}\n * @memberof SuiviApprenantActionEditDto\n */\n dateRealisation?: Date | null;\n /**\n * \n * @type {string}\n * @memberof SuiviApprenantActionEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantActionEditDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof SuiviApprenantActionEditDto\n */\n fichier?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the SuiviApprenantActionEditDto interface.\n */\nexport function instanceOfSuiviApprenantActionEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviApprenantActionEditDtoFromJSON(json: any): SuiviApprenantActionEditDto {\n return SuiviApprenantActionEditDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviApprenantActionEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviApprenantActionEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuiviApprenantAction': !exists(json, 'idsuiviApprenantAction') ? undefined : json['idsuiviApprenantAction'],\n 'idsuiviApprenant': !exists(json, 'idsuiviApprenant') ? undefined : json['idsuiviApprenant'],\n 'dateEcheance': !exists(json, 'dateEcheance') ? undefined : (new Date(json['dateEcheance'])),\n 'idtypeSuiviAction': !exists(json, 'idtypeSuiviAction') ? undefined : json['idtypeSuiviAction'],\n 'idcollaborateurCentre': !exists(json, 'idcollaborateurCentre') ? undefined : json['idcollaborateurCentre'],\n 'dateRealisation': !exists(json, 'dateRealisation') ? undefined : (json['dateRealisation'] === null ? null : new Date(json['dateRealisation'])),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fichier': !exists(json, 'fichier') ? undefined : FileUploadDtoFromJSON(json['fichier']),\n };\n}\n\nexport function SuiviApprenantActionEditDtoToJSON(value?: SuiviApprenantActionEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuiviApprenantAction': value.idsuiviApprenantAction,\n 'idsuiviApprenant': value.idsuiviApprenant,\n 'dateEcheance': value.dateEcheance === undefined ? undefined : (value.dateEcheance.toISOString()),\n 'idtypeSuiviAction': value.idtypeSuiviAction,\n 'idcollaborateurCentre': value.idcollaborateurCentre,\n 'dateRealisation': value.dateRealisation === undefined ? undefined : (value.dateRealisation === null ? null : value.dateRealisation.toISOString()),\n 'remarque': value.remarque,\n 'idfichier': value.idfichier,\n 'fichier': FileUploadDtoToJSON(value.fichier),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SuiviApprenantFichierGridDto\n */\nexport interface SuiviApprenantFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierGridDto\n */\n idsuiviApprenantFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierGridDto\n */\n idtypeSuiviFichier?: number;\n /**\n * \n * @type {string}\n * @memberof SuiviApprenantFichierGridDto\n */\n typeSuiviFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviApprenantFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviApprenantFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviApprenantFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the SuiviApprenantFichierGridDto interface.\n */\nexport function instanceOfSuiviApprenantFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviApprenantFichierGridDtoFromJSON(json: any): SuiviApprenantFichierGridDto {\n return SuiviApprenantFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviApprenantFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviApprenantFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuiviApprenantFichier': !exists(json, 'idsuiviApprenantFichier') ? undefined : json['idsuiviApprenantFichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'typeSuiviFichier': !exists(json, 'typeSuiviFichier') ? undefined : json['typeSuiviFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function SuiviApprenantFichierGridDtoToJSON(value?: SuiviApprenantFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuiviApprenantFichier': value.idsuiviApprenantFichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'typeSuiviFichier': value.typeSuiviFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EContentHidingMode } from './EContentHidingMode';\nimport {\n EContentHidingModeFromJSON,\n EContentHidingModeFromJSONTyped,\n EContentHidingModeToJSON,\n} from './EContentHidingMode';\nimport type { SuiviApprenantActionEditDto } from './SuiviApprenantActionEditDto';\nimport {\n SuiviApprenantActionEditDtoFromJSON,\n SuiviApprenantActionEditDtoFromJSONTyped,\n SuiviApprenantActionEditDtoToJSON,\n} from './SuiviApprenantActionEditDto';\nimport type { SuiviApprenantFichierGridDto } from './SuiviApprenantFichierGridDto';\nimport {\n SuiviApprenantFichierGridDtoFromJSON,\n SuiviApprenantFichierGridDtoFromJSONTyped,\n SuiviApprenantFichierGridDtoToJSON,\n} from './SuiviApprenantFichierGridDto';\n\n/**\n * \n * @export\n * @interface FcbSuiviApprenantDetailsDto\n */\nexport interface FcbSuiviApprenantDetailsDto {\n /**\n * \n * @type {string}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n utilisateur?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n action?: boolean;\n /**\n * \n * @type {SuiviApprenantActionEditDto}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n suiviAction?: SuiviApprenantActionEditDto;\n /**\n * \n * @type {Array}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n fichiers?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idsuiviApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idapprenant?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n dateSuivi?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n description?: string | null;\n /**\n * \n * @type {EContentHidingMode}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n contentHidingMode?: EContentHidingMode;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idlieu?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n dateRealisation?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n datePrevue?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n executeur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n referenceExterne?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idrealisateurSuivi?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idmode?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idsousTypeSuivi?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantDetailsDto\n */\n idtypeSuivi?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbSuiviApprenantDetailsDto interface.\n */\nexport function instanceOfFcbSuiviApprenantDetailsDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSuiviApprenantDetailsDtoFromJSON(json: any): FcbSuiviApprenantDetailsDto {\n return FcbSuiviApprenantDetailsDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSuiviApprenantDetailsDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSuiviApprenantDetailsDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'utilisateur': !exists(json, 'utilisateur') ? undefined : json['utilisateur'],\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'suiviAction': !exists(json, 'suiviAction') ? undefined : SuiviApprenantActionEditDtoFromJSON(json['suiviAction']),\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(SuiviApprenantFichierGridDtoFromJSON)),\n 'idsuiviApprenant': !exists(json, 'idsuiviApprenant') ? undefined : json['idsuiviApprenant'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : (json['dateSuivi'] === null ? null : new Date(json['dateSuivi'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'contentHidingMode': !exists(json, 'contentHidingMode') ? undefined : EContentHidingModeFromJSON(json['contentHidingMode']),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'idlieu': !exists(json, 'idlieu') ? undefined : json['idlieu'],\n 'dateRealisation': !exists(json, 'dateRealisation') ? undefined : (json['dateRealisation'] === null ? null : new Date(json['dateRealisation'])),\n 'datePrevue': !exists(json, 'datePrevue') ? undefined : (json['datePrevue'] === null ? null : new Date(json['datePrevue'])),\n 'executeur': !exists(json, 'executeur') ? undefined : json['executeur'],\n 'referenceExterne': !exists(json, 'referenceExterne') ? undefined : json['referenceExterne'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idrealisateurSuivi': !exists(json, 'idrealisateurSuivi') ? undefined : json['idrealisateurSuivi'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idmode': !exists(json, 'idmode') ? undefined : json['idmode'],\n 'idsousTypeSuivi': !exists(json, 'idsousTypeSuivi') ? undefined : json['idsousTypeSuivi'],\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : json['idtypeSuivi'],\n };\n}\n\nexport function FcbSuiviApprenantDetailsDtoToJSON(value?: FcbSuiviApprenantDetailsDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'utilisateur': value.utilisateur,\n 'action': value.action,\n 'suiviAction': SuiviApprenantActionEditDtoToJSON(value.suiviAction),\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(SuiviApprenantFichierGridDtoToJSON)),\n 'idsuiviApprenant': value.idsuiviApprenant,\n 'idclasse': value.idclasse,\n 'idapprenant': value.idapprenant,\n 'dateSuivi': value.dateSuivi === undefined ? undefined : (value.dateSuivi === null ? null : value.dateSuivi.toISOString()),\n 'description': value.description,\n 'contentHidingMode': EContentHidingModeToJSON(value.contentHidingMode),\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'idlieu': value.idlieu,\n 'dateRealisation': value.dateRealisation === undefined ? undefined : (value.dateRealisation === null ? null : value.dateRealisation.toISOString()),\n 'datePrevue': value.datePrevue === undefined ? undefined : (value.datePrevue === null ? null : value.datePrevue.toISOString()),\n 'executeur': value.executeur,\n 'referenceExterne': value.referenceExterne,\n 'idcentre': value.idcentre,\n 'idrealisateurSuivi': value.idrealisateurSuivi,\n 'idformateur': value.idformateur,\n 'idmode': value.idmode,\n 'idsousTypeSuivi': value.idsousTypeSuivi,\n 'idtypeSuivi': value.idtypeSuivi,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EContentHidingMode } from './EContentHidingMode';\nimport {\n EContentHidingModeFromJSON,\n EContentHidingModeFromJSONTyped,\n EContentHidingModeToJSON,\n} from './EContentHidingMode';\n\n/**\n * \n * @export\n * @interface FcbSuiviApprenantGridDto\n */\nexport interface FcbSuiviApprenantGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantGridDto\n */\n idsuiviApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantGridDto\n */\n idclasse?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbSuiviApprenantGridDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSuiviApprenantGridDto\n */\n description?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FcbSuiviApprenantGridDto\n */\n dateSuivi?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantGridDto\n */\n creationUser?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbSuiviApprenantGridDto\n */\n types?: Array | null;\n /**\n * \n * @type {EContentHidingMode}\n * @memberof FcbSuiviApprenantGridDto\n */\n contentHidingMode?: EContentHidingMode;\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantGridDto\n */\n idlieu?: number;\n /**\n * \n * @type {string}\n * @memberof FcbSuiviApprenantGridDto\n */\n lieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbSuiviApprenantGridDto\n */\n utilisateur?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbSuiviApprenantGridDto\n */\n fromHope?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbSuiviApprenantGridDto interface.\n */\nexport function instanceOfFcbSuiviApprenantGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSuiviApprenantGridDtoFromJSON(json: any): FcbSuiviApprenantGridDto {\n return FcbSuiviApprenantGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbSuiviApprenantGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSuiviApprenantGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuiviApprenant': !exists(json, 'idsuiviApprenant') ? undefined : json['idsuiviApprenant'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : (json['dateSuivi'] === null ? null : new Date(json['dateSuivi'])),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'types': !exists(json, 'types') ? undefined : json['types'],\n 'contentHidingMode': !exists(json, 'contentHidingMode') ? undefined : EContentHidingModeFromJSON(json['contentHidingMode']),\n 'idlieu': !exists(json, 'idlieu') ? undefined : json['idlieu'],\n 'lieu': !exists(json, 'lieu') ? undefined : json['lieu'],\n 'utilisateur': !exists(json, 'utilisateur') ? undefined : json['utilisateur'],\n 'fromHope': !exists(json, 'fromHope') ? undefined : json['fromHope'],\n };\n}\n\nexport function FcbSuiviApprenantGridDtoToJSON(value?: FcbSuiviApprenantGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuiviApprenant': value.idsuiviApprenant,\n 'idapprenant': value.idapprenant,\n 'idclasse': value.idclasse,\n 'classe': value.classe,\n 'description': value.description,\n 'dateSuivi': value.dateSuivi === undefined ? undefined : (value.dateSuivi === null ? null : value.dateSuivi.toISOString()),\n 'creationUser': value.creationUser,\n 'types': value.types,\n 'contentHidingMode': EContentHidingModeToJSON(value.contentHidingMode),\n 'idlieu': value.idlieu,\n 'lieu': value.lieu,\n 'utilisateur': value.utilisateur,\n 'fromHope': value.fromHope,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbSuiviApprenantGridDto } from './FcbSuiviApprenantGridDto';\nimport {\n FcbSuiviApprenantGridDtoFromJSON,\n FcbSuiviApprenantGridDtoFromJSONTyped,\n FcbSuiviApprenantGridDtoToJSON,\n} from './FcbSuiviApprenantGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbSuiviApprenantGridDtoPaginatedResults\n */\nexport interface FcbSuiviApprenantGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbSuiviApprenantGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbSuiviApprenantGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbSuiviApprenantGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbSuiviApprenantGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbSuiviApprenantGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbSuiviApprenantGridDtoPaginatedResultsFromJSON(json: any): FcbSuiviApprenantGridDtoPaginatedResults {\n return FcbSuiviApprenantGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbSuiviApprenantGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbSuiviApprenantGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbSuiviApprenantGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbSuiviApprenantGridDtoPaginatedResultsToJSON(value?: FcbSuiviApprenantGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbSuiviApprenantGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbTitrePedagogiqueDto\n */\nexport interface FcbTitrePedagogiqueDto {\n /**\n * \n * @type {number}\n * @memberof FcbTitrePedagogiqueDto\n */\n idtitre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbTitrePedagogiqueDto\n */\n libelle?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbTitrePedagogiqueDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbTitrePedagogiqueDto interface.\n */\nexport function instanceOfFcbTitrePedagogiqueDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTitrePedagogiqueDtoFromJSON(json: any): FcbTitrePedagogiqueDto {\n return FcbTitrePedagogiqueDtoFromJSONTyped(json, false);\n}\n\nexport function FcbTitrePedagogiqueDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTitrePedagogiqueDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtitre': !exists(json, 'idtitre') ? undefined : json['idtitre'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbTitrePedagogiqueDtoToJSON(value?: FcbTitrePedagogiqueDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtitre': value.idtitre,\n 'libelle': value.libelle,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbTitrePedagogiqueDto } from './FcbTitrePedagogiqueDto';\nimport {\n FcbTitrePedagogiqueDtoFromJSON,\n FcbTitrePedagogiqueDtoFromJSONTyped,\n FcbTitrePedagogiqueDtoToJSON,\n} from './FcbTitrePedagogiqueDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbTitrePedagogiqueDtoPaginatedResults\n */\nexport interface FcbTitrePedagogiqueDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbTitrePedagogiqueDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbTitrePedagogiqueDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbTitrePedagogiqueDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbTitrePedagogiqueDtoPaginatedResults interface.\n */\nexport function instanceOfFcbTitrePedagogiqueDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTitrePedagogiqueDtoPaginatedResultsFromJSON(json: any): FcbTitrePedagogiqueDtoPaginatedResults {\n return FcbTitrePedagogiqueDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbTitrePedagogiqueDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTitrePedagogiqueDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbTitrePedagogiqueDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbTitrePedagogiqueDtoPaginatedResultsToJSON(value?: FcbTitrePedagogiqueDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbTitrePedagogiqueDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbTypeCoursDto\n */\nexport interface FcbTypeCoursDto {\n /**\n * \n * @type {string}\n * @memberof FcbTypeCoursDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbTypeCoursDto\n */\n libelle?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbTypeCoursDto\n */\n creationUser?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbTypeCoursDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof FcbTypeCoursDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbTypeCoursDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbTypeCoursDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbTypeCoursDto\n */\n typeCoursId?: number;\n /**\n * \n * @type {boolean}\n * @memberof FcbTypeCoursDto\n */\n acquisIfapme?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbTypeCoursDto interface.\n */\nexport function instanceOfFcbTypeCoursDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeCoursDtoFromJSON(json: any): FcbTypeCoursDto {\n return FcbTypeCoursDtoFromJSONTyped(json, false);\n}\n\nexport function FcbTypeCoursDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeCoursDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'typeCoursId': !exists(json, 'typeCoursId') ? undefined : json['typeCoursId'],\n 'acquisIfapme': !exists(json, 'acquisIfapme') ? undefined : json['acquisIfapme'],\n };\n}\n\nexport function FcbTypeCoursDtoToJSON(value?: FcbTypeCoursDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': value.code,\n 'libelle': value.libelle,\n 'creationUser': value.creationUser,\n 'actif': value.actif,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'typeCoursId': value.typeCoursId,\n 'acquisIfapme': value.acquisIfapme,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbTypeCoursGridDto\n */\nexport interface FcbTypeCoursGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbTypeCoursGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbTypeCoursGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbTypeCoursGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbTypeCoursGridDto\n */\n acquisIfapme?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbTypeCoursGridDto interface.\n */\nexport function instanceOfFcbTypeCoursGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeCoursGridDtoFromJSON(json: any): FcbTypeCoursGridDto {\n return FcbTypeCoursGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbTypeCoursGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeCoursGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'acquisIfapme': !exists(json, 'acquisIfapme') ? undefined : json['acquisIfapme'],\n };\n}\n\nexport function FcbTypeCoursGridDtoToJSON(value?: FcbTypeCoursGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': value.code,\n 'libelle': value.libelle,\n 'actif': value.actif,\n 'acquisIfapme': value.acquisIfapme,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbTypeCoursGridDto } from './FcbTypeCoursGridDto';\nimport {\n FcbTypeCoursGridDtoFromJSON,\n FcbTypeCoursGridDtoFromJSONTyped,\n FcbTypeCoursGridDtoToJSON,\n} from './FcbTypeCoursGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbTypeCoursGridDtoPaginatedResults\n */\nexport interface FcbTypeCoursGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbTypeCoursGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbTypeCoursGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbTypeCoursGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbTypeCoursGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbTypeCoursGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeCoursGridDtoPaginatedResultsFromJSON(json: any): FcbTypeCoursGridDtoPaginatedResults {\n return FcbTypeCoursGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbTypeCoursGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeCoursGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbTypeCoursGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbTypeCoursGridDtoPaginatedResultsToJSON(value?: FcbTypeCoursGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbTypeCoursGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbTypeEnseignementDto\n */\nexport interface FcbTypeEnseignementDto {\n /**\n * \n * @type {number}\n * @memberof FcbTypeEnseignementDto\n */\n idtypeEnseignement?: number;\n /**\n * \n * @type {string}\n * @memberof FcbTypeEnseignementDto\n */\n libelle?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbTypeEnseignementDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbTypeEnseignementDto interface.\n */\nexport function instanceOfFcbTypeEnseignementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeEnseignementDtoFromJSON(json: any): FcbTypeEnseignementDto {\n return FcbTypeEnseignementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbTypeEnseignementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeEnseignementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtypeEnseignement': !exists(json, 'idtypeEnseignement') ? undefined : json['idtypeEnseignement'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbTypeEnseignementDtoToJSON(value?: FcbTypeEnseignementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtypeEnseignement': value.idtypeEnseignement,\n 'libelle': value.libelle,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbTypeEnseignementDto } from './FcbTypeEnseignementDto';\nimport {\n FcbTypeEnseignementDtoFromJSON,\n FcbTypeEnseignementDtoFromJSONTyped,\n FcbTypeEnseignementDtoToJSON,\n} from './FcbTypeEnseignementDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbTypeEnseignementDtoPaginatedResults\n */\nexport interface FcbTypeEnseignementDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbTypeEnseignementDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbTypeEnseignementDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbTypeEnseignementDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbTypeEnseignementDtoPaginatedResults interface.\n */\nexport function instanceOfFcbTypeEnseignementDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeEnseignementDtoPaginatedResultsFromJSON(json: any): FcbTypeEnseignementDtoPaginatedResults {\n return FcbTypeEnseignementDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbTypeEnseignementDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeEnseignementDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbTypeEnseignementDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbTypeEnseignementDtoPaginatedResultsToJSON(value?: FcbTypeEnseignementDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbTypeEnseignementDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbTypeEvaluationDto\n */\nexport interface FcbTypeEvaluationDto {\n /**\n * \n * @type {number}\n * @memberof FcbTypeEvaluationDto\n */\n idevaluationType?: number;\n /**\n * \n * @type {string}\n * @memberof FcbTypeEvaluationDto\n */\n libelle?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbTypeEvaluationDto\n */\n actif?: boolean;\n}\n\n/**\n * Check if a given object implements the FcbTypeEvaluationDto interface.\n */\nexport function instanceOfFcbTypeEvaluationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeEvaluationDtoFromJSON(json: any): FcbTypeEvaluationDto {\n return FcbTypeEvaluationDtoFromJSONTyped(json, false);\n}\n\nexport function FcbTypeEvaluationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeEvaluationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idevaluationType': !exists(json, 'idevaluationType') ? undefined : json['idevaluationType'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbTypeEvaluationDtoToJSON(value?: FcbTypeEvaluationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idevaluationType': value.idevaluationType,\n 'libelle': value.libelle,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbTypeEvaluationDto } from './FcbTypeEvaluationDto';\nimport {\n FcbTypeEvaluationDtoFromJSON,\n FcbTypeEvaluationDtoFromJSONTyped,\n FcbTypeEvaluationDtoToJSON,\n} from './FcbTypeEvaluationDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbTypeEvaluationDtoPaginatedResults\n */\nexport interface FcbTypeEvaluationDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbTypeEvaluationDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbTypeEvaluationDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbTypeEvaluationDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbTypeEvaluationDtoPaginatedResults interface.\n */\nexport function instanceOfFcbTypeEvaluationDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeEvaluationDtoPaginatedResultsFromJSON(json: any): FcbTypeEvaluationDtoPaginatedResults {\n return FcbTypeEvaluationDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbTypeEvaluationDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeEvaluationDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbTypeEvaluationDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbTypeEvaluationDtoPaginatedResultsToJSON(value?: FcbTypeEvaluationDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbTypeEvaluationDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbTypeFinancementDto\n */\nexport interface FcbTypeFinancementDto {\n /**\n * \n * @type {number}\n * @memberof FcbTypeFinancementDto\n */\n idfinancementType?: number;\n /**\n * \n * @type {string}\n * @memberof FcbTypeFinancementDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbTypeFinancementDto\n */\n code?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbTypeFinancementDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbTypeFinancementDto interface.\n */\nexport function instanceOfFcbTypeFinancementDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeFinancementDtoFromJSON(json: any): FcbTypeFinancementDto {\n return FcbTypeFinancementDtoFromJSONTyped(json, false);\n}\n\nexport function FcbTypeFinancementDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeFinancementDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idfinancementType': !exists(json, 'idfinancementType') ? undefined : json['idfinancementType'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbTypeFinancementDtoToJSON(value?: FcbTypeFinancementDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idfinancementType': value.idfinancementType,\n 'libelle': value.libelle,\n 'code': value.code,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbTypeFinancementGridDto\n */\nexport interface FcbTypeFinancementGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbTypeFinancementGridDto\n */\n idfinancementType?: number;\n /**\n * \n * @type {string}\n * @memberof FcbTypeFinancementGridDto\n */\n libelle?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbTypeFinancementGridDto\n */\n code?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbTypeFinancementGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbTypeFinancementGridDto interface.\n */\nexport function instanceOfFcbTypeFinancementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeFinancementGridDtoFromJSON(json: any): FcbTypeFinancementGridDto {\n return FcbTypeFinancementGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbTypeFinancementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeFinancementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idfinancementType': !exists(json, 'idfinancementType') ? undefined : json['idfinancementType'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbTypeFinancementGridDtoToJSON(value?: FcbTypeFinancementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idfinancementType': value.idfinancementType,\n 'libelle': value.libelle,\n 'code': value.code,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbTypeFinancementGridDto } from './FcbTypeFinancementGridDto';\nimport {\n FcbTypeFinancementGridDtoFromJSON,\n FcbTypeFinancementGridDtoFromJSONTyped,\n FcbTypeFinancementGridDtoToJSON,\n} from './FcbTypeFinancementGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbTypeFinancementGridDtoPaginatedResults\n */\nexport interface FcbTypeFinancementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbTypeFinancementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbTypeFinancementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbTypeFinancementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbTypeFinancementGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbTypeFinancementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbTypeFinancementGridDtoPaginatedResultsFromJSON(json: any): FcbTypeFinancementGridDtoPaginatedResults {\n return FcbTypeFinancementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbTypeFinancementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbTypeFinancementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbTypeFinancementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbTypeFinancementGridDtoPaginatedResultsToJSON(value?: FcbTypeFinancementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbTypeFinancementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbUniteActiviteDto\n */\nexport interface FcbUniteActiviteDto {\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n idUnite?: number;\n /**\n * \n * @type {string}\n * @memberof FcbUniteActiviteDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n aaS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n aaS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n abS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n abS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n aiS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n aiS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n ceaS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n ceaS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n cebS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n cebS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n ceiS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n ceiS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n fagS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n fagS2?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n recyclageS1?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDto\n */\n recyclageS2?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbUniteActiviteDto interface.\n */\nexport function instanceOfFcbUniteActiviteDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbUniteActiviteDtoFromJSON(json: any): FcbUniteActiviteDto {\n return FcbUniteActiviteDtoFromJSONTyped(json, false);\n}\n\nexport function FcbUniteActiviteDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbUniteActiviteDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idUnite': !exists(json, 'idUnite') ? undefined : json['idUnite'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'aaS1': !exists(json, 'aaS1') ? undefined : json['aaS1'],\n 'aaS2': !exists(json, 'aaS2') ? undefined : json['aaS2'],\n 'abS1': !exists(json, 'abS1') ? undefined : json['abS1'],\n 'abS2': !exists(json, 'abS2') ? undefined : json['abS2'],\n 'aiS1': !exists(json, 'aiS1') ? undefined : json['aiS1'],\n 'aiS2': !exists(json, 'aiS2') ? undefined : json['aiS2'],\n 'ceaS1': !exists(json, 'ceaS1') ? undefined : json['ceaS1'],\n 'ceaS2': !exists(json, 'ceaS2') ? undefined : json['ceaS2'],\n 'cebS1': !exists(json, 'cebS1') ? undefined : json['cebS1'],\n 'cebS2': !exists(json, 'cebS2') ? undefined : json['cebS2'],\n 'ceiS1': !exists(json, 'ceiS1') ? undefined : json['ceiS1'],\n 'ceiS2': !exists(json, 'ceiS2') ? undefined : json['ceiS2'],\n 'fagS1': !exists(json, 'fagS1') ? undefined : json['fagS1'],\n 'fagS2': !exists(json, 'fagS2') ? undefined : json['fagS2'],\n 'recyclageS1': !exists(json, 'recyclageS1') ? undefined : json['recyclageS1'],\n 'recyclageS2': !exists(json, 'recyclageS2') ? undefined : json['recyclageS2'],\n };\n}\n\nexport function FcbUniteActiviteDtoToJSON(value?: FcbUniteActiviteDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idUnite': value.idUnite,\n 'anneeAcademique': value.anneeAcademique,\n 'aaS1': value.aaS1,\n 'aaS2': value.aaS2,\n 'abS1': value.abS1,\n 'abS2': value.abS2,\n 'aiS1': value.aiS1,\n 'aiS2': value.aiS2,\n 'ceaS1': value.ceaS1,\n 'ceaS2': value.ceaS2,\n 'cebS1': value.cebS1,\n 'cebS2': value.cebS2,\n 'ceiS1': value.ceiS1,\n 'ceiS2': value.ceiS2,\n 'fagS1': value.fagS1,\n 'fagS2': value.fagS2,\n 'recyclageS1': value.recyclageS1,\n 'recyclageS2': value.recyclageS2,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbUniteActiviteDto } from './FcbUniteActiviteDto';\nimport {\n FcbUniteActiviteDtoFromJSON,\n FcbUniteActiviteDtoFromJSONTyped,\n FcbUniteActiviteDtoToJSON,\n} from './FcbUniteActiviteDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbUniteActiviteDtoPaginatedResults\n */\nexport interface FcbUniteActiviteDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbUniteActiviteDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbUniteActiviteDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbUniteActiviteDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbUniteActiviteDtoPaginatedResults interface.\n */\nexport function instanceOfFcbUniteActiviteDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbUniteActiviteDtoPaginatedResultsFromJSON(json: any): FcbUniteActiviteDtoPaginatedResults {\n return FcbUniteActiviteDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbUniteActiviteDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbUniteActiviteDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbUniteActiviteDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbUniteActiviteDtoPaginatedResultsToJSON(value?: FcbUniteActiviteDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbUniteActiviteDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbUserCentresLiesGridDto\n */\nexport interface FcbUserCentresLiesGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbUserCentresLiesGridDto\n */\n idcentre?: number;\n /**\n * \n * @type {string}\n * @memberof FcbUserCentresLiesGridDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbUserCentresLiesGridDto interface.\n */\nexport function instanceOfFcbUserCentresLiesGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbUserCentresLiesGridDtoFromJSON(json: any): FcbUserCentresLiesGridDto {\n return FcbUserCentresLiesGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbUserCentresLiesGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbUserCentresLiesGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function FcbUserCentresLiesGridDtoToJSON(value?: FcbUserCentresLiesGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbUserCentresLiesGridDto } from './FcbUserCentresLiesGridDto';\nimport {\n FcbUserCentresLiesGridDtoFromJSON,\n FcbUserCentresLiesGridDtoFromJSONTyped,\n FcbUserCentresLiesGridDtoToJSON,\n} from './FcbUserCentresLiesGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbUserCentresLiesGridDtoPaginatedResults\n */\nexport interface FcbUserCentresLiesGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbUserCentresLiesGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbUserCentresLiesGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbUserCentresLiesGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbUserCentresLiesGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbUserCentresLiesGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbUserCentresLiesGridDtoPaginatedResultsFromJSON(json: any): FcbUserCentresLiesGridDtoPaginatedResults {\n return FcbUserCentresLiesGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbUserCentresLiesGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbUserCentresLiesGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbUserCentresLiesGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbUserCentresLiesGridDtoPaginatedResultsToJSON(value?: FcbUserCentresLiesGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbUserCentresLiesGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbUserGridDto\n */\nexport interface FcbUserGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbUserGridDto\n */\n iduser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbUserGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbUserGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbUserGridDto\n */\n login?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbUserGridDto\n */\n connecte?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbUserGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the FcbUserGridDto interface.\n */\nexport function instanceOfFcbUserGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbUserGridDtoFromJSON(json: any): FcbUserGridDto {\n return FcbUserGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbUserGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbUserGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'login': !exists(json, 'login') ? undefined : json['login'],\n 'connecte': !exists(json, 'connecte') ? undefined : json['connecte'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function FcbUserGridDtoToJSON(value?: FcbUserGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iduser': value.iduser,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'login': value.login,\n 'connecte': value.connecte,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbUserGridDto } from './FcbUserGridDto';\nimport {\n FcbUserGridDtoFromJSON,\n FcbUserGridDtoFromJSONTyped,\n FcbUserGridDtoToJSON,\n} from './FcbUserGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbUserGridDtoPaginatedResults\n */\nexport interface FcbUserGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbUserGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbUserGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbUserGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbUserGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbUserGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbUserGridDtoPaginatedResultsFromJSON(json: any): FcbUserGridDtoPaginatedResults {\n return FcbUserGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbUserGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbUserGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbUserGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbUserGridDtoPaginatedResultsToJSON(value?: FcbUserGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbUserGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbUsersCentresLiesDto\n */\nexport interface FcbUsersCentresLiesDto {\n /**\n * \n * @type {number}\n * @memberof FcbUsersCentresLiesDto\n */\n idUser?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbUsersCentresLiesDto\n */\n idsCentres?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbUsersCentresLiesDto interface.\n */\nexport function instanceOfFcbUsersCentresLiesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbUsersCentresLiesDtoFromJSON(json: any): FcbUsersCentresLiesDto {\n return FcbUsersCentresLiesDtoFromJSONTyped(json, false);\n}\n\nexport function FcbUsersCentresLiesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbUsersCentresLiesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n 'idsCentres': !exists(json, 'idsCentres') ? undefined : json['idsCentres'],\n };\n}\n\nexport function FcbUsersCentresLiesDtoToJSON(value?: FcbUsersCentresLiesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idUser': value.idUser,\n 'idsCentres': value.idsCentres,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbVisiteClasseDto\n */\nexport interface FcbVisiteClasseDto {\n /**\n * \n * @type {number}\n * @memberof FcbVisiteClasseDto\n */\n idVisite?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbVisiteClasseDto\n */\n idsClasse?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbVisiteClasseDto interface.\n */\nexport function instanceOfFcbVisiteClasseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbVisiteClasseDtoFromJSON(json: any): FcbVisiteClasseDto {\n return FcbVisiteClasseDtoFromJSONTyped(json, false);\n}\n\nexport function FcbVisiteClasseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbVisiteClasseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idVisite': !exists(json, 'idVisite') ? undefined : json['idVisite'],\n 'idsClasse': !exists(json, 'idsClasse') ? undefined : json['idsClasse'],\n };\n}\n\nexport function FcbVisiteClasseDtoToJSON(value?: FcbVisiteClasseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idVisite': value.idVisite,\n 'idsClasse': value.idsClasse,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbVisiteClasseGridDto\n */\nexport interface FcbVisiteClasseGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbVisiteClasseGridDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbVisiteClasseGridDto interface.\n */\nexport function instanceOfFcbVisiteClasseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbVisiteClasseGridDtoFromJSON(json: any): FcbVisiteClasseGridDto {\n return FcbVisiteClasseGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbVisiteClasseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbVisiteClasseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function FcbVisiteClasseGridDtoToJSON(value?: FcbVisiteClasseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbVisiteClasseGridDto } from './FcbVisiteClasseGridDto';\nimport {\n FcbVisiteClasseGridDtoFromJSON,\n FcbVisiteClasseGridDtoFromJSONTyped,\n FcbVisiteClasseGridDtoToJSON,\n} from './FcbVisiteClasseGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbVisiteClasseGridDtoPaginatedResults\n */\nexport interface FcbVisiteClasseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbVisiteClasseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbVisiteClasseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbVisiteClasseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbVisiteClasseGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbVisiteClasseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbVisiteClasseGridDtoPaginatedResultsFromJSON(json: any): FcbVisiteClasseGridDtoPaginatedResults {\n return FcbVisiteClasseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbVisiteClasseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbVisiteClasseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbVisiteClasseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbVisiteClasseGridDtoPaginatedResultsToJSON(value?: FcbVisiteClasseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbVisiteClasseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbVisiteDto\n */\nexport interface FcbVisiteDto {\n /**\n * \n * @type {number}\n * @memberof FcbVisiteDto\n */\n idvisite?: number;\n /**\n * \n * @type {number}\n * @memberof FcbVisiteDto\n */\n idcentre?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbVisiteDto\n */\n dateDemande?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbVisiteDto\n */\n datevisiteDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FcbVisiteDto\n */\n datevisiteFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteDto\n */\n duree?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n accord?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteDto\n */\n contact?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteDto\n */\n coordonnee?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteDto\n */\n lieu?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteDto\n */\n raison?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure1?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure2?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure3?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure4?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure5?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure6?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure7?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure8?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure9?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure10?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure11?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure12?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof FcbVisiteDto\n */\n heure13?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FcbVisiteDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof FcbVisiteDto\n */\n creationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof FcbVisiteDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FcbVisiteDto\n */\n modificationDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the FcbVisiteDto interface.\n */\nexport function instanceOfFcbVisiteDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbVisiteDtoFromJSON(json: any): FcbVisiteDto {\n return FcbVisiteDtoFromJSONTyped(json, false);\n}\n\nexport function FcbVisiteDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbVisiteDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idvisite': !exists(json, 'idvisite') ? undefined : json['idvisite'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'dateDemande': !exists(json, 'dateDemande') ? undefined : (json['dateDemande'] === null ? null : new Date(json['dateDemande'])),\n 'datevisiteDebut': !exists(json, 'datevisiteDebut') ? undefined : (json['datevisiteDebut'] === null ? null : new Date(json['datevisiteDebut'])),\n 'datevisiteFin': !exists(json, 'datevisiteFin') ? undefined : (json['datevisiteFin'] === null ? null : new Date(json['datevisiteFin'])),\n 'duree': !exists(json, 'duree') ? undefined : json['duree'],\n 'accord': !exists(json, 'accord') ? undefined : json['accord'],\n 'contact': !exists(json, 'contact') ? undefined : json['contact'],\n 'coordonnee': !exists(json, 'coordonnee') ? undefined : json['coordonnee'],\n 'lieu': !exists(json, 'lieu') ? undefined : json['lieu'],\n 'raison': !exists(json, 'raison') ? undefined : json['raison'],\n 'heure1': !exists(json, 'heure1') ? undefined : json['heure1'],\n 'heure2': !exists(json, 'heure2') ? undefined : json['heure2'],\n 'heure3': !exists(json, 'heure3') ? undefined : json['heure3'],\n 'heure4': !exists(json, 'heure4') ? undefined : json['heure4'],\n 'heure5': !exists(json, 'heure5') ? undefined : json['heure5'],\n 'heure6': !exists(json, 'heure6') ? undefined : json['heure6'],\n 'heure7': !exists(json, 'heure7') ? undefined : json['heure7'],\n 'heure8': !exists(json, 'heure8') ? undefined : json['heure8'],\n 'heure9': !exists(json, 'heure9') ? undefined : json['heure9'],\n 'heure10': !exists(json, 'heure10') ? undefined : json['heure10'],\n 'heure11': !exists(json, 'heure11') ? undefined : json['heure11'],\n 'heure12': !exists(json, 'heure12') ? undefined : json['heure12'],\n 'heure13': !exists(json, 'heure13') ? undefined : json['heure13'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (json['creationDate'] === null ? null : new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n };\n}\n\nexport function FcbVisiteDtoToJSON(value?: FcbVisiteDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idvisite': value.idvisite,\n 'idcentre': value.idcentre,\n 'dateDemande': value.dateDemande === undefined ? undefined : (value.dateDemande === null ? null : value.dateDemande.toISOString()),\n 'datevisiteDebut': value.datevisiteDebut === undefined ? undefined : (value.datevisiteDebut === null ? null : value.datevisiteDebut.toISOString()),\n 'datevisiteFin': value.datevisiteFin === undefined ? undefined : (value.datevisiteFin === null ? null : value.datevisiteFin.toISOString()),\n 'duree': value.duree,\n 'accord': value.accord,\n 'contact': value.contact,\n 'coordonnee': value.coordonnee,\n 'lieu': value.lieu,\n 'raison': value.raison,\n 'heure1': value.heure1,\n 'heure2': value.heure2,\n 'heure3': value.heure3,\n 'heure4': value.heure4,\n 'heure5': value.heure5,\n 'heure6': value.heure6,\n 'heure7': value.heure7,\n 'heure8': value.heure8,\n 'heure9': value.heure9,\n 'heure10': value.heure10,\n 'heure11': value.heure11,\n 'heure12': value.heure12,\n 'heure13': value.heure13,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate === null ? null : value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbVisiteFormateurDto\n */\nexport interface FcbVisiteFormateurDto {\n /**\n * \n * @type {number}\n * @memberof FcbVisiteFormateurDto\n */\n idvisite?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbVisiteFormateurDto\n */\n idformateurs?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbVisiteFormateurDto interface.\n */\nexport function instanceOfFcbVisiteFormateurDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbVisiteFormateurDtoFromJSON(json: any): FcbVisiteFormateurDto {\n return FcbVisiteFormateurDtoFromJSONTyped(json, false);\n}\n\nexport function FcbVisiteFormateurDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbVisiteFormateurDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idvisite': !exists(json, 'idvisite') ? undefined : json['idvisite'],\n 'idformateurs': !exists(json, 'idformateurs') ? undefined : json['idformateurs'],\n };\n}\n\nexport function FcbVisiteFormateurDtoToJSON(value?: FcbVisiteFormateurDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idvisite': value.idvisite,\n 'idformateurs': value.idformateurs,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbVisiteFormateurGridDto\n */\nexport interface FcbVisiteFormateurGridDto {\n /**\n * \n * @type {string}\n * @memberof FcbVisiteFormateurGridDto\n */\n formateur?: string | null;\n}\n\n/**\n * Check if a given object implements the FcbVisiteFormateurGridDto interface.\n */\nexport function instanceOfFcbVisiteFormateurGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbVisiteFormateurGridDtoFromJSON(json: any): FcbVisiteFormateurGridDto {\n return FcbVisiteFormateurGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbVisiteFormateurGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbVisiteFormateurGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n };\n}\n\nexport function FcbVisiteFormateurGridDtoToJSON(value?: FcbVisiteFormateurGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'formateur': value.formateur,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbVisiteFormateurGridDto } from './FcbVisiteFormateurGridDto';\nimport {\n FcbVisiteFormateurGridDtoFromJSON,\n FcbVisiteFormateurGridDtoFromJSONTyped,\n FcbVisiteFormateurGridDtoToJSON,\n} from './FcbVisiteFormateurGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbVisiteFormateurGridDtoPaginatedResults\n */\nexport interface FcbVisiteFormateurGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbVisiteFormateurGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbVisiteFormateurGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbVisiteFormateurGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbVisiteFormateurGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbVisiteFormateurGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbVisiteFormateurGridDtoPaginatedResultsFromJSON(json: any): FcbVisiteFormateurGridDtoPaginatedResults {\n return FcbVisiteFormateurGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbVisiteFormateurGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbVisiteFormateurGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbVisiteFormateurGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbVisiteFormateurGridDtoPaginatedResultsToJSON(value?: FcbVisiteFormateurGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbVisiteFormateurGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FcbVisiteGridDto\n */\nexport interface FcbVisiteGridDto {\n /**\n * \n * @type {number}\n * @memberof FcbVisiteGridDto\n */\n idvisite?: number | null;\n /**\n * \n * @type {number}\n * @memberof FcbVisiteGridDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteGridDto\n */\n datevisiteDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteGridDto\n */\n duree?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteGridDto\n */\n contact?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteGridDto\n */\n accord?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteGridDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {string}\n * @memberof FcbVisiteGridDto\n */\n lieu?: string | null;\n /**\n * \n * @type {number}\n * @memberof FcbVisiteGridDto\n */\n iduser?: number | null;\n}\n\n/**\n * Check if a given object implements the FcbVisiteGridDto interface.\n */\nexport function instanceOfFcbVisiteGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbVisiteGridDtoFromJSON(json: any): FcbVisiteGridDto {\n return FcbVisiteGridDtoFromJSONTyped(json, false);\n}\n\nexport function FcbVisiteGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbVisiteGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idvisite': !exists(json, 'idvisite') ? undefined : json['idvisite'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'datevisiteDebut': !exists(json, 'datevisiteDebut') ? undefined : json['datevisiteDebut'],\n 'duree': !exists(json, 'duree') ? undefined : json['duree'],\n 'contact': !exists(json, 'contact') ? undefined : json['contact'],\n 'accord': !exists(json, 'accord') ? undefined : json['accord'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'lieu': !exists(json, 'lieu') ? undefined : json['lieu'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n };\n}\n\nexport function FcbVisiteGridDtoToJSON(value?: FcbVisiteGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idvisite': value.idvisite,\n 'idcentre': value.idcentre,\n 'datevisiteDebut': value.datevisiteDebut,\n 'duree': value.duree,\n 'contact': value.contact,\n 'accord': value.accord,\n 'nom': value.nom,\n 'anneeAcademique': value.anneeAcademique,\n 'lieu': value.lieu,\n 'iduser': value.iduser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbVisiteGridDto } from './FcbVisiteGridDto';\nimport {\n FcbVisiteGridDtoFromJSON,\n FcbVisiteGridDtoFromJSONTyped,\n FcbVisiteGridDtoToJSON,\n} from './FcbVisiteGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FcbVisiteGridDtoPaginatedResults\n */\nexport interface FcbVisiteGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FcbVisiteGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FcbVisiteGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FcbVisiteGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FcbVisiteGridDtoPaginatedResults interface.\n */\nexport function instanceOfFcbVisiteGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FcbVisiteGridDtoPaginatedResultsFromJSON(json: any): FcbVisiteGridDtoPaginatedResults {\n return FcbVisiteGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FcbVisiteGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FcbVisiteGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FcbVisiteGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FcbVisiteGridDtoPaginatedResultsToJSON(value?: FcbVisiteGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FcbVisiteGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ClasseHoraireJourColumnsDto } from './ClasseHoraireJourColumnsDto';\nimport {\n ClasseHoraireJourColumnsDtoFromJSON,\n ClasseHoraireJourColumnsDtoFromJSONTyped,\n ClasseHoraireJourColumnsDtoToJSON,\n} from './ClasseHoraireJourColumnsDto';\nimport type { FcbApprenantPresenceDetailDto } from './FcbApprenantPresenceDetailDto';\nimport {\n FcbApprenantPresenceDetailDtoFromJSON,\n FcbApprenantPresenceDetailDtoFromJSONTyped,\n FcbApprenantPresenceDetailDtoToJSON,\n} from './FcbApprenantPresenceDetailDto';\nimport type { FcbPresenceFormateurDto } from './FcbPresenceFormateurDto';\nimport {\n FcbPresenceFormateurDtoFromJSON,\n FcbPresenceFormateurDtoFromJSONTyped,\n FcbPresenceFormateurDtoToJSON,\n} from './FcbPresenceFormateurDto';\n\n/**\n * \n * @export\n * @interface FeuillePresenceInfoDto\n */\nexport interface FeuillePresenceInfoDto {\n /**\n * \n * @type {number}\n * @memberof FeuillePresenceInfoDto\n */\n idUserFormateur?: number | null;\n /**\n * \n * @type {Array}\n * @memberof FeuillePresenceInfoDto\n */\n columnsInfo?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FeuillePresenceInfoDto\n */\n apprenantPresences?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FeuillePresenceInfoDto\n */\n formateurPresences?: Array | null;\n}\n\n/**\n * Check if a given object implements the FeuillePresenceInfoDto interface.\n */\nexport function instanceOfFeuillePresenceInfoDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FeuillePresenceInfoDtoFromJSON(json: any): FeuillePresenceInfoDto {\n return FeuillePresenceInfoDtoFromJSONTyped(json, false);\n}\n\nexport function FeuillePresenceInfoDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FeuillePresenceInfoDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idUserFormateur': !exists(json, 'idUserFormateur') ? undefined : json['idUserFormateur'],\n 'columnsInfo': !exists(json, 'columnsInfo') ? undefined : (json['columnsInfo'] === null ? null : (json['columnsInfo'] as Array).map(ClasseHoraireJourColumnsDtoFromJSON)),\n 'apprenantPresences': !exists(json, 'apprenantPresences') ? undefined : (json['apprenantPresences'] === null ? null : (json['apprenantPresences'] as Array).map(FcbApprenantPresenceDetailDtoFromJSON)),\n 'formateurPresences': !exists(json, 'formateurPresences') ? undefined : (json['formateurPresences'] === null ? null : (json['formateurPresences'] as Array).map(FcbPresenceFormateurDtoFromJSON)),\n };\n}\n\nexport function FeuillePresenceInfoDtoToJSON(value?: FeuillePresenceInfoDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idUserFormateur': value.idUserFormateur,\n 'columnsInfo': value.columnsInfo === undefined ? undefined : (value.columnsInfo === null ? null : (value.columnsInfo as Array).map(ClasseHoraireJourColumnsDtoToJSON)),\n 'apprenantPresences': value.apprenantPresences === undefined ? undefined : (value.apprenantPresences === null ? null : (value.apprenantPresences as Array).map(FcbApprenantPresenceDetailDtoToJSON)),\n 'formateurPresences': value.formateurPresences === undefined ? undefined : (value.formateurPresences === null ? null : (value.formateurPresences as Array).map(FcbPresenceFormateurDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FeuillePresencePrintRequestDto\n */\nexport interface FeuillePresencePrintRequestDto {\n /**\n * \n * @type {number}\n * @memberof FeuillePresencePrintRequestDto\n */\n periodeImpression?: number;\n /**\n * \n * @type {Date}\n * @memberof FeuillePresencePrintRequestDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FeuillePresencePrintRequestDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FeuillePresencePrintRequestDto\n */\n typeCours?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FeuillePresencePrintRequestDto\n */\n checkCalc?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof FeuillePresencePrintRequestDto\n */\n checkStat?: boolean;\n /**\n * \n * @type {number}\n * @memberof FeuillePresencePrintRequestDto\n */\n idClasse?: number;\n}\n\n/**\n * Check if a given object implements the FeuillePresencePrintRequestDto interface.\n */\nexport function instanceOfFeuillePresencePrintRequestDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FeuillePresencePrintRequestDtoFromJSON(json: any): FeuillePresencePrintRequestDto {\n return FeuillePresencePrintRequestDtoFromJSONTyped(json, false);\n}\n\nexport function FeuillePresencePrintRequestDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FeuillePresencePrintRequestDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'periodeImpression': !exists(json, 'periodeImpression') ? undefined : json['periodeImpression'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'typeCours': !exists(json, 'typeCours') ? undefined : json['typeCours'],\n 'checkCalc': !exists(json, 'checkCalc') ? undefined : json['checkCalc'],\n 'checkStat': !exists(json, 'checkStat') ? undefined : json['checkStat'],\n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n };\n}\n\nexport function FeuillePresencePrintRequestDtoToJSON(value?: FeuillePresencePrintRequestDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'periodeImpression': value.periodeImpression,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'typeCours': value.typeCours,\n 'checkCalc': value.checkCalc,\n 'checkStat': value.checkStat,\n 'idClasse': value.idClasse,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FcbApprenantPresenceDetailSaveDto } from './FcbApprenantPresenceDetailSaveDto';\nimport {\n FcbApprenantPresenceDetailSaveDtoFromJSON,\n FcbApprenantPresenceDetailSaveDtoFromJSONTyped,\n FcbApprenantPresenceDetailSaveDtoToJSON,\n} from './FcbApprenantPresenceDetailSaveDto';\nimport type { FcbPresenceFormateurDto } from './FcbPresenceFormateurDto';\nimport {\n FcbPresenceFormateurDtoFromJSON,\n FcbPresenceFormateurDtoFromJSONTyped,\n FcbPresenceFormateurDtoToJSON,\n} from './FcbPresenceFormateurDto';\n\n/**\n * \n * @export\n * @interface FeuillePresenceSaveDto\n */\nexport interface FeuillePresenceSaveDto {\n /**\n * \n * @type {Array}\n * @memberof FeuillePresenceSaveDto\n */\n apprenantPresences?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FeuillePresenceSaveDto\n */\n formateurPresences?: Array | null;\n}\n\n/**\n * Check if a given object implements the FeuillePresenceSaveDto interface.\n */\nexport function instanceOfFeuillePresenceSaveDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FeuillePresenceSaveDtoFromJSON(json: any): FeuillePresenceSaveDto {\n return FeuillePresenceSaveDtoFromJSONTyped(json, false);\n}\n\nexport function FeuillePresenceSaveDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FeuillePresenceSaveDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'apprenantPresences': !exists(json, 'apprenantPresences') ? undefined : (json['apprenantPresences'] === null ? null : (json['apprenantPresences'] as Array).map(FcbApprenantPresenceDetailSaveDtoFromJSON)),\n 'formateurPresences': !exists(json, 'formateurPresences') ? undefined : (json['formateurPresences'] === null ? null : (json['formateurPresences'] as Array).map(FcbPresenceFormateurDtoFromJSON)),\n };\n}\n\nexport function FeuillePresenceSaveDtoToJSON(value?: FeuillePresenceSaveDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'apprenantPresences': value.apprenantPresences === undefined ? undefined : (value.apprenantPresences === null ? null : (value.apprenantPresences as Array).map(FcbApprenantPresenceDetailSaveDtoToJSON)),\n 'formateurPresences': value.formateurPresences === undefined ? undefined : (value.formateurPresences === null ? null : (value.formateurPresences as Array).map(FcbPresenceFormateurDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface FeuillePresenceSearch\n */\nexport interface FeuillePresenceSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof FeuillePresenceSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FeuillePresenceSearch\n */\n codeClasse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FeuillePresenceSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof FeuillePresenceSearch\n */\n withHoraire?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof FeuillePresenceSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FeuillePresenceSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FeuillePresenceSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FeuillePresenceSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FeuillePresenceSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FeuillePresenceSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FeuillePresenceSearch interface.\n */\nexport function instanceOfFeuillePresenceSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FeuillePresenceSearchFromJSON(json: any): FeuillePresenceSearch {\n return FeuillePresenceSearchFromJSONTyped(json, false);\n}\n\nexport function FeuillePresenceSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FeuillePresenceSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : TextSearchFromJSON(json['codeClasse']),\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'withHoraire': !exists(json, 'withHoraire') ? undefined : BooleanSearchFromJSON(json['withHoraire']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FeuillePresenceSearchToJSON(value?: FeuillePresenceSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'codeClasse': TextSearchToJSON(value.codeClasse),\n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'withHoraire': BooleanSearchToJSON(value.withHoraire),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FeuillePresencesPrintDatesDto\n */\nexport interface FeuillePresencesPrintDatesDto {\n /**\n * \n * @type {Date}\n * @memberof FeuillePresencesPrintDatesDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof FeuillePresencesPrintDatesDto\n */\n dateFin?: Date | null;\n}\n\n/**\n * Check if a given object implements the FeuillePresencesPrintDatesDto interface.\n */\nexport function instanceOfFeuillePresencesPrintDatesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FeuillePresencesPrintDatesDtoFromJSON(json: any): FeuillePresencesPrintDatesDto {\n return FeuillePresencesPrintDatesDtoFromJSONTyped(json, false);\n}\n\nexport function FeuillePresencesPrintDatesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FeuillePresencesPrintDatesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n };\n}\n\nexport function FeuillePresencesPrintDatesDtoToJSON(value?: FeuillePresencesPrintDatesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FichierGridDto\n */\nexport interface FichierGridDto {\n /**\n * \n * @type {number}\n * @memberof FichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof FichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof FichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof FichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the FichierGridDto interface.\n */\nexport function instanceOfFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FichierGridDtoFromJSON(json: any): FichierGridDto {\n return FichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function FichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function FichierGridDtoToJSON(value?: FichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FichierGridDto } from './FichierGridDto';\nimport {\n FichierGridDtoFromJSON,\n FichierGridDtoFromJSONTyped,\n FichierGridDtoToJSON,\n} from './FichierGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FichierGridDtoPaginatedResults\n */\nexport interface FichierGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FichierGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FichierGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FichierGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FichierGridDtoPaginatedResults interface.\n */\nexport function instanceOfFichierGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FichierGridDtoPaginatedResultsFromJSON(json: any): FichierGridDtoPaginatedResults {\n return FichierGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FichierGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FichierGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FichierGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FichierGridDtoPaginatedResultsToJSON(value?: FichierGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FichierGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface FichierSearchDto\n */\nexport interface FichierSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof FichierSearchDto\n */\n fileName?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof FichierSearchDto\n */\n uploadUser?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof FichierSearchDto\n */\n uploadDate?: DateSearch;\n /**\n * \n * @type {Array}\n * @memberof FichierSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FichierSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FichierSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FichierSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FichierSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FichierSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FichierSearchDto interface.\n */\nexport function instanceOfFichierSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FichierSearchDtoFromJSON(json: any): FichierSearchDto {\n return FichierSearchDtoFromJSONTyped(json, false);\n}\n\nexport function FichierSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FichierSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'fileName': !exists(json, 'fileName') ? undefined : UnaccentTextSearchFromJSON(json['fileName']),\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : UnaccentTextSearchFromJSON(json['uploadUser']),\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : DateSearchFromJSON(json['uploadDate']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FichierSearchDtoToJSON(value?: FichierSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'fileName': UnaccentTextSearchToJSON(value.fileName),\n 'uploadUser': UnaccentTextSearchToJSON(value.uploadUser),\n 'uploadDate': DateSearchToJSON(value.uploadDate),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FileDownloadDto\n */\nexport interface FileDownloadDto {\n /**\n * \n * @type {string}\n * @memberof FileDownloadDto\n */\n readonly fileName?: string | null;\n /**\n * \n * @type {string}\n * @memberof FileDownloadDto\n */\n readonly base64Content?: string | null;\n}\n\n/**\n * Check if a given object implements the FileDownloadDto interface.\n */\nexport function instanceOfFileDownloadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FileDownloadDtoFromJSON(json: any): FileDownloadDto {\n return FileDownloadDtoFromJSONTyped(json, false);\n}\n\nexport function FileDownloadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FileDownloadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'base64Content': !exists(json, 'base64Content') ? undefined : json['base64Content'],\n };\n}\n\nexport function FileDownloadDtoToJSON(value?: FileDownloadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SelectItem\n */\nexport interface SelectItem {\n /**\n * \n * @type {string}\n * @memberof SelectItem\n */\n idValue?: string | null;\n /**\n * \n * @type {string}\n * @memberof SelectItem\n */\n displayValue?: string | null;\n}\n\n/**\n * Check if a given object implements the SelectItem interface.\n */\nexport function instanceOfSelectItem(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SelectItemFromJSON(json: any): SelectItem {\n return SelectItemFromJSONTyped(json, false);\n}\n\nexport function SelectItemFromJSONTyped(json: any, ignoreDiscriminator: boolean): SelectItem {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idValue': !exists(json, 'idValue') ? undefined : json['idValue'],\n 'displayValue': !exists(json, 'displayValue') ? undefined : json['displayValue'],\n };\n}\n\nexport function SelectItemToJSON(value?: SelectItem | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idValue': value.idValue,\n 'displayValue': value.displayValue,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ECriteriaType } from './ECriteriaType';\nimport {\n ECriteriaTypeFromJSON,\n ECriteriaTypeFromJSONTyped,\n ECriteriaTypeToJSON,\n} from './ECriteriaType';\nimport type { SelectItem } from './SelectItem';\nimport {\n SelectItemFromJSON,\n SelectItemFromJSONTyped,\n SelectItemToJSON,\n} from './SelectItem';\n\n/**\n * \n * @export\n * @interface FilterCriteriaInfo\n */\nexport interface FilterCriteriaInfo {\n /**\n * \n * @type {string}\n * @memberof FilterCriteriaInfo\n */\n criteria?: string | null;\n /**\n * \n * @type {ECriteriaType}\n * @memberof FilterCriteriaInfo\n */\n type?: ECriteriaType;\n /**\n * \n * @type {Array}\n * @memberof FilterCriteriaInfo\n */\n searchModes?: Array | null;\n /**\n * \n * @type {string}\n * @memberof FilterCriteriaInfo\n */\n defaultSearchMode?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FilterCriteriaInfo\n */\n listValues?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof FilterCriteriaInfo\n */\n isMultipleOr?: boolean;\n}\n\n/**\n * Check if a given object implements the FilterCriteriaInfo interface.\n */\nexport function instanceOfFilterCriteriaInfo(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FilterCriteriaInfoFromJSON(json: any): FilterCriteriaInfo {\n return FilterCriteriaInfoFromJSONTyped(json, false);\n}\n\nexport function FilterCriteriaInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FilterCriteriaInfo {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'criteria': !exists(json, 'criteria') ? undefined : json['criteria'],\n 'type': !exists(json, 'type') ? undefined : ECriteriaTypeFromJSON(json['type']),\n 'searchModes': !exists(json, 'searchModes') ? undefined : json['searchModes'],\n 'defaultSearchMode': !exists(json, 'defaultSearchMode') ? undefined : json['defaultSearchMode'],\n 'listValues': !exists(json, 'listValues') ? undefined : (json['listValues'] === null ? null : (json['listValues'] as Array).map(SelectItemFromJSON)),\n 'isMultipleOr': !exists(json, 'isMultipleOr') ? undefined : json['isMultipleOr'],\n };\n}\n\nexport function FilterCriteriaInfoToJSON(value?: FilterCriteriaInfo | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'criteria': value.criteria,\n 'type': ECriteriaTypeToJSON(value.type),\n 'searchModes': value.searchModes,\n 'defaultSearchMode': value.defaultSearchMode,\n 'listValues': value.listValues === undefined ? undefined : (value.listValues === null ? null : (value.listValues as Array).map(SelectItemToJSON)),\n 'isMultipleOr': value.isMultipleOr,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface FinancementClasseSearch\n */\nexport interface FinancementClasseSearch {\n /**\n * \n * @type {number}\n * @memberof FinancementClasseSearch\n */\n idClasse?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof FinancementClasseSearch\n */\n financement?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof FinancementClasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FinancementClasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FinancementClasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FinancementClasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FinancementClasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FinancementClasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FinancementClasseSearch interface.\n */\nexport function instanceOfFinancementClasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FinancementClasseSearchFromJSON(json: any): FinancementClasseSearch {\n return FinancementClasseSearchFromJSONTyped(json, false);\n}\n\nexport function FinancementClasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FinancementClasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'financement': !exists(json, 'financement') ? undefined : TextSearchFromJSON(json['financement']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FinancementClasseSearchToJSON(value?: FinancementClasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'financement': TextSearchToJSON(value.financement),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ForfaitAuditeurSearch\n */\nexport interface ForfaitAuditeurSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ForfaitAuditeurSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof ForfaitAuditeurSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ForfaitAuditeurSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ForfaitAuditeurSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ForfaitAuditeurSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ForfaitAuditeurSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ForfaitAuditeurSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ForfaitAuditeurSearch interface.\n */\nexport function instanceOfForfaitAuditeurSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ForfaitAuditeurSearchFromJSON(json: any): ForfaitAuditeurSearch {\n return ForfaitAuditeurSearchFromJSONTyped(json, false);\n}\n\nexport function ForfaitAuditeurSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ForfaitAuditeurSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ForfaitAuditeurSearchToJSON(value?: ForfaitAuditeurSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface FormateurAgrementSearch\n */\nexport interface FormateurAgrementSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurAgrementSearch\n */\n idFormateur?: number;\n /**\n * \n * @type {Array}\n * @memberof FormateurAgrementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurAgrementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurAgrementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurAgrementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurAgrementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurAgrementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurAgrementSearch interface.\n */\nexport function instanceOfFormateurAgrementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurAgrementSearchFromJSON(json: any): FormateurAgrementSearch {\n return FormateurAgrementSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurAgrementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurAgrementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurAgrementSearchToJSON(value?: FormateurAgrementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idFormateur': value.idFormateur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface FormateurAzureSearch\n */\nexport interface FormateurAzureSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurAzureSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {number}\n * @memberof FormateurAzureSearch\n */\n idFormateur?: number;\n /**\n * \n * @type {string}\n * @memberof FormateurAzureSearch\n */\n codeCentres?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurAzureSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurAzureSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurAzureSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurAzureSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurAzureSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurAzureSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurAzureSearch interface.\n */\nexport function instanceOfFormateurAzureSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurAzureSearchFromJSON(json: any): FormateurAzureSearch {\n return FormateurAzureSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurAzureSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurAzureSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'codeCentres': !exists(json, 'codeCentres') ? undefined : json['codeCentres'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurAzureSearchToJSON(value?: FormateurAzureSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'centre': TextSearchToJSON(value.centre),\n 'idFormateur': value.idFormateur,\n 'codeCentres': value.codeCentres,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface FormateurClasseSearch\n */\nexport interface FormateurClasseSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurClasseSearch\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurClasseSearch\n */\n idclasse?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurClasseSearch\n */\n codeClasse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurClasseSearch\n */\n nomClasse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurClasseSearch\n */\n codeMatiere?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurClasseSearch\n */\n nomMatiere?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof FormateurClasseSearch\n */\n dateDebut?: DateSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof FormateurClasseSearch\n */\n dateFin?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurClasseSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurClasseSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof FormateurClasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurClasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurClasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurClasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurClasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurClasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurClasseSearch interface.\n */\nexport function instanceOfFormateurClasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurClasseSearchFromJSON(json: any): FormateurClasseSearch {\n return FormateurClasseSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurClasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurClasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : TextSearchFromJSON(json['codeClasse']),\n 'nomClasse': !exists(json, 'nomClasse') ? undefined : TextSearchFromJSON(json['nomClasse']),\n 'codeMatiere': !exists(json, 'codeMatiere') ? undefined : TextSearchFromJSON(json['codeMatiere']),\n 'nomMatiere': !exists(json, 'nomMatiere') ? undefined : TextSearchFromJSON(json['nomMatiere']),\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : DateSearchFromJSON(json['dateDebut']),\n 'dateFin': !exists(json, 'dateFin') ? undefined : DateSearchFromJSON(json['dateFin']),\n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurClasseSearchToJSON(value?: FormateurClasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'idclasse': value.idclasse,\n 'codeClasse': TextSearchToJSON(value.codeClasse),\n 'nomClasse': TextSearchToJSON(value.nomClasse),\n 'codeMatiere': TextSearchToJSON(value.codeMatiere),\n 'nomMatiere': TextSearchToJSON(value.nomMatiere),\n 'dateDebut': DateSearchToJSON(value.dateDebut),\n 'dateFin': DateSearchToJSON(value.dateFin),\n 'centre': TextSearchToJSON(value.centre),\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface FormateurDesideratumSearch\n */\nexport interface FormateurDesideratumSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurDesideratumSearch\n */\n idFormateur?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurDesideratumSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurDesideratumSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof FormateurDesideratumSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurDesideratumSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDesideratumSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDesideratumSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurDesideratumSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDesideratumSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurDesideratumSearch interface.\n */\nexport function instanceOfFormateurDesideratumSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurDesideratumSearchFromJSON(json: any): FormateurDesideratumSearch {\n return FormateurDesideratumSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurDesideratumSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurDesideratumSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurDesideratumSearchToJSON(value?: FormateurDesideratumSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idFormateur': value.idFormateur,\n 'centre': TextSearchToJSON(value.centre),\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface FormateurDiplomeSearch\n */\nexport interface FormateurDiplomeSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurDiplomeSearch\n */\n idformateur?: number;\n /**\n * \n * @type {Array}\n * @memberof FormateurDiplomeSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurDiplomeSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDiplomeSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDiplomeSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurDiplomeSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDiplomeSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurDiplomeSearch interface.\n */\nexport function instanceOfFormateurDiplomeSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurDiplomeSearchFromJSON(json: any): FormateurDiplomeSearch {\n return FormateurDiplomeSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurDiplomeSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurDiplomeSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurDiplomeSearchToJSON(value?: FormateurDiplomeSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface FormateurDoublonSearch\n */\nexport interface FormateurDoublonSearch {\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n prenom2?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FormateurDoublonSearch\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n paysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FormateurDoublonSearch\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof FormateurDoublonSearch\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonSearch\n */\n idpersonne?: number | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurDoublonSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurDoublonSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurDoublonSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurDoublonSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurDoublonSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurDoublonSearch interface.\n */\nexport function instanceOfFormateurDoublonSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurDoublonSearchFromJSON(json: any): FormateurDoublonSearch {\n return FormateurDoublonSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurDoublonSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurDoublonSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'prenom2': !exists(json, 'prenom2') ? undefined : json['prenom2'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'paysNaissance': !exists(json, 'paysNaissance') ? undefined : json['paysNaissance'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurDoublonSearchToJSON(value?: FormateurDoublonSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n 'prenom': value.prenom,\n 'prenom2': value.prenom2,\n 'registreNational': value.registreNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'codesexe': value.codesexe,\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'paysNaissance': value.paysNaissance,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'idpersonne': value.idpersonne,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FormateurHoraireGridDto\n */\nexport interface FormateurHoraireGridDto {\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireGridDto\n */\n idformateur?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireGridDto\n */\n idclasseHoraire?: number;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireGridDto\n */\n annee?: string | null;\n /**\n * \n * @type {Date}\n * @memberof FormateurHoraireGridDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireGridDto\n */\n classe?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireGridDto\n */\n heureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireGridDto\n */\n matiere?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireGridDto\n */\n local?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FormateurHoraireGridDto\n */\n remplacement?: boolean;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireGridDto\n */\n visite?: string | null;\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireGridDto\n */\n idclasse?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireGridDto\n */\n iduser?: number;\n}\n\n/**\n * Check if a given object implements the FormateurHoraireGridDto interface.\n */\nexport function instanceOfFormateurHoraireGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurHoraireGridDtoFromJSON(json: any): FormateurHoraireGridDto {\n return FormateurHoraireGridDtoFromJSONTyped(json, false);\n}\n\nexport function FormateurHoraireGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurHoraireGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idclasseHoraire': !exists(json, 'idclasseHoraire') ? undefined : json['idclasseHoraire'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'classe': !exists(json, 'classe') ? undefined : json['classe'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'heureDebut': !exists(json, 'heureDebut') ? undefined : json['heureDebut'],\n 'matiere': !exists(json, 'matiere') ? undefined : json['matiere'],\n 'local': !exists(json, 'local') ? undefined : json['local'],\n 'remplacement': !exists(json, 'remplacement') ? undefined : json['remplacement'],\n 'visite': !exists(json, 'visite') ? undefined : json['visite'],\n 'idclasse': !exists(json, 'idclasse') ? undefined : json['idclasse'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n };\n}\n\nexport function FormateurHoraireGridDtoToJSON(value?: FormateurHoraireGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'idclasseHoraire': value.idclasseHoraire,\n 'annee': value.annee,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'classe': value.classe,\n 'nom': value.nom,\n 'heureDebut': value.heureDebut,\n 'matiere': value.matiere,\n 'local': value.local,\n 'remplacement': value.remplacement,\n 'visite': value.visite,\n 'idclasse': value.idclasse,\n 'iduser': value.iduser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FormateurHoraireGridDto } from './FormateurHoraireGridDto';\nimport {\n FormateurHoraireGridDtoFromJSON,\n FormateurHoraireGridDtoFromJSONTyped,\n FormateurHoraireGridDtoToJSON,\n} from './FormateurHoraireGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FormateurHoraireGridDtoPaginatedResults\n */\nexport interface FormateurHoraireGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FormateurHoraireGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurHoraireGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FormateurHoraireGridDtoPaginatedResults interface.\n */\nexport function instanceOfFormateurHoraireGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurHoraireGridDtoPaginatedResultsFromJSON(json: any): FormateurHoraireGridDtoPaginatedResults {\n return FormateurHoraireGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FormateurHoraireGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurHoraireGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FormateurHoraireGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FormateurHoraireGridDtoPaginatedResultsToJSON(value?: FormateurHoraireGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FormateurHoraireGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FormateurHoraireIncoherenceGridDto\n */\nexport interface FormateurHoraireIncoherenceGridDto {\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {Date}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n jour?: Date | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n heureDebut?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n heureFin?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n local?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n formateur?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n motif?: string | null;\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n idtypeIncoherence?: number | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n typeIncoherence?: string | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n anneeAcademique?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n centreUtilisateurFlag?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireIncoherenceGridDto\n */\n iduser?: number | null;\n}\n\n/**\n * Check if a given object implements the FormateurHoraireIncoherenceGridDto interface.\n */\nexport function instanceOfFormateurHoraireIncoherenceGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurHoraireIncoherenceGridDtoFromJSON(json: any): FormateurHoraireIncoherenceGridDto {\n return FormateurHoraireIncoherenceGridDtoFromJSONTyped(json, false);\n}\n\nexport function FormateurHoraireIncoherenceGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurHoraireIncoherenceGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'jour': !exists(json, 'jour') ? undefined : (json['jour'] === null ? null : new Date(json['jour'])),\n 'heureDebut': !exists(json, 'heureDebut') ? undefined : json['heureDebut'],\n 'heureFin': !exists(json, 'heureFin') ? undefined : json['heureFin'],\n 'local': !exists(json, 'local') ? undefined : json['local'],\n 'formateur': !exists(json, 'formateur') ? undefined : json['formateur'],\n 'motif': !exists(json, 'motif') ? undefined : json['motif'],\n 'idtypeIncoherence': !exists(json, 'idtypeIncoherence') ? undefined : json['idtypeIncoherence'],\n 'typeIncoherence': !exists(json, 'typeIncoherence') ? undefined : json['typeIncoherence'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : json['anneeAcademique'],\n 'centreUtilisateurFlag': !exists(json, 'centreUtilisateurFlag') ? undefined : json['centreUtilisateurFlag'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n };\n}\n\nexport function FormateurHoraireIncoherenceGridDtoToJSON(value?: FormateurHoraireIncoherenceGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'jour': value.jour === undefined ? undefined : (value.jour === null ? null : value.jour.toISOString()),\n 'heureDebut': value.heureDebut,\n 'heureFin': value.heureFin,\n 'local': value.local,\n 'formateur': value.formateur,\n 'motif': value.motif,\n 'idtypeIncoherence': value.idtypeIncoherence,\n 'typeIncoherence': value.typeIncoherence,\n 'anneeAcademique': value.anneeAcademique,\n 'centreUtilisateurFlag': value.centreUtilisateurFlag,\n 'iduser': value.iduser,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FormateurHoraireIncoherenceGridDto } from './FormateurHoraireIncoherenceGridDto';\nimport {\n FormateurHoraireIncoherenceGridDtoFromJSON,\n FormateurHoraireIncoherenceGridDtoFromJSONTyped,\n FormateurHoraireIncoherenceGridDtoToJSON,\n} from './FormateurHoraireIncoherenceGridDto';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\n\n/**\n * \n * @export\n * @interface FormateurHoraireIncoherenceGridDtoPaginatedResults\n */\nexport interface FormateurHoraireIncoherenceGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireIncoherenceGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof FormateurHoraireIncoherenceGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurHoraireIncoherenceGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the FormateurHoraireIncoherenceGridDtoPaginatedResults interface.\n */\nexport function instanceOfFormateurHoraireIncoherenceGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurHoraireIncoherenceGridDtoPaginatedResultsFromJSON(json: any): FormateurHoraireIncoherenceGridDtoPaginatedResults {\n return FormateurHoraireIncoherenceGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function FormateurHoraireIncoherenceGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurHoraireIncoherenceGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(FormateurHoraireIncoherenceGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function FormateurHoraireIncoherenceGridDtoPaginatedResultsToJSON(value?: FormateurHoraireIncoherenceGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(FormateurHoraireIncoherenceGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface FormateurHoraireIncoherenceSearch\n */\nexport interface FormateurHoraireIncoherenceSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n idformateur?: number | null;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n idtypeIncoherence?: Int32ListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n centreUtilisateurFlag?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireIncoherenceSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurHoraireIncoherenceSearch interface.\n */\nexport function instanceOfFormateurHoraireIncoherenceSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurHoraireIncoherenceSearchFromJSON(json: any): FormateurHoraireIncoherenceSearch {\n return FormateurHoraireIncoherenceSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurHoraireIncoherenceSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurHoraireIncoherenceSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'idtypeIncoherence': !exists(json, 'idtypeIncoherence') ? undefined : Int32ListSearchFromJSON(json['idtypeIncoherence']),\n 'centreUtilisateurFlag': !exists(json, 'centreUtilisateurFlag') ? undefined : BooleanSearchFromJSON(json['centreUtilisateurFlag']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurHoraireIncoherenceSearchToJSON(value?: FormateurHoraireIncoherenceSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'idtypeIncoherence': Int32ListSearchToJSON(value.idtypeIncoherence),\n 'centreUtilisateurFlag': BooleanSearchToJSON(value.centreUtilisateurFlag),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface FormateurHoraireSearch\n */\nexport interface FormateurHoraireSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireSearch\n */\n idformateur?: number | null;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurHoraireSearch\n */\n annee?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof FormateurHoraireSearch\n */\n date?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurHoraireSearch\n */\n classe?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurHoraireSearch\n */\n matiere?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurHoraireSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurHoraireSearch\n */\n local?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof FormateurHoraireSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurHoraireSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurHoraireSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurHoraireSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurHoraireSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurHoraireSearch interface.\n */\nexport function instanceOfFormateurHoraireSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurHoraireSearchFromJSON(json: any): FormateurHoraireSearch {\n return FormateurHoraireSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurHoraireSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurHoraireSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'annee': !exists(json, 'annee') ? undefined : TextSearchFromJSON(json['annee']),\n 'date': !exists(json, 'date') ? undefined : DateSearchFromJSON(json['date']),\n 'classe': !exists(json, 'classe') ? undefined : TextSearchFromJSON(json['classe']),\n 'matiere': !exists(json, 'matiere') ? undefined : TextSearchFromJSON(json['matiere']),\n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'local': !exists(json, 'local') ? undefined : TextSearchFromJSON(json['local']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurHoraireSearchToJSON(value?: FormateurHoraireSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'annee': TextSearchToJSON(value.annee),\n 'date': DateSearchToJSON(value.date),\n 'classe': TextSearchToJSON(value.classe),\n 'matiere': TextSearchToJSON(value.matiere),\n 'nom': TextSearchToJSON(value.nom),\n 'local': TextSearchToJSON(value.local),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface FormateurLocalisationContratSearch\n */\nexport interface FormateurLocalisationContratSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurLocalisationContratSearch\n */\n idformateur?: number;\n /**\n * \n * @type {Array}\n * @memberof FormateurLocalisationContratSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurLocalisationContratSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurLocalisationContratSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurLocalisationContratSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurLocalisationContratSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurLocalisationContratSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurLocalisationContratSearch interface.\n */\nexport function instanceOfFormateurLocalisationContratSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurLocalisationContratSearchFromJSON(json: any): FormateurLocalisationContratSearch {\n return FormateurLocalisationContratSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurLocalisationContratSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurLocalisationContratSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurLocalisationContratSearchToJSON(value?: FormateurLocalisationContratSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface FormateurPrestationContratSearch\n */\nexport interface FormateurPrestationContratSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurPrestationContratSearch\n */\n idFormateur?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurPrestationContratSearch\n */\n annee?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurPrestationContratSearch\n */\n contrat?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurPrestationContratSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof FormateurPrestationContratSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurPrestationContratSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurPrestationContratSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurPrestationContratSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurPrestationContratSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurPrestationContratSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurPrestationContratSearch interface.\n */\nexport function instanceOfFormateurPrestationContratSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurPrestationContratSearchFromJSON(json: any): FormateurPrestationContratSearch {\n return FormateurPrestationContratSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurPrestationContratSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurPrestationContratSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'annee': !exists(json, 'annee') ? undefined : TextSearchFromJSON(json['annee']),\n 'contrat': !exists(json, 'contrat') ? undefined : TextSearchFromJSON(json['contrat']),\n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurPrestationContratSearchToJSON(value?: FormateurPrestationContratSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idFormateur': value.idFormateur,\n 'annee': TextSearchToJSON(value.annee),\n 'contrat': TextSearchToJSON(value.contrat),\n 'centre': TextSearchToJSON(value.centre),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface FormateurPrestationsGlobalesSearch\n */\nexport interface FormateurPrestationsGlobalesSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurPrestationsGlobalesSearch\n */\n idformateur?: number;\n /**\n * \n * @type {string}\n * @memberof FormateurPrestationsGlobalesSearch\n */\n annee?: string | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurPrestationsGlobalesSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurPrestationsGlobalesSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurPrestationsGlobalesSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurPrestationsGlobalesSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurPrestationsGlobalesSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurPrestationsGlobalesSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurPrestationsGlobalesSearch interface.\n */\nexport function instanceOfFormateurPrestationsGlobalesSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurPrestationsGlobalesSearchFromJSON(json: any): FormateurPrestationsGlobalesSearch {\n return FormateurPrestationsGlobalesSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurPrestationsGlobalesSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurPrestationsGlobalesSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'annee': !exists(json, 'annee') ? undefined : json['annee'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurPrestationsGlobalesSearchToJSON(value?: FormateurPrestationsGlobalesSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'annee': value.annee,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface FormateurProfessionSearch\n */\nexport interface FormateurProfessionSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurProfessionSearch\n */\n idformateur?: number;\n /**\n * \n * @type {Array}\n * @memberof FormateurProfessionSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurProfessionSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurProfessionSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurProfessionSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurProfessionSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurProfessionSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurProfessionSearch interface.\n */\nexport function instanceOfFormateurProfessionSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurProfessionSearchFromJSON(json: any): FormateurProfessionSearch {\n return FormateurProfessionSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurProfessionSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurProfessionSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurProfessionSearchToJSON(value?: FormateurProfessionSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { NumericSearch } from './NumericSearch';\nimport {\n NumericSearchFromJSON,\n NumericSearchFromJSONTyped,\n NumericSearchToJSON,\n} from './NumericSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface FormateurSearch\n */\nexport interface FormateurSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurSearch\n */\n searchNom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurSearch\n */\n searchPrenom?: TextSearch;\n /**\n * \n * @type {NumericSearch}\n * @memberof FormateurSearch\n */\n contrat?: NumericSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurSearch\n */\n localiteCentre?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof FormateurSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof FormateurSearch\n */\n jure?: BooleanSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof FormateurSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof FormateurSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurSearch interface.\n */\nexport function instanceOfFormateurSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurSearchFromJSON(json: any): FormateurSearch {\n return FormateurSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'searchNom': !exists(json, 'searchNom') ? undefined : TextSearchFromJSON(json['searchNom']),\n 'searchPrenom': !exists(json, 'searchPrenom') ? undefined : TextSearchFromJSON(json['searchPrenom']),\n 'contrat': !exists(json, 'contrat') ? undefined : NumericSearchFromJSON(json['contrat']),\n 'localiteCentre': !exists(json, 'localiteCentre') ? undefined : TextSearchFromJSON(json['localiteCentre']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'jure': !exists(json, 'jure') ? undefined : BooleanSearchFromJSON(json['jure']),\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurSearchToJSON(value?: FormateurSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'searchNom': TextSearchToJSON(value.searchNom),\n 'searchPrenom': TextSearchToJSON(value.searchPrenom),\n 'contrat': NumericSearchToJSON(value.contrat),\n 'localiteCentre': TextSearchToJSON(value.localiteCentre),\n 'actif': BooleanSearchToJSON(value.actif),\n 'jure': BooleanSearchToJSON(value.jure),\n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FormateurSuiviFichierDto\n */\nexport interface FormateurSuiviFichierDto {\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierDto\n */\n idformateurSuiviFichier?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierDto\n */\n idformateurSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierDto\n */\n idtypeSuiviFichier?: number;\n /**\n * \n * @type {string}\n * @memberof FormateurSuiviFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurSuiviFichierDto interface.\n */\nexport function instanceOfFormateurSuiviFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurSuiviFichierDtoFromJSON(json: any): FormateurSuiviFichierDto {\n return FormateurSuiviFichierDtoFromJSONTyped(json, false);\n}\n\nexport function FormateurSuiviFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurSuiviFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateurSuiviFichier': !exists(json, 'idformateurSuiviFichier') ? undefined : json['idformateurSuiviFichier'],\n 'idformateurSuivi': !exists(json, 'idformateurSuivi') ? undefined : json['idformateurSuivi'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function FormateurSuiviFichierDtoToJSON(value?: FormateurSuiviFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateurSuiviFichier': value.idformateurSuiviFichier,\n 'idformateurSuivi': value.idformateurSuivi,\n 'idfichier': value.idfichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface FormateurSuiviFichierUploadDto\n */\nexport interface FormateurSuiviFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof FormateurSuiviFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierUploadDto\n */\n idformateurSuiviFichier?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierUploadDto\n */\n idformateurSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviFichierUploadDto\n */\n idtypeSuiviFichier?: number;\n /**\n * \n * @type {string}\n * @memberof FormateurSuiviFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurSuiviFichierUploadDto interface.\n */\nexport function instanceOfFormateurSuiviFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurSuiviFichierUploadDtoFromJSON(json: any): FormateurSuiviFichierUploadDto {\n return FormateurSuiviFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function FormateurSuiviFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurSuiviFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idformateurSuiviFichier': !exists(json, 'idformateurSuiviFichier') ? undefined : json['idformateurSuiviFichier'],\n 'idformateurSuivi': !exists(json, 'idformateurSuivi') ? undefined : json['idformateurSuivi'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function FormateurSuiviFichierUploadDtoToJSON(value?: FormateurSuiviFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idformateurSuiviFichier': value.idformateurSuiviFichier,\n 'idformateurSuivi': value.idformateurSuivi,\n 'idfichier': value.idfichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface FormateurSuiviSearch\n */\nexport interface FormateurSuiviSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviSearch\n */\n idFormateur?: number;\n /**\n * \n * @type {Array}\n * @memberof FormateurSuiviSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurSuiviSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurSuiviSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurSuiviSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurSuiviSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurSuiviSearch interface.\n */\nexport function instanceOfFormateurSuiviSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurSuiviSearchFromJSON(json: any): FormateurSuiviSearch {\n return FormateurSuiviSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurSuiviSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurSuiviSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurSuiviSearchToJSON(value?: FormateurSuiviSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idFormateur': value.idFormateur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface FormateurTitreSearch\n */\nexport interface FormateurTitreSearch {\n /**\n * \n * @type {number}\n * @memberof FormateurTitreSearch\n */\n idformateur?: number;\n /**\n * \n * @type {Array}\n * @memberof FormateurTitreSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateurTitreSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateurTitreSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateurTitreSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateurTitreSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateurTitreSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateurTitreSearch interface.\n */\nexport function instanceOfFormateurTitreSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateurTitreSearchFromJSON(json: any): FormateurTitreSearch {\n return FormateurTitreSearchFromJSONTyped(json, false);\n}\n\nexport function FormateurTitreSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateurTitreSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateurTitreSearchToJSON(value?: FormateurTitreSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateur': value.idformateur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface FormateursMetiersAgrementSearch\n */\nexport interface FormateursMetiersAgrementSearch {\n /**\n * \n * @type {number}\n * @memberof FormateursMetiersAgrementSearch\n */\n idformateurAgrement?: number;\n /**\n * \n * @type {Array}\n * @memberof FormateursMetiersAgrementSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateursMetiersAgrementSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateursMetiersAgrementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormateursMetiersAgrementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormateursMetiersAgrementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormateursMetiersAgrementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormateursMetiersAgrementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormateursMetiersAgrementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormateursMetiersAgrementSearch interface.\n */\nexport function instanceOfFormateursMetiersAgrementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormateursMetiersAgrementSearchFromJSON(json: any): FormateursMetiersAgrementSearch {\n return FormateursMetiersAgrementSearchFromJSONTyped(json, false);\n}\n\nexport function FormateursMetiersAgrementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormateursMetiersAgrementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idformateurAgrement': !exists(json, 'idformateurAgrement') ? undefined : json['idformateurAgrement'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormateursMetiersAgrementSearchToJSON(value?: FormateursMetiersAgrementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idformateurAgrement': value.idformateurAgrement,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\n\n/**\n * \n * @export\n * @interface FormationSearch\n */\nexport interface FormationSearch {\n /**\n * \n * @type {Int32ListSearch}\n * @memberof FormationSearch\n */\n idstatutStage?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof FormationSearch\n */\n idstade?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof FormationSearch\n */\n idmetier?: Int32ListSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof FormationSearch\n */\n debutContrat?: DateSearch;\n /**\n * \n * @type {number}\n * @memberof FormationSearch\n */\n idapprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof FormationSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof FormationSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof FormationSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof FormationSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof FormationSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof FormationSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the FormationSearch interface.\n */\nexport function instanceOfFormationSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FormationSearchFromJSON(json: any): FormationSearch {\n return FormationSearchFromJSONTyped(json, false);\n}\n\nexport function FormationSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): FormationSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idstatutStage': !exists(json, 'idstatutStage') ? undefined : Int32ListSearchFromJSON(json['idstatutStage']),\n 'idstade': !exists(json, 'idstade') ? undefined : Int32ListSearchFromJSON(json['idstade']),\n 'idmetier': !exists(json, 'idmetier') ? undefined : Int32ListSearchFromJSON(json['idmetier']),\n 'debutContrat': !exists(json, 'debutContrat') ? undefined : DateSearchFromJSON(json['debutContrat']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function FormationSearchToJSON(value?: FormationSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idstatutStage': Int32ListSearchToJSON(value.idstatutStage),\n 'idstade': Int32ListSearchToJSON(value.idstade),\n 'idmetier': Int32ListSearchToJSON(value.idmetier),\n 'debutContrat': DateSearchToJSON(value.debutContrat),\n 'idapprenant': value.idapprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface FrontendSettings\n */\nexport interface FrontendSettings {\n /**\n * \n * @type {string}\n * @memberof FrontendSettings\n */\n azureClientId?: string | null;\n /**\n * \n * @type {string}\n * @memberof FrontendSettings\n */\n azureAuthority?: string | null;\n /**\n * \n * @type {string}\n * @memberof FrontendSettings\n */\n azureApiScope?: string | null;\n}\n\n/**\n * Check if a given object implements the FrontendSettings interface.\n */\nexport function instanceOfFrontendSettings(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FrontendSettingsFromJSON(json: any): FrontendSettings {\n return FrontendSettingsFromJSONTyped(json, false);\n}\n\nexport function FrontendSettingsFromJSONTyped(json: any, ignoreDiscriminator: boolean): FrontendSettings {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'azureClientId': !exists(json, 'azureClientId') ? undefined : json['azureClientId'],\n 'azureAuthority': !exists(json, 'azureAuthority') ? undefined : json['azureAuthority'],\n 'azureApiScope': !exists(json, 'azureApiScope') ? undefined : json['azureApiScope'],\n };\n}\n\nexport function FrontendSettingsToJSON(value?: FrontendSettings | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'azureClientId': value.azureClientId,\n 'azureAuthority': value.azureAuthority,\n 'azureApiScope': value.azureApiScope,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RapportHopeParameterDataDto\n */\nexport interface RapportHopeParameterDataDto {\n /**\n * \n * @type {string}\n * @memberof RapportHopeParameterDataDto\n */\n name?: string | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeParameterDataDto\n */\n value?: string | null;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeParameterDataDto\n */\n values?: Array | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeParameterDataDto interface.\n */\nexport function instanceOfRapportHopeParameterDataDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeParameterDataDtoFromJSON(json: any): RapportHopeParameterDataDto {\n return RapportHopeParameterDataDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeParameterDataDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeParameterDataDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'values': !exists(json, 'values') ? undefined : json['values'],\n };\n}\n\nexport function RapportHopeParameterDataDtoToJSON(value?: RapportHopeParameterDataDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'name': value.name,\n 'value': value.value,\n 'values': value.values,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { RapportHopeParameterDataDto } from './RapportHopeParameterDataDto';\nimport {\n RapportHopeParameterDataDtoFromJSON,\n RapportHopeParameterDataDtoFromJSONTyped,\n RapportHopeParameterDataDtoToJSON,\n} from './RapportHopeParameterDataDto';\n\n/**\n * \n * @export\n * @interface GenerateMultipleRapportHopeCommand\n */\nexport interface GenerateMultipleRapportHopeCommand {\n /**\n * \n * @type {string}\n * @memberof GenerateMultipleRapportHopeCommand\n */\n reportName?: string | null;\n /**\n * \n * @type {Array}\n * @memberof GenerateMultipleRapportHopeCommand\n */\n entityIds?: Array | null;\n /**\n * \n * @type {string}\n * @memberof GenerateMultipleRapportHopeCommand\n */\n format?: string | null;\n /**\n * \n * @type {Array}\n * @memberof GenerateMultipleRapportHopeCommand\n */\n parameters?: Array | null;\n}\n\n/**\n * Check if a given object implements the GenerateMultipleRapportHopeCommand interface.\n */\nexport function instanceOfGenerateMultipleRapportHopeCommand(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function GenerateMultipleRapportHopeCommandFromJSON(json: any): GenerateMultipleRapportHopeCommand {\n return GenerateMultipleRapportHopeCommandFromJSONTyped(json, false);\n}\n\nexport function GenerateMultipleRapportHopeCommandFromJSONTyped(json: any, ignoreDiscriminator: boolean): GenerateMultipleRapportHopeCommand {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'reportName': !exists(json, 'reportName') ? undefined : json['reportName'],\n 'entityIds': !exists(json, 'entityIds') ? undefined : json['entityIds'],\n 'format': !exists(json, 'format') ? undefined : json['format'],\n 'parameters': !exists(json, 'parameters') ? undefined : (json['parameters'] === null ? null : (json['parameters'] as Array).map(RapportHopeParameterDataDtoFromJSON)),\n };\n}\n\nexport function GenerateMultipleRapportHopeCommandToJSON(value?: GenerateMultipleRapportHopeCommand | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'reportName': value.reportName,\n 'entityIds': value.entityIds,\n 'format': value.format,\n 'parameters': value.parameters === undefined ? undefined : (value.parameters === null ? null : (value.parameters as Array).map(RapportHopeParameterDataDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { RapportHopeParameterDataDto } from './RapportHopeParameterDataDto';\nimport {\n RapportHopeParameterDataDtoFromJSON,\n RapportHopeParameterDataDtoFromJSONTyped,\n RapportHopeParameterDataDtoToJSON,\n} from './RapportHopeParameterDataDto';\n\n/**\n * \n * @export\n * @interface GenerateRapportHopeCommand\n */\nexport interface GenerateRapportHopeCommand {\n /**\n * \n * @type {string}\n * @memberof GenerateRapportHopeCommand\n */\n reportName?: string | null;\n /**\n * \n * @type {string}\n * @memberof GenerateRapportHopeCommand\n */\n format?: string | null;\n /**\n * \n * @type {Array}\n * @memberof GenerateRapportHopeCommand\n */\n parameters?: Array | null;\n}\n\n/**\n * Check if a given object implements the GenerateRapportHopeCommand interface.\n */\nexport function instanceOfGenerateRapportHopeCommand(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function GenerateRapportHopeCommandFromJSON(json: any): GenerateRapportHopeCommand {\n return GenerateRapportHopeCommandFromJSONTyped(json, false);\n}\n\nexport function GenerateRapportHopeCommandFromJSONTyped(json: any, ignoreDiscriminator: boolean): GenerateRapportHopeCommand {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'reportName': !exists(json, 'reportName') ? undefined : json['reportName'],\n 'format': !exists(json, 'format') ? undefined : json['format'],\n 'parameters': !exists(json, 'parameters') ? undefined : (json['parameters'] === null ? null : (json['parameters'] as Array).map(RapportHopeParameterDataDtoFromJSON)),\n };\n}\n\nexport function GenerateRapportHopeCommandToJSON(value?: GenerateRapportHopeCommand | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'reportName': value.reportName,\n 'format': value.format,\n 'parameters': value.parameters === undefined ? undefined : (value.parameters === null ? null : (value.parameters as Array).map(RapportHopeParameterDataDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface GestionDroitsSearch\n */\nexport interface GestionDroitsSearch {\n /**\n * \n * @type {number}\n * @memberof GestionDroitsSearch\n */\n idaccesLevel?: number | null;\n /**\n * \n * @type {Array}\n * @memberof GestionDroitsSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof GestionDroitsSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof GestionDroitsSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof GestionDroitsSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof GestionDroitsSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof GestionDroitsSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the GestionDroitsSearch interface.\n */\nexport function instanceOfGestionDroitsSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function GestionDroitsSearchFromJSON(json: any): GestionDroitsSearch {\n return GestionDroitsSearchFromJSONTyped(json, false);\n}\n\nexport function GestionDroitsSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): GestionDroitsSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idaccesLevel': !exists(json, 'idaccesLevel') ? undefined : json['idaccesLevel'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function GestionDroitsSearchToJSON(value?: GestionDroitsSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idaccesLevel': value.idaccesLevel,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface GetApprenantAvisResultatsIdsfichierDto\n */\nexport interface GetApprenantAvisResultatsIdsfichierDto {\n /**\n * \n * @type {Array}\n * @memberof GetApprenantAvisResultatsIdsfichierDto\n */\n idsApprenant?: Array | null;\n /**\n * \n * @type {string}\n * @memberof GetApprenantAvisResultatsIdsfichierDto\n */\n anneeScolaire?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof GetApprenantAvisResultatsIdsfichierDto\n */\n is2Sess?: boolean;\n}\n\n/**\n * Check if a given object implements the GetApprenantAvisResultatsIdsfichierDto interface.\n */\nexport function instanceOfGetApprenantAvisResultatsIdsfichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function GetApprenantAvisResultatsIdsfichierDtoFromJSON(json: any): GetApprenantAvisResultatsIdsfichierDto {\n return GetApprenantAvisResultatsIdsfichierDtoFromJSONTyped(json, false);\n}\n\nexport function GetApprenantAvisResultatsIdsfichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetApprenantAvisResultatsIdsfichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsApprenant': !exists(json, 'idsApprenant') ? undefined : json['idsApprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : json['anneeScolaire'],\n 'is2Sess': !exists(json, 'is2Sess') ? undefined : json['is2Sess'],\n };\n}\n\nexport function GetApprenantAvisResultatsIdsfichierDtoToJSON(value?: GetApprenantAvisResultatsIdsfichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsApprenant': value.idsApprenant,\n 'anneeScolaire': value.anneeScolaire,\n 'is2Sess': value.is2Sess,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface GetInscriptionDatesConvocationRequestDto\n */\nexport interface GetInscriptionDatesConvocationRequestDto {\n /**\n * \n * @type {number}\n * @memberof GetInscriptionDatesConvocationRequestDto\n */\n idClasse?: number;\n /**\n * \n * @type {Date}\n * @memberof GetInscriptionDatesConvocationRequestDto\n */\n dateInscription?: Date | null;\n}\n\n/**\n * Check if a given object implements the GetInscriptionDatesConvocationRequestDto interface.\n */\nexport function instanceOfGetInscriptionDatesConvocationRequestDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function GetInscriptionDatesConvocationRequestDtoFromJSON(json: any): GetInscriptionDatesConvocationRequestDto {\n return GetInscriptionDatesConvocationRequestDtoFromJSONTyped(json, false);\n}\n\nexport function GetInscriptionDatesConvocationRequestDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetInscriptionDatesConvocationRequestDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasse': !exists(json, 'idClasse') ? undefined : json['idClasse'],\n 'dateInscription': !exists(json, 'dateInscription') ? undefined : (json['dateInscription'] === null ? null : new Date(json['dateInscription'])),\n };\n}\n\nexport function GetInscriptionDatesConvocationRequestDtoToJSON(value?: GetInscriptionDatesConvocationRequestDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasse': value.idClasse,\n 'dateInscription': value.dateInscription === undefined ? undefined : (value.dateInscription === null ? null : value.dateInscription.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { RapportHopeParameterDataDto } from './RapportHopeParameterDataDto';\nimport {\n RapportHopeParameterDataDtoFromJSON,\n RapportHopeParameterDataDtoFromJSONTyped,\n RapportHopeParameterDataDtoToJSON,\n} from './RapportHopeParameterDataDto';\n\n/**\n * \n * @export\n * @interface GetRapportHopeForViewQuery\n */\nexport interface GetRapportHopeForViewQuery {\n /**\n * \n * @type {number}\n * @memberof GetRapportHopeForViewQuery\n */\n idrapportHope?: number;\n /**\n * \n * @type {Array}\n * @memberof GetRapportHopeForViewQuery\n */\n currentParameterValues?: Array | null;\n}\n\n/**\n * Check if a given object implements the GetRapportHopeForViewQuery interface.\n */\nexport function instanceOfGetRapportHopeForViewQuery(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function GetRapportHopeForViewQueryFromJSON(json: any): GetRapportHopeForViewQuery {\n return GetRapportHopeForViewQueryFromJSONTyped(json, false);\n}\n\nexport function GetRapportHopeForViewQueryFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetRapportHopeForViewQuery {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrapportHope': !exists(json, 'idrapportHope') ? undefined : json['idrapportHope'],\n 'currentParameterValues': !exists(json, 'currentParameterValues') ? undefined : (json['currentParameterValues'] === null ? null : (json['currentParameterValues'] as Array).map(RapportHopeParameterDataDtoFromJSON)),\n };\n}\n\nexport function GetRapportHopeForViewQueryToJSON(value?: GetRapportHopeForViewQuery | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrapportHope': value.idrapportHope,\n 'currentParameterValues': value.currentParameterValues === undefined ? undefined : (value.currentParameterValues === null ? null : (value.currentParameterValues as Array).map(RapportHopeParameterDataDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface HealthCheckEntryViewModel\n */\nexport interface HealthCheckEntryViewModel {\n /**\n * \n * @type {string}\n * @memberof HealthCheckEntryViewModel\n */\n name?: string | null;\n /**\n * \n * @type {string}\n * @memberof HealthCheckEntryViewModel\n */\n description?: string | null;\n /**\n * \n * @type {string}\n * @memberof HealthCheckEntryViewModel\n */\n status?: string | null;\n /**\n * \n * @type {string}\n * @memberof HealthCheckEntryViewModel\n */\n statusDescription?: string | null;\n /**\n * \n * @type {string}\n * @memberof HealthCheckEntryViewModel\n */\n executionTime?: string | null;\n /**\n * \n * @type {{ [key: string]: Array; }}\n * @memberof HealthCheckEntryViewModel\n */\n context?: { [key: string]: Array; } | null;\n}\n\n/**\n * Check if a given object implements the HealthCheckEntryViewModel interface.\n */\nexport function instanceOfHealthCheckEntryViewModel(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function HealthCheckEntryViewModelFromJSON(json: any): HealthCheckEntryViewModel {\n return HealthCheckEntryViewModelFromJSONTyped(json, false);\n}\n\nexport function HealthCheckEntryViewModelFromJSONTyped(json: any, ignoreDiscriminator: boolean): HealthCheckEntryViewModel {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'status': !exists(json, 'status') ? undefined : json['status'],\n 'statusDescription': !exists(json, 'statusDescription') ? undefined : json['statusDescription'],\n 'executionTime': !exists(json, 'executionTime') ? undefined : json['executionTime'],\n 'context': !exists(json, 'context') ? undefined : json['context'],\n };\n}\n\nexport function HealthCheckEntryViewModelToJSON(value?: HealthCheckEntryViewModel | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'name': value.name,\n 'description': value.description,\n 'status': value.status,\n 'statusDescription': value.statusDescription,\n 'executionTime': value.executionTime,\n 'context': value.context,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { HealthCheckEntryViewModel } from './HealthCheckEntryViewModel';\nimport {\n HealthCheckEntryViewModelFromJSON,\n HealthCheckEntryViewModelFromJSONTyped,\n HealthCheckEntryViewModelToJSON,\n} from './HealthCheckEntryViewModel';\n\n/**\n * \n * @export\n * @interface HealthCheckViewModel\n */\nexport interface HealthCheckViewModel {\n /**\n * \n * @type {string}\n * @memberof HealthCheckViewModel\n */\n globalStatus?: string | null;\n /**\n * \n * @type {string}\n * @memberof HealthCheckViewModel\n */\n checkTime?: string | null;\n /**\n * \n * @type {string}\n * @memberof HealthCheckViewModel\n */\n worstExecutionTime?: string | null;\n /**\n * \n * @type {string}\n * @memberof HealthCheckViewModel\n */\n totalExecutionTime?: string | null;\n /**\n * \n * @type {Array}\n * @memberof HealthCheckViewModel\n */\n entries?: Array | null;\n}\n\n/**\n * Check if a given object implements the HealthCheckViewModel interface.\n */\nexport function instanceOfHealthCheckViewModel(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function HealthCheckViewModelFromJSON(json: any): HealthCheckViewModel {\n return HealthCheckViewModelFromJSONTyped(json, false);\n}\n\nexport function HealthCheckViewModelFromJSONTyped(json: any, ignoreDiscriminator: boolean): HealthCheckViewModel {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'globalStatus': !exists(json, 'globalStatus') ? undefined : json['globalStatus'],\n 'checkTime': !exists(json, 'checkTime') ? undefined : json['checkTime'],\n 'worstExecutionTime': !exists(json, 'worstExecutionTime') ? undefined : json['worstExecutionTime'],\n 'totalExecutionTime': !exists(json, 'totalExecutionTime') ? undefined : json['totalExecutionTime'],\n 'entries': !exists(json, 'entries') ? undefined : (json['entries'] === null ? null : (json['entries'] as Array).map(HealthCheckEntryViewModelFromJSON)),\n };\n}\n\nexport function HealthCheckViewModelToJSON(value?: HealthCheckViewModel | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'globalStatus': value.globalStatus,\n 'checkTime': value.checkTime,\n 'worstExecutionTime': value.worstExecutionTime,\n 'totalExecutionTime': value.totalExecutionTime,\n 'entries': value.entries === undefined ? undefined : (value.entries === null ? null : (value.entries as Array).map(HealthCheckEntryViewModelToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface HoraireSearch\n */\nexport interface HoraireSearch {\n /**\n * \n * @type {number}\n * @memberof HoraireSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof HoraireSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof HoraireSearch\n */\n jourClasse?: DateSearch;\n /**\n * \n * @type {Array}\n * @memberof HoraireSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof HoraireSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof HoraireSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof HoraireSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof HoraireSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof HoraireSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the HoraireSearch interface.\n */\nexport function instanceOfHoraireSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function HoraireSearchFromJSON(json: any): HoraireSearch {\n return HoraireSearchFromJSONTyped(json, false);\n}\n\nexport function HoraireSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): HoraireSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'jourClasse': !exists(json, 'jourClasse') ? undefined : DateSearchFromJSON(json['jourClasse']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function HoraireSearchToJSON(value?: HoraireSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'jourClasse': DateSearchToJSON(value.jourClasse),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ImpersonateUserInfoDto\n */\nexport interface ImpersonateUserInfoDto {\n /**\n * \n * @type {string}\n * @memberof ImpersonateUserInfoDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ImpersonateUserInfoDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ImpersonateUserInfoDto\n */\n azureEmail?: string | null;\n /**\n * \n * @type {string}\n * @memberof ImpersonateUserInfoDto\n */\n userId?: string | null;\n}\n\n/**\n * Check if a given object implements the ImpersonateUserInfoDto interface.\n */\nexport function instanceOfImpersonateUserInfoDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ImpersonateUserInfoDtoFromJSON(json: any): ImpersonateUserInfoDto {\n return ImpersonateUserInfoDtoFromJSONTyped(json, false);\n}\n\nexport function ImpersonateUserInfoDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ImpersonateUserInfoDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'azureEmail': !exists(json, 'azureEmail') ? undefined : json['azureEmail'],\n 'userId': !exists(json, 'userId') ? undefined : json['userId'],\n };\n}\n\nexport function ImpersonateUserInfoDtoToJSON(value?: ImpersonateUserInfoDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n 'prenom': value.prenom,\n 'azureEmail': value.azureEmail,\n 'userId': value.userId,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InscriptionAbandonDto\n */\nexport interface InscriptionAbandonDto {\n /**\n * \n * @type {Array}\n * @memberof InscriptionAbandonDto\n */\n idsinscription?: Array | null;\n /**\n * \n * @type {Date}\n * @memberof InscriptionAbandonDto\n */\n dateAbandon?: Date;\n}\n\n/**\n * Check if a given object implements the InscriptionAbandonDto interface.\n */\nexport function instanceOfInscriptionAbandonDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionAbandonDtoFromJSON(json: any): InscriptionAbandonDto {\n return InscriptionAbandonDtoFromJSONTyped(json, false);\n}\n\nexport function InscriptionAbandonDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionAbandonDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsinscription': !exists(json, 'idsinscription') ? undefined : json['idsinscription'],\n 'dateAbandon': !exists(json, 'dateAbandon') ? undefined : (new Date(json['dateAbandon'])),\n };\n}\n\nexport function InscriptionAbandonDtoToJSON(value?: InscriptionAbandonDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsinscription': value.idsinscription,\n 'dateAbandon': value.dateAbandon === undefined ? undefined : (value.dateAbandon.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InscriptionFichierDto\n */\nexport interface InscriptionFichierDto {\n /**\n * \n * @type {number}\n * @memberof InscriptionFichierDto\n */\n idinscriptionFichier?: number;\n /**\n * \n * @type {number}\n * @memberof InscriptionFichierDto\n */\n idinscription?: number;\n /**\n * \n * @type {number}\n * @memberof InscriptionFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {string}\n * @memberof InscriptionFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the InscriptionFichierDto interface.\n */\nexport function instanceOfInscriptionFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionFichierDtoFromJSON(json: any): InscriptionFichierDto {\n return InscriptionFichierDtoFromJSONTyped(json, false);\n}\n\nexport function InscriptionFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinscriptionFichier': !exists(json, 'idinscriptionFichier') ? undefined : json['idinscriptionFichier'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function InscriptionFichierDtoToJSON(value?: InscriptionFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinscriptionFichier': value.idinscriptionFichier,\n 'idinscription': value.idinscription,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface InscriptionFichierUploadDto\n */\nexport interface InscriptionFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof InscriptionFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof InscriptionFichierUploadDto\n */\n idinscriptionFichier?: number;\n /**\n * \n * @type {number}\n * @memberof InscriptionFichierUploadDto\n */\n idinscription?: number;\n /**\n * \n * @type {number}\n * @memberof InscriptionFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {string}\n * @memberof InscriptionFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the InscriptionFichierUploadDto interface.\n */\nexport function instanceOfInscriptionFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionFichierUploadDtoFromJSON(json: any): InscriptionFichierUploadDto {\n return InscriptionFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function InscriptionFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idinscriptionFichier': !exists(json, 'idinscriptionFichier') ? undefined : json['idinscriptionFichier'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function InscriptionFichierUploadDtoToJSON(value?: InscriptionFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idinscriptionFichier': value.idinscriptionFichier,\n 'idinscription': value.idinscription,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface InscriptionMasseSearch\n */\nexport interface InscriptionMasseSearch {\n /**\n * \n * @type {number}\n * @memberof InscriptionMasseSearch\n */\n idcentre?: number | null;\n /**\n * \n * @type {number}\n * @memberof InscriptionMasseSearch\n */\n idclasseSelected?: number | null;\n /**\n * \n * @type {Array}\n * @memberof InscriptionMasseSearch\n */\n alreadyInClasseIds?: Array | null;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n degres?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n idsclasse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n masculins?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n classes?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n anneesScolaires?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n deliberations?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n deliberations2sess?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionMasseSearch\n */\n codesMetier?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof InscriptionMasseSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InscriptionMasseSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InscriptionMasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InscriptionMasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof InscriptionMasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof InscriptionMasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof InscriptionMasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof InscriptionMasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the InscriptionMasseSearch interface.\n */\nexport function instanceOfInscriptionMasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionMasseSearchFromJSON(json: any): InscriptionMasseSearch {\n return InscriptionMasseSearchFromJSONTyped(json, false);\n}\n\nexport function InscriptionMasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionMasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'idclasseSelected': !exists(json, 'idclasseSelected') ? undefined : json['idclasseSelected'],\n 'alreadyInClasseIds': !exists(json, 'alreadyInClasseIds') ? undefined : json['alreadyInClasseIds'],\n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'degres': !exists(json, 'degres') ? undefined : TextSearchFromJSON(json['degres']),\n 'idsclasse': !exists(json, 'idsclasse') ? undefined : TextSearchFromJSON(json['idsclasse']),\n 'masculins': !exists(json, 'masculins') ? undefined : TextSearchFromJSON(json['masculins']),\n 'classes': !exists(json, 'classes') ? undefined : TextSearchFromJSON(json['classes']),\n 'anneesScolaires': !exists(json, 'anneesScolaires') ? undefined : TextSearchFromJSON(json['anneesScolaires']),\n 'deliberations': !exists(json, 'deliberations') ? undefined : TextSearchFromJSON(json['deliberations']),\n 'deliberations2sess': !exists(json, 'deliberations2sess') ? undefined : TextSearchFromJSON(json['deliberations2sess']),\n 'codesMetier': !exists(json, 'codesMetier') ? undefined : TextSearchFromJSON(json['codesMetier']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function InscriptionMasseSearchToJSON(value?: InscriptionMasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'idclasseSelected': value.idclasseSelected,\n 'alreadyInClasseIds': value.alreadyInClasseIds,\n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'degres': TextSearchToJSON(value.degres),\n 'idsclasse': TextSearchToJSON(value.idsclasse),\n 'masculins': TextSearchToJSON(value.masculins),\n 'classes': TextSearchToJSON(value.classes),\n 'anneesScolaires': TextSearchToJSON(value.anneesScolaires),\n 'deliberations': TextSearchToJSON(value.deliberations),\n 'deliberations2sess': TextSearchToJSON(value.deliberations2sess),\n 'codesMetier': TextSearchToJSON(value.codesMetier),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface InscriptionSearch\n */\nexport interface InscriptionSearch {\n /**\n * \n * @type {number}\n * @memberof InscriptionSearch\n */\n idapprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof InscriptionSearch\n */\n statuts?: Array | null;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InscriptionSearch\n */\n codeFormation?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof InscriptionSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InscriptionSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof InscriptionSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof InscriptionSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof InscriptionSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof InscriptionSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the InscriptionSearch interface.\n */\nexport function instanceOfInscriptionSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionSearchFromJSON(json: any): InscriptionSearch {\n return InscriptionSearchFromJSONTyped(json, false);\n}\n\nexport function InscriptionSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'statuts': !exists(json, 'statuts') ? undefined : json['statuts'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'codeFormation': !exists(json, 'codeFormation') ? undefined : TextSearchFromJSON(json['codeFormation']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function InscriptionSearchToJSON(value?: InscriptionSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'statuts': value.statuts,\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'codeFormation': TextSearchToJSON(value.codeFormation),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InscriptionSuspensionDto\n */\nexport interface InscriptionSuspensionDto {\n /**\n * \n * @type {number}\n * @memberof InscriptionSuspensionDto\n */\n idinscriptionSuspension?: number;\n /**\n * \n * @type {number}\n * @memberof InscriptionSuspensionDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {Date}\n * @memberof InscriptionSuspensionDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof InscriptionSuspensionDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof InscriptionSuspensionDto\n */\n remarque?: string | null;\n}\n\n/**\n * Check if a given object implements the InscriptionSuspensionDto interface.\n */\nexport function instanceOfInscriptionSuspensionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionSuspensionDtoFromJSON(json: any): InscriptionSuspensionDto {\n return InscriptionSuspensionDtoFromJSONTyped(json, false);\n}\n\nexport function InscriptionSuspensionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionSuspensionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinscriptionSuspension': !exists(json, 'idinscriptionSuspension') ? undefined : json['idinscriptionSuspension'],\n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n };\n}\n\nexport function InscriptionSuspensionDtoToJSON(value?: InscriptionSuspensionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinscriptionSuspension': value.idinscriptionSuspension,\n 'idinscription': value.idinscription,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'remarque': value.remarque,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { InscriptionSuspensionDto } from './InscriptionSuspensionDto';\nimport {\n InscriptionSuspensionDtoFromJSON,\n InscriptionSuspensionDtoFromJSONTyped,\n InscriptionSuspensionDtoToJSON,\n} from './InscriptionSuspensionDto';\n\n/**\n * \n * @export\n * @interface InscriptionSuspensionDtoPaginatedResults\n */\nexport interface InscriptionSuspensionDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof InscriptionSuspensionDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof InscriptionSuspensionDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InscriptionSuspensionDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the InscriptionSuspensionDtoPaginatedResults interface.\n */\nexport function instanceOfInscriptionSuspensionDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionSuspensionDtoPaginatedResultsFromJSON(json: any): InscriptionSuspensionDtoPaginatedResults {\n return InscriptionSuspensionDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function InscriptionSuspensionDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionSuspensionDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(InscriptionSuspensionDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function InscriptionSuspensionDtoPaginatedResultsToJSON(value?: InscriptionSuspensionDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(InscriptionSuspensionDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InscriptionSuspensionMultipleDto\n */\nexport interface InscriptionSuspensionMultipleDto {\n /**\n * \n * @type {Array}\n * @memberof InscriptionSuspensionMultipleDto\n */\n idsinscription?: Array | null;\n /**\n * \n * @type {Date}\n * @memberof InscriptionSuspensionMultipleDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof InscriptionSuspensionMultipleDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {string}\n * @memberof InscriptionSuspensionMultipleDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof InscriptionSuspensionMultipleDto\n */\n endMode?: boolean;\n}\n\n/**\n * Check if a given object implements the InscriptionSuspensionMultipleDto interface.\n */\nexport function instanceOfInscriptionSuspensionMultipleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionSuspensionMultipleDtoFromJSON(json: any): InscriptionSuspensionMultipleDto {\n return InscriptionSuspensionMultipleDtoFromJSONTyped(json, false);\n}\n\nexport function InscriptionSuspensionMultipleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionSuspensionMultipleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsinscription': !exists(json, 'idsinscription') ? undefined : json['idsinscription'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'endMode': !exists(json, 'endMode') ? undefined : json['endMode'],\n };\n}\n\nexport function InscriptionSuspensionMultipleDtoToJSON(value?: InscriptionSuspensionMultipleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsinscription': value.idsinscription,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'remarque': value.remarque,\n 'endMode': value.endMode,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface InscriptionSuspensionSearchDto\n */\nexport interface InscriptionSuspensionSearchDto {\n /**\n * \n * @type {number}\n * @memberof InscriptionSuspensionSearchDto\n */\n idinscription?: number | null;\n /**\n * \n * @type {Array}\n * @memberof InscriptionSuspensionSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InscriptionSuspensionSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof InscriptionSuspensionSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof InscriptionSuspensionSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof InscriptionSuspensionSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof InscriptionSuspensionSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the InscriptionSuspensionSearchDto interface.\n */\nexport function instanceOfInscriptionSuspensionSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InscriptionSuspensionSearchDtoFromJSON(json: any): InscriptionSuspensionSearchDto {\n return InscriptionSuspensionSearchDtoFromJSONTyped(json, false);\n}\n\nexport function InscriptionSuspensionSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InscriptionSuspensionSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinscription': !exists(json, 'idinscription') ? undefined : json['idinscription'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function InscriptionSuspensionSearchDtoToJSON(value?: InscriptionSuspensionSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinscription': value.idinscription,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InstitutionApprenantLiesGridDto\n */\nexport interface InstitutionApprenantLiesGridDto {\n /**\n * \n * @type {number}\n * @memberof InstitutionApprenantLiesGridDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof InstitutionApprenantLiesGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionApprenantLiesGridDto\n */\n prenom?: string | null;\n}\n\n/**\n * Check if a given object implements the InstitutionApprenantLiesGridDto interface.\n */\nexport function instanceOfInstitutionApprenantLiesGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionApprenantLiesGridDtoFromJSON(json: any): InstitutionApprenantLiesGridDto {\n return InstitutionApprenantLiesGridDtoFromJSONTyped(json, false);\n}\n\nexport function InstitutionApprenantLiesGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionApprenantLiesGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n };\n}\n\nexport function InstitutionApprenantLiesGridDtoToJSON(value?: InstitutionApprenantLiesGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'nom': value.nom,\n 'prenom': value.prenom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { InstitutionApprenantLiesGridDto } from './InstitutionApprenantLiesGridDto';\nimport {\n InstitutionApprenantLiesGridDtoFromJSON,\n InstitutionApprenantLiesGridDtoFromJSONTyped,\n InstitutionApprenantLiesGridDtoToJSON,\n} from './InstitutionApprenantLiesGridDto';\n\n/**\n * \n * @export\n * @interface InstitutionApprenantLiesGridDtoPaginatedResults\n */\nexport interface InstitutionApprenantLiesGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof InstitutionApprenantLiesGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof InstitutionApprenantLiesGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InstitutionApprenantLiesGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the InstitutionApprenantLiesGridDtoPaginatedResults interface.\n */\nexport function instanceOfInstitutionApprenantLiesGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionApprenantLiesGridDtoPaginatedResultsFromJSON(json: any): InstitutionApprenantLiesGridDtoPaginatedResults {\n return InstitutionApprenantLiesGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function InstitutionApprenantLiesGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionApprenantLiesGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(InstitutionApprenantLiesGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function InstitutionApprenantLiesGridDtoPaginatedResultsToJSON(value?: InstitutionApprenantLiesGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(InstitutionApprenantLiesGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface InstitutionApprenantLiesSearchDto\n */\nexport interface InstitutionApprenantLiesSearchDto {\n /**\n * \n * @type {number}\n * @memberof InstitutionApprenantLiesSearchDto\n */\n idinstitution?: number;\n /**\n * \n * @type {Array}\n * @memberof InstitutionApprenantLiesSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InstitutionApprenantLiesSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof InstitutionApprenantLiesSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof InstitutionApprenantLiesSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof InstitutionApprenantLiesSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionApprenantLiesSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the InstitutionApprenantLiesSearchDto interface.\n */\nexport function instanceOfInstitutionApprenantLiesSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionApprenantLiesSearchDtoFromJSON(json: any): InstitutionApprenantLiesSearchDto {\n return InstitutionApprenantLiesSearchDtoFromJSONTyped(json, false);\n}\n\nexport function InstitutionApprenantLiesSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionApprenantLiesSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinstitution': !exists(json, 'idinstitution') ? undefined : json['idinstitution'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function InstitutionApprenantLiesSearchDtoToJSON(value?: InstitutionApprenantLiesSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinstitution': value.idinstitution,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InstitutionEditDto\n */\nexport interface InstitutionEditDto {\n /**\n * \n * @type {number}\n * @memberof InstitutionEditDto\n */\n idinstitution?: number;\n /**\n * \n * @type {string}\n * @memberof InstitutionEditDto\n */\n denomination?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionEditDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionEditDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionEditDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionEditDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionEditDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionEditDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionEditDto\n */\n email?: string | null;\n}\n\n/**\n * Check if a given object implements the InstitutionEditDto interface.\n */\nexport function instanceOfInstitutionEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionEditDtoFromJSON(json: any): InstitutionEditDto {\n return InstitutionEditDtoFromJSONTyped(json, false);\n}\n\nexport function InstitutionEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinstitution': !exists(json, 'idinstitution') ? undefined : json['idinstitution'],\n 'denomination': !exists(json, 'denomination') ? undefined : json['denomination'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n };\n}\n\nexport function InstitutionEditDtoToJSON(value?: InstitutionEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinstitution': value.idinstitution,\n 'denomination': value.denomination,\n 'adresse': value.adresse,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n 'commune': value.commune,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'email': value.email,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InstitutionGridDto\n */\nexport interface InstitutionGridDto {\n /**\n * \n * @type {number}\n * @memberof InstitutionGridDto\n */\n idinstitution?: number;\n /**\n * \n * @type {string}\n * @memberof InstitutionGridDto\n */\n denomination?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionGridDto\n */\n localite?: string | null;\n}\n\n/**\n * Check if a given object implements the InstitutionGridDto interface.\n */\nexport function instanceOfInstitutionGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionGridDtoFromJSON(json: any): InstitutionGridDto {\n return InstitutionGridDtoFromJSONTyped(json, false);\n}\n\nexport function InstitutionGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinstitution': !exists(json, 'idinstitution') ? undefined : json['idinstitution'],\n 'denomination': !exists(json, 'denomination') ? undefined : json['denomination'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n };\n}\n\nexport function InstitutionGridDtoToJSON(value?: InstitutionGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinstitution': value.idinstitution,\n 'denomination': value.denomination,\n 'localite': value.localite,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { InstitutionGridDto } from './InstitutionGridDto';\nimport {\n InstitutionGridDtoFromJSON,\n InstitutionGridDtoFromJSONTyped,\n InstitutionGridDtoToJSON,\n} from './InstitutionGridDto';\n\n/**\n * \n * @export\n * @interface InstitutionGridDtoPaginatedResults\n */\nexport interface InstitutionGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof InstitutionGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof InstitutionGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InstitutionGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the InstitutionGridDtoPaginatedResults interface.\n */\nexport function instanceOfInstitutionGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionGridDtoPaginatedResultsFromJSON(json: any): InstitutionGridDtoPaginatedResults {\n return InstitutionGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function InstitutionGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(InstitutionGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function InstitutionGridDtoPaginatedResultsToJSON(value?: InstitutionGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(InstitutionGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface InstitutionSearchDto\n */\nexport interface InstitutionSearchDto {\n /**\n * \n * @type {TextSearch}\n * @memberof InstitutionSearchDto\n */\n denomination?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof InstitutionSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InstitutionSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof InstitutionSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof InstitutionSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof InstitutionSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the InstitutionSearchDto interface.\n */\nexport function instanceOfInstitutionSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionSearchDtoFromJSON(json: any): InstitutionSearchDto {\n return InstitutionSearchDtoFromJSONTyped(json, false);\n}\n\nexport function InstitutionSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'denomination': !exists(json, 'denomination') ? undefined : TextSearchFromJSON(json['denomination']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function InstitutionSearchDtoToJSON(value?: InstitutionSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'denomination': TextSearchToJSON(value.denomination),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface InstitutionSelectorGridDto\n */\nexport interface InstitutionSelectorGridDto {\n /**\n * \n * @type {number}\n * @memberof InstitutionSelectorGridDto\n */\n idinstitution?: number;\n /**\n * \n * @type {string}\n * @memberof InstitutionSelectorGridDto\n */\n denomination?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionSelectorGridDto\n */\n adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionSelectorGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionSelectorGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionSelectorGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionSelectorGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionSelectorGridDto\n */\n email?: string | null;\n}\n\n/**\n * Check if a given object implements the InstitutionSelectorGridDto interface.\n */\nexport function instanceOfInstitutionSelectorGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionSelectorGridDtoFromJSON(json: any): InstitutionSelectorGridDto {\n return InstitutionSelectorGridDtoFromJSONTyped(json, false);\n}\n\nexport function InstitutionSelectorGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionSelectorGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idinstitution': !exists(json, 'idinstitution') ? undefined : json['idinstitution'],\n 'denomination': !exists(json, 'denomination') ? undefined : json['denomination'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n };\n}\n\nexport function InstitutionSelectorGridDtoToJSON(value?: InstitutionSelectorGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idinstitution': value.idinstitution,\n 'denomination': value.denomination,\n 'adresse': value.adresse,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'email': value.email,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { InstitutionSelectorGridDto } from './InstitutionSelectorGridDto';\nimport {\n InstitutionSelectorGridDtoFromJSON,\n InstitutionSelectorGridDtoFromJSONTyped,\n InstitutionSelectorGridDtoToJSON,\n} from './InstitutionSelectorGridDto';\n\n/**\n * \n * @export\n * @interface InstitutionSelectorGridDtoPaginatedResults\n */\nexport interface InstitutionSelectorGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof InstitutionSelectorGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof InstitutionSelectorGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InstitutionSelectorGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the InstitutionSelectorGridDtoPaginatedResults interface.\n */\nexport function instanceOfInstitutionSelectorGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionSelectorGridDtoPaginatedResultsFromJSON(json: any): InstitutionSelectorGridDtoPaginatedResults {\n return InstitutionSelectorGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function InstitutionSelectorGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionSelectorGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(InstitutionSelectorGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function InstitutionSelectorGridDtoPaginatedResultsToJSON(value?: InstitutionSelectorGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(InstitutionSelectorGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface InstitutionSelectorSearch\n */\nexport interface InstitutionSelectorSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof InstitutionSelectorSearch\n */\n denomination?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InstitutionSelectorSearch\n */\n adresse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InstitutionSelectorSearch\n */\n codePostal?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InstitutionSelectorSearch\n */\n localite?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InstitutionSelectorSearch\n */\n gsm?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InstitutionSelectorSearch\n */\n telephone?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof InstitutionSelectorSearch\n */\n email?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof InstitutionSelectorSearch\n */\n selectedInstitutionIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InstitutionSelectorSearch\n */\n excludedInstitutionIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InstitutionSelectorSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof InstitutionSelectorSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof InstitutionSelectorSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof InstitutionSelectorSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof InstitutionSelectorSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof InstitutionSelectorSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the InstitutionSelectorSearch interface.\n */\nexport function instanceOfInstitutionSelectorSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function InstitutionSelectorSearchFromJSON(json: any): InstitutionSelectorSearch {\n return InstitutionSelectorSearchFromJSONTyped(json, false);\n}\n\nexport function InstitutionSelectorSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): InstitutionSelectorSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'denomination': !exists(json, 'denomination') ? undefined : TextSearchFromJSON(json['denomination']),\n 'adresse': !exists(json, 'adresse') ? undefined : TextSearchFromJSON(json['adresse']),\n 'codePostal': !exists(json, 'codePostal') ? undefined : TextSearchFromJSON(json['codePostal']),\n 'localite': !exists(json, 'localite') ? undefined : TextSearchFromJSON(json['localite']),\n 'gsm': !exists(json, 'gsm') ? undefined : TextSearchFromJSON(json['gsm']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'email': !exists(json, 'email') ? undefined : TextSearchFromJSON(json['email']),\n 'selectedInstitutionIds': !exists(json, 'selectedInstitutionIds') ? undefined : json['selectedInstitutionIds'],\n 'excludedInstitutionIds': !exists(json, 'excludedInstitutionIds') ? undefined : json['excludedInstitutionIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function InstitutionSelectorSearchToJSON(value?: InstitutionSelectorSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'denomination': TextSearchToJSON(value.denomination),\n 'adresse': TextSearchToJSON(value.adresse),\n 'codePostal': TextSearchToJSON(value.codePostal),\n 'localite': TextSearchToJSON(value.localite),\n 'gsm': TextSearchToJSON(value.gsm),\n 'telephone': TextSearchToJSON(value.telephone),\n 'email': TextSearchToJSON(value.email),\n 'selectedInstitutionIds': value.selectedInstitutionIds,\n 'excludedInstitutionIds': value.excludedInstitutionIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface JureSearch\n */\nexport interface JureSearch {\n /**\n * \n * @type {number}\n * @memberof JureSearch\n */\n idClasseMatiere?: number;\n /**\n * \n * @type {Array}\n * @memberof JureSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof JureSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof JureSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof JureSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof JureSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof JureSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the JureSearch interface.\n */\nexport function instanceOfJureSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function JureSearchFromJSON(json: any): JureSearch {\n return JureSearchFromJSONTyped(json, false);\n}\n\nexport function JureSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): JureSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idClasseMatiere': !exists(json, 'idClasseMatiere') ? undefined : json['idClasseMatiere'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function JureSearchToJSON(value?: JureSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idClasseMatiere': value.idClasseMatiere,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface JustificatifAbsenceSearch\n */\nexport interface JustificatifAbsenceSearch {\n /**\n * \n * @type {number}\n * @memberof JustificatifAbsenceSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof JustificatifAbsenceSearch\n */\n remarque?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof JustificatifAbsenceSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof JustificatifAbsenceSearch\n */\n genre?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof JustificatifAbsenceSearch\n */\n dateDebut?: DateSearch;\n /**\n * \n * @type {Array}\n * @memberof JustificatifAbsenceSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof JustificatifAbsenceSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof JustificatifAbsenceSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof JustificatifAbsenceSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof JustificatifAbsenceSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof JustificatifAbsenceSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the JustificatifAbsenceSearch interface.\n */\nexport function instanceOfJustificatifAbsenceSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function JustificatifAbsenceSearchFromJSON(json: any): JustificatifAbsenceSearch {\n return JustificatifAbsenceSearchFromJSONTyped(json, false);\n}\n\nexport function JustificatifAbsenceSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): JustificatifAbsenceSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'remarque': !exists(json, 'remarque') ? undefined : TextSearchFromJSON(json['remarque']),\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'genre': !exists(json, 'genre') ? undefined : TextSearchFromJSON(json['genre']),\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : DateSearchFromJSON(json['dateDebut']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function JustificatifAbsenceSearchToJSON(value?: JustificatifAbsenceSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'remarque': TextSearchToJSON(value.remarque),\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'genre': TextSearchToJSON(value.genre),\n 'dateDebut': DateSearchToJSON(value.dateDebut),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationAgrementDecisionMultipleDto\n */\nexport interface LieuFormationAgrementDecisionMultipleDto {\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementDecisionMultipleDto\n */\n idslieuFormationAgrement?: Array | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementDecisionMultipleDto\n */\n idlieuFormationAgrementDecision?: number | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementDecisionMultipleDto\n */\n dateDecision?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementDecisionMultipleDto\n */\n motifsNonAgrement?: Array | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementDecisionMultipleDto\n */\n remarqueDecision?: string | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementDecisionMultipleDto\n */\n dateEnvoiD3?: Date | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementDecisionMultipleDto interface.\n */\nexport function instanceOfLieuFormationAgrementDecisionMultipleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementDecisionMultipleDtoFromJSON(json: any): LieuFormationAgrementDecisionMultipleDto {\n return LieuFormationAgrementDecisionMultipleDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementDecisionMultipleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementDecisionMultipleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idslieuFormationAgrement': !exists(json, 'idslieuFormationAgrement') ? undefined : json['idslieuFormationAgrement'],\n 'idlieuFormationAgrementDecision': !exists(json, 'idlieuFormationAgrementDecision') ? undefined : json['idlieuFormationAgrementDecision'],\n 'dateDecision': !exists(json, 'dateDecision') ? undefined : (json['dateDecision'] === null ? null : new Date(json['dateDecision'])),\n 'motifsNonAgrement': !exists(json, 'motifsNonAgrement') ? undefined : json['motifsNonAgrement'],\n 'remarqueDecision': !exists(json, 'remarqueDecision') ? undefined : json['remarqueDecision'],\n 'dateEnvoiD3': !exists(json, 'dateEnvoiD3') ? undefined : (json['dateEnvoiD3'] === null ? null : new Date(json['dateEnvoiD3'])),\n };\n}\n\nexport function LieuFormationAgrementDecisionMultipleDtoToJSON(value?: LieuFormationAgrementDecisionMultipleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idslieuFormationAgrement': value.idslieuFormationAgrement,\n 'idlieuFormationAgrementDecision': value.idlieuFormationAgrementDecision,\n 'dateDecision': value.dateDecision === undefined ? undefined : (value.dateDecision === null ? null : value.dateDecision.toISOString()),\n 'motifsNonAgrement': value.motifsNonAgrement,\n 'remarqueDecision': value.remarqueDecision,\n 'dateEnvoiD3': value.dateEnvoiD3 === undefined ? undefined : (value.dateEnvoiD3 === null ? null : value.dateEnvoiD3.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface LieuFormationAgrementDemandeSectorielleMultipleDto\n */\nexport interface LieuFormationAgrementDemandeSectorielleMultipleDto {\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementDemandeSectorielleMultipleDto\n */\n idslieuFormationAgrement?: Array | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementDemandeSectorielleMultipleDto\n */\n dateEnvoiD1?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementDemandeSectorielleMultipleDto\n */\n dateReceptionAvis?: Date | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementDemandeSectorielleMultipleDto\n */\n idagrementAvis?: number | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementDemandeSectorielleMultipleDto\n */\n remarqueSectorielle?: string | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementDemandeSectorielleMultipleDto\n */\n idfichierDemandeSectorielle?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof LieuFormationAgrementDemandeSectorielleMultipleDto\n */\n fichierDemandeSectorielle?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementDemandeSectorielleMultipleDto interface.\n */\nexport function instanceOfLieuFormationAgrementDemandeSectorielleMultipleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementDemandeSectorielleMultipleDtoFromJSON(json: any): LieuFormationAgrementDemandeSectorielleMultipleDto {\n return LieuFormationAgrementDemandeSectorielleMultipleDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementDemandeSectorielleMultipleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementDemandeSectorielleMultipleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idslieuFormationAgrement': !exists(json, 'idslieuFormationAgrement') ? undefined : json['idslieuFormationAgrement'],\n 'dateEnvoiD1': !exists(json, 'dateEnvoiD1') ? undefined : (json['dateEnvoiD1'] === null ? null : new Date(json['dateEnvoiD1'])),\n 'dateReceptionAvis': !exists(json, 'dateReceptionAvis') ? undefined : (json['dateReceptionAvis'] === null ? null : new Date(json['dateReceptionAvis'])),\n 'idagrementAvis': !exists(json, 'idagrementAvis') ? undefined : json['idagrementAvis'],\n 'remarqueSectorielle': !exists(json, 'remarqueSectorielle') ? undefined : json['remarqueSectorielle'],\n 'idfichierDemandeSectorielle': !exists(json, 'idfichierDemandeSectorielle') ? undefined : json['idfichierDemandeSectorielle'],\n 'fichierDemandeSectorielle': !exists(json, 'fichierDemandeSectorielle') ? undefined : FileUploadDtoFromJSON(json['fichierDemandeSectorielle']),\n };\n}\n\nexport function LieuFormationAgrementDemandeSectorielleMultipleDtoToJSON(value?: LieuFormationAgrementDemandeSectorielleMultipleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idslieuFormationAgrement': value.idslieuFormationAgrement,\n 'dateEnvoiD1': value.dateEnvoiD1 === undefined ? undefined : (value.dateEnvoiD1 === null ? null : value.dateEnvoiD1.toISOString()),\n 'dateReceptionAvis': value.dateReceptionAvis === undefined ? undefined : (value.dateReceptionAvis === null ? null : value.dateReceptionAvis.toISOString()),\n 'idagrementAvis': value.idagrementAvis,\n 'remarqueSectorielle': value.remarqueSectorielle,\n 'idfichierDemandeSectorielle': value.idfichierDemandeSectorielle,\n 'fichierDemandeSectorielle': FileUploadDtoToJSON(value.fichierDemandeSectorielle),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationAgrementOffreDto\n */\nexport interface LieuFormationAgrementOffreDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementOffreDto\n */\n idlieuFormationAgrementOffre?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementOffreDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementOffreDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementOffreDto\n */\n idlieuFormationAgrement?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementOffreDto\n */\n lieuFormationAgrementNom?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementOffreDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementOffreDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementOffreDto interface.\n */\nexport function instanceOfLieuFormationAgrementOffreDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementOffreDtoFromJSON(json: any): LieuFormationAgrementOffreDto {\n return LieuFormationAgrementOffreDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementOffreDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementOffreDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormationAgrementOffre': !exists(json, 'idlieuFormationAgrementOffre') ? undefined : json['idlieuFormationAgrementOffre'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idlieuFormationAgrement': !exists(json, 'idlieuFormationAgrement') ? undefined : json['idlieuFormationAgrement'],\n 'lieuFormationAgrementNom': !exists(json, 'lieuFormationAgrementNom') ? undefined : json['lieuFormationAgrementNom'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function LieuFormationAgrementOffreDtoToJSON(value?: LieuFormationAgrementOffreDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormationAgrementOffre': value.idlieuFormationAgrementOffre,\n 'idsiegeSocial': value.idsiegeSocial,\n 'idlieuFormation': value.idlieuFormation,\n 'idlieuFormationAgrement': value.idlieuFormationAgrement,\n 'lieuFormationAgrementNom': value.lieuFormationAgrementNom,\n 'remarque': value.remarque,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface LieuFormationAgrementSuspensionDto\n */\nexport interface LieuFormationAgrementSuspensionDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementSuspensionDto\n */\n idlieuFormationAgrementSuspension?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementSuspensionDto\n */\n idlieuFormationAgrement?: number | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementSuspensionDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementSuspensionDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementSuspensionDto\n */\n idmotifSuspension?: number | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementSuspensionDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementSuspensionDto\n */\n idfichierSuspension?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof LieuFormationAgrementSuspensionDto\n */\n fichierSuspension?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementSuspensionDto interface.\n */\nexport function instanceOfLieuFormationAgrementSuspensionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementSuspensionDtoFromJSON(json: any): LieuFormationAgrementSuspensionDto {\n return LieuFormationAgrementSuspensionDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementSuspensionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementSuspensionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormationAgrementSuspension': !exists(json, 'idlieuFormationAgrementSuspension') ? undefined : json['idlieuFormationAgrementSuspension'],\n 'idlieuFormationAgrement': !exists(json, 'idlieuFormationAgrement') ? undefined : json['idlieuFormationAgrement'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'idmotifSuspension': !exists(json, 'idmotifSuspension') ? undefined : json['idmotifSuspension'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idfichierSuspension': !exists(json, 'idfichierSuspension') ? undefined : json['idfichierSuspension'],\n 'fichierSuspension': !exists(json, 'fichierSuspension') ? undefined : FileUploadDtoFromJSON(json['fichierSuspension']),\n };\n}\n\nexport function LieuFormationAgrementSuspensionDtoToJSON(value?: LieuFormationAgrementSuspensionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormationAgrementSuspension': value.idlieuFormationAgrementSuspension,\n 'idlieuFormationAgrement': value.idlieuFormationAgrement,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'idmotifSuspension': value.idmotifSuspension,\n 'remarque': value.remarque,\n 'idfichierSuspension': value.idfichierSuspension,\n 'fichierSuspension': FileUploadDtoToJSON(value.fichierSuspension),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface LieuFormationAgrementVisiteDto\n */\nexport interface LieuFormationAgrementVisiteDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementVisiteDto\n */\n idlieuFormationAgrementVisite?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementVisiteDto\n */\n idlieuFormationAgrement?: number | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementVisiteDto\n */\n dateVisite?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementVisiteDto\n */\n pratiqueSimulee?: boolean;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementVisiteDto\n */\n compteRendu?: string | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementVisiteDto\n */\n idfichierCompteRendu?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof LieuFormationAgrementVisiteDto\n */\n fichierCompteRendu?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementVisiteDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementVisiteDto\n */\n creationDate?: Date;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementVisiteDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementVisiteDto\n */\n modificationDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementVisiteDto interface.\n */\nexport function instanceOfLieuFormationAgrementVisiteDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementVisiteDtoFromJSON(json: any): LieuFormationAgrementVisiteDto {\n return LieuFormationAgrementVisiteDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementVisiteDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementVisiteDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormationAgrementVisite': !exists(json, 'idlieuFormationAgrementVisite') ? undefined : json['idlieuFormationAgrementVisite'],\n 'idlieuFormationAgrement': !exists(json, 'idlieuFormationAgrement') ? undefined : json['idlieuFormationAgrement'],\n 'dateVisite': !exists(json, 'dateVisite') ? undefined : (json['dateVisite'] === null ? null : new Date(json['dateVisite'])),\n 'pratiqueSimulee': !exists(json, 'pratiqueSimulee') ? undefined : json['pratiqueSimulee'],\n 'compteRendu': !exists(json, 'compteRendu') ? undefined : json['compteRendu'],\n 'idfichierCompteRendu': !exists(json, 'idfichierCompteRendu') ? undefined : json['idfichierCompteRendu'],\n 'fichierCompteRendu': !exists(json, 'fichierCompteRendu') ? undefined : FileUploadDtoFromJSON(json['fichierCompteRendu']),\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n };\n}\n\nexport function LieuFormationAgrementVisiteDtoToJSON(value?: LieuFormationAgrementVisiteDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormationAgrementVisite': value.idlieuFormationAgrementVisite,\n 'idlieuFormationAgrement': value.idlieuFormationAgrement,\n 'dateVisite': value.dateVisite === undefined ? undefined : (value.dateVisite === null ? null : value.dateVisite.toISOString()),\n 'pratiqueSimulee': value.pratiqueSimulee,\n 'compteRendu': value.compteRendu,\n 'idfichierCompteRendu': value.idfichierCompteRendu,\n 'fichierCompteRendu': FileUploadDtoToJSON(value.fichierCompteRendu),\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ELieuFormationAgrementStatut } from './ELieuFormationAgrementStatut';\nimport {\n ELieuFormationAgrementStatutFromJSON,\n ELieuFormationAgrementStatutFromJSONTyped,\n ELieuFormationAgrementStatutToJSON,\n} from './ELieuFormationAgrementStatut';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\nimport type { LieuFormationAgrementOffreDto } from './LieuFormationAgrementOffreDto';\nimport {\n LieuFormationAgrementOffreDtoFromJSON,\n LieuFormationAgrementOffreDtoFromJSONTyped,\n LieuFormationAgrementOffreDtoToJSON,\n} from './LieuFormationAgrementOffreDto';\nimport type { LieuFormationAgrementSuspensionDto } from './LieuFormationAgrementSuspensionDto';\nimport {\n LieuFormationAgrementSuspensionDtoFromJSON,\n LieuFormationAgrementSuspensionDtoFromJSONTyped,\n LieuFormationAgrementSuspensionDtoToJSON,\n} from './LieuFormationAgrementSuspensionDto';\nimport type { LieuFormationAgrementVisiteDto } from './LieuFormationAgrementVisiteDto';\nimport {\n LieuFormationAgrementVisiteDtoFromJSON,\n LieuFormationAgrementVisiteDtoFromJSONTyped,\n LieuFormationAgrementVisiteDtoToJSON,\n} from './LieuFormationAgrementVisiteDto';\n\n/**\n * \n * @export\n * @interface LieuFormationAgrementEditDto\n */\nexport interface LieuFormationAgrementEditDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idlieuFormationAgrement?: number;\n /**\n * \n * @type {ELieuFormationAgrementStatut}\n * @memberof LieuFormationAgrementEditDto\n */\n statut?: ELieuFormationAgrementStatut;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n nbContrat?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementEditDto\n */\n lieuFormation?: string | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementEditDto\n */\n dateReception?: Date | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idmetier?: number;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementEditDto\n */\n isApprentissage?: boolean;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n capaciteFormative?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementEditDto\n */\n dossierComplet?: boolean;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idreferentIfapme?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementEditDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idlieuFormationAgrementOffre?: number | null;\n /**\n * \n * @type {LieuFormationAgrementOffreDto}\n * @memberof LieuFormationAgrementEditDto\n */\n offre?: LieuFormationAgrementOffreDto;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementEditDto\n */\n visites?: Array | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementEditDto\n */\n dateEnvoiD1?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementEditDto\n */\n dateReceptionAvis?: Date | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idagrementAvis?: number | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementEditDto\n */\n remarqueSectorielle?: string | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idfichierDemandeSectorielle?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof LieuFormationAgrementEditDto\n */\n fichierDemandeSectorielle?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idlieuFormationAgrementDecision?: number | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementEditDto\n */\n dateDecision?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementEditDto\n */\n motifsNonAgrement?: Array | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementEditDto\n */\n remarqueDecision?: string | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementEditDto\n */\n dateEnvoiD3?: Date | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idfichierEnvoiD3?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof LieuFormationAgrementEditDto\n */\n fichierEnvoiD3?: FileUploadDto;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementEditDto\n */\n agrementPartielA?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementEditDto\n */\n agrementPartielB?: boolean;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementEditDto\n */\n suspensions?: Array | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementEditDto\n */\n datePriseEffetRetrait?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementEditDto\n */\n dateRetrait?: Date | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementEditDto\n */\n remarqueRetrait?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementEditDto\n */\n retraitIsIfapme?: boolean | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementEditDto\n */\n idsMotifRetrait?: Array | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementEditDto\n */\n idfichierRetrait?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof LieuFormationAgrementEditDto\n */\n fichierRetrait?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementEditDto interface.\n */\nexport function instanceOfLieuFormationAgrementEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementEditDtoFromJSON(json: any): LieuFormationAgrementEditDto {\n return LieuFormationAgrementEditDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormationAgrement': !exists(json, 'idlieuFormationAgrement') ? undefined : json['idlieuFormationAgrement'],\n 'statut': !exists(json, 'statut') ? undefined : ELieuFormationAgrementStatutFromJSON(json['statut']),\n 'nbContrat': !exists(json, 'nbContrat') ? undefined : json['nbContrat'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'lieuFormation': !exists(json, 'lieuFormation') ? undefined : json['lieuFormation'],\n 'dateReception': !exists(json, 'dateReception') ? undefined : (json['dateReception'] === null ? null : new Date(json['dateReception'])),\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'isApprentissage': !exists(json, 'isApprentissage') ? undefined : json['isApprentissage'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n 'dossierComplet': !exists(json, 'dossierComplet') ? undefined : json['dossierComplet'],\n 'idreferentIfapme': !exists(json, 'idreferentIfapme') ? undefined : json['idreferentIfapme'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'idlieuFormationAgrementOffre': !exists(json, 'idlieuFormationAgrementOffre') ? undefined : json['idlieuFormationAgrementOffre'],\n 'offre': !exists(json, 'offre') ? undefined : LieuFormationAgrementOffreDtoFromJSON(json['offre']),\n 'visites': !exists(json, 'visites') ? undefined : (json['visites'] === null ? null : (json['visites'] as Array).map(LieuFormationAgrementVisiteDtoFromJSON)),\n 'dateEnvoiD1': !exists(json, 'dateEnvoiD1') ? undefined : (json['dateEnvoiD1'] === null ? null : new Date(json['dateEnvoiD1'])),\n 'dateReceptionAvis': !exists(json, 'dateReceptionAvis') ? undefined : (json['dateReceptionAvis'] === null ? null : new Date(json['dateReceptionAvis'])),\n 'idagrementAvis': !exists(json, 'idagrementAvis') ? undefined : json['idagrementAvis'],\n 'remarqueSectorielle': !exists(json, 'remarqueSectorielle') ? undefined : json['remarqueSectorielle'],\n 'idfichierDemandeSectorielle': !exists(json, 'idfichierDemandeSectorielle') ? undefined : json['idfichierDemandeSectorielle'],\n 'fichierDemandeSectorielle': !exists(json, 'fichierDemandeSectorielle') ? undefined : FileUploadDtoFromJSON(json['fichierDemandeSectorielle']),\n 'idlieuFormationAgrementDecision': !exists(json, 'idlieuFormationAgrementDecision') ? undefined : json['idlieuFormationAgrementDecision'],\n 'dateDecision': !exists(json, 'dateDecision') ? undefined : (json['dateDecision'] === null ? null : new Date(json['dateDecision'])),\n 'motifsNonAgrement': !exists(json, 'motifsNonAgrement') ? undefined : json['motifsNonAgrement'],\n 'remarqueDecision': !exists(json, 'remarqueDecision') ? undefined : json['remarqueDecision'],\n 'dateEnvoiD3': !exists(json, 'dateEnvoiD3') ? undefined : (json['dateEnvoiD3'] === null ? null : new Date(json['dateEnvoiD3'])),\n 'idfichierEnvoiD3': !exists(json, 'idfichierEnvoiD3') ? undefined : json['idfichierEnvoiD3'],\n 'fichierEnvoiD3': !exists(json, 'fichierEnvoiD3') ? undefined : FileUploadDtoFromJSON(json['fichierEnvoiD3']),\n 'agrementPartielA': !exists(json, 'agrementPartielA') ? undefined : json['agrementPartielA'],\n 'agrementPartielB': !exists(json, 'agrementPartielB') ? undefined : json['agrementPartielB'],\n 'suspensions': !exists(json, 'suspensions') ? undefined : (json['suspensions'] === null ? null : (json['suspensions'] as Array).map(LieuFormationAgrementSuspensionDtoFromJSON)),\n 'datePriseEffetRetrait': !exists(json, 'datePriseEffetRetrait') ? undefined : (json['datePriseEffetRetrait'] === null ? null : new Date(json['datePriseEffetRetrait'])),\n 'dateRetrait': !exists(json, 'dateRetrait') ? undefined : (json['dateRetrait'] === null ? null : new Date(json['dateRetrait'])),\n 'remarqueRetrait': !exists(json, 'remarqueRetrait') ? undefined : json['remarqueRetrait'],\n 'retraitIsIfapme': !exists(json, 'retraitIsIfapme') ? undefined : json['retraitIsIfapme'],\n 'idsMotifRetrait': !exists(json, 'idsMotifRetrait') ? undefined : json['idsMotifRetrait'],\n 'idfichierRetrait': !exists(json, 'idfichierRetrait') ? undefined : json['idfichierRetrait'],\n 'fichierRetrait': !exists(json, 'fichierRetrait') ? undefined : FileUploadDtoFromJSON(json['fichierRetrait']),\n };\n}\n\nexport function LieuFormationAgrementEditDtoToJSON(value?: LieuFormationAgrementEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormationAgrement': value.idlieuFormationAgrement,\n 'statut': ELieuFormationAgrementStatutToJSON(value.statut),\n 'nbContrat': value.nbContrat,\n 'idlieuFormation': value.idlieuFormation,\n 'lieuFormation': value.lieuFormation,\n 'dateReception': value.dateReception === undefined ? undefined : (value.dateReception === null ? null : value.dateReception.toISOString()),\n 'idmetier': value.idmetier,\n 'isApprentissage': value.isApprentissage,\n 'capaciteFormative': value.capaciteFormative,\n 'dossierComplet': value.dossierComplet,\n 'idreferentIfapme': value.idreferentIfapme,\n 'actif': value.actif,\n 'idlieuFormationAgrementOffre': value.idlieuFormationAgrementOffre,\n 'offre': LieuFormationAgrementOffreDtoToJSON(value.offre),\n 'visites': value.visites === undefined ? undefined : (value.visites === null ? null : (value.visites as Array).map(LieuFormationAgrementVisiteDtoToJSON)),\n 'dateEnvoiD1': value.dateEnvoiD1 === undefined ? undefined : (value.dateEnvoiD1 === null ? null : value.dateEnvoiD1.toISOString()),\n 'dateReceptionAvis': value.dateReceptionAvis === undefined ? undefined : (value.dateReceptionAvis === null ? null : value.dateReceptionAvis.toISOString()),\n 'idagrementAvis': value.idagrementAvis,\n 'remarqueSectorielle': value.remarqueSectorielle,\n 'idfichierDemandeSectorielle': value.idfichierDemandeSectorielle,\n 'fichierDemandeSectorielle': FileUploadDtoToJSON(value.fichierDemandeSectorielle),\n 'idlieuFormationAgrementDecision': value.idlieuFormationAgrementDecision,\n 'dateDecision': value.dateDecision === undefined ? undefined : (value.dateDecision === null ? null : value.dateDecision.toISOString()),\n 'motifsNonAgrement': value.motifsNonAgrement,\n 'remarqueDecision': value.remarqueDecision,\n 'dateEnvoiD3': value.dateEnvoiD3 === undefined ? undefined : (value.dateEnvoiD3 === null ? null : value.dateEnvoiD3.toISOString()),\n 'idfichierEnvoiD3': value.idfichierEnvoiD3,\n 'fichierEnvoiD3': FileUploadDtoToJSON(value.fichierEnvoiD3),\n 'agrementPartielA': value.agrementPartielA,\n 'agrementPartielB': value.agrementPartielB,\n 'suspensions': value.suspensions === undefined ? undefined : (value.suspensions === null ? null : (value.suspensions as Array).map(LieuFormationAgrementSuspensionDtoToJSON)),\n 'datePriseEffetRetrait': value.datePriseEffetRetrait === undefined ? undefined : (value.datePriseEffetRetrait === null ? null : value.datePriseEffetRetrait.toISOString()),\n 'dateRetrait': value.dateRetrait === undefined ? undefined : (value.dateRetrait === null ? null : value.dateRetrait.toISOString()),\n 'remarqueRetrait': value.remarqueRetrait,\n 'retraitIsIfapme': value.retraitIsIfapme,\n 'idsMotifRetrait': value.idsMotifRetrait,\n 'idfichierRetrait': value.idfichierRetrait,\n 'fichierRetrait': FileUploadDtoToJSON(value.fichierRetrait),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ELieuFormationAgrementStatut } from './ELieuFormationAgrementStatut';\nimport {\n ELieuFormationAgrementStatutFromJSON,\n ELieuFormationAgrementStatutFromJSONTyped,\n ELieuFormationAgrementStatutToJSON,\n} from './ELieuFormationAgrementStatut';\n\n/**\n * \n * @export\n * @interface LieuFormationAgrementGridDto\n */\nexport interface LieuFormationAgrementGridDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementGridDto\n */\n idlieuFormationAgrement?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementGridDto\n */\n lieuFormationNom?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementGridDto\n */\n offreActive?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementGridDto\n */\n capaciteFormative?: number | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementGridDto\n */\n nbContrat?: number;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementGridDto\n */\n readonly capaciteAtteinte?: boolean;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementGridDto\n */\n codeMetier?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementGridDto\n */\n nomMetier?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementGridDto\n */\n nomStade?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementGridDto\n */\n decision?: string | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementGridDto\n */\n dateDecision?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementGridDto\n */\n agrementPartielA?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementGridDto\n */\n agrementPartielB?: boolean;\n /**\n * \n * @type {ELieuFormationAgrementStatut}\n * @memberof LieuFormationAgrementGridDto\n */\n statut?: ELieuFormationAgrementStatut;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementGridDto\n */\n idEditableCurrentSuspension?: number | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementGridDto\n */\n idlieuFormationAgrementOffre?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementGridDto interface.\n */\nexport function instanceOfLieuFormationAgrementGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementGridDtoFromJSON(json: any): LieuFormationAgrementGridDto {\n return LieuFormationAgrementGridDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormationAgrement': !exists(json, 'idlieuFormationAgrement') ? undefined : json['idlieuFormationAgrement'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'lieuFormationNom': !exists(json, 'lieuFormationNom') ? undefined : json['lieuFormationNom'],\n 'offreActive': !exists(json, 'offreActive') ? undefined : json['offreActive'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n 'nbContrat': !exists(json, 'nbContrat') ? undefined : json['nbContrat'],\n 'capaciteAtteinte': !exists(json, 'capaciteAtteinte') ? undefined : json['capaciteAtteinte'],\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : json['codeMetier'],\n 'nomMetier': !exists(json, 'nomMetier') ? undefined : json['nomMetier'],\n 'nomStade': !exists(json, 'nomStade') ? undefined : json['nomStade'],\n 'decision': !exists(json, 'decision') ? undefined : json['decision'],\n 'dateDecision': !exists(json, 'dateDecision') ? undefined : (json['dateDecision'] === null ? null : new Date(json['dateDecision'])),\n 'agrementPartielA': !exists(json, 'agrementPartielA') ? undefined : json['agrementPartielA'],\n 'agrementPartielB': !exists(json, 'agrementPartielB') ? undefined : json['agrementPartielB'],\n 'statut': !exists(json, 'statut') ? undefined : ELieuFormationAgrementStatutFromJSON(json['statut']),\n 'idEditableCurrentSuspension': !exists(json, 'idEditableCurrentSuspension') ? undefined : json['idEditableCurrentSuspension'],\n 'idlieuFormationAgrementOffre': !exists(json, 'idlieuFormationAgrementOffre') ? undefined : json['idlieuFormationAgrementOffre'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function LieuFormationAgrementGridDtoToJSON(value?: LieuFormationAgrementGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormationAgrement': value.idlieuFormationAgrement,\n 'idlieuFormation': value.idlieuFormation,\n 'lieuFormationNom': value.lieuFormationNom,\n 'offreActive': value.offreActive,\n 'capaciteFormative': value.capaciteFormative,\n 'nbContrat': value.nbContrat,\n 'codeMetier': value.codeMetier,\n 'nomMetier': value.nomMetier,\n 'nomStade': value.nomStade,\n 'decision': value.decision,\n 'dateDecision': value.dateDecision === undefined ? undefined : (value.dateDecision === null ? null : value.dateDecision.toISOString()),\n 'agrementPartielA': value.agrementPartielA,\n 'agrementPartielB': value.agrementPartielB,\n 'statut': ELieuFormationAgrementStatutToJSON(value.statut),\n 'idEditableCurrentSuspension': value.idEditableCurrentSuspension,\n 'idlieuFormationAgrementOffre': value.idlieuFormationAgrementOffre,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { LieuFormationAgrementGridDto } from './LieuFormationAgrementGridDto';\nimport {\n LieuFormationAgrementGridDtoFromJSON,\n LieuFormationAgrementGridDtoFromJSONTyped,\n LieuFormationAgrementGridDtoToJSON,\n} from './LieuFormationAgrementGridDto';\n\n/**\n * \n * @export\n * @interface LieuFormationAgrementGridDtoPaginatedResults\n */\nexport interface LieuFormationAgrementGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementGridDtoPaginatedResults interface.\n */\nexport function instanceOfLieuFormationAgrementGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementGridDtoPaginatedResultsFromJSON(json: any): LieuFormationAgrementGridDtoPaginatedResults {\n return LieuFormationAgrementGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(LieuFormationAgrementGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function LieuFormationAgrementGridDtoPaginatedResultsToJSON(value?: LieuFormationAgrementGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(LieuFormationAgrementGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationAgrementRetraitMultipleDto\n */\nexport interface LieuFormationAgrementRetraitMultipleDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementRetraitMultipleDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementRetraitMultipleDto\n */\n idslieuFormationAgrement?: Array | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementRetraitMultipleDto\n */\n datePriseEffetRetrait?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementRetraitMultipleDto\n */\n dateRetrait?: Date | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementRetraitMultipleDto\n */\n remarqueRetrait?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementRetraitMultipleDto\n */\n retraitIsIfapme?: boolean | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementRetraitMultipleDto\n */\n idsMotifRetrait?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementRetraitMultipleDto\n */\n disableLieuFormation?: boolean;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementRetraitMultipleDto interface.\n */\nexport function instanceOfLieuFormationAgrementRetraitMultipleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementRetraitMultipleDtoFromJSON(json: any): LieuFormationAgrementRetraitMultipleDto {\n return LieuFormationAgrementRetraitMultipleDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementRetraitMultipleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementRetraitMultipleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idslieuFormationAgrement': !exists(json, 'idslieuFormationAgrement') ? undefined : json['idslieuFormationAgrement'],\n 'datePriseEffetRetrait': !exists(json, 'datePriseEffetRetrait') ? undefined : (json['datePriseEffetRetrait'] === null ? null : new Date(json['datePriseEffetRetrait'])),\n 'dateRetrait': !exists(json, 'dateRetrait') ? undefined : (json['dateRetrait'] === null ? null : new Date(json['dateRetrait'])),\n 'remarqueRetrait': !exists(json, 'remarqueRetrait') ? undefined : json['remarqueRetrait'],\n 'retraitIsIfapme': !exists(json, 'retraitIsIfapme') ? undefined : json['retraitIsIfapme'],\n 'idsMotifRetrait': !exists(json, 'idsMotifRetrait') ? undefined : json['idsMotifRetrait'],\n 'disableLieuFormation': !exists(json, 'disableLieuFormation') ? undefined : json['disableLieuFormation'],\n };\n}\n\nexport function LieuFormationAgrementRetraitMultipleDtoToJSON(value?: LieuFormationAgrementRetraitMultipleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'idslieuFormationAgrement': value.idslieuFormationAgrement,\n 'datePriseEffetRetrait': value.datePriseEffetRetrait === undefined ? undefined : (value.datePriseEffetRetrait === null ? null : value.datePriseEffetRetrait.toISOString()),\n 'dateRetrait': value.dateRetrait === undefined ? undefined : (value.dateRetrait === null ? null : value.dateRetrait.toISOString()),\n 'remarqueRetrait': value.remarqueRetrait,\n 'retraitIsIfapme': value.retraitIsIfapme,\n 'idsMotifRetrait': value.idsMotifRetrait,\n 'disableLieuFormation': value.disableLieuFormation,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { ELieuFormationAgrementStatut } from './ELieuFormationAgrementStatut';\nimport {\n ELieuFormationAgrementStatutFromJSON,\n ELieuFormationAgrementStatutFromJSONTyped,\n ELieuFormationAgrementStatutToJSON,\n} from './ELieuFormationAgrementStatut';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface LieuFormationAgrementSearchDto\n */\nexport interface LieuFormationAgrementSearchDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementSearchDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementSearchDto\n */\n excludedStatuts?: Array | null;\n /**\n * \n * @type {TextSearch}\n * @memberof LieuFormationAgrementSearchDto\n */\n codeMetier?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof LieuFormationAgrementSearchDto\n */\n nomMetier?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof LieuFormationAgrementSearchDto\n */\n nomStade?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof LieuFormationAgrementSearchDto\n */\n offreActive?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof LieuFormationAgrementSearchDto\n */\n capaciteAtteinte?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof LieuFormationAgrementSearchDto\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof LieuFormationAgrementSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementSearchDto interface.\n */\nexport function instanceOfLieuFormationAgrementSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementSearchDtoFromJSON(json: any): LieuFormationAgrementSearchDto {\n return LieuFormationAgrementSearchDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'excludedStatuts': !exists(json, 'excludedStatuts') ? undefined : (json['excludedStatuts'] === null ? null : (json['excludedStatuts'] as Array).map(ELieuFormationAgrementStatutFromJSON)),\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : TextSearchFromJSON(json['codeMetier']),\n 'nomMetier': !exists(json, 'nomMetier') ? undefined : TextSearchFromJSON(json['nomMetier']),\n 'nomStade': !exists(json, 'nomStade') ? undefined : TextSearchFromJSON(json['nomStade']),\n 'offreActive': !exists(json, 'offreActive') ? undefined : BooleanSearchFromJSON(json['offreActive']),\n 'capaciteAtteinte': !exists(json, 'capaciteAtteinte') ? undefined : BooleanSearchFromJSON(json['capaciteAtteinte']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function LieuFormationAgrementSearchDtoToJSON(value?: LieuFormationAgrementSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'excludedStatuts': value.excludedStatuts === undefined ? undefined : (value.excludedStatuts === null ? null : (value.excludedStatuts as Array).map(ELieuFormationAgrementStatutToJSON)),\n 'codeMetier': TextSearchToJSON(value.codeMetier),\n 'nomMetier': TextSearchToJSON(value.nomMetier),\n 'nomStade': TextSearchToJSON(value.nomStade),\n 'offreActive': BooleanSearchToJSON(value.offreActive),\n 'capaciteAtteinte': BooleanSearchToJSON(value.capaciteAtteinte),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationAgrementSuspensionMultipleDto\n */\nexport interface LieuFormationAgrementSuspensionMultipleDto {\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementSuspensionMultipleDto\n */\n idslieuFormationAgrement?: Array | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementSuspensionMultipleDto\n */\n dateDebut?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementSuspensionMultipleDto\n */\n dateFin?: Date | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementSuspensionMultipleDto\n */\n idmotifSuspension?: number | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementSuspensionMultipleDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementSuspensionMultipleDto\n */\n idslieuFormationAgrementSuspension?: Array | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementSuspensionMultipleDto interface.\n */\nexport function instanceOfLieuFormationAgrementSuspensionMultipleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementSuspensionMultipleDtoFromJSON(json: any): LieuFormationAgrementSuspensionMultipleDto {\n return LieuFormationAgrementSuspensionMultipleDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementSuspensionMultipleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementSuspensionMultipleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idslieuFormationAgrement': !exists(json, 'idslieuFormationAgrement') ? undefined : json['idslieuFormationAgrement'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : (json['dateDebut'] === null ? null : new Date(json['dateDebut'])),\n 'dateFin': !exists(json, 'dateFin') ? undefined : (json['dateFin'] === null ? null : new Date(json['dateFin'])),\n 'idmotifSuspension': !exists(json, 'idmotifSuspension') ? undefined : json['idmotifSuspension'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idslieuFormationAgrementSuspension': !exists(json, 'idslieuFormationAgrementSuspension') ? undefined : json['idslieuFormationAgrementSuspension'],\n };\n}\n\nexport function LieuFormationAgrementSuspensionMultipleDtoToJSON(value?: LieuFormationAgrementSuspensionMultipleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idslieuFormationAgrement': value.idslieuFormationAgrement,\n 'dateDebut': value.dateDebut === undefined ? undefined : (value.dateDebut === null ? null : value.dateDebut.toISOString()),\n 'dateFin': value.dateFin === undefined ? undefined : (value.dateFin === null ? null : value.dateFin.toISOString()),\n 'idmotifSuspension': value.idmotifSuspension,\n 'remarque': value.remarque,\n 'idslieuFormationAgrementSuspension': value.idslieuFormationAgrementSuspension,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface LieuFormationAgrementVisiteMultipleDto\n */\nexport interface LieuFormationAgrementVisiteMultipleDto {\n /**\n * \n * @type {Array}\n * @memberof LieuFormationAgrementVisiteMultipleDto\n */\n idslieuFormationAgrement?: Array | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationAgrementVisiteMultipleDto\n */\n dateVisite?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationAgrementVisiteMultipleDto\n */\n pratiqueSimulee?: boolean;\n /**\n * \n * @type {string}\n * @memberof LieuFormationAgrementVisiteMultipleDto\n */\n compteRendu?: string | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationAgrementVisiteMultipleDto\n */\n idfichierCompteRendu?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof LieuFormationAgrementVisiteMultipleDto\n */\n fichierCompteRendu?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the LieuFormationAgrementVisiteMultipleDto interface.\n */\nexport function instanceOfLieuFormationAgrementVisiteMultipleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationAgrementVisiteMultipleDtoFromJSON(json: any): LieuFormationAgrementVisiteMultipleDto {\n return LieuFormationAgrementVisiteMultipleDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationAgrementVisiteMultipleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationAgrementVisiteMultipleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idslieuFormationAgrement': !exists(json, 'idslieuFormationAgrement') ? undefined : json['idslieuFormationAgrement'],\n 'dateVisite': !exists(json, 'dateVisite') ? undefined : (json['dateVisite'] === null ? null : new Date(json['dateVisite'])),\n 'pratiqueSimulee': !exists(json, 'pratiqueSimulee') ? undefined : json['pratiqueSimulee'],\n 'compteRendu': !exists(json, 'compteRendu') ? undefined : json['compteRendu'],\n 'idfichierCompteRendu': !exists(json, 'idfichierCompteRendu') ? undefined : json['idfichierCompteRendu'],\n 'fichierCompteRendu': !exists(json, 'fichierCompteRendu') ? undefined : FileUploadDtoFromJSON(json['fichierCompteRendu']),\n };\n}\n\nexport function LieuFormationAgrementVisiteMultipleDtoToJSON(value?: LieuFormationAgrementVisiteMultipleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idslieuFormationAgrement': value.idslieuFormationAgrement,\n 'dateVisite': value.dateVisite === undefined ? undefined : (value.dateVisite === null ? null : value.dateVisite.toISOString()),\n 'pratiqueSimulee': value.pratiqueSimulee,\n 'compteRendu': value.compteRendu,\n 'idfichierCompteRendu': value.idfichierCompteRendu,\n 'fichierCompteRendu': FileUploadDtoToJSON(value.fichierCompteRendu),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationCapaciteFormativeDto\n */\nexport interface LieuFormationCapaciteFormativeDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationCapaciteFormativeDto\n */\n capaciteFormative?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationCapaciteFormativeDto\n */\n capaciteFormativeSum?: number;\n}\n\n/**\n * Check if a given object implements the LieuFormationCapaciteFormativeDto interface.\n */\nexport function instanceOfLieuFormationCapaciteFormativeDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationCapaciteFormativeDtoFromJSON(json: any): LieuFormationCapaciteFormativeDto {\n return LieuFormationCapaciteFormativeDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationCapaciteFormativeDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationCapaciteFormativeDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n 'capaciteFormativeSum': !exists(json, 'capaciteFormativeSum') ? undefined : json['capaciteFormativeSum'],\n };\n}\n\nexport function LieuFormationCapaciteFormativeDtoToJSON(value?: LieuFormationCapaciteFormativeDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'capaciteFormative': value.capaciteFormative,\n 'capaciteFormativeSum': value.capaciteFormativeSum,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface LieuFormationEditDto\n */\nexport interface LieuFormationEditDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationEditDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationEditDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n numeroUe?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n enseigne?: string | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationEditDto\n */\n capaciteFormative?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationEditDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationEditDto\n */\n siegeSocialActif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationEditDto\n */\n encodageProvisoireAdministratif?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationEditDto\n */\n tuteurAlreadyExists?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationEditDto\n */\n creerTuteur?: boolean;\n /**\n * \n * @type {number}\n * @memberof LieuFormationEditDto\n */\n idchefEntreprise?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationEditDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof LieuFormationEditDto\n */\n gsmChefEntreprise?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof LieuFormationEditDto\n */\n telephoneChefEntreprise?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof LieuFormationEditDto\n */\n emailChefEntreprise?: EmailDto;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationEditDto\n */\n sendToAdress?: boolean;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n adresse?: string | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationEditDto\n */\n idcodePostal?: number | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n codePostalText?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n boite?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n pays?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationEditDto\n */\n capaciteFormativeAtteinte?: boolean;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n contact?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n contactFonction?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n contactTel?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationEditDto\n */\n contactGsm?: string | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationEditDto interface.\n */\nexport function instanceOfLieuFormationEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationEditDtoFromJSON(json: any): LieuFormationEditDto {\n return LieuFormationEditDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'numeroUe': !exists(json, 'numeroUe') ? undefined : json['numeroUe'],\n 'enseigne': !exists(json, 'enseigne') ? undefined : json['enseigne'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'siegeSocialActif': !exists(json, 'siegeSocialActif') ? undefined : json['siegeSocialActif'],\n 'encodageProvisoireAdministratif': !exists(json, 'encodageProvisoireAdministratif') ? undefined : json['encodageProvisoireAdministratif'],\n 'tuteurAlreadyExists': !exists(json, 'tuteurAlreadyExists') ? undefined : json['tuteurAlreadyExists'],\n 'creerTuteur': !exists(json, 'creerTuteur') ? undefined : json['creerTuteur'],\n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'gsmChefEntreprise': !exists(json, 'gsmChefEntreprise') ? undefined : TelephoneDtoFromJSON(json['gsmChefEntreprise']),\n 'telephoneChefEntreprise': !exists(json, 'telephoneChefEntreprise') ? undefined : TelephoneDtoFromJSON(json['telephoneChefEntreprise']),\n 'emailChefEntreprise': !exists(json, 'emailChefEntreprise') ? undefined : EmailDtoFromJSON(json['emailChefEntreprise']),\n 'sendToAdress': !exists(json, 'sendToAdress') ? undefined : json['sendToAdress'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'codePostalText': !exists(json, 'codePostalText') ? undefined : json['codePostalText'],\n 'boite': !exists(json, 'boite') ? undefined : json['boite'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'pays': !exists(json, 'pays') ? undefined : json['pays'],\n 'capaciteFormativeAtteinte': !exists(json, 'capaciteFormativeAtteinte') ? undefined : json['capaciteFormativeAtteinte'],\n 'contact': !exists(json, 'contact') ? undefined : json['contact'],\n 'contactFonction': !exists(json, 'contactFonction') ? undefined : json['contactFonction'],\n 'contactTel': !exists(json, 'contactTel') ? undefined : json['contactTel'],\n 'contactGsm': !exists(json, 'contactGsm') ? undefined : json['contactGsm'],\n };\n}\n\nexport function LieuFormationEditDtoToJSON(value?: LieuFormationEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'numeroUe': value.numeroUe,\n 'enseigne': value.enseigne,\n 'capaciteFormative': value.capaciteFormative,\n 'actif': value.actif,\n 'remarque': value.remarque,\n 'siegeSocialActif': value.siegeSocialActif,\n 'encodageProvisoireAdministratif': value.encodageProvisoireAdministratif,\n 'tuteurAlreadyExists': value.tuteurAlreadyExists,\n 'creerTuteur': value.creerTuteur,\n 'idchefEntreprise': value.idchefEntreprise,\n 'idpersonne': value.idpersonne,\n 'gsmChefEntreprise': TelephoneDtoToJSON(value.gsmChefEntreprise),\n 'telephoneChefEntreprise': TelephoneDtoToJSON(value.telephoneChefEntreprise),\n 'emailChefEntreprise': EmailDtoToJSON(value.emailChefEntreprise),\n 'sendToAdress': value.sendToAdress,\n 'adresse': value.adresse,\n 'idcodePostal': value.idcodePostal,\n 'codePostalText': value.codePostalText,\n 'boite': value.boite,\n 'localite': value.localite,\n 'commune': value.commune,\n 'pays': value.pays,\n 'capaciteFormativeAtteinte': value.capaciteFormativeAtteinte,\n 'contact': value.contact,\n 'contactFonction': value.contactFonction,\n 'contactTel': value.contactTel,\n 'contactGsm': value.contactGsm,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationFichierDto\n */\nexport interface LieuFormationFichierDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierDto\n */\n idlieuFormationFichier?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierDto\n */\n idtypeLieuFormationFichier?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationFichierDto interface.\n */\nexport function instanceOfLieuFormationFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationFichierDtoFromJSON(json: any): LieuFormationFichierDto {\n return LieuFormationFichierDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormationFichier': !exists(json, 'idlieuFormationFichier') ? undefined : json['idlieuFormationFichier'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeLieuFormationFichier': !exists(json, 'idtypeLieuFormationFichier') ? undefined : json['idtypeLieuFormationFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function LieuFormationFichierDtoToJSON(value?: LieuFormationFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormationFichier': value.idlieuFormationFichier,\n 'idlieuFormation': value.idlieuFormation,\n 'idfichier': value.idfichier,\n 'idtypeLieuFormationFichier': value.idtypeLieuFormationFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationFichierGridDto\n */\nexport interface LieuFormationFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierGridDto\n */\n idlieuFormationFichier?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierGridDto\n */\n idtypeLieuFormationFichier?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationFichierGridDto\n */\n typeLieuFormationFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationFichierGridDto interface.\n */\nexport function instanceOfLieuFormationFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationFichierGridDtoFromJSON(json: any): LieuFormationFichierGridDto {\n return LieuFormationFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormationFichier': !exists(json, 'idlieuFormationFichier') ? undefined : json['idlieuFormationFichier'],\n 'idtypeLieuFormationFichier': !exists(json, 'idtypeLieuFormationFichier') ? undefined : json['idtypeLieuFormationFichier'],\n 'typeLieuFormationFichier': !exists(json, 'typeLieuFormationFichier') ? undefined : json['typeLieuFormationFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function LieuFormationFichierGridDtoToJSON(value?: LieuFormationFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormationFichier': value.idlieuFormationFichier,\n 'idtypeLieuFormationFichier': value.idtypeLieuFormationFichier,\n 'typeLieuFormationFichier': value.typeLieuFormationFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { LieuFormationFichierGridDto } from './LieuFormationFichierGridDto';\nimport {\n LieuFormationFichierGridDtoFromJSON,\n LieuFormationFichierGridDtoFromJSONTyped,\n LieuFormationFichierGridDtoToJSON,\n} from './LieuFormationFichierGridDto';\n\n/**\n * \n * @export\n * @interface LieuFormationFichierGridDtoPaginatedResults\n */\nexport interface LieuFormationFichierGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationFichierGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationFichierGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationFichierGridDtoPaginatedResults interface.\n */\nexport function instanceOfLieuFormationFichierGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationFichierGridDtoPaginatedResultsFromJSON(json: any): LieuFormationFichierGridDtoPaginatedResults {\n return LieuFormationFichierGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function LieuFormationFichierGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationFichierGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(LieuFormationFichierGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function LieuFormationFichierGridDtoPaginatedResultsToJSON(value?: LieuFormationFichierGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(LieuFormationFichierGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface LieuFormationFichierSearchDto\n */\nexport interface LieuFormationFichierSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof LieuFormationFichierSearchDto\n */\n fileName?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof LieuFormationFichierSearchDto\n */\n uploadUser?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof LieuFormationFichierSearchDto\n */\n uploadDate?: DateSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof LieuFormationFichierSearchDto\n */\n idtypeLieuFormationFichier?: Int32NullableListSearch;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierSearchDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationFichierSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationFichierSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof LieuFormationFichierSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationFichierSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationFichierSearchDto interface.\n */\nexport function instanceOfLieuFormationFichierSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationFichierSearchDtoFromJSON(json: any): LieuFormationFichierSearchDto {\n return LieuFormationFichierSearchDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationFichierSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationFichierSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'fileName': !exists(json, 'fileName') ? undefined : UnaccentTextSearchFromJSON(json['fileName']),\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : UnaccentTextSearchFromJSON(json['uploadUser']),\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : DateSearchFromJSON(json['uploadDate']),\n 'idtypeLieuFormationFichier': !exists(json, 'idtypeLieuFormationFichier') ? undefined : Int32NullableListSearchFromJSON(json['idtypeLieuFormationFichier']),\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function LieuFormationFichierSearchDtoToJSON(value?: LieuFormationFichierSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'fileName': UnaccentTextSearchToJSON(value.fileName),\n 'uploadUser': UnaccentTextSearchToJSON(value.uploadUser),\n 'uploadDate': DateSearchToJSON(value.uploadDate),\n 'idtypeLieuFormationFichier': Int32NullableListSearchToJSON(value.idtypeLieuFormationFichier),\n 'idlieuFormation': value.idlieuFormation,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface LieuFormationFichierUploadDto\n */\nexport interface LieuFormationFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof LieuFormationFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierUploadDto\n */\n idlieuFormationFichier?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierUploadDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationFichierUploadDto\n */\n idtypeLieuFormationFichier?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationFichierUploadDto interface.\n */\nexport function instanceOfLieuFormationFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationFichierUploadDtoFromJSON(json: any): LieuFormationFichierUploadDto {\n return LieuFormationFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idlieuFormationFichier': !exists(json, 'idlieuFormationFichier') ? undefined : json['idlieuFormationFichier'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeLieuFormationFichier': !exists(json, 'idtypeLieuFormationFichier') ? undefined : json['idtypeLieuFormationFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function LieuFormationFichierUploadDtoToJSON(value?: LieuFormationFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idlieuFormationFichier': value.idlieuFormationFichier,\n 'idlieuFormation': value.idlieuFormation,\n 'idfichier': value.idfichier,\n 'idtypeLieuFormationFichier': value.idtypeLieuFormationFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationGridDto\n */\nexport interface LieuFormationGridDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n numeroUe?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n contact?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n chefEntreprise?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationGridDto\n */\n enseigne?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationGridDto\n */\n readonly formationCanHaveApprenants?: boolean;\n /**\n * \n * @type {number}\n * @memberof LieuFormationGridDto\n */\n nbContrats?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationGridDto\n */\n capaciteFormative?: number | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationGridDto interface.\n */\nexport function instanceOfLieuFormationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationGridDtoFromJSON(json: any): LieuFormationGridDto {\n return LieuFormationGridDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'numeroUe': !exists(json, 'numeroUe') ? undefined : json['numeroUe'],\n 'contact': !exists(json, 'contact') ? undefined : json['contact'],\n 'chefEntreprise': !exists(json, 'chefEntreprise') ? undefined : json['chefEntreprise'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'enseigne': !exists(json, 'enseigne') ? undefined : json['enseigne'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'formationCanHaveApprenants': !exists(json, 'formationCanHaveApprenants') ? undefined : json['formationCanHaveApprenants'],\n 'nbContrats': !exists(json, 'nbContrats') ? undefined : json['nbContrats'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n };\n}\n\nexport function LieuFormationGridDtoToJSON(value?: LieuFormationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'numeroUe': value.numeroUe,\n 'contact': value.contact,\n 'chefEntreprise': value.chefEntreprise,\n 'telephone': value.telephone,\n 'gsm': value.gsm,\n 'email': value.email,\n 'codePostal': value.codePostal,\n 'localite': value.localite,\n 'enseigne': value.enseigne,\n 'actif': value.actif,\n 'nbContrats': value.nbContrats,\n 'capaciteFormative': value.capaciteFormative,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { LieuFormationGridDto } from './LieuFormationGridDto';\nimport {\n LieuFormationGridDtoFromJSON,\n LieuFormationGridDtoFromJSONTyped,\n LieuFormationGridDtoToJSON,\n} from './LieuFormationGridDto';\n\n/**\n * \n * @export\n * @interface LieuFormationGridDtoPaginatedResults\n */\nexport interface LieuFormationGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof LieuFormationGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationGridDtoPaginatedResults interface.\n */\nexport function instanceOfLieuFormationGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationGridDtoPaginatedResultsFromJSON(json: any): LieuFormationGridDtoPaginatedResults {\n return LieuFormationGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function LieuFormationGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(LieuFormationGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function LieuFormationGridDtoPaginatedResultsToJSON(value?: LieuFormationGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(LieuFormationGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationHistoryGridDto\n */\nexport interface LieuFormationHistoryGridDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationHistoryGridDto\n */\n idlieuFormationHistory?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationHistoryGridDto\n */\n iduser?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationHistoryGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationHistoryGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationHistoryGridDto\n */\n action?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationHistoryGridDto\n */\n actionType?: string | null;\n /**\n * \n * @type {Date}\n * @memberof LieuFormationHistoryGridDto\n */\n actionDate?: Date;\n /**\n * \n * @type {string}\n * @memberof LieuFormationHistoryGridDto\n */\n userName?: string | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationHistoryGridDto\n */\n ifapmeSide?: Array | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationHistoryGridDto interface.\n */\nexport function instanceOfLieuFormationHistoryGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationHistoryGridDtoFromJSON(json: any): LieuFormationHistoryGridDto {\n return LieuFormationHistoryGridDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationHistoryGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationHistoryGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormationHistory': !exists(json, 'idlieuFormationHistory') ? undefined : json['idlieuFormationHistory'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'actionType': !exists(json, 'actionType') ? undefined : json['actionType'],\n 'actionDate': !exists(json, 'actionDate') ? undefined : (new Date(json['actionDate'])),\n 'userName': !exists(json, 'userName') ? undefined : json['userName'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n };\n}\n\nexport function LieuFormationHistoryGridDtoToJSON(value?: LieuFormationHistoryGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormationHistory': value.idlieuFormationHistory,\n 'iduser': value.iduser,\n 'idpersonne': value.idpersonne,\n 'idlieuFormation': value.idlieuFormation,\n 'action': value.action,\n 'actionType': value.actionType,\n 'actionDate': value.actionDate === undefined ? undefined : (value.actionDate.toISOString()),\n 'userName': value.userName,\n 'ifapmeSide': value.ifapmeSide,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { LieuFormationHistoryGridDto } from './LieuFormationHistoryGridDto';\nimport {\n LieuFormationHistoryGridDtoFromJSON,\n LieuFormationHistoryGridDtoFromJSONTyped,\n LieuFormationHistoryGridDtoToJSON,\n} from './LieuFormationHistoryGridDto';\n\n/**\n * \n * @export\n * @interface LieuFormationHistoryGridDtoPaginatedResults\n */\nexport interface LieuFormationHistoryGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof LieuFormationHistoryGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationHistoryGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationHistoryGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationHistoryGridDtoPaginatedResults interface.\n */\nexport function instanceOfLieuFormationHistoryGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationHistoryGridDtoPaginatedResultsFromJSON(json: any): LieuFormationHistoryGridDtoPaginatedResults {\n return LieuFormationHistoryGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function LieuFormationHistoryGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationHistoryGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(LieuFormationHistoryGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function LieuFormationHistoryGridDtoPaginatedResultsToJSON(value?: LieuFormationHistoryGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(LieuFormationHistoryGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface LieuFormationHistorySearch\n */\nexport interface LieuFormationHistorySearch {\n /**\n * \n * @type {number}\n * @memberof LieuFormationHistorySearch\n */\n idlieuFormation?: number;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationHistorySearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationHistorySearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationHistorySearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationHistorySearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof LieuFormationHistorySearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationHistorySearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationHistorySearch interface.\n */\nexport function instanceOfLieuFormationHistorySearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationHistorySearchFromJSON(json: any): LieuFormationHistorySearch {\n return LieuFormationHistorySearchFromJSONTyped(json, false);\n}\n\nexport function LieuFormationHistorySearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationHistorySearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function LieuFormationHistorySearchToJSON(value?: LieuFormationHistorySearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface LieuFormationSearchDto\n */\nexport interface LieuFormationSearchDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationSearchDto\n */\n idsiegeSocial?: number | null;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof LieuFormationSearchDto\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof LieuFormationSearchDto\n */\n enseigne?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof LieuFormationSearchDto\n */\n contact?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof LieuFormationSearchDto\n */\n localite?: UnaccentTextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof LieuFormationSearchDto\n */\n mesLieuxFormation?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof LieuFormationSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationSearchDto interface.\n */\nexport function instanceOfLieuFormationSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationSearchDtoFromJSON(json: any): LieuFormationSearchDto {\n return LieuFormationSearchDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'enseigne': !exists(json, 'enseigne') ? undefined : UnaccentTextSearchFromJSON(json['enseigne']),\n 'contact': !exists(json, 'contact') ? undefined : UnaccentTextSearchFromJSON(json['contact']),\n 'localite': !exists(json, 'localite') ? undefined : UnaccentTextSearchFromJSON(json['localite']),\n 'mesLieuxFormation': !exists(json, 'mesLieuxFormation') ? undefined : BooleanSearchFromJSON(json['mesLieuxFormation']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function LieuFormationSearchDtoToJSON(value?: LieuFormationSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'enseigne': UnaccentTextSearchToJSON(value.enseigne),\n 'contact': UnaccentTextSearchToJSON(value.contact),\n 'localite': UnaccentTextSearchToJSON(value.localite),\n 'mesLieuxFormation': BooleanSearchToJSON(value.mesLieuxFormation),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface LieuFormationSelectorGridDto\n */\nexport interface LieuFormationSelectorGridDto {\n /**\n * \n * @type {number}\n * @memberof LieuFormationSelectorGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof LieuFormationSelectorGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof LieuFormationSelectorGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationSelectorGridDto\n */\n contact?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationSelectorGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationSelectorGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationSelectorGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationSelectorGridDto\n */\n enseigne?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationSelectorGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof LieuFormationSelectorGridDto\n */\n formationCanHaveApprenants?: boolean;\n /**\n * \n * @type {number}\n * @memberof LieuFormationSelectorGridDto\n */\n nbContrats?: number;\n}\n\n/**\n * Check if a given object implements the LieuFormationSelectorGridDto interface.\n */\nexport function instanceOfLieuFormationSelectorGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationSelectorGridDtoFromJSON(json: any): LieuFormationSelectorGridDto {\n return LieuFormationSelectorGridDtoFromJSONTyped(json, false);\n}\n\nexport function LieuFormationSelectorGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationSelectorGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'contact': !exists(json, 'contact') ? undefined : json['contact'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'enseigne': !exists(json, 'enseigne') ? undefined : json['enseigne'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'formationCanHaveApprenants': !exists(json, 'formationCanHaveApprenants') ? undefined : json['formationCanHaveApprenants'],\n 'nbContrats': !exists(json, 'nbContrats') ? undefined : json['nbContrats'],\n };\n}\n\nexport function LieuFormationSelectorGridDtoToJSON(value?: LieuFormationSelectorGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'contact': value.contact,\n 'telephone': value.telephone,\n 'email': value.email,\n 'localite': value.localite,\n 'enseigne': value.enseigne,\n 'actif': value.actif,\n 'formationCanHaveApprenants': value.formationCanHaveApprenants,\n 'nbContrats': value.nbContrats,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { LieuFormationSelectorGridDto } from './LieuFormationSelectorGridDto';\nimport {\n LieuFormationSelectorGridDtoFromJSON,\n LieuFormationSelectorGridDtoFromJSONTyped,\n LieuFormationSelectorGridDtoToJSON,\n} from './LieuFormationSelectorGridDto';\n\n/**\n * \n * @export\n * @interface LieuFormationSelectorGridDtoPaginatedResults\n */\nexport interface LieuFormationSelectorGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof LieuFormationSelectorGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationSelectorGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationSelectorGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationSelectorGridDtoPaginatedResults interface.\n */\nexport function instanceOfLieuFormationSelectorGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationSelectorGridDtoPaginatedResultsFromJSON(json: any): LieuFormationSelectorGridDtoPaginatedResults {\n return LieuFormationSelectorGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function LieuFormationSelectorGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationSelectorGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(LieuFormationSelectorGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function LieuFormationSelectorGridDtoPaginatedResultsToJSON(value?: LieuFormationSelectorGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(LieuFormationSelectorGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface LieuFormationSelectorSearch\n */\nexport interface LieuFormationSelectorSearch {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof LieuFormationSelectorSearch\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof LieuFormationSelectorSearch\n */\n contact?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof LieuFormationSelectorSearch\n */\n localite?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof LieuFormationSelectorSearch\n */\n telephone?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof LieuFormationSelectorSearch\n */\n email?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof LieuFormationSelectorSearch\n */\n enseigne?: TextSearch;\n /**\n * \n * @type {number}\n * @memberof LieuFormationSelectorSearch\n */\n idsiegeSocial?: number | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationSelectorSearch\n */\n excludedLieuFormationIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationSelectorSearch\n */\n selectedLieuFormationIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationSelectorSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuFormationSelectorSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationSelectorSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof LieuFormationSelectorSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof LieuFormationSelectorSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof LieuFormationSelectorSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the LieuFormationSelectorSearch interface.\n */\nexport function instanceOfLieuFormationSelectorSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuFormationSelectorSearchFromJSON(json: any): LieuFormationSelectorSearch {\n return LieuFormationSelectorSearchFromJSONTyped(json, false);\n}\n\nexport function LieuFormationSelectorSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuFormationSelectorSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'contact': !exists(json, 'contact') ? undefined : TextSearchFromJSON(json['contact']),\n 'localite': !exists(json, 'localite') ? undefined : TextSearchFromJSON(json['localite']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'email': !exists(json, 'email') ? undefined : TextSearchFromJSON(json['email']),\n 'enseigne': !exists(json, 'enseigne') ? undefined : TextSearchFromJSON(json['enseigne']),\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'excludedLieuFormationIds': !exists(json, 'excludedLieuFormationIds') ? undefined : json['excludedLieuFormationIds'],\n 'selectedLieuFormationIds': !exists(json, 'selectedLieuFormationIds') ? undefined : json['selectedLieuFormationIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function LieuFormationSelectorSearchToJSON(value?: LieuFormationSelectorSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'contact': TextSearchToJSON(value.contact),\n 'localite': TextSearchToJSON(value.localite),\n 'telephone': TextSearchToJSON(value.telephone),\n 'email': TextSearchToJSON(value.email),\n 'enseigne': TextSearchToJSON(value.enseigne),\n 'idsiegeSocial': value.idsiegeSocial,\n 'excludedLieuFormationIds': value.excludedLieuFormationIds,\n 'selectedLieuFormationIds': value.selectedLieuFormationIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface LieuxCoursSearch\n */\nexport interface LieuxCoursSearch {\n /**\n * \n * @type {number}\n * @memberof LieuxCoursSearch\n */\n idcentre?: number;\n /**\n * \n * @type {Array}\n * @memberof LieuxCoursSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LieuxCoursSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof LieuxCoursSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof LieuxCoursSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof LieuxCoursSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof LieuxCoursSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the LieuxCoursSearch interface.\n */\nexport function instanceOfLieuxCoursSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LieuxCoursSearchFromJSON(json: any): LieuxCoursSearch {\n return LieuxCoursSearchFromJSONTyped(json, false);\n}\n\nexport function LieuxCoursSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): LieuxCoursSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function LieuxCoursSearchToJSON(value?: LieuxCoursSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface LocalSearch\n */\nexport interface LocalSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof LocalSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof LocalSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof LocalSearch\n */\n idcentre?: Int32NullableListSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof LocalSearch\n */\n idlieu?: Int32NullableListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof LocalSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof LocalSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof LocalSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof LocalSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof LocalSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof LocalSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof LocalSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the LocalSearch interface.\n */\nexport function instanceOfLocalSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function LocalSearchFromJSON(json: any): LocalSearch {\n return LocalSearchFromJSONTyped(json, false);\n}\n\nexport function LocalSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): LocalSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'idcentre': !exists(json, 'idcentre') ? undefined : Int32NullableListSearchFromJSON(json['idcentre']),\n 'idlieu': !exists(json, 'idlieu') ? undefined : Int32NullableListSearchFromJSON(json['idlieu']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function LocalSearchToJSON(value?: LocalSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'description': TextSearchToJSON(value.description),\n 'idcentre': Int32NullableListSearchToJSON(value.idcentre),\n 'idlieu': Int32NullableListSearchToJSON(value.idlieu),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MassDownloadRequestDto\n */\nexport interface MassDownloadRequestDto {\n /**\n * \n * @type {Array}\n * @memberof MassDownloadRequestDto\n */\n idsfichier?: Array | null;\n}\n\n/**\n * Check if a given object implements the MassDownloadRequestDto interface.\n */\nexport function instanceOfMassDownloadRequestDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MassDownloadRequestDtoFromJSON(json: any): MassDownloadRequestDto {\n return MassDownloadRequestDtoFromJSONTyped(json, false);\n}\n\nexport function MassDownloadRequestDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): MassDownloadRequestDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsfichier': !exists(json, 'idsfichier') ? undefined : json['idsfichier'],\n };\n}\n\nexport function MassDownloadRequestDtoToJSON(value?: MassDownloadRequestDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsfichier': value.idsfichier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MatiereHeureDto\n */\nexport interface MatiereHeureDto {\n /**\n * \n * @type {number}\n * @memberof MatiereHeureDto\n */\n idReferentiel?: number;\n /**\n * \n * @type {number}\n * @memberof MatiereHeureDto\n */\n nbHeures?: number | null;\n /**\n * \n * @type {number}\n * @memberof MatiereHeureDto\n */\n nbHeuresReelles?: number | null;\n /**\n * \n * @type {number}\n * @memberof MatiereHeureDto\n */\n total?: number | null;\n}\n\n/**\n * Check if a given object implements the MatiereHeureDto interface.\n */\nexport function instanceOfMatiereHeureDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MatiereHeureDtoFromJSON(json: any): MatiereHeureDto {\n return MatiereHeureDtoFromJSONTyped(json, false);\n}\n\nexport function MatiereHeureDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): MatiereHeureDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idReferentiel': !exists(json, 'idReferentiel') ? undefined : json['idReferentiel'],\n 'nbHeures': !exists(json, 'nbHeures') ? undefined : json['nbHeures'],\n 'nbHeuresReelles': !exists(json, 'nbHeuresReelles') ? undefined : json['nbHeuresReelles'],\n 'total': !exists(json, 'total') ? undefined : json['total'],\n };\n}\n\nexport function MatiereHeureDtoToJSON(value?: MatiereHeureDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idReferentiel': value.idReferentiel,\n 'nbHeures': value.nbHeures,\n 'nbHeuresReelles': value.nbHeuresReelles,\n 'total': value.total,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface MatiereReferentielSearch\n */\nexport interface MatiereReferentielSearch {\n /**\n * \n * @type {number}\n * @memberof MatiereReferentielSearch\n */\n idreferentiel?: number;\n /**\n * \n * @type {Array}\n * @memberof MatiereReferentielSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof MatiereReferentielSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof MatiereReferentielSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof MatiereReferentielSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof MatiereReferentielSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof MatiereReferentielSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the MatiereReferentielSearch interface.\n */\nexport function instanceOfMatiereReferentielSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MatiereReferentielSearchFromJSON(json: any): MatiereReferentielSearch {\n return MatiereReferentielSearchFromJSONTyped(json, false);\n}\n\nexport function MatiereReferentielSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): MatiereReferentielSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function MatiereReferentielSearchToJSON(value?: MatiereReferentielSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idreferentiel': value.idreferentiel,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface MetierClauseLieeSearch\n */\nexport interface MetierClauseLieeSearch {\n /**\n * \n * @type {number}\n * @memberof MetierClauseLieeSearch\n */\n idmetier?: number;\n /**\n * \n * @type {Array}\n * @memberof MetierClauseLieeSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof MetierClauseLieeSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof MetierClauseLieeSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof MetierClauseLieeSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof MetierClauseLieeSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof MetierClauseLieeSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the MetierClauseLieeSearch interface.\n */\nexport function instanceOfMetierClauseLieeSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MetierClauseLieeSearchFromJSON(json: any): MetierClauseLieeSearch {\n return MetierClauseLieeSearchFromJSONTyped(json, false);\n}\n\nexport function MetierClauseLieeSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): MetierClauseLieeSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function MetierClauseLieeSearchToJSON(value?: MetierClauseLieeSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idmetier': value.idmetier,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface MetierConseillersLiesSearch\n */\nexport interface MetierConseillersLiesSearch {\n /**\n * \n * @type {number}\n * @memberof MetierConseillersLiesSearch\n */\n idmetier?: number;\n /**\n * \n * @type {Array}\n * @memberof MetierConseillersLiesSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof MetierConseillersLiesSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof MetierConseillersLiesSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof MetierConseillersLiesSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof MetierConseillersLiesSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof MetierConseillersLiesSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the MetierConseillersLiesSearch interface.\n */\nexport function instanceOfMetierConseillersLiesSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MetierConseillersLiesSearchFromJSON(json: any): MetierConseillersLiesSearch {\n return MetierConseillersLiesSearchFromJSONTyped(json, false);\n}\n\nexport function MetierConseillersLiesSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): MetierConseillersLiesSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function MetierConseillersLiesSearchToJSON(value?: MetierConseillersLiesSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idmetier': value.idmetier,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface MetierLocalisationSearch\n */\nexport interface MetierLocalisationSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof MetierLocalisationSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {number}\n * @memberof MetierLocalisationSearch\n */\n idmetier?: number;\n /**\n * \n * @type {Array}\n * @memberof MetierLocalisationSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof MetierLocalisationSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof MetierLocalisationSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof MetierLocalisationSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof MetierLocalisationSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof MetierLocalisationSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the MetierLocalisationSearch interface.\n */\nexport function instanceOfMetierLocalisationSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MetierLocalisationSearchFromJSON(json: any): MetierLocalisationSearch {\n return MetierLocalisationSearchFromJSONTyped(json, false);\n}\n\nexport function MetierLocalisationSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): MetierLocalisationSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function MetierLocalisationSearchToJSON(value?: MetierLocalisationSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'idmetier': value.idmetier,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface MetierSearch\n */\nexport interface MetierSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof MetierSearch\n */\n masculin?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof MetierSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof MetierSearch\n */\n idstade?: Int32ListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof MetierSearch\n */\n conseiller?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof MetierSearch\n */\n integre?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof MetierSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof MetierSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof MetierSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof MetierSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof MetierSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof MetierSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof MetierSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof MetierSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof MetierSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the MetierSearch interface.\n */\nexport function instanceOfMetierSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MetierSearchFromJSON(json: any): MetierSearch {\n return MetierSearchFromJSONTyped(json, false);\n}\n\nexport function MetierSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): MetierSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'masculin': !exists(json, 'masculin') ? undefined : TextSearchFromJSON(json['masculin']),\n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'idstade': !exists(json, 'idstade') ? undefined : Int32ListSearchFromJSON(json['idstade']),\n 'conseiller': !exists(json, 'conseiller') ? undefined : TextSearchFromJSON(json['conseiller']),\n 'integre': !exists(json, 'integre') ? undefined : BooleanSearchFromJSON(json['integre']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function MetierSearchToJSON(value?: MetierSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'masculin': TextSearchToJSON(value.masculin),\n 'code': TextSearchToJSON(value.code),\n 'idstade': Int32ListSearchToJSON(value.idstade),\n 'conseiller': TextSearchToJSON(value.conseiller),\n 'integre': BooleanSearchToJSON(value.integre),\n 'actif': BooleanSearchToJSON(value.actif),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MinDatePresenceDto\n */\nexport interface MinDatePresenceDto {\n /**\n * \n * @type {Date}\n * @memberof MinDatePresenceDto\n */\n minDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the MinDatePresenceDto interface.\n */\nexport function instanceOfMinDatePresenceDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MinDatePresenceDtoFromJSON(json: any): MinDatePresenceDto {\n return MinDatePresenceDtoFromJSONTyped(json, false);\n}\n\nexport function MinDatePresenceDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): MinDatePresenceDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'minDate': !exists(json, 'minDate') ? undefined : (json['minDate'] === null ? null : new Date(json['minDate'])),\n };\n}\n\nexport function MinDatePresenceDtoToJSON(value?: MinDatePresenceDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'minDate': value.minDate === undefined ? undefined : (value.minDate === null ? null : value.minDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface MinervalSearch\n */\nexport interface MinervalSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof MinervalSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {number}\n * @memberof MinervalSearch\n */\n idapprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof MinervalSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof MinervalSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof MinervalSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof MinervalSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof MinervalSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof MinervalSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the MinervalSearch interface.\n */\nexport function instanceOfMinervalSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MinervalSearchFromJSON(json: any): MinervalSearch {\n return MinervalSearchFromJSONTyped(json, false);\n}\n\nexport function MinervalSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): MinervalSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function MinervalSearchToJSON(value?: MinervalSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'idapprenant': value.idapprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ModuleDto\n */\nexport interface ModuleDto {\n /**\n * \n * @type {number}\n * @memberof ModuleDto\n */\n idmodule?: number;\n /**\n * \n * @type {string}\n * @memberof ModuleDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ModuleDto\n */\n modulename?: string | null;\n}\n\n/**\n * Check if a given object implements the ModuleDto interface.\n */\nexport function instanceOfModuleDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ModuleDtoFromJSON(json: any): ModuleDto {\n return ModuleDtoFromJSONTyped(json, false);\n}\n\nexport function ModuleDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ModuleDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idmodule': !exists(json, 'idmodule') ? undefined : json['idmodule'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'modulename': !exists(json, 'modulename') ? undefined : json['modulename'],\n };\n}\n\nexport function ModuleDtoToJSON(value?: ModuleDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idmodule': value.idmodule,\n 'nom': value.nom,\n 'modulename': value.modulename,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ELieuFormationAgrementStatut } from './ELieuFormationAgrementStatut';\nimport {\n ELieuFormationAgrementStatutFromJSON,\n ELieuFormationAgrementStatutFromJSONTyped,\n ELieuFormationAgrementStatutToJSON,\n} from './ELieuFormationAgrementStatut';\n\n/**\n * \n * @export\n * @interface OffreDemandeGridDto\n */\nexport interface OffreDemandeGridDto {\n /**\n * \n * @type {number}\n * @memberof OffreDemandeGridDto\n */\n idlieuFormationAgrement?: number;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof OffreDemandeGridDto\n */\n nomLieuFormation?: string | null;\n /**\n * \n * @type {string}\n * @memberof OffreDemandeGridDto\n */\n enseigneLieuFormation?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof OffreDemandeGridDto\n */\n offreActive?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeGridDto\n */\n capaciteFormative?: number | null;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeGridDto\n */\n nbContrat?: number;\n /**\n * \n * @type {boolean}\n * @memberof OffreDemandeGridDto\n */\n readonly capaciteAtteinte?: boolean;\n /**\n * \n * @type {string}\n * @memberof OffreDemandeGridDto\n */\n codeMetier?: string | null;\n /**\n * \n * @type {string}\n * @memberof OffreDemandeGridDto\n */\n nomMetier?: string | null;\n /**\n * \n * @type {string}\n * @memberof OffreDemandeGridDto\n */\n nomStade?: string | null;\n /**\n * \n * @type {Date}\n * @memberof OffreDemandeGridDto\n */\n dateDecision?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof OffreDemandeGridDto\n */\n agrementPartielA?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof OffreDemandeGridDto\n */\n agrementPartielB?: boolean;\n /**\n * \n * @type {ELieuFormationAgrementStatut}\n * @memberof OffreDemandeGridDto\n */\n statut?: ELieuFormationAgrementStatut;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeGridDto\n */\n idEditableCurrentSuspension?: number | null;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeGridDto\n */\n idlieuFormationAgrementOffre?: number | null;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeGridDto\n */\n idreferentIfapme?: number | null;\n}\n\n/**\n * Check if a given object implements the OffreDemandeGridDto interface.\n */\nexport function instanceOfOffreDemandeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function OffreDemandeGridDtoFromJSON(json: any): OffreDemandeGridDto {\n return OffreDemandeGridDtoFromJSONTyped(json, false);\n}\n\nexport function OffreDemandeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): OffreDemandeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormationAgrement': !exists(json, 'idlieuFormationAgrement') ? undefined : json['idlieuFormationAgrement'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nomLieuFormation': !exists(json, 'nomLieuFormation') ? undefined : json['nomLieuFormation'],\n 'enseigneLieuFormation': !exists(json, 'enseigneLieuFormation') ? undefined : json['enseigneLieuFormation'],\n 'offreActive': !exists(json, 'offreActive') ? undefined : json['offreActive'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n 'nbContrat': !exists(json, 'nbContrat') ? undefined : json['nbContrat'],\n 'capaciteAtteinte': !exists(json, 'capaciteAtteinte') ? undefined : json['capaciteAtteinte'],\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : json['codeMetier'],\n 'nomMetier': !exists(json, 'nomMetier') ? undefined : json['nomMetier'],\n 'nomStade': !exists(json, 'nomStade') ? undefined : json['nomStade'],\n 'dateDecision': !exists(json, 'dateDecision') ? undefined : (json['dateDecision'] === null ? null : new Date(json['dateDecision'])),\n 'agrementPartielA': !exists(json, 'agrementPartielA') ? undefined : json['agrementPartielA'],\n 'agrementPartielB': !exists(json, 'agrementPartielB') ? undefined : json['agrementPartielB'],\n 'statut': !exists(json, 'statut') ? undefined : ELieuFormationAgrementStatutFromJSON(json['statut']),\n 'idEditableCurrentSuspension': !exists(json, 'idEditableCurrentSuspension') ? undefined : json['idEditableCurrentSuspension'],\n 'idlieuFormationAgrementOffre': !exists(json, 'idlieuFormationAgrementOffre') ? undefined : json['idlieuFormationAgrementOffre'],\n 'idreferentIfapme': !exists(json, 'idreferentIfapme') ? undefined : json['idreferentIfapme'],\n };\n}\n\nexport function OffreDemandeGridDtoToJSON(value?: OffreDemandeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormationAgrement': value.idlieuFormationAgrement,\n 'idlieuFormation': value.idlieuFormation,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nomLieuFormation': value.nomLieuFormation,\n 'enseigneLieuFormation': value.enseigneLieuFormation,\n 'offreActive': value.offreActive,\n 'capaciteFormative': value.capaciteFormative,\n 'nbContrat': value.nbContrat,\n 'codeMetier': value.codeMetier,\n 'nomMetier': value.nomMetier,\n 'nomStade': value.nomStade,\n 'dateDecision': value.dateDecision === undefined ? undefined : (value.dateDecision === null ? null : value.dateDecision.toISOString()),\n 'agrementPartielA': value.agrementPartielA,\n 'agrementPartielB': value.agrementPartielB,\n 'statut': ELieuFormationAgrementStatutToJSON(value.statut),\n 'idEditableCurrentSuspension': value.idEditableCurrentSuspension,\n 'idlieuFormationAgrementOffre': value.idlieuFormationAgrementOffre,\n 'idreferentIfapme': value.idreferentIfapme,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { OffreDemandeGridDto } from './OffreDemandeGridDto';\nimport {\n OffreDemandeGridDtoFromJSON,\n OffreDemandeGridDtoFromJSONTyped,\n OffreDemandeGridDtoToJSON,\n} from './OffreDemandeGridDto';\n\n/**\n * \n * @export\n * @interface OffreDemandeGridDtoPaginatedResults\n */\nexport interface OffreDemandeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof OffreDemandeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof OffreDemandeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof OffreDemandeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the OffreDemandeGridDtoPaginatedResults interface.\n */\nexport function instanceOfOffreDemandeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function OffreDemandeGridDtoPaginatedResultsFromJSON(json: any): OffreDemandeGridDtoPaginatedResults {\n return OffreDemandeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function OffreDemandeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): OffreDemandeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(OffreDemandeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function OffreDemandeGridDtoPaginatedResultsToJSON(value?: OffreDemandeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(OffreDemandeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { ELieuFormationAgrementStatut } from './ELieuFormationAgrementStatut';\nimport {\n ELieuFormationAgrementStatutFromJSON,\n ELieuFormationAgrementStatutFromJSONTyped,\n ELieuFormationAgrementStatutToJSON,\n} from './ELieuFormationAgrementStatut';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface OffreDemandeSearchDto\n */\nexport interface OffreDemandeSearchDto {\n /**\n * \n * @type {Array}\n * @memberof OffreDemandeSearchDto\n */\n excludedStatuts?: Array | null;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof OffreDemandeSearchDto\n */\n idserviceTutelle?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof OffreDemandeSearchDto\n */\n idreferentIfapme?: Int32ListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof OffreDemandeSearchDto\n */\n codeMetier?: TextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof OffreDemandeSearchDto\n */\n nomMetier?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof OffreDemandeSearchDto\n */\n nomStade?: UnaccentTextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof OffreDemandeSearchDto\n */\n offreActive?: BooleanSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof OffreDemandeSearchDto\n */\n nomLieuFormation?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof OffreDemandeSearchDto\n */\n enseigneLieuFormation?: UnaccentTextSearch;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeSearchDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {Array}\n * @memberof OffreDemandeSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof OffreDemandeSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof OffreDemandeSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof OffreDemandeSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof OffreDemandeSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the OffreDemandeSearchDto interface.\n */\nexport function instanceOfOffreDemandeSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function OffreDemandeSearchDtoFromJSON(json: any): OffreDemandeSearchDto {\n return OffreDemandeSearchDtoFromJSONTyped(json, false);\n}\n\nexport function OffreDemandeSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): OffreDemandeSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'excludedStatuts': !exists(json, 'excludedStatuts') ? undefined : (json['excludedStatuts'] === null ? null : (json['excludedStatuts'] as Array).map(ELieuFormationAgrementStatutFromJSON)),\n 'idserviceTutelle': !exists(json, 'idserviceTutelle') ? undefined : Int32ListSearchFromJSON(json['idserviceTutelle']),\n 'idreferentIfapme': !exists(json, 'idreferentIfapme') ? undefined : Int32ListSearchFromJSON(json['idreferentIfapme']),\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : TextSearchFromJSON(json['codeMetier']),\n 'nomMetier': !exists(json, 'nomMetier') ? undefined : UnaccentTextSearchFromJSON(json['nomMetier']),\n 'nomStade': !exists(json, 'nomStade') ? undefined : UnaccentTextSearchFromJSON(json['nomStade']),\n 'offreActive': !exists(json, 'offreActive') ? undefined : BooleanSearchFromJSON(json['offreActive']),\n 'nomLieuFormation': !exists(json, 'nomLieuFormation') ? undefined : UnaccentTextSearchFromJSON(json['nomLieuFormation']),\n 'enseigneLieuFormation': !exists(json, 'enseigneLieuFormation') ? undefined : UnaccentTextSearchFromJSON(json['enseigneLieuFormation']),\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function OffreDemandeSearchDtoToJSON(value?: OffreDemandeSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'excludedStatuts': value.excludedStatuts === undefined ? undefined : (value.excludedStatuts === null ? null : (value.excludedStatuts as Array).map(ELieuFormationAgrementStatutToJSON)),\n 'idserviceTutelle': Int32ListSearchToJSON(value.idserviceTutelle),\n 'idreferentIfapme': Int32ListSearchToJSON(value.idreferentIfapme),\n 'codeMetier': TextSearchToJSON(value.codeMetier),\n 'nomMetier': UnaccentTextSearchToJSON(value.nomMetier),\n 'nomStade': UnaccentTextSearchToJSON(value.nomStade),\n 'offreActive': BooleanSearchToJSON(value.offreActive),\n 'nomLieuFormation': UnaccentTextSearchToJSON(value.nomLieuFormation),\n 'enseigneLieuFormation': UnaccentTextSearchToJSON(value.enseigneLieuFormation),\n 'idlieuFormation': value.idlieuFormation,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface PaiementSearch\n */\nexport interface PaiementSearch {\n /**\n * \n * @type {number}\n * @memberof PaiementSearch\n */\n idapprenant?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof PaiementSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof PaiementSearch\n */\n datePaiement?: DateSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof PaiementSearch\n */\n idmode?: Int32ListSearch;\n /**\n * \n * @type {Array}\n * @memberof PaiementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PaiementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PaiementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PaiementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PaiementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PaiementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PaiementSearch interface.\n */\nexport function instanceOfPaiementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PaiementSearchFromJSON(json: any): PaiementSearch {\n return PaiementSearchFromJSONTyped(json, false);\n}\n\nexport function PaiementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaiementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'datePaiement': !exists(json, 'datePaiement') ? undefined : DateSearchFromJSON(json['datePaiement']),\n 'idmode': !exists(json, 'idmode') ? undefined : Int32ListSearchFromJSON(json['idmode']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PaiementSearchToJSON(value?: PaiementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'datePaiement': DateSearchToJSON(value.datePaiement),\n 'idmode': Int32ListSearchToJSON(value.idmode),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ParcoursFormationDto\n */\nexport interface ParcoursFormationDto {\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idparcoursFormation?: number;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idstatutEntree?: number | null;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationDto\n */\n dateEntree?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationDto\n */\n lastDateSortie?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationDto\n */\n dateEntreeReseau?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idStatutSocialEntree?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idSousStatutEntree?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idstatutSortie?: number | null;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationDto\n */\n dateSortie?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idStatutSocialSortie?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idSousStatutSortie?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idtypeSortie?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n idMotifSortie?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof ParcoursFormationDto\n */\n isSortieEnCours?: boolean;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationDto\n */\n creationDate?: Date;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationDto\n */\n iddureeInoccupation?: number | null;\n}\n\n/**\n * Check if a given object implements the ParcoursFormationDto interface.\n */\nexport function instanceOfParcoursFormationDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ParcoursFormationDtoFromJSON(json: any): ParcoursFormationDto {\n return ParcoursFormationDtoFromJSONTyped(json, false);\n}\n\nexport function ParcoursFormationDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ParcoursFormationDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idparcoursFormation': !exists(json, 'idparcoursFormation') ? undefined : json['idparcoursFormation'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idstatutEntree': !exists(json, 'idstatutEntree') ? undefined : json['idstatutEntree'],\n 'dateEntree': !exists(json, 'dateEntree') ? undefined : (json['dateEntree'] === null ? null : new Date(json['dateEntree'])),\n 'lastDateSortie': !exists(json, 'lastDateSortie') ? undefined : (json['lastDateSortie'] === null ? null : new Date(json['lastDateSortie'])),\n 'dateEntreeReseau': !exists(json, 'dateEntreeReseau') ? undefined : (json['dateEntreeReseau'] === null ? null : new Date(json['dateEntreeReseau'])),\n 'idStatutSocialEntree': !exists(json, 'idStatutSocialEntree') ? undefined : json['idStatutSocialEntree'],\n 'idSousStatutEntree': !exists(json, 'idSousStatutEntree') ? undefined : json['idSousStatutEntree'],\n 'idstatutSortie': !exists(json, 'idstatutSortie') ? undefined : json['idstatutSortie'],\n 'dateSortie': !exists(json, 'dateSortie') ? undefined : (json['dateSortie'] === null ? null : new Date(json['dateSortie'])),\n 'idStatutSocialSortie': !exists(json, 'idStatutSocialSortie') ? undefined : json['idStatutSocialSortie'],\n 'idSousStatutSortie': !exists(json, 'idSousStatutSortie') ? undefined : json['idSousStatutSortie'],\n 'idtypeSortie': !exists(json, 'idtypeSortie') ? undefined : json['idtypeSortie'],\n 'idMotifSortie': !exists(json, 'idMotifSortie') ? undefined : json['idMotifSortie'],\n 'isSortieEnCours': !exists(json, 'isSortieEnCours') ? undefined : json['isSortieEnCours'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'iddureeInoccupation': !exists(json, 'iddureeInoccupation') ? undefined : json['iddureeInoccupation'],\n };\n}\n\nexport function ParcoursFormationDtoToJSON(value?: ParcoursFormationDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idparcoursFormation': value.idparcoursFormation,\n 'idapprenant': value.idapprenant,\n 'idstatutEntree': value.idstatutEntree,\n 'dateEntree': value.dateEntree === undefined ? undefined : (value.dateEntree === null ? null : value.dateEntree.toISOString()),\n 'lastDateSortie': value.lastDateSortie === undefined ? undefined : (value.lastDateSortie === null ? null : value.lastDateSortie.toISOString()),\n 'dateEntreeReseau': value.dateEntreeReseau === undefined ? undefined : (value.dateEntreeReseau === null ? null : value.dateEntreeReseau.toISOString()),\n 'idStatutSocialEntree': value.idStatutSocialEntree,\n 'idSousStatutEntree': value.idSousStatutEntree,\n 'idstatutSortie': value.idstatutSortie,\n 'dateSortie': value.dateSortie === undefined ? undefined : (value.dateSortie === null ? null : value.dateSortie.toISOString()),\n 'idStatutSocialSortie': value.idStatutSocialSortie,\n 'idSousStatutSortie': value.idSousStatutSortie,\n 'idtypeSortie': value.idtypeSortie,\n 'idMotifSortie': value.idMotifSortie,\n 'isSortieEnCours': value.isSortieEnCours,\n 'creationUser': value.creationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'iddureeInoccupation': value.iddureeInoccupation,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ParcoursFormationEditDto\n */\nexport interface ParcoursFormationEditDto {\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationEditDto\n */\n idApprenant?: number;\n /**\n * \n * @type {Date}\n * @memberof ParcoursFormationEditDto\n */\n dateEntree?: Date;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationEditDto\n */\n idCategorieStatut?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationEditDto\n */\n idStatut?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationEditDto\n */\n iddureeInoccupation?: number | null;\n}\n\n/**\n * Check if a given object implements the ParcoursFormationEditDto interface.\n */\nexport function instanceOfParcoursFormationEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ParcoursFormationEditDtoFromJSON(json: any): ParcoursFormationEditDto {\n return ParcoursFormationEditDtoFromJSONTyped(json, false);\n}\n\nexport function ParcoursFormationEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ParcoursFormationEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'dateEntree': !exists(json, 'dateEntree') ? undefined : (new Date(json['dateEntree'])),\n 'idCategorieStatut': !exists(json, 'idCategorieStatut') ? undefined : json['idCategorieStatut'],\n 'idStatut': !exists(json, 'idStatut') ? undefined : json['idStatut'],\n 'iddureeInoccupation': !exists(json, 'iddureeInoccupation') ? undefined : json['iddureeInoccupation'],\n };\n}\n\nexport function ParcoursFormationEditDtoToJSON(value?: ParcoursFormationEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'dateEntree': value.dateEntree === undefined ? undefined : (value.dateEntree.toISOString()),\n 'idCategorieStatut': value.idCategorieStatut,\n 'idStatut': value.idStatut,\n 'iddureeInoccupation': value.iddureeInoccupation,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { ParcoursFormationGridDto } from './ParcoursFormationGridDto';\nimport {\n ParcoursFormationGridDtoFromJSON,\n ParcoursFormationGridDtoFromJSONTyped,\n ParcoursFormationGridDtoToJSON,\n} from './ParcoursFormationGridDto';\n\n/**\n * \n * @export\n * @interface ParcoursFormationGridDtoPaginatedResults\n */\nexport interface ParcoursFormationGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ParcoursFormationGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ParcoursFormationGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ParcoursFormationGridDtoPaginatedResults interface.\n */\nexport function instanceOfParcoursFormationGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ParcoursFormationGridDtoPaginatedResultsFromJSON(json: any): ParcoursFormationGridDtoPaginatedResults {\n return ParcoursFormationGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ParcoursFormationGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ParcoursFormationGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ParcoursFormationGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ParcoursFormationGridDtoPaginatedResultsToJSON(value?: ParcoursFormationGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ParcoursFormationGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ParcoursFormationSearch\n */\nexport interface ParcoursFormationSearch {\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof ParcoursFormationSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ParcoursFormationSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursFormationSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ParcoursFormationSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ParcoursFormationSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ParcoursFormationSearch interface.\n */\nexport function instanceOfParcoursFormationSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ParcoursFormationSearchFromJSON(json: any): ParcoursFormationSearch {\n return ParcoursFormationSearchFromJSONTyped(json, false);\n}\n\nexport function ParcoursFormationSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ParcoursFormationSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ParcoursFormationSearchToJSON(value?: ParcoursFormationSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ParcoursInterneSearch\n */\nexport interface ParcoursInterneSearch {\n /**\n * \n * @type {number}\n * @memberof ParcoursInterneSearch\n */\n idParcoursFormation?: number;\n /**\n * \n * @type {Array}\n * @memberof ParcoursInterneSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ParcoursInterneSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursInterneSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ParcoursInterneSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ParcoursInterneSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ParcoursInterneSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ParcoursInterneSearch interface.\n */\nexport function instanceOfParcoursInterneSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ParcoursInterneSearchFromJSON(json: any): ParcoursInterneSearch {\n return ParcoursInterneSearchFromJSONTyped(json, false);\n}\n\nexport function ParcoursInterneSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ParcoursInterneSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idParcoursFormation': !exists(json, 'idParcoursFormation') ? undefined : json['idParcoursFormation'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ParcoursInterneSearchToJSON(value?: ParcoursInterneSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idParcoursFormation': value.idParcoursFormation,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface PaysSearch\n */\nexport interface PaysSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof PaysSearch\n */\n pays?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PaysSearch\n */\n codePays?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PaysSearch\n */\n europe?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PaysSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof PaysSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PaysSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PaysSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PaysSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PaysSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PaysSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PaysSearch interface.\n */\nexport function instanceOfPaysSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PaysSearchFromJSON(json: any): PaysSearch {\n return PaysSearchFromJSONTyped(json, false);\n}\n\nexport function PaysSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaysSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'pays': !exists(json, 'pays') ? undefined : TextSearchFromJSON(json['pays']),\n 'codePays': !exists(json, 'codePays') ? undefined : TextSearchFromJSON(json['codePays']),\n 'europe': !exists(json, 'europe') ? undefined : BooleanSearchFromJSON(json['europe']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PaysSearchToJSON(value?: PaysSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'pays': TextSearchToJSON(value.pays),\n 'codePays': TextSearchToJSON(value.codePays),\n 'europe': BooleanSearchToJSON(value.europe),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface PersonneEditDto\n */\nexport interface PersonneEditDto {\n /**\n * \n * @type {number}\n * @memberof PersonneEditDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n prenom2?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof PersonneEditDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n photo?: string | null;\n /**\n * \n * @type {number}\n * @memberof PersonneEditDto\n */\n idfichierPhoto?: number | null;\n /**\n * \n * @type {Date}\n * @memberof PersonneEditDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof PersonneEditDto\n */\n adresseDomicile?: AdresseDto;\n /**\n * \n * @type {AdresseDto}\n * @memberof PersonneEditDto\n */\n adresseCourrier?: AdresseDto;\n /**\n * \n * @type {AdresseDto}\n * @memberof PersonneEditDto\n */\n adresseAutre?: AdresseDto;\n /**\n * \n * @type {Array}\n * @memberof PersonneEditDto\n */\n compteBancaires?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneEditDto\n */\n telephones?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneEditDto\n */\n emails?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneEditDto\n */\n idaddressDoublons?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneEditDto\n */\n idaddressCourrierDoublons?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneEditDto\n */\n idaddressAutreDoublons?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PersonneEditDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof PersonneEditDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {number}\n * @memberof PersonneEditDto\n */\n idrepresentant?: number | null;\n /**\n * \n * @type {number}\n * @memberof PersonneEditDto\n */\n iduser?: number | null;\n /**\n * \n * @type {number}\n * @memberof PersonneEditDto\n */\n idchefEntreprise?: number | null;\n /**\n * \n * @type {number}\n * @memberof PersonneEditDto\n */\n idtuteur?: number | null;\n /**\n * \n * @type {string}\n * @memberof PersonneEditDto\n */\n idconseillerPedagogique?: string | null;\n}\n\n/**\n * Check if a given object implements the PersonneEditDto interface.\n */\nexport function instanceOfPersonneEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PersonneEditDtoFromJSON(json: any): PersonneEditDto {\n return PersonneEditDtoFromJSONTyped(json, false);\n}\n\nexport function PersonneEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonneEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'prenom2': !exists(json, 'prenom2') ? undefined : json['prenom2'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'photo': !exists(json, 'photo') ? undefined : json['photo'],\n 'idfichierPhoto': !exists(json, 'idfichierPhoto') ? undefined : json['idfichierPhoto'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'adresseDomicile': !exists(json, 'adresseDomicile') ? undefined : AdresseDtoFromJSON(json['adresseDomicile']),\n 'adresseCourrier': !exists(json, 'adresseCourrier') ? undefined : AdresseDtoFromJSON(json['adresseCourrier']),\n 'adresseAutre': !exists(json, 'adresseAutre') ? undefined : AdresseDtoFromJSON(json['adresseAutre']),\n 'compteBancaires': !exists(json, 'compteBancaires') ? undefined : (json['compteBancaires'] === null ? null : (json['compteBancaires'] as Array).map(CompteBancaireDtoFromJSON)),\n 'telephones': !exists(json, 'telephones') ? undefined : (json['telephones'] === null ? null : (json['telephones'] as Array).map(TelephoneDtoFromJSON)),\n 'emails': !exists(json, 'emails') ? undefined : (json['emails'] === null ? null : (json['emails'] as Array).map(EmailDtoFromJSON)),\n 'idaddressDoublons': !exists(json, 'idaddressDoublons') ? undefined : json['idaddressDoublons'],\n 'idaddressCourrierDoublons': !exists(json, 'idaddressCourrierDoublons') ? undefined : json['idaddressCourrierDoublons'],\n 'idaddressAutreDoublons': !exists(json, 'idaddressAutreDoublons') ? undefined : json['idaddressAutreDoublons'],\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'idconseillerPedagogique': !exists(json, 'idconseillerPedagogique') ? undefined : json['idconseillerPedagogique'],\n };\n}\n\nexport function PersonneEditDtoToJSON(value?: PersonneEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'prenom2': value.prenom2,\n 'codesexe': value.codesexe,\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'photo': value.photo,\n 'idfichierPhoto': value.idfichierPhoto,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'remarque': value.remarque,\n 'adresseDomicile': AdresseDtoToJSON(value.adresseDomicile),\n 'adresseCourrier': AdresseDtoToJSON(value.adresseCourrier),\n 'adresseAutre': AdresseDtoToJSON(value.adresseAutre),\n 'compteBancaires': value.compteBancaires === undefined ? undefined : (value.compteBancaires === null ? null : (value.compteBancaires as Array).map(CompteBancaireDtoToJSON)),\n 'telephones': value.telephones === undefined ? undefined : (value.telephones === null ? null : (value.telephones as Array).map(TelephoneDtoToJSON)),\n 'emails': value.emails === undefined ? undefined : (value.emails === null ? null : (value.emails as Array).map(EmailDtoToJSON)),\n 'idaddressDoublons': value.idaddressDoublons,\n 'idaddressCourrierDoublons': value.idaddressCourrierDoublons,\n 'idaddressAutreDoublons': value.idaddressAutreDoublons,\n 'idapprenant': value.idapprenant,\n 'idformateur': value.idformateur,\n 'idrepresentant': value.idrepresentant,\n 'iduser': value.iduser,\n 'idchefEntreprise': value.idchefEntreprise,\n 'idtuteur': value.idtuteur,\n 'idconseillerPedagogique': value.idconseillerPedagogique,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PersonneGridDto\n */\nexport interface PersonneGridDto {\n /**\n * \n * @type {number}\n * @memberof PersonneGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof PersonneGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneGridDto\n */\n prenom2?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof PersonneGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof PersonneGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof PersonneGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof PersonneGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PersonneGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PersonneGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PersonneGridDto\n */\n isUser?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PersonneGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PersonneGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PersonneGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PersonneGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PersonneGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the PersonneGridDto interface.\n */\nexport function instanceOfPersonneGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PersonneGridDtoFromJSON(json: any): PersonneGridDto {\n return PersonneGridDtoFromJSONTyped(json, false);\n}\n\nexport function PersonneGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonneGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'prenom2': !exists(json, 'prenom2') ? undefined : json['prenom2'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isUser': !exists(json, 'isUser') ? undefined : json['isUser'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function PersonneGridDtoToJSON(value?: PersonneGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'prenom2': value.prenom2,\n 'codesexe': value.codesexe,\n 'nationalite': value.nationalite,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isUser': value.isUser,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isTuteur': value.isTuteur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { PersonneGridDto } from './PersonneGridDto';\nimport {\n PersonneGridDtoFromJSON,\n PersonneGridDtoFromJSONTyped,\n PersonneGridDtoToJSON,\n} from './PersonneGridDto';\n\n/**\n * \n * @export\n * @interface PersonneGridDtoPaginatedResults\n */\nexport interface PersonneGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof PersonneGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof PersonneGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the PersonneGridDtoPaginatedResults interface.\n */\nexport function instanceOfPersonneGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PersonneGridDtoPaginatedResultsFromJSON(json: any): PersonneGridDtoPaginatedResults {\n return PersonneGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function PersonneGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonneGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(PersonneGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function PersonneGridDtoPaginatedResultsToJSON(value?: PersonneGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(PersonneGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PersonneHistoryGridDto\n */\nexport interface PersonneHistoryGridDto {\n /**\n * \n * @type {number}\n * @memberof PersonneHistoryGridDto\n */\n idpersonneHistory?: number;\n /**\n * \n * @type {number}\n * @memberof PersonneHistoryGridDto\n */\n iduser?: number;\n /**\n * \n * @type {number}\n * @memberof PersonneHistoryGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof PersonneHistoryGridDto\n */\n action?: string | null;\n /**\n * \n * @type {string}\n * @memberof PersonneHistoryGridDto\n */\n actionType?: string | null;\n /**\n * \n * @type {Date}\n * @memberof PersonneHistoryGridDto\n */\n actionDate?: Date;\n /**\n * \n * @type {string}\n * @memberof PersonneHistoryGridDto\n */\n userName?: string | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneHistoryGridDto\n */\n ifapmeSide?: Array | null;\n}\n\n/**\n * Check if a given object implements the PersonneHistoryGridDto interface.\n */\nexport function instanceOfPersonneHistoryGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PersonneHistoryGridDtoFromJSON(json: any): PersonneHistoryGridDto {\n return PersonneHistoryGridDtoFromJSONTyped(json, false);\n}\n\nexport function PersonneHistoryGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonneHistoryGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonneHistory': !exists(json, 'idpersonneHistory') ? undefined : json['idpersonneHistory'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'actionType': !exists(json, 'actionType') ? undefined : json['actionType'],\n 'actionDate': !exists(json, 'actionDate') ? undefined : (new Date(json['actionDate'])),\n 'userName': !exists(json, 'userName') ? undefined : json['userName'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n };\n}\n\nexport function PersonneHistoryGridDtoToJSON(value?: PersonneHistoryGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonneHistory': value.idpersonneHistory,\n 'iduser': value.iduser,\n 'idpersonne': value.idpersonne,\n 'action': value.action,\n 'actionType': value.actionType,\n 'actionDate': value.actionDate === undefined ? undefined : (value.actionDate.toISOString()),\n 'userName': value.userName,\n 'ifapmeSide': value.ifapmeSide,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { PersonneHistoryGridDto } from './PersonneHistoryGridDto';\nimport {\n PersonneHistoryGridDtoFromJSON,\n PersonneHistoryGridDtoFromJSONTyped,\n PersonneHistoryGridDtoToJSON,\n} from './PersonneHistoryGridDto';\n\n/**\n * \n * @export\n * @interface PersonneHistoryGridDtoPaginatedResults\n */\nexport interface PersonneHistoryGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof PersonneHistoryGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof PersonneHistoryGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneHistoryGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the PersonneHistoryGridDtoPaginatedResults interface.\n */\nexport function instanceOfPersonneHistoryGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PersonneHistoryGridDtoPaginatedResultsFromJSON(json: any): PersonneHistoryGridDtoPaginatedResults {\n return PersonneHistoryGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function PersonneHistoryGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonneHistoryGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(PersonneHistoryGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function PersonneHistoryGridDtoPaginatedResultsToJSON(value?: PersonneHistoryGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(PersonneHistoryGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface PersonneHistorySearch\n */\nexport interface PersonneHistorySearch {\n /**\n * \n * @type {number}\n * @memberof PersonneHistorySearch\n */\n idpersonne?: number;\n /**\n * \n * @type {Array}\n * @memberof PersonneHistorySearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneHistorySearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PersonneHistorySearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PersonneHistorySearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PersonneHistorySearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PersonneHistorySearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PersonneHistorySearch interface.\n */\nexport function instanceOfPersonneHistorySearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PersonneHistorySearchFromJSON(json: any): PersonneHistorySearch {\n return PersonneHistorySearchFromJSONTyped(json, false);\n}\n\nexport function PersonneHistorySearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonneHistorySearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PersonneHistorySearchToJSON(value?: PersonneHistorySearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idpersonne': value.idpersonne,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface PersonneSearchDto\n */\nexport interface PersonneSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof PersonneSearchDto\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof PersonneSearchDto\n */\n prenom?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PersonneSearchDto\n */\n telephone?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PersonneSearchDto\n */\n gsm?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof PersonneSearchDto\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof PersonneSearchDto\n */\n nationalite?: StringListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PersonneSearchDto\n */\n registreNationalOrEmpty?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PersonneSearchDto\n */\n isApprenant?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PersonneSearchDto\n */\n isFormateur?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PersonneSearchDto\n */\n isRepresentant?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PersonneSearchDto\n */\n isUser?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PersonneSearchDto\n */\n isChefEntreprise?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PersonneSearchDto\n */\n isTuteur?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PersonneSearchDto\n */\n isContact?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof PersonneSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonneSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PersonneSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PersonneSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PersonneSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PersonneSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PersonneSearchDto interface.\n */\nexport function instanceOfPersonneSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PersonneSearchDtoFromJSON(json: any): PersonneSearchDto {\n return PersonneSearchDtoFromJSONTyped(json, false);\n}\n\nexport function PersonneSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonneSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : UnaccentTextSearchFromJSON(json['prenom']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TextSearchFromJSON(json['gsm']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'nationalite': !exists(json, 'nationalite') ? undefined : StringListSearchFromJSON(json['nationalite']),\n 'registreNationalOrEmpty': !exists(json, 'registreNationalOrEmpty') ? undefined : TextSearchFromJSON(json['registreNationalOrEmpty']),\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : BooleanSearchFromJSON(json['isApprenant']),\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : BooleanSearchFromJSON(json['isFormateur']),\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : BooleanSearchFromJSON(json['isRepresentant']),\n 'isUser': !exists(json, 'isUser') ? undefined : BooleanSearchFromJSON(json['isUser']),\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : BooleanSearchFromJSON(json['isChefEntreprise']),\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : BooleanSearchFromJSON(json['isTuteur']),\n 'isContact': !exists(json, 'isContact') ? undefined : BooleanSearchFromJSON(json['isContact']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PersonneSearchDtoToJSON(value?: PersonneSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'prenom': UnaccentTextSearchToJSON(value.prenom),\n 'telephone': TextSearchToJSON(value.telephone),\n 'gsm': TextSearchToJSON(value.gsm),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'nationalite': StringListSearchToJSON(value.nationalite),\n 'registreNationalOrEmpty': TextSearchToJSON(value.registreNationalOrEmpty),\n 'isApprenant': BooleanSearchToJSON(value.isApprenant),\n 'isFormateur': BooleanSearchToJSON(value.isFormateur),\n 'isRepresentant': BooleanSearchToJSON(value.isRepresentant),\n 'isUser': BooleanSearchToJSON(value.isUser),\n 'isChefEntreprise': BooleanSearchToJSON(value.isChefEntreprise),\n 'isTuteur': BooleanSearchToJSON(value.isTuteur),\n 'isContact': BooleanSearchToJSON(value.isContact),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface PersonnelTutelleSearch\n */\nexport interface PersonnelTutelleSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof PersonnelTutelleSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PersonnelTutelleSearch\n */\n independant?: BooleanSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PersonnelTutelleSearch\n */\n email?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PersonnelTutelleSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof PersonnelTutelleSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PersonnelTutelleSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PersonnelTutelleSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PersonnelTutelleSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PersonnelTutelleSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PersonnelTutelleSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PersonnelTutelleSearch interface.\n */\nexport function instanceOfPersonnelTutelleSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PersonnelTutelleSearchFromJSON(json: any): PersonnelTutelleSearch {\n return PersonnelTutelleSearchFromJSONTyped(json, false);\n}\n\nexport function PersonnelTutelleSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonnelTutelleSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'independant': !exists(json, 'independant') ? undefined : BooleanSearchFromJSON(json['independant']),\n 'email': !exists(json, 'email') ? undefined : TextSearchFromJSON(json['email']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PersonnelTutelleSearchToJSON(value?: PersonnelTutelleSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'independant': BooleanSearchToJSON(value.independant),\n 'email': TextSearchToJSON(value.email),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface PlageHoraireSearch\n */\nexport interface PlageHoraireSearch {\n /**\n * \n * @type {number}\n * @memberof PlageHoraireSearch\n */\n idcentre?: number;\n /**\n * \n * @type {Array}\n * @memberof PlageHoraireSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PlageHoraireSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PlageHoraireSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PlageHoraireSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PlageHoraireSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PlageHoraireSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PlageHoraireSearch interface.\n */\nexport function instanceOfPlageHoraireSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PlageHoraireSearchFromJSON(json: any): PlageHoraireSearch {\n return PlageHoraireSearchFromJSONTyped(json, false);\n}\n\nexport function PlageHoraireSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): PlageHoraireSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PlageHoraireSearchToJSON(value?: PlageHoraireSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idcentre': value.idcentre,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface PlanAgrementClasseSearch\n */\nexport interface PlanAgrementClasseSearch {\n /**\n * \n * @type {number}\n * @memberof PlanAgrementClasseSearch\n */\n idPlanAgrement?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanAgrementClasseSearch\n */\n codeMetier?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanAgrementClasseSearch\n */\n codeConseillerAgrement?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanAgrementClasseSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanAgrementClasseSearch\n */\n gestionInterneAgrement?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanAgrementClasseSearch\n */\n idDegre?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanAgrementClasseSearch\n */\n statutLocalisationAgrement?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanAgrementClasseSearch\n */\n typeCours?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanAgrementClasseSearch\n */\n specificite?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanAgrementClasseSearch\n */\n genre?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof PlanAgrementClasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PlanAgrementClasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PlanAgrementClasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PlanAgrementClasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PlanAgrementClasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PlanAgrementClasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PlanAgrementClasseSearch interface.\n */\nexport function instanceOfPlanAgrementClasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PlanAgrementClasseSearchFromJSON(json: any): PlanAgrementClasseSearch {\n return PlanAgrementClasseSearchFromJSONTyped(json, false);\n}\n\nexport function PlanAgrementClasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): PlanAgrementClasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idPlanAgrement': !exists(json, 'idPlanAgrement') ? undefined : json['idPlanAgrement'],\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : TextSearchFromJSON(json['codeMetier']),\n 'codeConseillerAgrement': !exists(json, 'codeConseillerAgrement') ? undefined : TextSearchFromJSON(json['codeConseillerAgrement']),\n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'gestionInterneAgrement': !exists(json, 'gestionInterneAgrement') ? undefined : TextSearchFromJSON(json['gestionInterneAgrement']),\n 'idDegre': !exists(json, 'idDegre') ? undefined : TextSearchFromJSON(json['idDegre']),\n 'statutLocalisationAgrement': !exists(json, 'statutLocalisationAgrement') ? undefined : TextSearchFromJSON(json['statutLocalisationAgrement']),\n 'typeCours': !exists(json, 'typeCours') ? undefined : TextSearchFromJSON(json['typeCours']),\n 'specificite': !exists(json, 'specificite') ? undefined : TextSearchFromJSON(json['specificite']),\n 'genre': !exists(json, 'genre') ? undefined : TextSearchFromJSON(json['genre']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PlanAgrementClasseSearchToJSON(value?: PlanAgrementClasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idPlanAgrement': value.idPlanAgrement,\n 'codeMetier': TextSearchToJSON(value.codeMetier),\n 'codeConseillerAgrement': TextSearchToJSON(value.codeConseillerAgrement),\n 'nom': TextSearchToJSON(value.nom),\n 'gestionInterneAgrement': TextSearchToJSON(value.gestionInterneAgrement),\n 'idDegre': TextSearchToJSON(value.idDegre),\n 'statutLocalisationAgrement': TextSearchToJSON(value.statutLocalisationAgrement),\n 'typeCours': TextSearchToJSON(value.typeCours),\n 'specificite': TextSearchToJSON(value.specificite),\n 'genre': TextSearchToJSON(value.genre),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface PlanLocalisationClasseSearch\n */\nexport interface PlanLocalisationClasseSearch {\n /**\n * \n * @type {number}\n * @memberof PlanLocalisationClasseSearch\n */\n idPlanLocalisation?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationClasseSearch\n */\n codeConseiller?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationClasseSearch\n */\n codeMetier?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationClasseSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationClasseSearch\n */\n gestionInterne?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationClasseSearch\n */\n idDegre?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PlanLocalisationClasseSearch\n */\n idStatutLocalisation?: BooleanSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationClasseSearch\n */\n typeCours?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationClasseSearch\n */\n specificite?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationClasseSearch\n */\n genre?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof PlanLocalisationClasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PlanLocalisationClasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PlanLocalisationClasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PlanLocalisationClasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PlanLocalisationClasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PlanLocalisationClasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PlanLocalisationClasseSearch interface.\n */\nexport function instanceOfPlanLocalisationClasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PlanLocalisationClasseSearchFromJSON(json: any): PlanLocalisationClasseSearch {\n return PlanLocalisationClasseSearchFromJSONTyped(json, false);\n}\n\nexport function PlanLocalisationClasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): PlanLocalisationClasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idPlanLocalisation': !exists(json, 'idPlanLocalisation') ? undefined : json['idPlanLocalisation'],\n 'codeConseiller': !exists(json, 'codeConseiller') ? undefined : TextSearchFromJSON(json['codeConseiller']),\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : TextSearchFromJSON(json['codeMetier']),\n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'gestionInterne': !exists(json, 'gestionInterne') ? undefined : TextSearchFromJSON(json['gestionInterne']),\n 'idDegre': !exists(json, 'idDegre') ? undefined : TextSearchFromJSON(json['idDegre']),\n 'idStatutLocalisation': !exists(json, 'idStatutLocalisation') ? undefined : BooleanSearchFromJSON(json['idStatutLocalisation']),\n 'typeCours': !exists(json, 'typeCours') ? undefined : TextSearchFromJSON(json['typeCours']),\n 'specificite': !exists(json, 'specificite') ? undefined : TextSearchFromJSON(json['specificite']),\n 'genre': !exists(json, 'genre') ? undefined : TextSearchFromJSON(json['genre']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PlanLocalisationClasseSearchToJSON(value?: PlanLocalisationClasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idPlanLocalisation': value.idPlanLocalisation,\n 'codeConseiller': TextSearchToJSON(value.codeConseiller),\n 'codeMetier': TextSearchToJSON(value.codeMetier),\n 'nom': TextSearchToJSON(value.nom),\n 'gestionInterne': TextSearchToJSON(value.gestionInterne),\n 'idDegre': TextSearchToJSON(value.idDegre),\n 'idStatutLocalisation': BooleanSearchToJSON(value.idStatutLocalisation),\n 'typeCours': TextSearchToJSON(value.typeCours),\n 'specificite': TextSearchToJSON(value.specificite),\n 'genre': TextSearchToJSON(value.genre),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface PlanLocalisationSearch\n */\nexport interface PlanLocalisationSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof PlanLocalisationSearch\n */\n centre?: StringListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationSearch\n */\n dateValidation?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PlanLocalisationSearch\n */\n statutLocalisationAgrement?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof PlanLocalisationSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PlanLocalisationSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PlanLocalisationSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PlanLocalisationSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PlanLocalisationSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PlanLocalisationSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PlanLocalisationSearch interface.\n */\nexport function instanceOfPlanLocalisationSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PlanLocalisationSearchFromJSON(json: any): PlanLocalisationSearch {\n return PlanLocalisationSearchFromJSONTyped(json, false);\n}\n\nexport function PlanLocalisationSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): PlanLocalisationSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'centre': !exists(json, 'centre') ? undefined : StringListSearchFromJSON(json['centre']),\n 'dateValidation': !exists(json, 'dateValidation') ? undefined : TextSearchFromJSON(json['dateValidation']),\n 'statutLocalisationAgrement': !exists(json, 'statutLocalisationAgrement') ? undefined : TextSearchFromJSON(json['statutLocalisationAgrement']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PlanLocalisationSearchToJSON(value?: PlanLocalisationSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'centre': StringListSearchToJSON(value.centre),\n 'dateValidation': TextSearchToJSON(value.dateValidation),\n 'statutLocalisationAgrement': TextSearchToJSON(value.statutLocalisationAgrement),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PriReassignmentDto\n */\nexport interface PriReassignmentDto {\n /**\n * \n * @type {Array}\n * @memberof PriReassignmentDto\n */\n pris?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PriReassignmentDto\n */\n idsApprenant?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PriReassignmentDto\n */\n newIdPri?: number | null;\n}\n\n/**\n * Check if a given object implements the PriReassignmentDto interface.\n */\nexport function instanceOfPriReassignmentDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PriReassignmentDtoFromJSON(json: any): PriReassignmentDto {\n return PriReassignmentDtoFromJSONTyped(json, false);\n}\n\nexport function PriReassignmentDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PriReassignmentDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'pris': !exists(json, 'pris') ? undefined : json['pris'],\n 'idsApprenant': !exists(json, 'idsApprenant') ? undefined : json['idsApprenant'],\n 'newIdPri': !exists(json, 'newIdPri') ? undefined : json['newIdPri'],\n };\n}\n\nexport function PriReassignmentDtoToJSON(value?: PriReassignmentDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'pris': value.pris,\n 'idsApprenant': value.idsApprenant,\n 'newIdPri': value.newIdPri,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EPrintingQueueStatus } from './EPrintingQueueStatus';\nimport {\n EPrintingQueueStatusFromJSON,\n EPrintingQueueStatusFromJSONTyped,\n EPrintingQueueStatusToJSON,\n} from './EPrintingQueueStatus';\nimport type { EPrintingType } from './EPrintingType';\nimport {\n EPrintingTypeFromJSON,\n EPrintingTypeFromJSONTyped,\n EPrintingTypeToJSON,\n} from './EPrintingType';\n\n/**\n * \n * @export\n * @interface PrintingQueueDto\n */\nexport interface PrintingQueueDto {\n /**\n * \n * @type {number}\n * @memberof PrintingQueueDto\n */\n idprintingQueue?: number;\n /**\n * \n * @type {EPrintingQueueStatus}\n * @memberof PrintingQueueDto\n */\n status?: EPrintingQueueStatus;\n /**\n * \n * @type {number}\n * @memberof PrintingQueueDto\n */\n idprinting?: number;\n /**\n * \n * @type {string}\n * @memberof PrintingQueueDto\n */\n name?: string | null;\n /**\n * \n * @type {string}\n * @memberof PrintingQueueDto\n */\n displayName?: string | null;\n /**\n * \n * @type {number}\n * @memberof PrintingQueueDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {number}\n * @memberof PrintingQueueDto\n */\n idreportLog?: number | null;\n /**\n * \n * @type {EPrintingType}\n * @memberof PrintingQueueDto\n */\n printingType?: EPrintingType;\n /**\n * \n * @type {Date}\n * @memberof PrintingQueueDto\n */\n creationDate?: Date;\n /**\n * \n * @type {boolean}\n * @memberof PrintingQueueDto\n */\n hidden?: boolean;\n}\n\n/**\n * Check if a given object implements the PrintingQueueDto interface.\n */\nexport function instanceOfPrintingQueueDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PrintingQueueDtoFromJSON(json: any): PrintingQueueDto {\n return PrintingQueueDtoFromJSONTyped(json, false);\n}\n\nexport function PrintingQueueDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PrintingQueueDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idprintingQueue': !exists(json, 'idprintingQueue') ? undefined : json['idprintingQueue'],\n 'status': !exists(json, 'status') ? undefined : EPrintingQueueStatusFromJSON(json['status']),\n 'idprinting': !exists(json, 'idprinting') ? undefined : json['idprinting'],\n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'displayName': !exists(json, 'displayName') ? undefined : json['displayName'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idreportLog': !exists(json, 'idreportLog') ? undefined : json['idreportLog'],\n 'printingType': !exists(json, 'printingType') ? undefined : EPrintingTypeFromJSON(json['printingType']),\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'hidden': !exists(json, 'hidden') ? undefined : json['hidden'],\n };\n}\n\nexport function PrintingQueueDtoToJSON(value?: PrintingQueueDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idprintingQueue': value.idprintingQueue,\n 'status': EPrintingQueueStatusToJSON(value.status),\n 'idprinting': value.idprinting,\n 'name': value.name,\n 'displayName': value.displayName,\n 'idfichier': value.idfichier,\n 'idreportLog': value.idreportLog,\n 'printingType': EPrintingTypeToJSON(value.printingType),\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'hidden': value.hidden,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EPrintingType } from './EPrintingType';\nimport {\n EPrintingTypeFromJSON,\n EPrintingTypeFromJSONTyped,\n EPrintingTypeToJSON,\n} from './EPrintingType';\n\n/**\n * \n * @export\n * @interface PrintingQueueGridDto\n */\nexport interface PrintingQueueGridDto {\n /**\n * \n * @type {number}\n * @memberof PrintingQueueGridDto\n */\n idprintingQueue?: number;\n /**\n * \n * @type {string}\n * @memberof PrintingQueueGridDto\n */\n status?: string | null;\n /**\n * \n * @type {number}\n * @memberof PrintingQueueGridDto\n */\n idprinting?: number;\n /**\n * \n * @type {string}\n * @memberof PrintingQueueGridDto\n */\n nomRapport?: string | null;\n /**\n * \n * @type {string}\n * @memberof PrintingQueueGridDto\n */\n displayName?: string | null;\n /**\n * \n * @type {number}\n * @memberof PrintingQueueGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {number}\n * @memberof PrintingQueueGridDto\n */\n idreportLog?: number | null;\n /**\n * \n * @type {EPrintingType}\n * @memberof PrintingQueueGridDto\n */\n printingType?: EPrintingType;\n /**\n * \n * @type {Date}\n * @memberof PrintingQueueGridDto\n */\n creationDate?: Date;\n /**\n * \n * @type {boolean}\n * @memberof PrintingQueueGridDto\n */\n hidden?: boolean;\n}\n\n/**\n * Check if a given object implements the PrintingQueueGridDto interface.\n */\nexport function instanceOfPrintingQueueGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PrintingQueueGridDtoFromJSON(json: any): PrintingQueueGridDto {\n return PrintingQueueGridDtoFromJSONTyped(json, false);\n}\n\nexport function PrintingQueueGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PrintingQueueGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idprintingQueue': !exists(json, 'idprintingQueue') ? undefined : json['idprintingQueue'],\n 'status': !exists(json, 'status') ? undefined : json['status'],\n 'idprinting': !exists(json, 'idprinting') ? undefined : json['idprinting'],\n 'nomRapport': !exists(json, 'nomRapport') ? undefined : json['nomRapport'],\n 'displayName': !exists(json, 'displayName') ? undefined : json['displayName'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idreportLog': !exists(json, 'idreportLog') ? undefined : json['idreportLog'],\n 'printingType': !exists(json, 'printingType') ? undefined : EPrintingTypeFromJSON(json['printingType']),\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'hidden': !exists(json, 'hidden') ? undefined : json['hidden'],\n };\n}\n\nexport function PrintingQueueGridDtoToJSON(value?: PrintingQueueGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idprintingQueue': value.idprintingQueue,\n 'status': value.status,\n 'idprinting': value.idprinting,\n 'nomRapport': value.nomRapport,\n 'displayName': value.displayName,\n 'idfichier': value.idfichier,\n 'idreportLog': value.idreportLog,\n 'printingType': EPrintingTypeToJSON(value.printingType),\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'hidden': value.hidden,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { PrintingQueueGridDto } from './PrintingQueueGridDto';\nimport {\n PrintingQueueGridDtoFromJSON,\n PrintingQueueGridDtoFromJSONTyped,\n PrintingQueueGridDtoToJSON,\n} from './PrintingQueueGridDto';\n\n/**\n * \n * @export\n * @interface PrintingQueueGridDtoPaginatedResults\n */\nexport interface PrintingQueueGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof PrintingQueueGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof PrintingQueueGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PrintingQueueGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the PrintingQueueGridDtoPaginatedResults interface.\n */\nexport function instanceOfPrintingQueueGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PrintingQueueGridDtoPaginatedResultsFromJSON(json: any): PrintingQueueGridDtoPaginatedResults {\n return PrintingQueueGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function PrintingQueueGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): PrintingQueueGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(PrintingQueueGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function PrintingQueueGridDtoPaginatedResultsToJSON(value?: PrintingQueueGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(PrintingQueueGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PrintingQueueIdsDto\n */\nexport interface PrintingQueueIdsDto {\n /**\n * \n * @type {Array}\n * @memberof PrintingQueueIdsDto\n */\n idsprintingQueue?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PrintingQueueIdsDto\n */\n idsfichier?: Array | null;\n}\n\n/**\n * Check if a given object implements the PrintingQueueIdsDto interface.\n */\nexport function instanceOfPrintingQueueIdsDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PrintingQueueIdsDtoFromJSON(json: any): PrintingQueueIdsDto {\n return PrintingQueueIdsDtoFromJSONTyped(json, false);\n}\n\nexport function PrintingQueueIdsDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PrintingQueueIdsDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsprintingQueue': !exists(json, 'idsprintingQueue') ? undefined : json['idsprintingQueue'],\n 'idsfichier': !exists(json, 'idsfichier') ? undefined : json['idsfichier'],\n };\n}\n\nexport function PrintingQueueIdsDtoToJSON(value?: PrintingQueueIdsDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsprintingQueue': value.idsprintingQueue,\n 'idsfichier': value.idsfichier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { CustomSearch } from './CustomSearch';\nimport {\n CustomSearchFromJSON,\n CustomSearchFromJSONTyped,\n CustomSearchToJSON,\n} from './CustomSearch';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { EPrintingQueueStatusListSearch } from './EPrintingQueueStatusListSearch';\nimport {\n EPrintingQueueStatusListSearchFromJSON,\n EPrintingQueueStatusListSearchFromJSONTyped,\n EPrintingQueueStatusListSearchToJSON,\n} from './EPrintingQueueStatusListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface PrintingQueueSearchDto\n */\nexport interface PrintingQueueSearchDto {\n /**\n * \n * @type {EPrintingQueueStatusListSearch}\n * @memberof PrintingQueueSearchDto\n */\n status?: EPrintingQueueStatusListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PrintingQueueSearchDto\n */\n nomRapport?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof PrintingQueueSearchDto\n */\n displayName?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof PrintingQueueSearchDto\n */\n creationDate?: DateSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof PrintingQueueSearchDto\n */\n hidden?: BooleanSearch;\n /**\n * \n * @type {CustomSearch}\n * @memberof PrintingQueueSearchDto\n */\n idapprenant?: CustomSearch;\n /**\n * \n * @type {Array}\n * @memberof PrintingQueueSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof PrintingQueueSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof PrintingQueueSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof PrintingQueueSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof PrintingQueueSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof PrintingQueueSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the PrintingQueueSearchDto interface.\n */\nexport function instanceOfPrintingQueueSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PrintingQueueSearchDtoFromJSON(json: any): PrintingQueueSearchDto {\n return PrintingQueueSearchDtoFromJSONTyped(json, false);\n}\n\nexport function PrintingQueueSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): PrintingQueueSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'status': !exists(json, 'status') ? undefined : EPrintingQueueStatusListSearchFromJSON(json['status']),\n 'nomRapport': !exists(json, 'nomRapport') ? undefined : TextSearchFromJSON(json['nomRapport']),\n 'displayName': !exists(json, 'displayName') ? undefined : TextSearchFromJSON(json['displayName']),\n 'creationDate': !exists(json, 'creationDate') ? undefined : DateSearchFromJSON(json['creationDate']),\n 'hidden': !exists(json, 'hidden') ? undefined : BooleanSearchFromJSON(json['hidden']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : CustomSearchFromJSON(json['idapprenant']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function PrintingQueueSearchDtoToJSON(value?: PrintingQueueSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'status': EPrintingQueueStatusListSearchToJSON(value.status),\n 'nomRapport': TextSearchToJSON(value.nomRapport),\n 'displayName': TextSearchToJSON(value.displayName),\n 'creationDate': DateSearchToJSON(value.creationDate),\n 'hidden': BooleanSearchToJSON(value.hidden),\n 'idapprenant': CustomSearchToJSON(value.idapprenant),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ProfessionFormateurSearch\n */\nexport interface ProfessionFormateurSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ProfessionFormateurSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ProfessionFormateurSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof ProfessionFormateurSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ProfessionFormateurSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ProfessionFormateurSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ProfessionFormateurSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ProfessionFormateurSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ProfessionFormateurSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ProfessionFormateurSearch interface.\n */\nexport function instanceOfProfessionFormateurSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ProfessionFormateurSearchFromJSON(json: any): ProfessionFormateurSearch {\n return ProfessionFormateurSearchFromJSONTyped(json, false);\n}\n\nexport function ProfessionFormateurSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ProfessionFormateurSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ProfessionFormateurSearchToJSON(value?: ProfessionFormateurSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ProjetFinancementSearch\n */\nexport interface ProjetFinancementSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ProjetFinancementSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ProjetFinancementSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof ProjetFinancementSearch\n */\n idfinancementType?: Int32ListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ProjetFinancementSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof ProjetFinancementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ProjetFinancementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ProjetFinancementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ProjetFinancementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ProjetFinancementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ProjetFinancementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ProjetFinancementSearch interface.\n */\nexport function instanceOfProjetFinancementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ProjetFinancementSearchFromJSON(json: any): ProjetFinancementSearch {\n return ProjetFinancementSearchFromJSONTyped(json, false);\n}\n\nexport function ProjetFinancementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ProjetFinancementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'idfinancementType': !exists(json, 'idfinancementType') ? undefined : Int32ListSearchFromJSON(json['idfinancementType']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ProjetFinancementSearchToJSON(value?: ProjetFinancementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'code': TextSearchToJSON(value.code),\n 'idfinancementType': Int32ListSearchToJSON(value.idfinancementType),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RapportHopeAccesPermissionDto\n */\nexport interface RapportHopeAccesPermissionDto {\n /**\n * \n * @type {boolean}\n * @memberof RapportHopeAccesPermissionDto\n */\n selected?: boolean;\n /**\n * \n * @type {number}\n * @memberof RapportHopeAccesPermissionDto\n */\n idrapportHope?: number | null;\n /**\n * \n * @type {number}\n * @memberof RapportHopeAccesPermissionDto\n */\n idlevel?: number;\n /**\n * \n * @type {string}\n * @memberof RapportHopeAccesPermissionDto\n */\n description?: string | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeAccesPermissionDto interface.\n */\nexport function instanceOfRapportHopeAccesPermissionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeAccesPermissionDtoFromJSON(json: any): RapportHopeAccesPermissionDto {\n return RapportHopeAccesPermissionDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeAccesPermissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeAccesPermissionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selected': !exists(json, 'selected') ? undefined : json['selected'],\n 'idrapportHope': !exists(json, 'idrapportHope') ? undefined : json['idrapportHope'],\n 'idlevel': !exists(json, 'idlevel') ? undefined : json['idlevel'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n };\n}\n\nexport function RapportHopeAccesPermissionDtoToJSON(value?: RapportHopeAccesPermissionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selected': value.selected,\n 'idrapportHope': value.idrapportHope,\n 'idlevel': value.idlevel,\n 'description': value.description,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RapportHopeDownloadDto\n */\nexport interface RapportHopeDownloadDto {\n /**\n * \n * @type {string}\n * @memberof RapportHopeDownloadDto\n */\n readonly contentBase64?: string | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeDownloadDto\n */\n fileName?: string | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeDownloadDto\n */\n extension?: string | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeDownloadDto interface.\n */\nexport function instanceOfRapportHopeDownloadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeDownloadDtoFromJSON(json: any): RapportHopeDownloadDto {\n return RapportHopeDownloadDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeDownloadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeDownloadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'contentBase64': !exists(json, 'contentBase64') ? undefined : json['contentBase64'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'extension': !exists(json, 'extension') ? undefined : json['extension'],\n };\n}\n\nexport function RapportHopeDownloadDtoToJSON(value?: RapportHopeDownloadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'fileName': value.fileName,\n 'extension': value.extension,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RapportHopeEditDto\n */\nexport interface RapportHopeEditDto {\n /**\n * \n * @type {number}\n * @memberof RapportHopeEditDto\n */\n idrapportHope?: number;\n /**\n * \n * @type {string}\n * @memberof RapportHopeEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeEditDto\n */\n description?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof RapportHopeEditDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeEditDto\n */\n path?: string | null;\n /**\n * \n * @type {number}\n * @memberof RapportHopeEditDto\n */\n idrapportHopeType?: number;\n /**\n * \n * @type {string}\n * @memberof RapportHopeEditDto\n */\n categorie?: string | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeEditDto interface.\n */\nexport function instanceOfRapportHopeEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeEditDtoFromJSON(json: any): RapportHopeEditDto {\n return RapportHopeEditDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrapportHope': !exists(json, 'idrapportHope') ? undefined : json['idrapportHope'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'path': !exists(json, 'path') ? undefined : json['path'],\n 'idrapportHopeType': !exists(json, 'idrapportHopeType') ? undefined : json['idrapportHopeType'],\n 'categorie': !exists(json, 'categorie') ? undefined : json['categorie'],\n };\n}\n\nexport function RapportHopeEditDtoToJSON(value?: RapportHopeEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrapportHope': value.idrapportHope,\n 'nom': value.nom,\n 'description': value.description,\n 'actif': value.actif,\n 'path': value.path,\n 'idrapportHopeType': value.idrapportHopeType,\n 'categorie': value.categorie,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RapportHopeParameterValuesDto\n */\nexport interface RapportHopeParameterValuesDto {\n /**\n * \n * @type {string}\n * @memberof RapportHopeParameterValuesDto\n */\n label?: string | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeParameterValuesDto\n */\n value?: string | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeParameterValuesDto interface.\n */\nexport function instanceOfRapportHopeParameterValuesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeParameterValuesDtoFromJSON(json: any): RapportHopeParameterValuesDto {\n return RapportHopeParameterValuesDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeParameterValuesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeParameterValuesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'label': !exists(json, 'label') ? undefined : json['label'],\n 'value': !exists(json, 'value') ? undefined : json['value'],\n };\n}\n\nexport function RapportHopeParameterValuesDtoToJSON(value?: RapportHopeParameterValuesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'label': value.label,\n 'value': value.value,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ERapportHopeParameterType } from './ERapportHopeParameterType';\nimport {\n ERapportHopeParameterTypeFromJSON,\n ERapportHopeParameterTypeFromJSONTyped,\n ERapportHopeParameterTypeToJSON,\n} from './ERapportHopeParameterType';\nimport type { RapportHopeParameterValuesDto } from './RapportHopeParameterValuesDto';\nimport {\n RapportHopeParameterValuesDtoFromJSON,\n RapportHopeParameterValuesDtoFromJSONTyped,\n RapportHopeParameterValuesDtoToJSON,\n} from './RapportHopeParameterValuesDto';\n\n/**\n * \n * @export\n * @interface RapportHopeParameterDto\n */\nexport interface RapportHopeParameterDto {\n /**\n * \n * @type {string}\n * @memberof RapportHopeParameterDto\n */\n name?: string | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeParameterDto\n */\n label?: string | null;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeParameterDto\n */\n defaultValues?: Array | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeParameterDto\n */\n value?: string | null;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeParameterDto\n */\n multiValues?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeParameterDto\n */\n dependencies?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof RapportHopeParameterDto\n */\n isNullable?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof RapportHopeParameterDto\n */\n isMultiValue?: boolean;\n /**\n * \n * @type {ERapportHopeParameterType}\n * @memberof RapportHopeParameterDto\n */\n type?: ERapportHopeParameterType;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeParameterDto\n */\n validValues?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof RapportHopeParameterDto\n */\n isOptional?: boolean;\n}\n\n/**\n * Check if a given object implements the RapportHopeParameterDto interface.\n */\nexport function instanceOfRapportHopeParameterDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeParameterDtoFromJSON(json: any): RapportHopeParameterDto {\n return RapportHopeParameterDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeParameterDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeParameterDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'label': !exists(json, 'label') ? undefined : json['label'],\n 'defaultValues': !exists(json, 'defaultValues') ? undefined : json['defaultValues'],\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'multiValues': !exists(json, 'multiValues') ? undefined : json['multiValues'],\n 'dependencies': !exists(json, 'dependencies') ? undefined : json['dependencies'],\n 'isNullable': !exists(json, 'isNullable') ? undefined : json['isNullable'],\n 'isMultiValue': !exists(json, 'isMultiValue') ? undefined : json['isMultiValue'],\n 'type': !exists(json, 'type') ? undefined : ERapportHopeParameterTypeFromJSON(json['type']),\n 'validValues': !exists(json, 'validValues') ? undefined : (json['validValues'] === null ? null : (json['validValues'] as Array).map(RapportHopeParameterValuesDtoFromJSON)),\n 'isOptional': !exists(json, 'isOptional') ? undefined : json['isOptional'],\n };\n}\n\nexport function RapportHopeParameterDtoToJSON(value?: RapportHopeParameterDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'name': value.name,\n 'label': value.label,\n 'defaultValues': value.defaultValues,\n 'value': value.value,\n 'multiValues': value.multiValues,\n 'dependencies': value.dependencies,\n 'isNullable': value.isNullable,\n 'isMultiValue': value.isMultiValue,\n 'type': ERapportHopeParameterTypeToJSON(value.type),\n 'validValues': value.validValues === undefined ? undefined : (value.validValues === null ? null : (value.validValues as Array).map(RapportHopeParameterValuesDtoToJSON)),\n 'isOptional': value.isOptional,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ERapportHopeType } from './ERapportHopeType';\nimport {\n ERapportHopeTypeFromJSON,\n ERapportHopeTypeFromJSONTyped,\n ERapportHopeTypeToJSON,\n} from './ERapportHopeType';\nimport type { RapportHopeParameterDto } from './RapportHopeParameterDto';\nimport {\n RapportHopeParameterDtoFromJSON,\n RapportHopeParameterDtoFromJSONTyped,\n RapportHopeParameterDtoToJSON,\n} from './RapportHopeParameterDto';\n\n/**\n * \n * @export\n * @interface RapportHopeForViewDto\n */\nexport interface RapportHopeForViewDto {\n /**\n * \n * @type {number}\n * @memberof RapportHopeForViewDto\n */\n idrapportHope?: number;\n /**\n * \n * @type {string}\n * @memberof RapportHopeForViewDto\n */\n nom?: string | null;\n /**\n * \n * @type {ERapportHopeType}\n * @memberof RapportHopeForViewDto\n */\n type?: ERapportHopeType;\n /**\n * \n * @type {string}\n * @memberof RapportHopeForViewDto\n */\n path?: string | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeForViewDto\n */\n format?: string | null;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeForViewDto\n */\n parameters?: Array | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeForViewDto interface.\n */\nexport function instanceOfRapportHopeForViewDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeForViewDtoFromJSON(json: any): RapportHopeForViewDto {\n return RapportHopeForViewDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeForViewDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeForViewDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrapportHope': !exists(json, 'idrapportHope') ? undefined : json['idrapportHope'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'type': !exists(json, 'type') ? undefined : ERapportHopeTypeFromJSON(json['type']),\n 'path': !exists(json, 'path') ? undefined : json['path'],\n 'format': !exists(json, 'format') ? undefined : json['format'],\n 'parameters': !exists(json, 'parameters') ? undefined : (json['parameters'] === null ? null : (json['parameters'] as Array).map(RapportHopeParameterDtoFromJSON)),\n };\n}\n\nexport function RapportHopeForViewDtoToJSON(value?: RapportHopeForViewDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrapportHope': value.idrapportHope,\n 'nom': value.nom,\n 'type': ERapportHopeTypeToJSON(value.type),\n 'path': value.path,\n 'format': value.format,\n 'parameters': value.parameters === undefined ? undefined : (value.parameters === null ? null : (value.parameters as Array).map(RapportHopeParameterDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RapportHopeGetIdsrapportContrat200Response\n */\nexport interface RapportHopeGetIdsrapportContrat200Response {\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n cC?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n cA?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n cS?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n pP?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n cF?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n dM?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n jI?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n sO?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n cCE?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGetIdsrapportContrat200Response\n */\n cSE?: number;\n}\n\n/**\n * Check if a given object implements the RapportHopeGetIdsrapportContrat200Response interface.\n */\nexport function instanceOfRapportHopeGetIdsrapportContrat200Response(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeGetIdsrapportContrat200ResponseFromJSON(json: any): RapportHopeGetIdsrapportContrat200Response {\n return RapportHopeGetIdsrapportContrat200ResponseFromJSONTyped(json, false);\n}\n\nexport function RapportHopeGetIdsrapportContrat200ResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeGetIdsrapportContrat200Response {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'cC': !exists(json, 'CC') ? undefined : json['CC'],\n 'cA': !exists(json, 'CA') ? undefined : json['CA'],\n 'cS': !exists(json, 'CS') ? undefined : json['CS'],\n 'pP': !exists(json, 'PP') ? undefined : json['PP'],\n 'cF': !exists(json, 'CF') ? undefined : json['CF'],\n 'dM': !exists(json, 'DM') ? undefined : json['DM'],\n 'jI': !exists(json, 'JI') ? undefined : json['JI'],\n 'sO': !exists(json, 'SO') ? undefined : json['SO'],\n 'cCE': !exists(json, 'CCE') ? undefined : json['CCE'],\n 'cSE': !exists(json, 'CSE') ? undefined : json['CSE'],\n };\n}\n\nexport function RapportHopeGetIdsrapportContrat200ResponseToJSON(value?: RapportHopeGetIdsrapportContrat200Response | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'CC': value.cC,\n 'CA': value.cA,\n 'CS': value.cS,\n 'PP': value.pP,\n 'CF': value.cF,\n 'DM': value.dM,\n 'JI': value.jI,\n 'SO': value.sO,\n 'CCE': value.cCE,\n 'CSE': value.cSE,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RapportHopeGridDto\n */\nexport interface RapportHopeGridDto {\n /**\n * \n * @type {number}\n * @memberof RapportHopeGridDto\n */\n idrapportHope?: number;\n /**\n * \n * @type {string}\n * @memberof RapportHopeGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeGridDto\n */\n description?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof RapportHopeGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeGridDto\n */\n path?: string | null;\n /**\n * \n * @type {number}\n * @memberof RapportHopeGridDto\n */\n idrapportHopeType?: number;\n /**\n * \n * @type {string}\n * @memberof RapportHopeGridDto\n */\n rapportHopeType?: string | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeGridDto\n */\n categorie?: string | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeGridDto interface.\n */\nexport function instanceOfRapportHopeGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeGridDtoFromJSON(json: any): RapportHopeGridDto {\n return RapportHopeGridDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrapportHope': !exists(json, 'idrapportHope') ? undefined : json['idrapportHope'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'path': !exists(json, 'path') ? undefined : json['path'],\n 'idrapportHopeType': !exists(json, 'idrapportHopeType') ? undefined : json['idrapportHopeType'],\n 'rapportHopeType': !exists(json, 'rapportHopeType') ? undefined : json['rapportHopeType'],\n 'categorie': !exists(json, 'categorie') ? undefined : json['categorie'],\n };\n}\n\nexport function RapportHopeGridDtoToJSON(value?: RapportHopeGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrapportHope': value.idrapportHope,\n 'nom': value.nom,\n 'description': value.description,\n 'actif': value.actif,\n 'path': value.path,\n 'idrapportHopeType': value.idrapportHopeType,\n 'rapportHopeType': value.rapportHopeType,\n 'categorie': value.categorie,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { RapportHopeGridDto } from './RapportHopeGridDto';\nimport {\n RapportHopeGridDtoFromJSON,\n RapportHopeGridDtoFromJSONTyped,\n RapportHopeGridDtoToJSON,\n} from './RapportHopeGridDto';\n\n/**\n * \n * @export\n * @interface RapportHopeGridDtoPaginatedResults\n */\nexport interface RapportHopeGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof RapportHopeGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeGridDtoPaginatedResults interface.\n */\nexport function instanceOfRapportHopeGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeGridDtoPaginatedResultsFromJSON(json: any): RapportHopeGridDtoPaginatedResults {\n return RapportHopeGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function RapportHopeGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(RapportHopeGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function RapportHopeGridDtoPaginatedResultsToJSON(value?: RapportHopeGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(RapportHopeGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RapportHopeModulePermissionDto\n */\nexport interface RapportHopeModulePermissionDto {\n /**\n * \n * @type {boolean}\n * @memberof RapportHopeModulePermissionDto\n */\n selected?: boolean;\n /**\n * \n * @type {number}\n * @memberof RapportHopeModulePermissionDto\n */\n idmodule?: number;\n /**\n * \n * @type {number}\n * @memberof RapportHopeModulePermissionDto\n */\n idrapportHope?: number | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeModulePermissionDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeModulePermissionDto interface.\n */\nexport function instanceOfRapportHopeModulePermissionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeModulePermissionDtoFromJSON(json: any): RapportHopeModulePermissionDto {\n return RapportHopeModulePermissionDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeModulePermissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeModulePermissionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selected': !exists(json, 'selected') ? undefined : json['selected'],\n 'idmodule': !exists(json, 'idmodule') ? undefined : json['idmodule'],\n 'idrapportHope': !exists(json, 'idrapportHope') ? undefined : json['idrapportHope'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function RapportHopeModulePermissionDtoToJSON(value?: RapportHopeModulePermissionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selected': value.selected,\n 'idmodule': value.idmodule,\n 'idrapportHope': value.idrapportHope,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RapportHopeServicePermissionDto\n */\nexport interface RapportHopeServicePermissionDto {\n /**\n * \n * @type {boolean}\n * @memberof RapportHopeServicePermissionDto\n */\n selected?: boolean;\n /**\n * \n * @type {number}\n * @memberof RapportHopeServicePermissionDto\n */\n idrapportHope?: number | null;\n /**\n * \n * @type {number}\n * @memberof RapportHopeServicePermissionDto\n */\n idservice?: number;\n /**\n * \n * @type {string}\n * @memberof RapportHopeServicePermissionDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeServicePermissionDto interface.\n */\nexport function instanceOfRapportHopeServicePermissionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeServicePermissionDtoFromJSON(json: any): RapportHopeServicePermissionDto {\n return RapportHopeServicePermissionDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeServicePermissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeServicePermissionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selected': !exists(json, 'selected') ? undefined : json['selected'],\n 'idrapportHope': !exists(json, 'idrapportHope') ? undefined : json['idrapportHope'],\n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function RapportHopeServicePermissionDtoToJSON(value?: RapportHopeServicePermissionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selected': value.selected,\n 'idrapportHope': value.idrapportHope,\n 'idservice': value.idservice,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { RapportHopeAccesPermissionDto } from './RapportHopeAccesPermissionDto';\nimport {\n RapportHopeAccesPermissionDtoFromJSON,\n RapportHopeAccesPermissionDtoFromJSONTyped,\n RapportHopeAccesPermissionDtoToJSON,\n} from './RapportHopeAccesPermissionDto';\nimport type { RapportHopeModulePermissionDto } from './RapportHopeModulePermissionDto';\nimport {\n RapportHopeModulePermissionDtoFromJSON,\n RapportHopeModulePermissionDtoFromJSONTyped,\n RapportHopeModulePermissionDtoToJSON,\n} from './RapportHopeModulePermissionDto';\nimport type { RapportHopeServicePermissionDto } from './RapportHopeServicePermissionDto';\nimport {\n RapportHopeServicePermissionDtoFromJSON,\n RapportHopeServicePermissionDtoFromJSONTyped,\n RapportHopeServicePermissionDtoToJSON,\n} from './RapportHopeServicePermissionDto';\n\n/**\n * \n * @export\n * @interface RapportHopePermissionsDto\n */\nexport interface RapportHopePermissionsDto {\n /**\n * \n * @type {Array}\n * @memberof RapportHopePermissionsDto\n */\n services?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RapportHopePermissionsDto\n */\n acces?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RapportHopePermissionsDto\n */\n modules?: Array | null;\n}\n\n/**\n * Check if a given object implements the RapportHopePermissionsDto interface.\n */\nexport function instanceOfRapportHopePermissionsDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopePermissionsDtoFromJSON(json: any): RapportHopePermissionsDto {\n return RapportHopePermissionsDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopePermissionsDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopePermissionsDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'services': !exists(json, 'services') ? undefined : (json['services'] === null ? null : (json['services'] as Array).map(RapportHopeServicePermissionDtoFromJSON)),\n 'acces': !exists(json, 'acces') ? undefined : (json['acces'] === null ? null : (json['acces'] as Array).map(RapportHopeAccesPermissionDtoFromJSON)),\n 'modules': !exists(json, 'modules') ? undefined : (json['modules'] === null ? null : (json['modules'] as Array).map(RapportHopeModulePermissionDtoFromJSON)),\n };\n}\n\nexport function RapportHopePermissionsDtoToJSON(value?: RapportHopePermissionsDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'services': value.services === undefined ? undefined : (value.services === null ? null : (value.services as Array).map(RapportHopeServicePermissionDtoToJSON)),\n 'acces': value.acces === undefined ? undefined : (value.acces === null ? null : (value.acces as Array).map(RapportHopeAccesPermissionDtoToJSON)),\n 'modules': value.modules === undefined ? undefined : (value.modules === null ? null : (value.modules as Array).map(RapportHopeModulePermissionDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { ERapportHopeType } from './ERapportHopeType';\nimport {\n ERapportHopeTypeFromJSON,\n ERapportHopeTypeFromJSONTyped,\n ERapportHopeTypeToJSON,\n} from './ERapportHopeType';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface RapportHopeSearchDto\n */\nexport interface RapportHopeSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof RapportHopeSearchDto\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof RapportHopeSearchDto\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof RapportHopeSearchDto\n */\n path?: UnaccentTextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof RapportHopeSearchDto\n */\n idrapportHopeType?: Int32ListSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof RapportHopeSearchDto\n */\n categorie?: UnaccentTextSearch;\n /**\n * \n * @type {number}\n * @memberof RapportHopeSearchDto\n */\n idmodule?: number | null;\n /**\n * \n * @type {ERapportHopeType}\n * @memberof RapportHopeSearchDto\n */\n type?: ERapportHopeType;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RapportHopeSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RapportHopeSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RapportHopeSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RapportHopeSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RapportHopeSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RapportHopeSearchDto interface.\n */\nexport function instanceOfRapportHopeSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportHopeSearchDtoFromJSON(json: any): RapportHopeSearchDto {\n return RapportHopeSearchDtoFromJSONTyped(json, false);\n}\n\nexport function RapportHopeSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportHopeSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'path': !exists(json, 'path') ? undefined : UnaccentTextSearchFromJSON(json['path']),\n 'idrapportHopeType': !exists(json, 'idrapportHopeType') ? undefined : Int32ListSearchFromJSON(json['idrapportHopeType']),\n 'categorie': !exists(json, 'categorie') ? undefined : UnaccentTextSearchFromJSON(json['categorie']),\n 'idmodule': !exists(json, 'idmodule') ? undefined : json['idmodule'],\n 'type': !exists(json, 'type') ? undefined : ERapportHopeTypeFromJSON(json['type']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RapportHopeSearchDtoToJSON(value?: RapportHopeSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'actif': BooleanSearchToJSON(value.actif),\n 'path': UnaccentTextSearchToJSON(value.path),\n 'idrapportHopeType': Int32ListSearchToJSON(value.idrapportHopeType),\n 'categorie': UnaccentTextSearchToJSON(value.categorie),\n 'idmodule': value.idmodule,\n 'type': ERapportHopeTypeToJSON(value.type),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface RapportSearch\n */\nexport interface RapportSearch {\n /**\n * \n * @type {number}\n * @memberof RapportSearch\n */\n moduleId?: number;\n /**\n * \n * @type {boolean}\n * @memberof RapportSearch\n */\n isActif?: boolean;\n /**\n * \n * @type {Array}\n * @memberof RapportSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RapportSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RapportSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RapportSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RapportSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RapportSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RapportSearch interface.\n */\nexport function instanceOfRapportSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RapportSearchFromJSON(json: any): RapportSearch {\n return RapportSearchFromJSONTyped(json, false);\n}\n\nexport function RapportSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RapportSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'moduleId': !exists(json, 'moduleId') ? undefined : json['moduleId'],\n 'isActif': !exists(json, 'isActif') ? undefined : json['isActif'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RapportSearchToJSON(value?: RapportSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'moduleId': value.moduleId,\n 'isActif': value.isActif,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheAgrementLocalisationSearch\n */\nexport interface RechercheAgrementLocalisationSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheAgrementLocalisationSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof RechercheAgrementLocalisationSearch\n */\n centre?: StringListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheAgrementLocalisationSearch\n */\n statutLocalisationAgrement?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheAgrementLocalisationSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheAgrementLocalisationSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheAgrementLocalisationSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheAgrementLocalisationSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheAgrementLocalisationSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheAgrementLocalisationSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheAgrementLocalisationSearch interface.\n */\nexport function instanceOfRechercheAgrementLocalisationSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheAgrementLocalisationSearchFromJSON(json: any): RechercheAgrementLocalisationSearch {\n return RechercheAgrementLocalisationSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheAgrementLocalisationSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheAgrementLocalisationSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'centre': !exists(json, 'centre') ? undefined : StringListSearchFromJSON(json['centre']),\n 'statutLocalisationAgrement': !exists(json, 'statutLocalisationAgrement') ? undefined : TextSearchFromJSON(json['statutLocalisationAgrement']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheAgrementLocalisationSearchToJSON(value?: RechercheAgrementLocalisationSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'centre': StringListSearchToJSON(value.centre),\n 'statutLocalisationAgrement': TextSearchToJSON(value.statutLocalisationAgrement),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheApprenantValidationCeMasseSearch\n */\nexport interface RechercheApprenantValidationCeMasseSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n masculin?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n codeClasse?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n classe?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheApprenantValidationCeMasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheApprenantValidationCeMasseSearch interface.\n */\nexport function instanceOfRechercheApprenantValidationCeMasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheApprenantValidationCeMasseSearchFromJSON(json: any): RechercheApprenantValidationCeMasseSearch {\n return RechercheApprenantValidationCeMasseSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheApprenantValidationCeMasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheApprenantValidationCeMasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'masculin': !exists(json, 'masculin') ? undefined : TextSearchFromJSON(json['masculin']),\n 'codeClasse': !exists(json, 'codeClasse') ? undefined : TextSearchFromJSON(json['codeClasse']),\n 'classe': !exists(json, 'classe') ? undefined : TextSearchFromJSON(json['classe']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheApprenantValidationCeMasseSearchToJSON(value?: RechercheApprenantValidationCeMasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'masculin': TextSearchToJSON(value.masculin),\n 'codeClasse': TextSearchToJSON(value.codeClasse),\n 'classe': TextSearchToJSON(value.classe),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheClasseHoraireRemplacementDefinitiveSearch\n */\nexport interface RechercheClasseHoraireRemplacementDefinitiveSearch {\n /**\n * \n * @type {number}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n idRemplacement?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n classe?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n remplacant?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n contrat?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheClasseHoraireRemplacementDefinitiveSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheClasseHoraireRemplacementDefinitiveSearch interface.\n */\nexport function instanceOfRechercheClasseHoraireRemplacementDefinitiveSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheClasseHoraireRemplacementDefinitiveSearchFromJSON(json: any): RechercheClasseHoraireRemplacementDefinitiveSearch {\n return RechercheClasseHoraireRemplacementDefinitiveSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheClasseHoraireRemplacementDefinitiveSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheClasseHoraireRemplacementDefinitiveSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idRemplacement': !exists(json, 'idRemplacement') ? undefined : json['idRemplacement'],\n 'classe': !exists(json, 'classe') ? undefined : TextSearchFromJSON(json['classe']),\n 'remplacant': !exists(json, 'remplacant') ? undefined : TextSearchFromJSON(json['remplacant']),\n 'contrat': !exists(json, 'contrat') ? undefined : TextSearchFromJSON(json['contrat']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheClasseHoraireRemplacementDefinitiveSearchToJSON(value?: RechercheClasseHoraireRemplacementDefinitiveSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idRemplacement': value.idRemplacement,\n 'classe': TextSearchToJSON(value.classe),\n 'remplacant': TextSearchToJSON(value.remplacant),\n 'contrat': TextSearchToJSON(value.contrat),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheClasseHoraireRemplacementOccasionnelSearch\n */\nexport interface RechercheClasseHoraireRemplacementOccasionnelSearch {\n /**\n * \n * @type {number}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n idRemplacement?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n classe?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n classeMatiere?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n remplacant?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheClasseHoraireRemplacementOccasionnelSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheClasseHoraireRemplacementOccasionnelSearch interface.\n */\nexport function instanceOfRechercheClasseHoraireRemplacementOccasionnelSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheClasseHoraireRemplacementOccasionnelSearchFromJSON(json: any): RechercheClasseHoraireRemplacementOccasionnelSearch {\n return RechercheClasseHoraireRemplacementOccasionnelSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheClasseHoraireRemplacementOccasionnelSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheClasseHoraireRemplacementOccasionnelSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idRemplacement': !exists(json, 'idRemplacement') ? undefined : json['idRemplacement'],\n 'classe': !exists(json, 'classe') ? undefined : TextSearchFromJSON(json['classe']),\n 'classeMatiere': !exists(json, 'classeMatiere') ? undefined : TextSearchFromJSON(json['classeMatiere']),\n 'remplacant': !exists(json, 'remplacant') ? undefined : TextSearchFromJSON(json['remplacant']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheClasseHoraireRemplacementOccasionnelSearchToJSON(value?: RechercheClasseHoraireRemplacementOccasionnelSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idRemplacement': value.idRemplacement,\n 'classe': TextSearchToJSON(value.classe),\n 'classeMatiere': TextSearchToJSON(value.classeMatiere),\n 'remplacant': TextSearchToJSON(value.remplacant),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheClasseHoraireRemplacementSimultaneSearch\n */\nexport interface RechercheClasseHoraireRemplacementSimultaneSearch {\n /**\n * \n * @type {number}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n idRemplacement?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n classe?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n classeMatiere?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n remplacant?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n contrat?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheClasseHoraireRemplacementSimultaneSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheClasseHoraireRemplacementSimultaneSearch interface.\n */\nexport function instanceOfRechercheClasseHoraireRemplacementSimultaneSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheClasseHoraireRemplacementSimultaneSearchFromJSON(json: any): RechercheClasseHoraireRemplacementSimultaneSearch {\n return RechercheClasseHoraireRemplacementSimultaneSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheClasseHoraireRemplacementSimultaneSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheClasseHoraireRemplacementSimultaneSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idRemplacement': !exists(json, 'idRemplacement') ? undefined : json['idRemplacement'],\n 'classe': !exists(json, 'classe') ? undefined : TextSearchFromJSON(json['classe']),\n 'classeMatiere': !exists(json, 'classeMatiere') ? undefined : TextSearchFromJSON(json['classeMatiere']),\n 'remplacant': !exists(json, 'remplacant') ? undefined : TextSearchFromJSON(json['remplacant']),\n 'contrat': !exists(json, 'contrat') ? undefined : TextSearchFromJSON(json['contrat']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheClasseHoraireRemplacementSimultaneSearchToJSON(value?: RechercheClasseHoraireRemplacementSimultaneSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idRemplacement': value.idRemplacement,\n 'classe': TextSearchToJSON(value.classe),\n 'classeMatiere': TextSearchToJSON(value.classeMatiere),\n 'remplacant': TextSearchToJSON(value.remplacant),\n 'contrat': TextSearchToJSON(value.contrat),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheDateAbsenceApprenantSearch\n */\nexport interface RechercheDateAbsenceApprenantSearch {\n /**\n * \n * @type {number}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n classe?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n codeclasse?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n orderjour?: DateSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheDateAbsenceApprenantSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheDateAbsenceApprenantSearch interface.\n */\nexport function instanceOfRechercheDateAbsenceApprenantSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheDateAbsenceApprenantSearchFromJSON(json: any): RechercheDateAbsenceApprenantSearch {\n return RechercheDateAbsenceApprenantSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheDateAbsenceApprenantSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheDateAbsenceApprenantSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'classe': !exists(json, 'classe') ? undefined : TextSearchFromJSON(json['classe']),\n 'codeclasse': !exists(json, 'codeclasse') ? undefined : TextSearchFromJSON(json['codeclasse']),\n 'orderjour': !exists(json, 'orderjour') ? undefined : DateSearchFromJSON(json['orderjour']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheDateAbsenceApprenantSearchToJSON(value?: RechercheDateAbsenceApprenantSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'classe': TextSearchToJSON(value.classe),\n 'codeclasse': TextSearchToJSON(value.codeclasse),\n 'orderjour': DateSearchToJSON(value.orderjour),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheExportGapSearch\n */\nexport interface RechercheExportGapSearch {\n /**\n * \n * @type {number}\n * @memberof RechercheExportGapSearch\n */\n idexport?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheExportGapSearch\n */\n date?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheExportGapSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheExportGapSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof RechercheExportGapSearch\n */\n valide?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheExportGapSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheExportGapSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheExportGapSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheExportGapSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheExportGapSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheExportGapSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheExportGapSearch interface.\n */\nexport function instanceOfRechercheExportGapSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheExportGapSearchFromJSON(json: any): RechercheExportGapSearch {\n return RechercheExportGapSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheExportGapSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheExportGapSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idexport': !exists(json, 'idexport') ? undefined : json['idexport'],\n 'date': !exists(json, 'date') ? undefined : TextSearchFromJSON(json['date']),\n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'valide': !exists(json, 'valide') ? undefined : BooleanSearchFromJSON(json['valide']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheExportGapSearchToJSON(value?: RechercheExportGapSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idexport': value.idexport,\n 'date': TextSearchToJSON(value.date),\n 'centre': TextSearchToJSON(value.centre),\n 'description': TextSearchToJSON(value.description),\n 'valide': BooleanSearchToJSON(value.valide),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheImpressionSearch\n */\nexport interface RechercheImpressionSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheImpressionSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheImpressionSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof RechercheImpressionSearch\n */\n computedActif?: BooleanSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheImpressionSearch\n */\n rapport?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheImpressionSearch\n */\n module?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheImpressionSearch\n */\n acces?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheImpressionSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheImpressionSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheImpressionSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheImpressionSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheImpressionSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheImpressionSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheImpressionSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheImpressionSearch interface.\n */\nexport function instanceOfRechercheImpressionSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheImpressionSearchFromJSON(json: any): RechercheImpressionSearch {\n return RechercheImpressionSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheImpressionSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheImpressionSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'computedActif': !exists(json, 'computedActif') ? undefined : BooleanSearchFromJSON(json['computedActif']),\n 'rapport': !exists(json, 'rapport') ? undefined : TextSearchFromJSON(json['rapport']),\n 'module': !exists(json, 'module') ? undefined : TextSearchFromJSON(json['module']),\n 'acces': !exists(json, 'acces') ? undefined : TextSearchFromJSON(json['acces']),\n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheImpressionSearchToJSON(value?: RechercheImpressionSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'description': TextSearchToJSON(value.description),\n 'computedActif': BooleanSearchToJSON(value.computedActif),\n 'rapport': TextSearchToJSON(value.rapport),\n 'module': TextSearchToJSON(value.module),\n 'acces': TextSearchToJSON(value.acces),\n 'centre': TextSearchToJSON(value.centre),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheRemplacementSearch\n */\nexport interface RechercheRemplacementSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheRemplacementSearch\n */\n remplace?: TextSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof RechercheRemplacementSearch\n */\n idTypeRemplacement?: Int32NullableListSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof RechercheRemplacementSearch\n */\n dateDebutSearch?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheRemplacementSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof RechercheRemplacementSearch\n */\n idLegitimite?: Int32NullableListSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheRemplacementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheRemplacementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheRemplacementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheRemplacementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheRemplacementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheRemplacementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheRemplacementSearch interface.\n */\nexport function instanceOfRechercheRemplacementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheRemplacementSearchFromJSON(json: any): RechercheRemplacementSearch {\n return RechercheRemplacementSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheRemplacementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheRemplacementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'remplace': !exists(json, 'remplace') ? undefined : TextSearchFromJSON(json['remplace']),\n 'idTypeRemplacement': !exists(json, 'idTypeRemplacement') ? undefined : Int32NullableListSearchFromJSON(json['idTypeRemplacement']),\n 'dateDebutSearch': !exists(json, 'dateDebutSearch') ? undefined : DateSearchFromJSON(json['dateDebutSearch']),\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'idLegitimite': !exists(json, 'idLegitimite') ? undefined : Int32NullableListSearchFromJSON(json['idLegitimite']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheRemplacementSearchToJSON(value?: RechercheRemplacementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'remplace': TextSearchToJSON(value.remplace),\n 'idTypeRemplacement': Int32NullableListSearchToJSON(value.idTypeRemplacement),\n 'dateDebutSearch': DateSearchToJSON(value.dateDebutSearch),\n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'idLegitimite': Int32NullableListSearchToJSON(value.idLegitimite),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\n\n/**\n * \n * @export\n * @interface RechercheStatPresenceApprenantSearch\n */\nexport interface RechercheStatPresenceApprenantSearch {\n /**\n * \n * @type {StringListSearch}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n anneeScolaire?: StringListSearch;\n /**\n * \n * @type {number}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {DateSearch}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n dateDebut?: DateSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n dateFin?: DateSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheStatPresenceApprenantSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheStatPresenceApprenantSearch interface.\n */\nexport function instanceOfRechercheStatPresenceApprenantSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheStatPresenceApprenantSearchFromJSON(json: any): RechercheStatPresenceApprenantSearch {\n return RechercheStatPresenceApprenantSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheStatPresenceApprenantSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheStatPresenceApprenantSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : StringListSearchFromJSON(json['anneeScolaire']),\n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'dateDebut': !exists(json, 'dateDebut') ? undefined : DateSearchFromJSON(json['dateDebut']),\n 'dateFin': !exists(json, 'dateFin') ? undefined : DateSearchFromJSON(json['dateFin']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheStatPresenceApprenantSearchToJSON(value?: RechercheStatPresenceApprenantSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeScolaire': StringListSearchToJSON(value.anneeScolaire),\n 'idApprenant': value.idApprenant,\n 'dateDebut': DateSearchToJSON(value.dateDebut),\n 'dateFin': DateSearchToJSON(value.dateFin),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RechercheexportSearch\n */\nexport interface RechercheexportSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheexportSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheexportSearch\n */\n type?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheexportSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof RechercheexportSearch\n */\n actifComputed?: BooleanSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheexportSearch\n */\n db?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheexportSearch\n */\n module?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheexportSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RechercheexportSearch\n */\n acces?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof RechercheexportSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RechercheexportSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RechercheexportSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RechercheexportSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RechercheexportSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RechercheexportSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RechercheexportSearch interface.\n */\nexport function instanceOfRechercheexportSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RechercheexportSearchFromJSON(json: any): RechercheexportSearch {\n return RechercheexportSearchFromJSONTyped(json, false);\n}\n\nexport function RechercheexportSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RechercheexportSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'type': !exists(json, 'type') ? undefined : TextSearchFromJSON(json['type']),\n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'actifComputed': !exists(json, 'actifComputed') ? undefined : BooleanSearchFromJSON(json['actifComputed']),\n 'db': !exists(json, 'db') ? undefined : TextSearchFromJSON(json['db']),\n 'module': !exists(json, 'module') ? undefined : TextSearchFromJSON(json['module']),\n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'acces': !exists(json, 'acces') ? undefined : TextSearchFromJSON(json['acces']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RechercheexportSearchToJSON(value?: RechercheexportSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'type': TextSearchToJSON(value.type),\n 'description': TextSearchToJSON(value.description),\n 'actifComputed': BooleanSearchToJSON(value.actifComputed),\n 'db': TextSearchToJSON(value.db),\n 'module': TextSearchToJSON(value.module),\n 'centre': TextSearchToJSON(value.centre),\n 'acces': TextSearchToJSON(value.acces),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ReferentialItemDto } from './ReferentialItemDto';\nimport {\n ReferentialItemDtoFromJSON,\n ReferentialItemDtoFromJSONTyped,\n ReferentialItemDtoToJSON,\n} from './ReferentialItemDto';\n\n/**\n * \n * @export\n * @interface ReferentialResultInfoDto\n */\nexport interface ReferentialResultInfoDto {\n /**\n * \n * @type {Array}\n * @memberof ReferentialResultInfoDto\n */\n list?: Array | null;\n}\n\n/**\n * Check if a given object implements the ReferentialResultInfoDto interface.\n */\nexport function instanceOfReferentialResultInfoDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ReferentialResultInfoDtoFromJSON(json: any): ReferentialResultInfoDto {\n return ReferentialResultInfoDtoFromJSONTyped(json, false);\n}\n\nexport function ReferentialResultInfoDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReferentialResultInfoDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'list': !exists(json, 'list') ? undefined : (json['list'] === null ? null : (json['list'] as Array).map(ReferentialItemDtoFromJSON)),\n };\n}\n\nexport function ReferentialResultInfoDtoToJSON(value?: ReferentialResultInfoDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'list': value.list === undefined ? undefined : (value.list === null ? null : (value.list as Array).map(ReferentialItemDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ReferentielSearch\n */\nexport interface ReferentielSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof ReferentielSearch\n */\n codereferentiel?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ReferentielSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ReferentielSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof ReferentielSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ReferentielSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ReferentielSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ReferentielSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ReferentielSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ReferentielSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ReferentielSearch interface.\n */\nexport function instanceOfReferentielSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ReferentielSearchFromJSON(json: any): ReferentielSearch {\n return ReferentielSearchFromJSONTyped(json, false);\n}\n\nexport function ReferentielSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReferentielSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codereferentiel': !exists(json, 'codereferentiel') ? undefined : TextSearchFromJSON(json['codereferentiel']),\n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ReferentielSearchToJSON(value?: ReferentielSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codereferentiel': TextSearchToJSON(value.codereferentiel),\n 'description': TextSearchToJSON(value.description),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RemplacementSearch\n */\nexport interface RemplacementSearch {\n /**\n * \n * @type {number}\n * @memberof RemplacementSearch\n */\n idFormateur?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof RemplacementSearch\n */\n centre?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof RemplacementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RemplacementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RemplacementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RemplacementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RemplacementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RemplacementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RemplacementSearch interface.\n */\nexport function instanceOfRemplacementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RemplacementSearchFromJSON(json: any): RemplacementSearch {\n return RemplacementSearchFromJSONTyped(json, false);\n}\n\nexport function RemplacementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RemplacementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'centre': !exists(json, 'centre') ? undefined : TextSearchFromJSON(json['centre']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RemplacementSearchToJSON(value?: RemplacementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idFormateur': value.idFormateur,\n 'centre': TextSearchToJSON(value.centre),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ReportParameterDto\n */\nexport interface ReportParameterDto {\n /**\n * \n * @type {string}\n * @memberof ReportParameterDto\n */\n name?: string | null;\n /**\n * \n * @type {string}\n * @memberof ReportParameterDto\n */\n prompt?: string | null;\n /**\n * \n * @type {string}\n * @memberof ReportParameterDto\n */\n dataType?: string | null;\n /**\n * \n * @type {string}\n * @memberof ReportParameterDto\n */\n value?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ReportParameterDto\n */\n required?: boolean | null;\n}\n\n/**\n * Check if a given object implements the ReportParameterDto interface.\n */\nexport function instanceOfReportParameterDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ReportParameterDtoFromJSON(json: any): ReportParameterDto {\n return ReportParameterDtoFromJSONTyped(json, false);\n}\n\nexport function ReportParameterDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReportParameterDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'prompt': !exists(json, 'prompt') ? undefined : json['prompt'],\n 'dataType': !exists(json, 'dataType') ? undefined : json['dataType'],\n 'value': !exists(json, 'value') ? undefined : json['value'],\n 'required': !exists(json, 'required') ? undefined : json['required'],\n };\n}\n\nexport function ReportParameterDtoToJSON(value?: ReportParameterDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'name': value.name,\n 'prompt': value.prompt,\n 'dataType': value.dataType,\n 'value': value.value,\n 'required': value.required,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ReportParameterDto } from './ReportParameterDto';\nimport {\n ReportParameterDtoFromJSON,\n ReportParameterDtoFromJSONTyped,\n ReportParameterDtoToJSON,\n} from './ReportParameterDto';\n\n/**\n * \n * @export\n * @interface ReportParametersDto\n */\nexport interface ReportParametersDto {\n /**\n * \n * @type {Array}\n * @memberof ReportParametersDto\n */\n parameters?: Array | null;\n}\n\n/**\n * Check if a given object implements the ReportParametersDto interface.\n */\nexport function instanceOfReportParametersDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ReportParametersDtoFromJSON(json: any): ReportParametersDto {\n return ReportParametersDtoFromJSONTyped(json, false);\n}\n\nexport function ReportParametersDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReportParametersDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'parameters': !exists(json, 'parameters') ? undefined : (json['parameters'] === null ? null : (json['parameters'] as Array).map(ReportParameterDtoFromJSON)),\n };\n}\n\nexport function ReportParametersDtoToJSON(value?: ReportParametersDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'parameters': value.parameters === undefined ? undefined : (value.parameters === null ? null : (value.parameters as Array).map(ReportParameterDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface RepresentantDoublonSearch\n */\nexport interface RepresentantDoublonSearch {\n /**\n * \n * @type {string}\n * @memberof RepresentantDoublonSearch\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantDoublonSearch\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantDoublonSearch\n */\n numeroNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof RepresentantDoublonSearch\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantDoublonSearch\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantDoublonSearch\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantDoublonSearch\n */\n adresseNaissance?: string | null;\n /**\n * \n * @type {number}\n * @memberof RepresentantDoublonSearch\n */\n idpersonne?: number | null;\n /**\n * \n * @type {Array}\n * @memberof RepresentantDoublonSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RepresentantDoublonSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RepresentantDoublonSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RepresentantDoublonSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RepresentantDoublonSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantDoublonSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RepresentantDoublonSearch interface.\n */\nexport function instanceOfRepresentantDoublonSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RepresentantDoublonSearchFromJSON(json: any): RepresentantDoublonSearch {\n return RepresentantDoublonSearchFromJSONTyped(json, false);\n}\n\nexport function RepresentantDoublonSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RepresentantDoublonSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'numeroNational': !exists(json, 'numeroNational') ? undefined : json['numeroNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'adresseNaissance': !exists(json, 'adresseNaissance') ? undefined : json['adresseNaissance'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RepresentantDoublonSearchToJSON(value?: RepresentantDoublonSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': value.nom,\n 'prenom': value.prenom,\n 'numeroNational': value.numeroNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'codesexe': value.codesexe,\n 'adresseNaissance': value.adresseNaissance,\n 'idpersonne': value.idpersonne,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface RepresentantSearch\n */\nexport interface RepresentantSearch {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof RepresentantSearch\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof RepresentantSearch\n */\n prenom?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof RepresentantSearch\n */\n nomInstitution?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof RepresentantSearch\n */\n nomApprenant?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof RepresentantSearch\n */\n prenomApprenant?: UnaccentTextSearch;\n /**\n * \n * @type {Array}\n * @memberof RepresentantSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RepresentantSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RepresentantSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RepresentantSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RepresentantSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RepresentantSearch interface.\n */\nexport function instanceOfRepresentantSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RepresentantSearchFromJSON(json: any): RepresentantSearch {\n return RepresentantSearchFromJSONTyped(json, false);\n}\n\nexport function RepresentantSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RepresentantSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : UnaccentTextSearchFromJSON(json['prenom']),\n 'nomInstitution': !exists(json, 'nomInstitution') ? undefined : UnaccentTextSearchFromJSON(json['nomInstitution']),\n 'nomApprenant': !exists(json, 'nomApprenant') ? undefined : UnaccentTextSearchFromJSON(json['nomApprenant']),\n 'prenomApprenant': !exists(json, 'prenomApprenant') ? undefined : UnaccentTextSearchFromJSON(json['prenomApprenant']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RepresentantSearchToJSON(value?: RepresentantSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'prenom': UnaccentTextSearchToJSON(value.prenom),\n 'nomInstitution': UnaccentTextSearchToJSON(value.nomInstitution),\n 'nomApprenant': UnaccentTextSearchToJSON(value.nomApprenant),\n 'prenomApprenant': UnaccentTextSearchToJSON(value.prenomApprenant),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\n\n/**\n * \n * @export\n * @interface RepresentantSelectorGridDto\n */\nexport interface RepresentantSelectorGridDto {\n /**\n * \n * @type {number}\n * @memberof RepresentantSelectorGridDto\n */\n idrepresentant?: number;\n /**\n * \n * @type {number}\n * @memberof RepresentantSelectorGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof RepresentantSelectorGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantSelectorGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof RepresentantSelectorGridDto\n */\n adresseRepresentant?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof RepresentantSelectorGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantSelectorGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantSelectorGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantSelectorGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof RepresentantSelectorGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantSelectorGridDto\n */\n numeroNational?: string | null;\n}\n\n/**\n * Check if a given object implements the RepresentantSelectorGridDto interface.\n */\nexport function instanceOfRepresentantSelectorGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RepresentantSelectorGridDtoFromJSON(json: any): RepresentantSelectorGridDto {\n return RepresentantSelectorGridDtoFromJSONTyped(json, false);\n}\n\nexport function RepresentantSelectorGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): RepresentantSelectorGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrepresentant': !exists(json, 'idrepresentant') ? undefined : json['idrepresentant'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseRepresentant': !exists(json, 'adresseRepresentant') ? undefined : AdresseDtoFromJSON(json['adresseRepresentant']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'numeroNational': !exists(json, 'numeroNational') ? undefined : json['numeroNational'],\n };\n}\n\nexport function RepresentantSelectorGridDtoToJSON(value?: RepresentantSelectorGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrepresentant': value.idrepresentant,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseRepresentant': AdresseDtoToJSON(value.adresseRepresentant),\n 'nationalite': value.nationalite,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'numeroNational': value.numeroNational,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { RepresentantSelectorGridDto } from './RepresentantSelectorGridDto';\nimport {\n RepresentantSelectorGridDtoFromJSON,\n RepresentantSelectorGridDtoFromJSONTyped,\n RepresentantSelectorGridDtoToJSON,\n} from './RepresentantSelectorGridDto';\n\n/**\n * \n * @export\n * @interface RepresentantSelectorGridDtoPaginatedResults\n */\nexport interface RepresentantSelectorGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof RepresentantSelectorGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof RepresentantSelectorGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RepresentantSelectorGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the RepresentantSelectorGridDtoPaginatedResults interface.\n */\nexport function instanceOfRepresentantSelectorGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RepresentantSelectorGridDtoPaginatedResultsFromJSON(json: any): RepresentantSelectorGridDtoPaginatedResults {\n return RepresentantSelectorGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function RepresentantSelectorGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): RepresentantSelectorGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(RepresentantSelectorGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function RepresentantSelectorGridDtoPaginatedResultsToJSON(value?: RepresentantSelectorGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(RepresentantSelectorGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface RepresentantSelectorSearch\n */\nexport interface RepresentantSelectorSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof RepresentantSelectorSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RepresentantSelectorSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof RepresentantSelectorSearch\n */\n numeroNational?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof RepresentantSelectorSearch\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof RepresentantSelectorSearch\n */\n nationalite?: StringListSearch;\n /**\n * \n * @type {Array}\n * @memberof RepresentantSelectorSearch\n */\n selectedRepresentantIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RepresentantSelectorSearch\n */\n excludedRepresentantIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RepresentantSelectorSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof RepresentantSelectorSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof RepresentantSelectorSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof RepresentantSelectorSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof RepresentantSelectorSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof RepresentantSelectorSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the RepresentantSelectorSearch interface.\n */\nexport function instanceOfRepresentantSelectorSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function RepresentantSelectorSearchFromJSON(json: any): RepresentantSelectorSearch {\n return RepresentantSelectorSearchFromJSONTyped(json, false);\n}\n\nexport function RepresentantSelectorSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): RepresentantSelectorSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'numeroNational': !exists(json, 'numeroNational') ? undefined : TextSearchFromJSON(json['numeroNational']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'nationalite': !exists(json, 'nationalite') ? undefined : StringListSearchFromJSON(json['nationalite']),\n 'selectedRepresentantIds': !exists(json, 'selectedRepresentantIds') ? undefined : json['selectedRepresentantIds'],\n 'excludedRepresentantIds': !exists(json, 'excludedRepresentantIds') ? undefined : json['excludedRepresentantIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function RepresentantSelectorSearchToJSON(value?: RepresentantSelectorSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'numeroNational': TextSearchToJSON(value.numeroNational),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'nationalite': StringListSearchToJSON(value.nationalite),\n 'selectedRepresentantIds': value.selectedRepresentantIds,\n 'excludedRepresentantIds': value.excludedRepresentantIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SaveReferentielDto\n */\nexport interface SaveReferentielDto {\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n copyId?: number | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n idreferentiel?: number;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n idmetier?: number;\n /**\n * \n * @type {string}\n * @memberof SaveReferentielDto\n */\n iddegre?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SaveReferentielDto\n */\n date?: Date | null;\n /**\n * \n * @type {string}\n * @memberof SaveReferentielDto\n */\n description?: string | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n nbheures?: number | null;\n /**\n * \n * @type {string}\n * @memberof SaveReferentielDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n coutmatiere?: number | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n nbcandidat?: number | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n nbseances?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof SaveReferentielDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof SaveReferentielDto\n */\n test?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n pcreussite?: number | null;\n /**\n * \n * @type {string}\n * @memberof SaveReferentielDto\n */\n codereferentiel?: string | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n creationUser?: number;\n /**\n * \n * @type {Date}\n * @memberof SaveReferentielDto\n */\n modificationDate?: Date | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n modificationUser?: number | null;\n /**\n * \n * @type {Date}\n * @memberof SaveReferentielDto\n */\n creationDate?: Date;\n /**\n * \n * @type {string}\n * @memberof SaveReferentielDto\n */\n idreferentielGuid?: string | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n idtypeReussite?: number | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n pcreport?: number | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n heureReelle?: number | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n coutglobal?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof SaveReferentielDto\n */\n deliberee?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof SaveReferentielDto\n */\n e8E9?: boolean;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n idtypeBulletin?: number | null;\n /**\n * \n * @type {number}\n * @memberof SaveReferentielDto\n */\n idcertification?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof SaveReferentielDto\n */\n linkedToClasses?: boolean;\n}\n\n/**\n * Check if a given object implements the SaveReferentielDto interface.\n */\nexport function instanceOfSaveReferentielDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SaveReferentielDtoFromJSON(json: any): SaveReferentielDto {\n return SaveReferentielDtoFromJSONTyped(json, false);\n}\n\nexport function SaveReferentielDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SaveReferentielDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'copyId': !exists(json, 'copyId') ? undefined : json['copyId'],\n 'idreferentiel': !exists(json, 'idreferentiel') ? undefined : json['idreferentiel'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'iddegre': !exists(json, 'iddegre') ? undefined : json['iddegre'],\n 'date': !exists(json, 'date') ? undefined : (json['date'] === null ? null : new Date(json['date'])),\n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'nbheures': !exists(json, 'nbheures') ? undefined : json['nbheures'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'coutmatiere': !exists(json, 'coutmatiere') ? undefined : json['coutmatiere'],\n 'nbcandidat': !exists(json, 'nbcandidat') ? undefined : json['nbcandidat'],\n 'nbseances': !exists(json, 'nbseances') ? undefined : json['nbseances'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'test': !exists(json, 'test') ? undefined : json['test'],\n 'pcreussite': !exists(json, 'pcreussite') ? undefined : json['pcreussite'],\n 'codereferentiel': !exists(json, 'codereferentiel') ? undefined : json['codereferentiel'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'modificationDate': !exists(json, 'modificationDate') ? undefined : (json['modificationDate'] === null ? null : new Date(json['modificationDate'])),\n 'modificationUser': !exists(json, 'modificationUser') ? undefined : json['modificationUser'],\n 'creationDate': !exists(json, 'creationDate') ? undefined : (new Date(json['creationDate'])),\n 'idreferentielGuid': !exists(json, 'idreferentielGuid') ? undefined : json['idreferentielGuid'],\n 'idtypeReussite': !exists(json, 'idtypeReussite') ? undefined : json['idtypeReussite'],\n 'pcreport': !exists(json, 'pcreport') ? undefined : json['pcreport'],\n 'heureReelle': !exists(json, 'heureReelle') ? undefined : json['heureReelle'],\n 'coutglobal': !exists(json, 'coutglobal') ? undefined : json['coutglobal'],\n 'deliberee': !exists(json, 'deliberee') ? undefined : json['deliberee'],\n 'e8E9': !exists(json, 'e8E9') ? undefined : json['e8E9'],\n 'idtypeBulletin': !exists(json, 'idtypeBulletin') ? undefined : json['idtypeBulletin'],\n 'idcertification': !exists(json, 'idcertification') ? undefined : json['idcertification'],\n 'linkedToClasses': !exists(json, 'linkedToClasses') ? undefined : json['linkedToClasses'],\n };\n}\n\nexport function SaveReferentielDtoToJSON(value?: SaveReferentielDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'copyId': value.copyId,\n 'idreferentiel': value.idreferentiel,\n 'idmetier': value.idmetier,\n 'iddegre': value.iddegre,\n 'date': value.date === undefined ? undefined : (value.date === null ? null : value.date.toISOString()),\n 'description': value.description,\n 'nbheures': value.nbheures,\n 'remarque': value.remarque,\n 'coutmatiere': value.coutmatiere,\n 'nbcandidat': value.nbcandidat,\n 'nbseances': value.nbseances,\n 'actif': value.actif,\n 'test': value.test,\n 'pcreussite': value.pcreussite,\n 'codereferentiel': value.codereferentiel,\n 'creationUser': value.creationUser,\n 'modificationDate': value.modificationDate === undefined ? undefined : (value.modificationDate === null ? null : value.modificationDate.toISOString()),\n 'modificationUser': value.modificationUser,\n 'creationDate': value.creationDate === undefined ? undefined : (value.creationDate.toISOString()),\n 'idreferentielGuid': value.idreferentielGuid,\n 'idtypeReussite': value.idtypeReussite,\n 'pcreport': value.pcreport,\n 'heureReelle': value.heureReelle,\n 'coutglobal': value.coutglobal,\n 'deliberee': value.deliberee,\n 'e8E9': value.e8E9,\n 'idtypeBulletin': value.idtypeBulletin,\n 'idcertification': value.idcertification,\n 'linkedToClasses': value.linkedToClasses,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface SecteurHomogeneSearch\n */\nexport interface SecteurHomogeneSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof SecteurHomogeneSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SecteurHomogeneSearch\n */\n idstade?: Int32ListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof SecteurHomogeneSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof SecteurHomogeneSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SecteurHomogeneSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SecteurHomogeneSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SecteurHomogeneSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SecteurHomogeneSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SecteurHomogeneSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SecteurHomogeneSearch interface.\n */\nexport function instanceOfSecteurHomogeneSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SecteurHomogeneSearchFromJSON(json: any): SecteurHomogeneSearch {\n return SecteurHomogeneSearchFromJSONTyped(json, false);\n}\n\nexport function SecteurHomogeneSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SecteurHomogeneSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'idstade': !exists(json, 'idstade') ? undefined : Int32ListSearchFromJSON(json['idstade']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SecteurHomogeneSearchToJSON(value?: SecteurHomogeneSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'idstade': Int32ListSearchToJSON(value.idstade),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface SecteurMetierLiesSearch\n */\nexport interface SecteurMetierLiesSearch {\n /**\n * \n * @type {string}\n * @memberof SecteurMetierLiesSearch\n */\n codesecteur?: string | null;\n /**\n * \n * @type {Array}\n * @memberof SecteurMetierLiesSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SecteurMetierLiesSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SecteurMetierLiesSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SecteurMetierLiesSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SecteurMetierLiesSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SecteurMetierLiesSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SecteurMetierLiesSearch interface.\n */\nexport function instanceOfSecteurMetierLiesSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SecteurMetierLiesSearchFromJSON(json: any): SecteurMetierLiesSearch {\n return SecteurMetierLiesSearchFromJSONTyped(json, false);\n}\n\nexport function SecteurMetierLiesSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SecteurMetierLiesSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codesecteur': !exists(json, 'codesecteur') ? undefined : json['codesecteur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SecteurMetierLiesSearchToJSON(value?: SecteurMetierLiesSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codesecteur': value.codesecteur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface SecteurSearch\n */\nexport interface SecteurSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof SecteurSearch\n */\n codesecteur?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SecteurSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof SecteurSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof SecteurSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SecteurSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SecteurSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SecteurSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SecteurSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SecteurSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SecteurSearch interface.\n */\nexport function instanceOfSecteurSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SecteurSearchFromJSON(json: any): SecteurSearch {\n return SecteurSearchFromJSONTyped(json, false);\n}\n\nexport function SecteurSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SecteurSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'codesecteur': !exists(json, 'codesecteur') ? undefined : TextSearchFromJSON(json['codesecteur']),\n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SecteurSearchToJSON(value?: SecteurSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'codesecteur': TextSearchToJSON(value.codesecteur),\n 'description': TextSearchToJSON(value.description),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SelectedPrintingsDto\n */\nexport interface SelectedPrintingsDto {\n /**\n * \n * @type {Array}\n * @memberof SelectedPrintingsDto\n */\n selectedIds?: Array | null;\n}\n\n/**\n * Check if a given object implements the SelectedPrintingsDto interface.\n */\nexport function instanceOfSelectedPrintingsDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SelectedPrintingsDtoFromJSON(json: any): SelectedPrintingsDto {\n return SelectedPrintingsDtoFromJSONTyped(json, false);\n}\n\nexport function SelectedPrintingsDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SelectedPrintingsDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n };\n}\n\nexport function SelectedPrintingsDtoToJSON(value?: SelectedPrintingsDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'selectedIds': value.selectedIds,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ServiceGridDto\n */\nexport interface ServiceGridDto {\n /**\n * \n * @type {number}\n * @memberof ServiceGridDto\n */\n idservice?: number;\n /**\n * \n * @type {string}\n * @memberof ServiceGridDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the ServiceGridDto interface.\n */\nexport function instanceOfServiceGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ServiceGridDtoFromJSON(json: any): ServiceGridDto {\n return ServiceGridDtoFromJSONTyped(json, false);\n}\n\nexport function ServiceGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function ServiceGridDtoToJSON(value?: ServiceGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idservice': value.idservice,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { ServiceGridDto } from './ServiceGridDto';\nimport {\n ServiceGridDtoFromJSON,\n ServiceGridDtoFromJSONTyped,\n ServiceGridDtoToJSON,\n} from './ServiceGridDto';\n\n/**\n * \n * @export\n * @interface ServiceGridDtoPaginatedResults\n */\nexport interface ServiceGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ServiceGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ServiceGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ServiceGridDtoPaginatedResults interface.\n */\nexport function instanceOfServiceGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ServiceGridDtoPaginatedResultsFromJSON(json: any): ServiceGridDtoPaginatedResults {\n return ServiceGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ServiceGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ServiceGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ServiceGridDtoPaginatedResultsToJSON(value?: ServiceGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ServiceGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface ServiceSearchDto\n */\nexport interface ServiceSearchDto {\n /**\n * \n * @type {TextSearch}\n * @memberof ServiceSearchDto\n */\n nom?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof ServiceSearchDto\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceSearchDto\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ServiceSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ServiceSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ServiceSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ServiceSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ServiceSearchDto interface.\n */\nexport function instanceOfServiceSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ServiceSearchDtoFromJSON(json: any): ServiceSearchDto {\n return ServiceSearchDtoFromJSONTyped(json, false);\n}\n\nexport function ServiceSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ServiceSearchDtoToJSON(value?: ServiceSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ServiceTutelleLocaliteSearch\n */\nexport interface ServiceTutelleLocaliteSearch {\n /**\n * \n * @type {number}\n * @memberof ServiceTutelleLocaliteSearch\n */\n idserviceTutelle?: number;\n /**\n * \n * @type {Array}\n * @memberof ServiceTutelleLocaliteSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceTutelleLocaliteSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ServiceTutelleLocaliteSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ServiceTutelleLocaliteSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ServiceTutelleLocaliteSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ServiceTutelleLocaliteSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ServiceTutelleLocaliteSearch interface.\n */\nexport function instanceOfServiceTutelleLocaliteSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ServiceTutelleLocaliteSearchFromJSON(json: any): ServiceTutelleLocaliteSearch {\n return ServiceTutelleLocaliteSearchFromJSONTyped(json, false);\n}\n\nexport function ServiceTutelleLocaliteSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceTutelleLocaliteSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idserviceTutelle': !exists(json, 'idserviceTutelle') ? undefined : json['idserviceTutelle'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ServiceTutelleLocaliteSearchToJSON(value?: ServiceTutelleLocaliteSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idserviceTutelle': value.idserviceTutelle,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface ServiceTutelleSearch\n */\nexport interface ServiceTutelleSearch {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof ServiceTutelleSearch\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ServiceTutelleSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof ServiceTutelleSearch\n */\n codePostal?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof ServiceTutelleSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {boolean}\n * @memberof ServiceTutelleSearch\n */\n actifManual?: boolean | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceTutelleSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceTutelleSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceTutelleSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceTutelleSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ServiceTutelleSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ServiceTutelleSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ServiceTutelleSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ServiceTutelleSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ServiceTutelleSearch interface.\n */\nexport function instanceOfServiceTutelleSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ServiceTutelleSearchFromJSON(json: any): ServiceTutelleSearch {\n return ServiceTutelleSearchFromJSONTyped(json, false);\n}\n\nexport function ServiceTutelleSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceTutelleSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'codePostal': !exists(json, 'codePostal') ? undefined : TextSearchFromJSON(json['codePostal']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'actifManual': !exists(json, 'actifManual') ? undefined : json['actifManual'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ServiceTutelleSearchToJSON(value?: ServiceTutelleSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'code': TextSearchToJSON(value.code),\n 'codePostal': TextSearchToJSON(value.codePostal),\n 'actif': BooleanSearchToJSON(value.actif),\n 'actifManual': value.actifManual,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ServiceUserLieEditDto\n */\nexport interface ServiceUserLieEditDto {\n /**\n * \n * @type {number}\n * @memberof ServiceUserLieEditDto\n */\n idUser?: number;\n /**\n * \n * @type {number}\n * @memberof ServiceUserLieEditDto\n */\n idServiceTutelle?: number;\n /**\n * \n * @type {Date}\n * @memberof ServiceUserLieEditDto\n */\n calcFrom?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ServiceUserLieEditDto\n */\n calcTo?: Date | null;\n}\n\n/**\n * Check if a given object implements the ServiceUserLieEditDto interface.\n */\nexport function instanceOfServiceUserLieEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ServiceUserLieEditDtoFromJSON(json: any): ServiceUserLieEditDto {\n return ServiceUserLieEditDtoFromJSONTyped(json, false);\n}\n\nexport function ServiceUserLieEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceUserLieEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n 'idServiceTutelle': !exists(json, 'idServiceTutelle') ? undefined : json['idServiceTutelle'],\n 'calcFrom': !exists(json, 'calcFrom') ? undefined : (json['calcFrom'] === null ? null : new Date(json['calcFrom'])),\n 'calcTo': !exists(json, 'calcTo') ? undefined : (json['calcTo'] === null ? null : new Date(json['calcTo'])),\n };\n}\n\nexport function ServiceUserLieEditDtoToJSON(value?: ServiceUserLieEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idUser': value.idUser,\n 'idServiceTutelle': value.idServiceTutelle,\n 'calcFrom': value.calcFrom === undefined ? undefined : (value.calcFrom === null ? null : value.calcFrom.toISOString()),\n 'calcTo': value.calcTo === undefined ? undefined : (value.calcTo === null ? null : value.calcTo.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ServiceUserLieGridDto\n */\nexport interface ServiceUserLieGridDto {\n /**\n * \n * @type {number}\n * @memberof ServiceUserLieGridDto\n */\n idUser?: number;\n /**\n * \n * @type {number}\n * @memberof ServiceUserLieGridDto\n */\n idPersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof ServiceUserLieGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ServiceUserLieGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof ServiceUserLieGridDto\n */\n login?: string | null;\n /**\n * \n * @type {string}\n * @memberof ServiceUserLieGridDto\n */\n level?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ServiceUserLieGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof ServiceUserLieGridDto\n */\n calcFrom?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof ServiceUserLieGridDto\n */\n calcTo?: Date | null;\n}\n\n/**\n * Check if a given object implements the ServiceUserLieGridDto interface.\n */\nexport function instanceOfServiceUserLieGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ServiceUserLieGridDtoFromJSON(json: any): ServiceUserLieGridDto {\n return ServiceUserLieGridDtoFromJSONTyped(json, false);\n}\n\nexport function ServiceUserLieGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceUserLieGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n 'idPersonne': !exists(json, 'idPersonne') ? undefined : json['idPersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'login': !exists(json, 'login') ? undefined : json['login'],\n 'level': !exists(json, 'level') ? undefined : json['level'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'calcFrom': !exists(json, 'calcFrom') ? undefined : (json['calcFrom'] === null ? null : new Date(json['calcFrom'])),\n 'calcTo': !exists(json, 'calcTo') ? undefined : (json['calcTo'] === null ? null : new Date(json['calcTo'])),\n };\n}\n\nexport function ServiceUserLieGridDtoToJSON(value?: ServiceUserLieGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idUser': value.idUser,\n 'idPersonne': value.idPersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'login': value.login,\n 'level': value.level,\n 'actif': value.actif,\n 'calcFrom': value.calcFrom === undefined ? undefined : (value.calcFrom === null ? null : value.calcFrom.toISOString()),\n 'calcTo': value.calcTo === undefined ? undefined : (value.calcTo === null ? null : value.calcTo.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { ServiceUserLieGridDto } from './ServiceUserLieGridDto';\nimport {\n ServiceUserLieGridDtoFromJSON,\n ServiceUserLieGridDtoFromJSONTyped,\n ServiceUserLieGridDtoToJSON,\n} from './ServiceUserLieGridDto';\n\n/**\n * \n * @export\n * @interface ServiceUserLieGridDtoPaginatedResults\n */\nexport interface ServiceUserLieGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof ServiceUserLieGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof ServiceUserLieGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceUserLieGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the ServiceUserLieGridDtoPaginatedResults interface.\n */\nexport function instanceOfServiceUserLieGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ServiceUserLieGridDtoPaginatedResultsFromJSON(json: any): ServiceUserLieGridDtoPaginatedResults {\n return ServiceUserLieGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function ServiceUserLieGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceUserLieGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(ServiceUserLieGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function ServiceUserLieGridDtoPaginatedResultsToJSON(value?: ServiceUserLieGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(ServiceUserLieGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface ServiceUserLieSearch\n */\nexport interface ServiceUserLieSearch {\n /**\n * \n * @type {number}\n * @memberof ServiceUserLieSearch\n */\n idService?: number;\n /**\n * \n * @type {Array}\n * @memberof ServiceUserLieSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof ServiceUserLieSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof ServiceUserLieSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof ServiceUserLieSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof ServiceUserLieSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof ServiceUserLieSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the ServiceUserLieSearch interface.\n */\nexport function instanceOfServiceUserLieSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ServiceUserLieSearchFromJSON(json: any): ServiceUserLieSearch {\n return ServiceUserLieSearchFromJSONTyped(json, false);\n}\n\nexport function ServiceUserLieSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceUserLieSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idService': !exists(json, 'idService') ? undefined : json['idService'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function ServiceUserLieSearchToJSON(value?: ServiceUserLieSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idService': value.idService,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface SiegeLieuSuiviActionEditDto\n */\nexport interface SiegeLieuSuiviActionEditDto {\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviActionEditDto\n */\n idsiegeSocialLieuFormationSuiviAction?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviActionEditDto\n */\n idsiegeSocialLieuFormationSuivi?: number;\n /**\n * \n * @type {Date}\n * @memberof SiegeLieuSuiviActionEditDto\n */\n dateEcheance?: Date;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviActionEditDto\n */\n idtypeSuiviAction?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviActionEditDto\n */\n idcollaborateurService?: number;\n /**\n * \n * @type {Date}\n * @memberof SiegeLieuSuiviActionEditDto\n */\n dateRealisation?: Date | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviActionEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviActionEditDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof SiegeLieuSuiviActionEditDto\n */\n fichier?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviActionEditDto interface.\n */\nexport function instanceOfSiegeLieuSuiviActionEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviActionEditDtoFromJSON(json: any): SiegeLieuSuiviActionEditDto {\n return SiegeLieuSuiviActionEditDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviActionEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviActionEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocialLieuFormationSuiviAction': !exists(json, 'idsiegeSocialLieuFormationSuiviAction') ? undefined : json['idsiegeSocialLieuFormationSuiviAction'],\n 'idsiegeSocialLieuFormationSuivi': !exists(json, 'idsiegeSocialLieuFormationSuivi') ? undefined : json['idsiegeSocialLieuFormationSuivi'],\n 'dateEcheance': !exists(json, 'dateEcheance') ? undefined : (new Date(json['dateEcheance'])),\n 'idtypeSuiviAction': !exists(json, 'idtypeSuiviAction') ? undefined : json['idtypeSuiviAction'],\n 'idcollaborateurService': !exists(json, 'idcollaborateurService') ? undefined : json['idcollaborateurService'],\n 'dateRealisation': !exists(json, 'dateRealisation') ? undefined : (json['dateRealisation'] === null ? null : new Date(json['dateRealisation'])),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fichier': !exists(json, 'fichier') ? undefined : FileUploadDtoFromJSON(json['fichier']),\n };\n}\n\nexport function SiegeLieuSuiviActionEditDtoToJSON(value?: SiegeLieuSuiviActionEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocialLieuFormationSuiviAction': value.idsiegeSocialLieuFormationSuiviAction,\n 'idsiegeSocialLieuFormationSuivi': value.idsiegeSocialLieuFormationSuivi,\n 'dateEcheance': value.dateEcheance === undefined ? undefined : (value.dateEcheance.toISOString()),\n 'idtypeSuiviAction': value.idtypeSuiviAction,\n 'idcollaborateurService': value.idcollaborateurService,\n 'dateRealisation': value.dateRealisation === undefined ? undefined : (value.dateRealisation === null ? null : value.dateRealisation.toISOString()),\n 'remarque': value.remarque,\n 'idfichier': value.idfichier,\n 'fichier': FileUploadDtoToJSON(value.fichier),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeLieuSuiviFichierGridDto\n */\nexport interface SiegeLieuSuiviFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierGridDto\n */\n idsiegeLieuSuiviFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierGridDto\n */\n idtypeSuiviFichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviFichierGridDto\n */\n typeSuiviFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SiegeLieuSuiviFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviFichierGridDto interface.\n */\nexport function instanceOfSiegeLieuSuiviFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviFichierGridDtoFromJSON(json: any): SiegeLieuSuiviFichierGridDto {\n return SiegeLieuSuiviFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeLieuSuiviFichier': !exists(json, 'idsiegeLieuSuiviFichier') ? undefined : json['idsiegeLieuSuiviFichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'typeSuiviFichier': !exists(json, 'typeSuiviFichier') ? undefined : json['typeSuiviFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function SiegeLieuSuiviFichierGridDtoToJSON(value?: SiegeLieuSuiviFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeLieuSuiviFichier': value.idsiegeLieuSuiviFichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'typeSuiviFichier': value.typeSuiviFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { SiegeLieuSuiviActionEditDto } from './SiegeLieuSuiviActionEditDto';\nimport {\n SiegeLieuSuiviActionEditDtoFromJSON,\n SiegeLieuSuiviActionEditDtoFromJSONTyped,\n SiegeLieuSuiviActionEditDtoToJSON,\n} from './SiegeLieuSuiviActionEditDto';\nimport type { SiegeLieuSuiviFichierGridDto } from './SiegeLieuSuiviFichierGridDto';\nimport {\n SiegeLieuSuiviFichierGridDtoFromJSON,\n SiegeLieuSuiviFichierGridDtoFromJSONTyped,\n SiegeLieuSuiviFichierGridDtoToJSON,\n} from './SiegeLieuSuiviFichierGridDto';\n\n/**\n * \n * @export\n * @interface SiegeLieuSuiviEditDto\n */\nexport interface SiegeLieuSuiviEditDto {\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviEditDto\n */\n idsiegeSocialLieuFormationSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviEditDto\n */\n idservice?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviEditDto\n */\n iduserService?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviEditDto\n */\n userService?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviEditDto\n */\n encodeur?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SiegeLieuSuiviEditDto\n */\n dateSuivi?: Date;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviEditDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviEditDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviEditDto\n */\n idtypeSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviEditDto\n */\n idmode?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviEditDto\n */\n idlieuRencontre?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviEditDto\n */\n contenu?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SiegeLieuSuiviEditDto\n */\n hiddenContent?: boolean;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviEditDto\n */\n creationUser?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviEditDto\n */\n siegeSocial?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviEditDto\n */\n lieuFormation?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SiegeLieuSuiviEditDto\n */\n action?: boolean;\n /**\n * \n * @type {SiegeLieuSuiviActionEditDto}\n * @memberof SiegeLieuSuiviEditDto\n */\n suiviAction?: SiegeLieuSuiviActionEditDto;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviEditDto interface.\n */\nexport function instanceOfSiegeLieuSuiviEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviEditDtoFromJSON(json: any): SiegeLieuSuiviEditDto {\n return SiegeLieuSuiviEditDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocialLieuFormationSuivi': !exists(json, 'idsiegeSocialLieuFormationSuivi') ? undefined : json['idsiegeSocialLieuFormationSuivi'],\n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'iduserService': !exists(json, 'iduserService') ? undefined : json['iduserService'],\n 'userService': !exists(json, 'userService') ? undefined : json['userService'],\n 'encodeur': !exists(json, 'encodeur') ? undefined : json['encodeur'],\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : (new Date(json['dateSuivi'])),\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : json['idtypeSuivi'],\n 'idmode': !exists(json, 'idmode') ? undefined : json['idmode'],\n 'idlieuRencontre': !exists(json, 'idlieuRencontre') ? undefined : json['idlieuRencontre'],\n 'contenu': !exists(json, 'contenu') ? undefined : json['contenu'],\n 'hiddenContent': !exists(json, 'hiddenContent') ? undefined : json['hiddenContent'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'siegeSocial': !exists(json, 'siegeSocial') ? undefined : json['siegeSocial'],\n 'lieuFormation': !exists(json, 'lieuFormation') ? undefined : json['lieuFormation'],\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'suiviAction': !exists(json, 'suiviAction') ? undefined : SiegeLieuSuiviActionEditDtoFromJSON(json['suiviAction']),\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(SiegeLieuSuiviFichierGridDtoFromJSON)),\n };\n}\n\nexport function SiegeLieuSuiviEditDtoToJSON(value?: SiegeLieuSuiviEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocialLieuFormationSuivi': value.idsiegeSocialLieuFormationSuivi,\n 'idservice': value.idservice,\n 'iduserService': value.iduserService,\n 'userService': value.userService,\n 'encodeur': value.encodeur,\n 'dateSuivi': value.dateSuivi === undefined ? undefined : (value.dateSuivi.toISOString()),\n 'idsiegeSocial': value.idsiegeSocial,\n 'idlieuFormation': value.idlieuFormation,\n 'idtypeSuivi': value.idtypeSuivi,\n 'idmode': value.idmode,\n 'idlieuRencontre': value.idlieuRencontre,\n 'contenu': value.contenu,\n 'hiddenContent': value.hiddenContent,\n 'creationUser': value.creationUser,\n 'siegeSocial': value.siegeSocial,\n 'lieuFormation': value.lieuFormation,\n 'action': value.action,\n 'suiviAction': SiegeLieuSuiviActionEditDtoToJSON(value.suiviAction),\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(SiegeLieuSuiviFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeLieuSuiviFichierDto\n */\nexport interface SiegeLieuSuiviFichierDto {\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierDto\n */\n idsiegeLieuSuiviFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierDto\n */\n idsiegeSocialLieuFormationSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierDto\n */\n idtypeSuiviFichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviFichierDto interface.\n */\nexport function instanceOfSiegeLieuSuiviFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviFichierDtoFromJSON(json: any): SiegeLieuSuiviFichierDto {\n return SiegeLieuSuiviFichierDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeLieuSuiviFichier': !exists(json, 'idsiegeLieuSuiviFichier') ? undefined : json['idsiegeLieuSuiviFichier'],\n 'idsiegeSocialLieuFormationSuivi': !exists(json, 'idsiegeSocialLieuFormationSuivi') ? undefined : json['idsiegeSocialLieuFormationSuivi'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function SiegeLieuSuiviFichierDtoToJSON(value?: SiegeLieuSuiviFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeLieuSuiviFichier': value.idsiegeLieuSuiviFichier,\n 'idsiegeSocialLieuFormationSuivi': value.idsiegeSocialLieuFormationSuivi,\n 'idfichier': value.idfichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SiegeLieuSuiviFichierGridDto } from './SiegeLieuSuiviFichierGridDto';\nimport {\n SiegeLieuSuiviFichierGridDtoFromJSON,\n SiegeLieuSuiviFichierGridDtoFromJSONTyped,\n SiegeLieuSuiviFichierGridDtoToJSON,\n} from './SiegeLieuSuiviFichierGridDto';\n\n/**\n * \n * @export\n * @interface SiegeLieuSuiviFichierGridDtoPaginatedResults\n */\nexport interface SiegeLieuSuiviFichierGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviFichierGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviFichierGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviFichierGridDtoPaginatedResults interface.\n */\nexport function instanceOfSiegeLieuSuiviFichierGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviFichierGridDtoPaginatedResultsFromJSON(json: any): SiegeLieuSuiviFichierGridDtoPaginatedResults {\n return SiegeLieuSuiviFichierGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviFichierGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviFichierGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SiegeLieuSuiviFichierGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SiegeLieuSuiviFichierGridDtoPaginatedResultsToJSON(value?: SiegeLieuSuiviFichierGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SiegeLieuSuiviFichierGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface SiegeLieuSuiviFichierSearchDto\n */\nexport interface SiegeLieuSuiviFichierSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n fileName?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n uploadUser?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n uploadDate?: DateSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n idtypeSuiviFichier?: Int32NullableListSearch;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n idsiegeSocialLieuFormationSuivi?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviFichierSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviFichierSearchDto interface.\n */\nexport function instanceOfSiegeLieuSuiviFichierSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviFichierSearchDtoFromJSON(json: any): SiegeLieuSuiviFichierSearchDto {\n return SiegeLieuSuiviFichierSearchDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviFichierSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviFichierSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'fileName': !exists(json, 'fileName') ? undefined : UnaccentTextSearchFromJSON(json['fileName']),\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : UnaccentTextSearchFromJSON(json['uploadUser']),\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : DateSearchFromJSON(json['uploadDate']),\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : Int32NullableListSearchFromJSON(json['idtypeSuiviFichier']),\n 'idsiegeSocialLieuFormationSuivi': !exists(json, 'idsiegeSocialLieuFormationSuivi') ? undefined : json['idsiegeSocialLieuFormationSuivi'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SiegeLieuSuiviFichierSearchDtoToJSON(value?: SiegeLieuSuiviFichierSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'fileName': UnaccentTextSearchToJSON(value.fileName),\n 'uploadUser': UnaccentTextSearchToJSON(value.uploadUser),\n 'uploadDate': DateSearchToJSON(value.uploadDate),\n 'idtypeSuiviFichier': Int32NullableListSearchToJSON(value.idtypeSuiviFichier),\n 'idsiegeSocialLieuFormationSuivi': value.idsiegeSocialLieuFormationSuivi,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface SiegeLieuSuiviFichierUploadDto\n */\nexport interface SiegeLieuSuiviFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof SiegeLieuSuiviFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierUploadDto\n */\n idsiegeLieuSuiviFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierUploadDto\n */\n idsiegeSocialLieuFormationSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviFichierUploadDto\n */\n idtypeSuiviFichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviFichierUploadDto interface.\n */\nexport function instanceOfSiegeLieuSuiviFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviFichierUploadDtoFromJSON(json: any): SiegeLieuSuiviFichierUploadDto {\n return SiegeLieuSuiviFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idsiegeLieuSuiviFichier': !exists(json, 'idsiegeLieuSuiviFichier') ? undefined : json['idsiegeLieuSuiviFichier'],\n 'idsiegeSocialLieuFormationSuivi': !exists(json, 'idsiegeSocialLieuFormationSuivi') ? undefined : json['idsiegeSocialLieuFormationSuivi'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function SiegeLieuSuiviFichierUploadDtoToJSON(value?: SiegeLieuSuiviFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idsiegeLieuSuiviFichier': value.idsiegeLieuSuiviFichier,\n 'idsiegeSocialLieuFormationSuivi': value.idsiegeSocialLieuFormationSuivi,\n 'idfichier': value.idfichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeLieuSuiviGridDto\n */\nexport interface SiegeLieuSuiviGridDto {\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n idsiegeSocialLieuFormationSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n iduserService?: number;\n /**\n * \n * @type {Date}\n * @memberof SiegeLieuSuiviGridDto\n */\n dateSuivi?: Date;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviGridDto\n */\n siegeSocial?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviGridDto\n */\n lieuFormation?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n idtypeSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n idmode?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n idlieuRencontre?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviGridDto\n */\n contenu?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SiegeLieuSuiviGridDto\n */\n hiddenContent?: boolean;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n idservice?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviGridDto\n */\n service?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviGridDto\n */\n userService?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n idencodeur?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviGridDto\n */\n encodeur?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDto\n */\n idrealisateurSuivi?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviGridDto\n */\n realisateurSuivi?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviGridDto\n */\n typeSuivi?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SiegeLieuSuiviGridDto\n */\n actionDateEcheance?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof SiegeLieuSuiviGridDto\n */\n actionDateRealisation?: Date | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviGridDto interface.\n */\nexport function instanceOfSiegeLieuSuiviGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviGridDtoFromJSON(json: any): SiegeLieuSuiviGridDto {\n return SiegeLieuSuiviGridDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocialLieuFormationSuivi': !exists(json, 'idsiegeSocialLieuFormationSuivi') ? undefined : json['idsiegeSocialLieuFormationSuivi'],\n 'iduserService': !exists(json, 'iduserService') ? undefined : json['iduserService'],\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : (new Date(json['dateSuivi'])),\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'siegeSocial': !exists(json, 'siegeSocial') ? undefined : json['siegeSocial'],\n 'lieuFormation': !exists(json, 'lieuFormation') ? undefined : json['lieuFormation'],\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : json['idtypeSuivi'],\n 'idmode': !exists(json, 'idmode') ? undefined : json['idmode'],\n 'idlieuRencontre': !exists(json, 'idlieuRencontre') ? undefined : json['idlieuRencontre'],\n 'contenu': !exists(json, 'contenu') ? undefined : json['contenu'],\n 'hiddenContent': !exists(json, 'hiddenContent') ? undefined : json['hiddenContent'],\n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'service': !exists(json, 'service') ? undefined : json['service'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'userService': !exists(json, 'userService') ? undefined : json['userService'],\n 'idencodeur': !exists(json, 'idencodeur') ? undefined : json['idencodeur'],\n 'encodeur': !exists(json, 'encodeur') ? undefined : json['encodeur'],\n 'idrealisateurSuivi': !exists(json, 'idrealisateurSuivi') ? undefined : json['idrealisateurSuivi'],\n 'realisateurSuivi': !exists(json, 'realisateurSuivi') ? undefined : json['realisateurSuivi'],\n 'typeSuivi': !exists(json, 'typeSuivi') ? undefined : json['typeSuivi'],\n 'actionDateEcheance': !exists(json, 'actionDateEcheance') ? undefined : (json['actionDateEcheance'] === null ? null : new Date(json['actionDateEcheance'])),\n 'actionDateRealisation': !exists(json, 'actionDateRealisation') ? undefined : (json['actionDateRealisation'] === null ? null : new Date(json['actionDateRealisation'])),\n };\n}\n\nexport function SiegeLieuSuiviGridDtoToJSON(value?: SiegeLieuSuiviGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocialLieuFormationSuivi': value.idsiegeSocialLieuFormationSuivi,\n 'iduserService': value.iduserService,\n 'dateSuivi': value.dateSuivi === undefined ? undefined : (value.dateSuivi.toISOString()),\n 'idsiegeSocial': value.idsiegeSocial,\n 'idlieuFormation': value.idlieuFormation,\n 'siegeSocial': value.siegeSocial,\n 'lieuFormation': value.lieuFormation,\n 'idtypeSuivi': value.idtypeSuivi,\n 'idmode': value.idmode,\n 'idlieuRencontre': value.idlieuRencontre,\n 'contenu': value.contenu,\n 'hiddenContent': value.hiddenContent,\n 'idservice': value.idservice,\n 'service': value.service,\n 'centre': value.centre,\n 'userService': value.userService,\n 'idencodeur': value.idencodeur,\n 'encodeur': value.encodeur,\n 'idrealisateurSuivi': value.idrealisateurSuivi,\n 'realisateurSuivi': value.realisateurSuivi,\n 'typeSuivi': value.typeSuivi,\n 'actionDateEcheance': value.actionDateEcheance === undefined ? undefined : (value.actionDateEcheance === null ? null : value.actionDateEcheance.toISOString()),\n 'actionDateRealisation': value.actionDateRealisation === undefined ? undefined : (value.actionDateRealisation === null ? null : value.actionDateRealisation.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SiegeLieuSuiviGridDto } from './SiegeLieuSuiviGridDto';\nimport {\n SiegeLieuSuiviGridDtoFromJSON,\n SiegeLieuSuiviGridDtoFromJSONTyped,\n SiegeLieuSuiviGridDtoToJSON,\n} from './SiegeLieuSuiviGridDto';\n\n/**\n * \n * @export\n * @interface SiegeLieuSuiviGridDtoPaginatedResults\n */\nexport interface SiegeLieuSuiviGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviGridDtoPaginatedResults interface.\n */\nexport function instanceOfSiegeLieuSuiviGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviGridDtoPaginatedResultsFromJSON(json: any): SiegeLieuSuiviGridDtoPaginatedResults {\n return SiegeLieuSuiviGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SiegeLieuSuiviGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SiegeLieuSuiviGridDtoPaginatedResultsToJSON(value?: SiegeLieuSuiviGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SiegeLieuSuiviGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\n\n/**\n * \n * @export\n * @interface SiegeLieuSuiviSearchBase\n */\nexport interface SiegeLieuSuiviSearchBase {\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SiegeLieuSuiviSearchBase\n */\n idrealisateurSuivi?: Int32ListSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SiegeLieuSuiviSearchBase\n */\n dateSuivi?: DateSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SiegeLieuSuiviSearchBase\n */\n idtypeSuivi?: Int32ListSearch;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviSearchBase\n */\n idsiegeSocial?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviSearchBase\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviSearchBase\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviSearchBase\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviSearchBase\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviSearchBase\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SiegeLieuSuiviSearchBase\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviSearchBase\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviSearchBase interface.\n */\nexport function instanceOfSiegeLieuSuiviSearchBase(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviSearchBaseFromJSON(json: any): SiegeLieuSuiviSearchBase {\n return SiegeLieuSuiviSearchBaseFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviSearchBaseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviSearchBase {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idrealisateurSuivi': !exists(json, 'idrealisateurSuivi') ? undefined : Int32ListSearchFromJSON(json['idrealisateurSuivi']),\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : DateSearchFromJSON(json['dateSuivi']),\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : Int32ListSearchFromJSON(json['idtypeSuivi']),\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SiegeLieuSuiviSearchBaseToJSON(value?: SiegeLieuSuiviSearchBase | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idrealisateurSuivi': Int32ListSearchToJSON(value.idrealisateurSuivi),\n 'dateSuivi': DateSearchToJSON(value.dateSuivi),\n 'idtypeSuivi': Int32ListSearchToJSON(value.idtypeSuivi),\n 'idsiegeSocial': value.idsiegeSocial,\n 'idlieuFormation': value.idlieuFormation,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { ESuiviActionListSearch } from './ESuiviActionListSearch';\nimport {\n ESuiviActionListSearchFromJSON,\n ESuiviActionListSearchFromJSONTyped,\n ESuiviActionListSearchToJSON,\n} from './ESuiviActionListSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\n\n/**\n * \n * @export\n * @interface SiegeLieuSuiviSearchGlobal\n */\nexport interface SiegeLieuSuiviSearchGlobal {\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n idsiegeSocial?: Int32NullableListSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n idlieuFormation?: Int32NullableListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n onlyUserSuivis?: BooleanSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n idencodeur?: Int32NullableListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n idservice?: Int32ListSearch;\n /**\n * \n * @type {ESuiviActionListSearch}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n suiviAction?: ESuiviActionListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n idrealisateurSuivi?: Int32ListSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n dateSuivi?: DateSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n idtypeSuivi?: Int32ListSearch;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SiegeLieuSuiviSearchGlobal\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeLieuSuiviSearchGlobal interface.\n */\nexport function instanceOfSiegeLieuSuiviSearchGlobal(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeLieuSuiviSearchGlobalFromJSON(json: any): SiegeLieuSuiviSearchGlobal {\n return SiegeLieuSuiviSearchGlobalFromJSONTyped(json, false);\n}\n\nexport function SiegeLieuSuiviSearchGlobalFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeLieuSuiviSearchGlobal {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : Int32NullableListSearchFromJSON(json['idsiegeSocial']),\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : Int32NullableListSearchFromJSON(json['idlieuFormation']),\n 'onlyUserSuivis': !exists(json, 'onlyUserSuivis') ? undefined : BooleanSearchFromJSON(json['onlyUserSuivis']),\n 'idencodeur': !exists(json, 'idencodeur') ? undefined : Int32NullableListSearchFromJSON(json['idencodeur']),\n 'idservice': !exists(json, 'idservice') ? undefined : Int32ListSearchFromJSON(json['idservice']),\n 'suiviAction': !exists(json, 'suiviAction') ? undefined : ESuiviActionListSearchFromJSON(json['suiviAction']),\n 'idrealisateurSuivi': !exists(json, 'idrealisateurSuivi') ? undefined : Int32ListSearchFromJSON(json['idrealisateurSuivi']),\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : DateSearchFromJSON(json['dateSuivi']),\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : Int32ListSearchFromJSON(json['idtypeSuivi']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SiegeLieuSuiviSearchGlobalToJSON(value?: SiegeLieuSuiviSearchGlobal | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': Int32NullableListSearchToJSON(value.idsiegeSocial),\n 'idlieuFormation': Int32NullableListSearchToJSON(value.idlieuFormation),\n 'onlyUserSuivis': BooleanSearchToJSON(value.onlyUserSuivis),\n 'idencodeur': Int32NullableListSearchToJSON(value.idencodeur),\n 'idservice': Int32ListSearchToJSON(value.idservice),\n 'suiviAction': ESuiviActionListSearchToJSON(value.suiviAction),\n 'idrealisateurSuivi': Int32ListSearchToJSON(value.idrealisateurSuivi),\n 'dateSuivi': DateSearchToJSON(value.dateSuivi),\n 'idtypeSuivi': Int32ListSearchToJSON(value.idtypeSuivi),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeSocialAdresseDto\n */\nexport interface SiegeSocialAdresseDto {\n /**\n * \n * @type {string}\n * @memberof SiegeSocialAdresseDto\n */\n adresse?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialAdresseDto\n */\n idcodePostal?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialAdresseDto\n */\n codePostalText?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialAdresseDto\n */\n boite?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialAdresseDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialAdresseDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialAdresseDto\n */\n pays?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialAdresseDto interface.\n */\nexport function instanceOfSiegeSocialAdresseDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialAdresseDtoFromJSON(json: any): SiegeSocialAdresseDto {\n return SiegeSocialAdresseDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialAdresseDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialAdresseDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'codePostalText': !exists(json, 'codePostalText') ? undefined : json['codePostalText'],\n 'boite': !exists(json, 'boite') ? undefined : json['boite'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'pays': !exists(json, 'pays') ? undefined : json['pays'],\n };\n}\n\nexport function SiegeSocialAdresseDtoToJSON(value?: SiegeSocialAdresseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'adresse': value.adresse,\n 'idcodePostal': value.idcodePostal,\n 'codePostalText': value.codePostalText,\n 'boite': value.boite,\n 'localite': value.localite,\n 'commune': value.commune,\n 'pays': value.pays,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeSocialChefEntrepriseGridDto\n */\nexport interface SiegeSocialChefEntrepriseGridDto {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n idchefEntrepriseSiege?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n fonction?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n chefEntreprisePrincipal?: boolean;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n remarqueSiege?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialChefEntrepriseGridDto\n */\n email?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialChefEntrepriseGridDto interface.\n */\nexport function instanceOfSiegeSocialChefEntrepriseGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialChefEntrepriseGridDtoFromJSON(json: any): SiegeSocialChefEntrepriseGridDto {\n return SiegeSocialChefEntrepriseGridDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialChefEntrepriseGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialChefEntrepriseGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idchefEntrepriseSiege': !exists(json, 'idchefEntrepriseSiege') ? undefined : json['idchefEntrepriseSiege'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'chefEntreprisePrincipal': !exists(json, 'chefEntreprisePrincipal') ? undefined : json['chefEntreprisePrincipal'],\n 'remarqueSiege': !exists(json, 'remarqueSiege') ? undefined : json['remarqueSiege'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n };\n}\n\nexport function SiegeSocialChefEntrepriseGridDtoToJSON(value?: SiegeSocialChefEntrepriseGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idchefEntrepriseSiege': value.idchefEntrepriseSiege,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'fonction': value.fonction,\n 'idsiegeSocial': value.idsiegeSocial,\n 'actif': value.actif,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'chefEntreprisePrincipal': value.chefEntreprisePrincipal,\n 'remarqueSiege': value.remarqueSiege,\n 'telephone': value.telephone,\n 'gsm': value.gsm,\n 'email': value.email,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SiegeSocialChefEntrepriseGridDto } from './SiegeSocialChefEntrepriseGridDto';\nimport {\n SiegeSocialChefEntrepriseGridDtoFromJSON,\n SiegeSocialChefEntrepriseGridDtoFromJSONTyped,\n SiegeSocialChefEntrepriseGridDtoToJSON,\n} from './SiegeSocialChefEntrepriseGridDto';\n\n/**\n * \n * @export\n * @interface SiegeSocialChefEntrepriseGridDtoPaginatedResults\n */\nexport interface SiegeSocialChefEntrepriseGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialChefEntrepriseGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialChefEntrepriseGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialChefEntrepriseGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialChefEntrepriseGridDtoPaginatedResults interface.\n */\nexport function instanceOfSiegeSocialChefEntrepriseGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialChefEntrepriseGridDtoPaginatedResultsFromJSON(json: any): SiegeSocialChefEntrepriseGridDtoPaginatedResults {\n return SiegeSocialChefEntrepriseGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialChefEntrepriseGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialChefEntrepriseGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SiegeSocialChefEntrepriseGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SiegeSocialChefEntrepriseGridDtoPaginatedResultsToJSON(value?: SiegeSocialChefEntrepriseGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SiegeSocialChefEntrepriseGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface SiegeSocialChefEntrepriseSearchDto\n */\nexport interface SiegeSocialChefEntrepriseSearchDto {\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n prenom?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n fonction?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n chefEntreprisePrincipal?: BooleanSearch;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialChefEntrepriseSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialChefEntrepriseSearchDto interface.\n */\nexport function instanceOfSiegeSocialChefEntrepriseSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialChefEntrepriseSearchDtoFromJSON(json: any): SiegeSocialChefEntrepriseSearchDto {\n return SiegeSocialChefEntrepriseSearchDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialChefEntrepriseSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialChefEntrepriseSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'fonction': !exists(json, 'fonction') ? undefined : TextSearchFromJSON(json['fonction']),\n 'chefEntreprisePrincipal': !exists(json, 'chefEntreprisePrincipal') ? undefined : BooleanSearchFromJSON(json['chefEntreprisePrincipal']),\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SiegeSocialChefEntrepriseSearchDtoToJSON(value?: SiegeSocialChefEntrepriseSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'fonction': TextSearchToJSON(value.fonction),\n 'chefEntreprisePrincipal': BooleanSearchToJSON(value.chefEntreprisePrincipal),\n 'idsiegeSocial': value.idsiegeSocial,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface SiegeSocialEditDto\n */\nexport interface SiegeSocialEditDto {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialEditDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n denominationSociale?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n numeroBce?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n numeroOnss?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialEditDto\n */\n idtypeEntreprise?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialEditDto\n */\n idformeJuridique?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialEditDto\n */\n idtaille?: number;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialEditDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialEditDto\n */\n idchefEntreprise?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialEditDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n fonction?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof SiegeSocialEditDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof SiegeSocialEditDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof SiegeSocialEditDto\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n iban?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n bic?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialEditDto\n */\n idcontactBeneficiaire?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialEditDto\n */\n sendToAdress?: boolean;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n adresse?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialEditDto\n */\n idcodePostal?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n codePostalText?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n boite?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n pays?: string | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialEditDto\n */\n idsCommissionParitaire?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialEditDto\n */\n isContactCE?: boolean;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n contact?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n contactFonction?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n contactTel?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialEditDto\n */\n contactGsm?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialEditDto\n */\n hasNoAssurances?: boolean;\n}\n\n/**\n * Check if a given object implements the SiegeSocialEditDto interface.\n */\nexport function instanceOfSiegeSocialEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialEditDtoFromJSON(json: any): SiegeSocialEditDto {\n return SiegeSocialEditDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : json['denominationSociale'],\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : json['numeroBce'],\n 'numeroOnss': !exists(json, 'numeroOnss') ? undefined : json['numeroOnss'],\n 'idtypeEntreprise': !exists(json, 'idtypeEntreprise') ? undefined : json['idtypeEntreprise'],\n 'idformeJuridique': !exists(json, 'idformeJuridique') ? undefined : json['idformeJuridique'],\n 'idtaille': !exists(json, 'idtaille') ? undefined : json['idtaille'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idchefEntreprise': !exists(json, 'idchefEntreprise') ? undefined : json['idchefEntreprise'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'iban': !exists(json, 'iban') ? undefined : json['iban'],\n 'bic': !exists(json, 'bic') ? undefined : json['bic'],\n 'idcontactBeneficiaire': !exists(json, 'idcontactBeneficiaire') ? undefined : json['idcontactBeneficiaire'],\n 'sendToAdress': !exists(json, 'sendToAdress') ? undefined : json['sendToAdress'],\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'idcodePostal': !exists(json, 'idcodePostal') ? undefined : json['idcodePostal'],\n 'codePostalText': !exists(json, 'codePostalText') ? undefined : json['codePostalText'],\n 'boite': !exists(json, 'boite') ? undefined : json['boite'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'pays': !exists(json, 'pays') ? undefined : json['pays'],\n 'idsCommissionParitaire': !exists(json, 'idsCommissionParitaire') ? undefined : json['idsCommissionParitaire'],\n 'isContactCE': !exists(json, 'isContactCE') ? undefined : json['isContactCE'],\n 'contact': !exists(json, 'contact') ? undefined : json['contact'],\n 'contactFonction': !exists(json, 'contactFonction') ? undefined : json['contactFonction'],\n 'contactTel': !exists(json, 'contactTel') ? undefined : json['contactTel'],\n 'contactGsm': !exists(json, 'contactGsm') ? undefined : json['contactGsm'],\n 'hasNoAssurances': !exists(json, 'hasNoAssurances') ? undefined : json['hasNoAssurances'],\n };\n}\n\nexport function SiegeSocialEditDtoToJSON(value?: SiegeSocialEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'denominationSociale': value.denominationSociale,\n 'numeroBce': value.numeroBce,\n 'numeroOnss': value.numeroOnss,\n 'idtypeEntreprise': value.idtypeEntreprise,\n 'idformeJuridique': value.idformeJuridique,\n 'idtaille': value.idtaille,\n 'actif': value.actif,\n 'remarque': value.remarque,\n 'idchefEntreprise': value.idchefEntreprise,\n 'idpersonne': value.idpersonne,\n 'fonction': value.fonction,\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'email': EmailDtoToJSON(value.email),\n 'iban': value.iban,\n 'bic': value.bic,\n 'idcontactBeneficiaire': value.idcontactBeneficiaire,\n 'sendToAdress': value.sendToAdress,\n 'adresse': value.adresse,\n 'idcodePostal': value.idcodePostal,\n 'codePostalText': value.codePostalText,\n 'boite': value.boite,\n 'localite': value.localite,\n 'commune': value.commune,\n 'pays': value.pays,\n 'idsCommissionParitaire': value.idsCommissionParitaire,\n 'isContactCE': value.isContactCE,\n 'contact': value.contact,\n 'contactFonction': value.contactFonction,\n 'contactTel': value.contactTel,\n 'contactGsm': value.contactGsm,\n 'hasNoAssurances': value.hasNoAssurances,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeSocialFichierDto\n */\nexport interface SiegeSocialFichierDto {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierDto\n */\n idsiegeSocialFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierDto\n */\n idtypeSiegeSocialFichier?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialFichierDto interface.\n */\nexport function instanceOfSiegeSocialFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialFichierDtoFromJSON(json: any): SiegeSocialFichierDto {\n return SiegeSocialFichierDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocialFichier': !exists(json, 'idsiegeSocialFichier') ? undefined : json['idsiegeSocialFichier'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSiegeSocialFichier': !exists(json, 'idtypeSiegeSocialFichier') ? undefined : json['idtypeSiegeSocialFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function SiegeSocialFichierDtoToJSON(value?: SiegeSocialFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocialFichier': value.idsiegeSocialFichier,\n 'idsiegeSocial': value.idsiegeSocial,\n 'idfichier': value.idfichier,\n 'idtypeSiegeSocialFichier': value.idtypeSiegeSocialFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeSocialFichierGridDto\n */\nexport interface SiegeSocialFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierGridDto\n */\n idsiegeSocialFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierGridDto\n */\n idtypeSiegeSocialFichier?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialFichierGridDto\n */\n typeSiegeSocialFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SiegeSocialFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialFichierGridDto interface.\n */\nexport function instanceOfSiegeSocialFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialFichierGridDtoFromJSON(json: any): SiegeSocialFichierGridDto {\n return SiegeSocialFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocialFichier': !exists(json, 'idsiegeSocialFichier') ? undefined : json['idsiegeSocialFichier'],\n 'idtypeSiegeSocialFichier': !exists(json, 'idtypeSiegeSocialFichier') ? undefined : json['idtypeSiegeSocialFichier'],\n 'typeSiegeSocialFichier': !exists(json, 'typeSiegeSocialFichier') ? undefined : json['typeSiegeSocialFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function SiegeSocialFichierGridDtoToJSON(value?: SiegeSocialFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocialFichier': value.idsiegeSocialFichier,\n 'idtypeSiegeSocialFichier': value.idtypeSiegeSocialFichier,\n 'typeSiegeSocialFichier': value.typeSiegeSocialFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SiegeSocialFichierGridDto } from './SiegeSocialFichierGridDto';\nimport {\n SiegeSocialFichierGridDtoFromJSON,\n SiegeSocialFichierGridDtoFromJSONTyped,\n SiegeSocialFichierGridDtoToJSON,\n} from './SiegeSocialFichierGridDto';\n\n/**\n * \n * @export\n * @interface SiegeSocialFichierGridDtoPaginatedResults\n */\nexport interface SiegeSocialFichierGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialFichierGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialFichierGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialFichierGridDtoPaginatedResults interface.\n */\nexport function instanceOfSiegeSocialFichierGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialFichierGridDtoPaginatedResultsFromJSON(json: any): SiegeSocialFichierGridDtoPaginatedResults {\n return SiegeSocialFichierGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialFichierGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialFichierGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SiegeSocialFichierGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SiegeSocialFichierGridDtoPaginatedResultsToJSON(value?: SiegeSocialFichierGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SiegeSocialFichierGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface SiegeSocialFichierSearchDto\n */\nexport interface SiegeSocialFichierSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialFichierSearchDto\n */\n fileName?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialFichierSearchDto\n */\n uploadUser?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SiegeSocialFichierSearchDto\n */\n uploadDate?: DateSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof SiegeSocialFichierSearchDto\n */\n idtypeSiegeSocialFichier?: Int32NullableListSearch;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierSearchDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialFichierSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialFichierSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SiegeSocialFichierSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialFichierSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialFichierSearchDto interface.\n */\nexport function instanceOfSiegeSocialFichierSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialFichierSearchDtoFromJSON(json: any): SiegeSocialFichierSearchDto {\n return SiegeSocialFichierSearchDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialFichierSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialFichierSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'fileName': !exists(json, 'fileName') ? undefined : UnaccentTextSearchFromJSON(json['fileName']),\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : UnaccentTextSearchFromJSON(json['uploadUser']),\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : DateSearchFromJSON(json['uploadDate']),\n 'idtypeSiegeSocialFichier': !exists(json, 'idtypeSiegeSocialFichier') ? undefined : Int32NullableListSearchFromJSON(json['idtypeSiegeSocialFichier']),\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SiegeSocialFichierSearchDtoToJSON(value?: SiegeSocialFichierSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'fileName': UnaccentTextSearchToJSON(value.fileName),\n 'uploadUser': UnaccentTextSearchToJSON(value.uploadUser),\n 'uploadDate': DateSearchToJSON(value.uploadDate),\n 'idtypeSiegeSocialFichier': Int32NullableListSearchToJSON(value.idtypeSiegeSocialFichier),\n 'idsiegeSocial': value.idsiegeSocial,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface SiegeSocialFichierUploadDto\n */\nexport interface SiegeSocialFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof SiegeSocialFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierUploadDto\n */\n idsiegeSocialFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierUploadDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialFichierUploadDto\n */\n idtypeSiegeSocialFichier?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialFichierUploadDto interface.\n */\nexport function instanceOfSiegeSocialFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialFichierUploadDtoFromJSON(json: any): SiegeSocialFichierUploadDto {\n return SiegeSocialFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idsiegeSocialFichier': !exists(json, 'idsiegeSocialFichier') ? undefined : json['idsiegeSocialFichier'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSiegeSocialFichier': !exists(json, 'idtypeSiegeSocialFichier') ? undefined : json['idtypeSiegeSocialFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function SiegeSocialFichierUploadDtoToJSON(value?: SiegeSocialFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idsiegeSocialFichier': value.idsiegeSocialFichier,\n 'idsiegeSocial': value.idsiegeSocial,\n 'idfichier': value.idfichier,\n 'idtypeSiegeSocialFichier': value.idtypeSiegeSocialFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeSocialGridDto\n */\nexport interface SiegeSocialGridDto {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialGridDto\n */\n readonly formationCanHaveApprenants?: boolean;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialGridDto\n */\n nbContrats?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialGridDto\n */\n denominationSociale?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialGridDto\n */\n commune?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialGridDto\n */\n numeroBce?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialGridDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialGridDto\n */\n chefEntreprisePrincipal?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialGridDto\n */\n hasLieuxFormations?: boolean;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialGridDto\n */\n capaciteFormative?: number | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialGridDto interface.\n */\nexport function instanceOfSiegeSocialGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialGridDtoFromJSON(json: any): SiegeSocialGridDto {\n return SiegeSocialGridDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'formationCanHaveApprenants': !exists(json, 'formationCanHaveApprenants') ? undefined : json['formationCanHaveApprenants'],\n 'nbContrats': !exists(json, 'nbContrats') ? undefined : json['nbContrats'],\n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : json['denominationSociale'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'commune': !exists(json, 'commune') ? undefined : json['commune'],\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : json['numeroBce'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'chefEntreprisePrincipal': !exists(json, 'chefEntreprisePrincipal') ? undefined : json['chefEntreprisePrincipal'],\n 'hasLieuxFormations': !exists(json, 'hasLieuxFormations') ? undefined : json['hasLieuxFormations'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n };\n}\n\nexport function SiegeSocialGridDtoToJSON(value?: SiegeSocialGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'nbContrats': value.nbContrats,\n 'denominationSociale': value.denominationSociale,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'email': value.email,\n 'localite': value.localite,\n 'commune': value.commune,\n 'numeroBce': value.numeroBce,\n 'actif': value.actif,\n 'chefEntreprisePrincipal': value.chefEntreprisePrincipal,\n 'hasLieuxFormations': value.hasLieuxFormations,\n 'capaciteFormative': value.capaciteFormative,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SiegeSocialGridDto } from './SiegeSocialGridDto';\nimport {\n SiegeSocialGridDtoFromJSON,\n SiegeSocialGridDtoFromJSONTyped,\n SiegeSocialGridDtoToJSON,\n} from './SiegeSocialGridDto';\n\n/**\n * \n * @export\n * @interface SiegeSocialGridDtoPaginatedResults\n */\nexport interface SiegeSocialGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialGridDtoPaginatedResults interface.\n */\nexport function instanceOfSiegeSocialGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialGridDtoPaginatedResultsFromJSON(json: any): SiegeSocialGridDtoPaginatedResults {\n return SiegeSocialGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SiegeSocialGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SiegeSocialGridDtoPaginatedResultsToJSON(value?: SiegeSocialGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SiegeSocialGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeSocialHistoryGridDto\n */\nexport interface SiegeSocialHistoryGridDto {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialHistoryGridDto\n */\n idsiegeSocialHistory?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialHistoryGridDto\n */\n iduser?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialHistoryGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialHistoryGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialHistoryGridDto\n */\n action?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialHistoryGridDto\n */\n actionType?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SiegeSocialHistoryGridDto\n */\n actionDate?: Date;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialHistoryGridDto\n */\n userName?: string | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialHistoryGridDto\n */\n ifapmeSide?: Array | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialHistoryGridDto interface.\n */\nexport function instanceOfSiegeSocialHistoryGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialHistoryGridDtoFromJSON(json: any): SiegeSocialHistoryGridDto {\n return SiegeSocialHistoryGridDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialHistoryGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialHistoryGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocialHistory': !exists(json, 'idsiegeSocialHistory') ? undefined : json['idsiegeSocialHistory'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'actionType': !exists(json, 'actionType') ? undefined : json['actionType'],\n 'actionDate': !exists(json, 'actionDate') ? undefined : (new Date(json['actionDate'])),\n 'userName': !exists(json, 'userName') ? undefined : json['userName'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n };\n}\n\nexport function SiegeSocialHistoryGridDtoToJSON(value?: SiegeSocialHistoryGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocialHistory': value.idsiegeSocialHistory,\n 'iduser': value.iduser,\n 'idpersonne': value.idpersonne,\n 'idsiegeSocial': value.idsiegeSocial,\n 'action': value.action,\n 'actionType': value.actionType,\n 'actionDate': value.actionDate === undefined ? undefined : (value.actionDate.toISOString()),\n 'userName': value.userName,\n 'ifapmeSide': value.ifapmeSide,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SiegeSocialHistoryGridDto } from './SiegeSocialHistoryGridDto';\nimport {\n SiegeSocialHistoryGridDtoFromJSON,\n SiegeSocialHistoryGridDtoFromJSONTyped,\n SiegeSocialHistoryGridDtoToJSON,\n} from './SiegeSocialHistoryGridDto';\n\n/**\n * \n * @export\n * @interface SiegeSocialHistoryGridDtoPaginatedResults\n */\nexport interface SiegeSocialHistoryGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialHistoryGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialHistoryGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialHistoryGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialHistoryGridDtoPaginatedResults interface.\n */\nexport function instanceOfSiegeSocialHistoryGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialHistoryGridDtoPaginatedResultsFromJSON(json: any): SiegeSocialHistoryGridDtoPaginatedResults {\n return SiegeSocialHistoryGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialHistoryGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialHistoryGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SiegeSocialHistoryGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SiegeSocialHistoryGridDtoPaginatedResultsToJSON(value?: SiegeSocialHistoryGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SiegeSocialHistoryGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface SiegeSocialHistorySearch\n */\nexport interface SiegeSocialHistorySearch {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialHistorySearch\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialHistorySearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialHistorySearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialHistorySearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialHistorySearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SiegeSocialHistorySearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialHistorySearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialHistorySearch interface.\n */\nexport function instanceOfSiegeSocialHistorySearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialHistorySearchFromJSON(json: any): SiegeSocialHistorySearch {\n return SiegeSocialHistorySearchFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialHistorySearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialHistorySearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SiegeSocialHistorySearchToJSON(value?: SiegeSocialHistorySearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface SiegeSocialSearchDto\n */\nexport interface SiegeSocialSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialSearchDto\n */\n denominationSociale?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialSearchDto\n */\n nomFormation?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialSearchDto\n */\n enseigne?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialSearchDto\n */\n chefEntrepriseFullName?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialSearchDto\n */\n contactFullName?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n numeroBce?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n numeroUe?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n telephone?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n gsm?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n codeMetier?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n nomMetier?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n service?: TextSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof SiegeSocialSearchDto\n */\n stade?: StringListSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n codeContrat?: TextSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof SiegeSocialSearchDto\n */\n statutContrat?: StringListSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof SiegeSocialSearchDto\n */\n statutAgrement?: StringListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof SiegeSocialSearchDto\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n codePostal?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSearchDto\n */\n commune?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SiegeSocialSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialSearchDto interface.\n */\nexport function instanceOfSiegeSocialSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialSearchDtoFromJSON(json: any): SiegeSocialSearchDto {\n return SiegeSocialSearchDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : UnaccentTextSearchFromJSON(json['denominationSociale']),\n 'nomFormation': !exists(json, 'nomFormation') ? undefined : UnaccentTextSearchFromJSON(json['nomFormation']),\n 'enseigne': !exists(json, 'enseigne') ? undefined : UnaccentTextSearchFromJSON(json['enseigne']),\n 'chefEntrepriseFullName': !exists(json, 'chefEntrepriseFullName') ? undefined : UnaccentTextSearchFromJSON(json['chefEntrepriseFullName']),\n 'contactFullName': !exists(json, 'contactFullName') ? undefined : UnaccentTextSearchFromJSON(json['contactFullName']),\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : TextSearchFromJSON(json['numeroBce']),\n 'numeroUe': !exists(json, 'numeroUe') ? undefined : TextSearchFromJSON(json['numeroUe']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TextSearchFromJSON(json['gsm']),\n 'codeMetier': !exists(json, 'codeMetier') ? undefined : TextSearchFromJSON(json['codeMetier']),\n 'nomMetier': !exists(json, 'nomMetier') ? undefined : TextSearchFromJSON(json['nomMetier']),\n 'service': !exists(json, 'service') ? undefined : TextSearchFromJSON(json['service']),\n 'stade': !exists(json, 'stade') ? undefined : StringListSearchFromJSON(json['stade']),\n 'codeContrat': !exists(json, 'codeContrat') ? undefined : TextSearchFromJSON(json['codeContrat']),\n 'statutContrat': !exists(json, 'statutContrat') ? undefined : StringListSearchFromJSON(json['statutContrat']),\n 'statutAgrement': !exists(json, 'statutAgrement') ? undefined : StringListSearchFromJSON(json['statutAgrement']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'codePostal': !exists(json, 'codePostal') ? undefined : TextSearchFromJSON(json['codePostal']),\n 'commune': !exists(json, 'commune') ? undefined : TextSearchFromJSON(json['commune']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SiegeSocialSearchDtoToJSON(value?: SiegeSocialSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'denominationSociale': UnaccentTextSearchToJSON(value.denominationSociale),\n 'nomFormation': UnaccentTextSearchToJSON(value.nomFormation),\n 'enseigne': UnaccentTextSearchToJSON(value.enseigne),\n 'chefEntrepriseFullName': UnaccentTextSearchToJSON(value.chefEntrepriseFullName),\n 'contactFullName': UnaccentTextSearchToJSON(value.contactFullName),\n 'numeroBce': TextSearchToJSON(value.numeroBce),\n 'numeroUe': TextSearchToJSON(value.numeroUe),\n 'telephone': TextSearchToJSON(value.telephone),\n 'gsm': TextSearchToJSON(value.gsm),\n 'codeMetier': TextSearchToJSON(value.codeMetier),\n 'nomMetier': TextSearchToJSON(value.nomMetier),\n 'service': TextSearchToJSON(value.service),\n 'stade': StringListSearchToJSON(value.stade),\n 'codeContrat': TextSearchToJSON(value.codeContrat),\n 'statutContrat': StringListSearchToJSON(value.statutContrat),\n 'statutAgrement': StringListSearchToJSON(value.statutAgrement),\n 'actif': BooleanSearchToJSON(value.actif),\n 'codePostal': TextSearchToJSON(value.codePostal),\n 'commune': TextSearchToJSON(value.commune),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SiegeSocialSelectorGridDto\n */\nexport interface SiegeSocialSelectorGridDto {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialSelectorGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {boolean}\n * @memberof SiegeSocialSelectorGridDto\n */\n formationCanHaveApprenants?: boolean;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialSelectorGridDto\n */\n nbContrats?: number;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSelectorGridDto\n */\n denominationSociale?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSelectorGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSelectorGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSelectorGridDto\n */\n nomPatron?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSelectorGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSelectorGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSelectorGridDto\n */\n numeroBce?: string | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSelectorGridDto\n */\n chefEntreprisePrincipal?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialSelectorGridDto interface.\n */\nexport function instanceOfSiegeSocialSelectorGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialSelectorGridDtoFromJSON(json: any): SiegeSocialSelectorGridDto {\n return SiegeSocialSelectorGridDtoFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialSelectorGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialSelectorGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'formationCanHaveApprenants': !exists(json, 'formationCanHaveApprenants') ? undefined : json['formationCanHaveApprenants'],\n 'nbContrats': !exists(json, 'nbContrats') ? undefined : json['nbContrats'],\n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : json['denominationSociale'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'nomPatron': !exists(json, 'nomPatron') ? undefined : json['nomPatron'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : json['numeroBce'],\n 'chefEntreprisePrincipal': !exists(json, 'chefEntreprisePrincipal') ? undefined : json['chefEntreprisePrincipal'],\n };\n}\n\nexport function SiegeSocialSelectorGridDtoToJSON(value?: SiegeSocialSelectorGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsiegeSocial': value.idsiegeSocial,\n 'formationCanHaveApprenants': value.formationCanHaveApprenants,\n 'nbContrats': value.nbContrats,\n 'denominationSociale': value.denominationSociale,\n 'gsm': value.gsm,\n 'telephone': value.telephone,\n 'nomPatron': value.nomPatron,\n 'email': value.email,\n 'localite': value.localite,\n 'numeroBce': value.numeroBce,\n 'chefEntreprisePrincipal': value.chefEntreprisePrincipal,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SiegeSocialSelectorGridDto } from './SiegeSocialSelectorGridDto';\nimport {\n SiegeSocialSelectorGridDtoFromJSON,\n SiegeSocialSelectorGridDtoFromJSONTyped,\n SiegeSocialSelectorGridDtoToJSON,\n} from './SiegeSocialSelectorGridDto';\n\n/**\n * \n * @export\n * @interface SiegeSocialSelectorGridDtoPaginatedResults\n */\nexport interface SiegeSocialSelectorGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SiegeSocialSelectorGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialSelectorGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialSelectorGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialSelectorGridDtoPaginatedResults interface.\n */\nexport function instanceOfSiegeSocialSelectorGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialSelectorGridDtoPaginatedResultsFromJSON(json: any): SiegeSocialSelectorGridDtoPaginatedResults {\n return SiegeSocialSelectorGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialSelectorGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialSelectorGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SiegeSocialSelectorGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SiegeSocialSelectorGridDtoPaginatedResultsToJSON(value?: SiegeSocialSelectorGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SiegeSocialSelectorGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface SiegeSocialSelectorSearch\n */\nexport interface SiegeSocialSelectorSearch {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialSelectorSearch\n */\n denominationSociale?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialSelectorSearch\n */\n nomFormation?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SiegeSocialSelectorSearch\n */\n enseigne?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSelectorSearch\n */\n numeroBce?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSelectorSearch\n */\n localite?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSelectorSearch\n */\n gsm?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSelectorSearch\n */\n telephone?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SiegeSocialSelectorSearch\n */\n email?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialSelectorSearch\n */\n selectedSiegeSocialIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialSelectorSearch\n */\n excludedSiegeSocialIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialSelectorSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SiegeSocialSelectorSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialSelectorSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SiegeSocialSelectorSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SiegeSocialSelectorSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SiegeSocialSelectorSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SiegeSocialSelectorSearch interface.\n */\nexport function instanceOfSiegeSocialSelectorSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SiegeSocialSelectorSearchFromJSON(json: any): SiegeSocialSelectorSearch {\n return SiegeSocialSelectorSearchFromJSONTyped(json, false);\n}\n\nexport function SiegeSocialSelectorSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SiegeSocialSelectorSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'denominationSociale': !exists(json, 'denominationSociale') ? undefined : UnaccentTextSearchFromJSON(json['denominationSociale']),\n 'nomFormation': !exists(json, 'nomFormation') ? undefined : UnaccentTextSearchFromJSON(json['nomFormation']),\n 'enseigne': !exists(json, 'enseigne') ? undefined : UnaccentTextSearchFromJSON(json['enseigne']),\n 'numeroBce': !exists(json, 'numeroBce') ? undefined : TextSearchFromJSON(json['numeroBce']),\n 'localite': !exists(json, 'localite') ? undefined : TextSearchFromJSON(json['localite']),\n 'gsm': !exists(json, 'gsm') ? undefined : TextSearchFromJSON(json['gsm']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'email': !exists(json, 'email') ? undefined : TextSearchFromJSON(json['email']),\n 'selectedSiegeSocialIds': !exists(json, 'selectedSiegeSocialIds') ? undefined : json['selectedSiegeSocialIds'],\n 'excludedSiegeSocialIds': !exists(json, 'excludedSiegeSocialIds') ? undefined : json['excludedSiegeSocialIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SiegeSocialSelectorSearchToJSON(value?: SiegeSocialSelectorSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'denominationSociale': UnaccentTextSearchToJSON(value.denominationSociale),\n 'nomFormation': UnaccentTextSearchToJSON(value.nomFormation),\n 'enseigne': UnaccentTextSearchToJSON(value.enseigne),\n 'numeroBce': TextSearchToJSON(value.numeroBce),\n 'localite': TextSearchToJSON(value.localite),\n 'gsm': TextSearchToJSON(value.gsm),\n 'telephone': TextSearchToJSON(value.telephone),\n 'email': TextSearchToJSON(value.email),\n 'selectedSiegeSocialIds': value.selectedSiegeSocialIds,\n 'excludedSiegeSocialIds': value.excludedSiegeSocialIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface SmsSearch\n */\nexport interface SmsSearch {\n /**\n * \n * @type {number}\n * @memberof SmsSearch\n */\n idApprenant?: number | null;\n /**\n * \n * @type {number}\n * @memberof SmsSearch\n */\n idFormateur?: number | null;\n /**\n * \n * @type {TextSearch}\n * @memberof SmsSearch\n */\n message?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SmsSearch\n */\n dateEnvoi?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SmsSearch\n */\n statut?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SmsSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof SmsSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SmsSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SmsSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SmsSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SmsSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SmsSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SmsSearch interface.\n */\nexport function instanceOfSmsSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SmsSearchFromJSON(json: any): SmsSearch {\n return SmsSearchFromJSONTyped(json, false);\n}\n\nexport function SmsSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SmsSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'idFormateur': !exists(json, 'idFormateur') ? undefined : json['idFormateur'],\n 'message': !exists(json, 'message') ? undefined : TextSearchFromJSON(json['message']),\n 'dateEnvoi': !exists(json, 'dateEnvoi') ? undefined : DateSearchFromJSON(json['dateEnvoi']),\n 'statut': !exists(json, 'statut') ? undefined : TextSearchFromJSON(json['statut']),\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SmsSearchToJSON(value?: SmsSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'idFormateur': value.idFormateur,\n 'message': TextSearchToJSON(value.message),\n 'dateEnvoi': DateSearchToJSON(value.dateEnvoi),\n 'statut': TextSearchToJSON(value.statut),\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface SmsSuiviSearch\n */\nexport interface SmsSuiviSearch {\n /**\n * \n * @type {number}\n * @memberof SmsSuiviSearch\n */\n idlot?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof SmsSuiviSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SmsSuiviSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SmsSuiviSearch\n */\n statut?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof SmsSuiviSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SmsSuiviSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SmsSuiviSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SmsSuiviSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SmsSuiviSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SmsSuiviSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SmsSuiviSearch interface.\n */\nexport function instanceOfSmsSuiviSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SmsSuiviSearchFromJSON(json: any): SmsSuiviSearch {\n return SmsSuiviSearchFromJSONTyped(json, false);\n}\n\nexport function SmsSuiviSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SmsSuiviSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlot': !exists(json, 'idlot') ? undefined : json['idlot'],\n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'statut': !exists(json, 'statut') ? undefined : TextSearchFromJSON(json['statut']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SmsSuiviSearchToJSON(value?: SmsSuiviSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlot': value.idlot,\n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'statut': TextSearchToJSON(value.statut),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { StringListSearch } from './StringListSearch';\nimport {\n StringListSearchFromJSON,\n StringListSearchFromJSONTyped,\n StringListSearchToJSON,\n} from './StringListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface SmsUtilitaireSearch\n */\nexport interface SmsUtilitaireSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof SmsUtilitaireSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SmsUtilitaireSearch\n */\n creationDate?: DateSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SmsUtilitaireSearch\n */\n dateEnvoi?: DateSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SmsUtilitaireSearch\n */\n centre?: Int32ListSearch;\n /**\n * \n * @type {StringListSearch}\n * @memberof SmsUtilitaireSearch\n */\n anneeScolaire?: StringListSearch;\n /**\n * \n * @type {Array}\n * @memberof SmsUtilitaireSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SmsUtilitaireSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SmsUtilitaireSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SmsUtilitaireSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SmsUtilitaireSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SmsUtilitaireSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SmsUtilitaireSearch interface.\n */\nexport function instanceOfSmsUtilitaireSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SmsUtilitaireSearchFromJSON(json: any): SmsUtilitaireSearch {\n return SmsUtilitaireSearchFromJSONTyped(json, false);\n}\n\nexport function SmsUtilitaireSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SmsUtilitaireSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'creationDate': !exists(json, 'creationDate') ? undefined : DateSearchFromJSON(json['creationDate']),\n 'dateEnvoi': !exists(json, 'dateEnvoi') ? undefined : DateSearchFromJSON(json['dateEnvoi']),\n 'centre': !exists(json, 'centre') ? undefined : Int32ListSearchFromJSON(json['centre']),\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : StringListSearchFromJSON(json['anneeScolaire']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SmsUtilitaireSearchToJSON(value?: SmsUtilitaireSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'description': TextSearchToJSON(value.description),\n 'creationDate': DateSearchToJSON(value.creationDate),\n 'dateEnvoi': DateSearchToJSON(value.dateEnvoi),\n 'centre': Int32ListSearchToJSON(value.centre),\n 'anneeScolaire': StringListSearchToJSON(value.anneeScolaire),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SocieteExterneEditDto\n */\nexport interface SocieteExterneEditDto {\n /**\n * \n * @type {number}\n * @memberof SocieteExterneEditDto\n */\n idsocieteExterne?: number;\n /**\n * \n * @type {string}\n * @memberof SocieteExterneEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {Array}\n * @memberof SocieteExterneEditDto\n */\n idsMetier?: Array | null;\n}\n\n/**\n * Check if a given object implements the SocieteExterneEditDto interface.\n */\nexport function instanceOfSocieteExterneEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SocieteExterneEditDtoFromJSON(json: any): SocieteExterneEditDto {\n return SocieteExterneEditDtoFromJSONTyped(json, false);\n}\n\nexport function SocieteExterneEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SocieteExterneEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsocieteExterne': !exists(json, 'idsocieteExterne') ? undefined : json['idsocieteExterne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'idsMetier': !exists(json, 'idsMetier') ? undefined : json['idsMetier'],\n };\n}\n\nexport function SocieteExterneEditDtoToJSON(value?: SocieteExterneEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsocieteExterne': value.idsocieteExterne,\n 'nom': value.nom,\n 'idsMetier': value.idsMetier,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SocieteExterneGridDto\n */\nexport interface SocieteExterneGridDto {\n /**\n * \n * @type {number}\n * @memberof SocieteExterneGridDto\n */\n idsocieteExterne?: number;\n /**\n * \n * @type {string}\n * @memberof SocieteExterneGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {Array}\n * @memberof SocieteExterneGridDto\n */\n codesMetiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the SocieteExterneGridDto interface.\n */\nexport function instanceOfSocieteExterneGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SocieteExterneGridDtoFromJSON(json: any): SocieteExterneGridDto {\n return SocieteExterneGridDtoFromJSONTyped(json, false);\n}\n\nexport function SocieteExterneGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SocieteExterneGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsocieteExterne': !exists(json, 'idsocieteExterne') ? undefined : json['idsocieteExterne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'codesMetiers': !exists(json, 'codesMetiers') ? undefined : json['codesMetiers'],\n };\n}\n\nexport function SocieteExterneGridDtoToJSON(value?: SocieteExterneGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsocieteExterne': value.idsocieteExterne,\n 'nom': value.nom,\n 'codesMetiers': value.codesMetiers,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SocieteExterneGridDto } from './SocieteExterneGridDto';\nimport {\n SocieteExterneGridDtoFromJSON,\n SocieteExterneGridDtoFromJSONTyped,\n SocieteExterneGridDtoToJSON,\n} from './SocieteExterneGridDto';\n\n/**\n * \n * @export\n * @interface SocieteExterneGridDtoPaginatedResults\n */\nexport interface SocieteExterneGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SocieteExterneGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SocieteExterneGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SocieteExterneGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SocieteExterneGridDtoPaginatedResults interface.\n */\nexport function instanceOfSocieteExterneGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SocieteExterneGridDtoPaginatedResultsFromJSON(json: any): SocieteExterneGridDtoPaginatedResults {\n return SocieteExterneGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SocieteExterneGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SocieteExterneGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SocieteExterneGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SocieteExterneGridDtoPaginatedResultsToJSON(value?: SocieteExterneGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SocieteExterneGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface SocieteExterneSearchDto\n */\nexport interface SocieteExterneSearchDto {\n /**\n * \n * @type {TextSearch}\n * @memberof SocieteExterneSearchDto\n */\n nom?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof SocieteExterneSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SocieteExterneSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SocieteExterneSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SocieteExterneSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SocieteExterneSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SocieteExterneSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SocieteExterneSearchDto interface.\n */\nexport function instanceOfSocieteExterneSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SocieteExterneSearchDtoFromJSON(json: any): SocieteExterneSearchDto {\n return SocieteExterneSearchDtoFromJSONTyped(json, false);\n}\n\nexport function SocieteExterneSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SocieteExterneSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SocieteExterneSearchDtoToJSON(value?: SocieteExterneSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface SoldeApprenantSearch\n */\nexport interface SoldeApprenantSearch {\n /**\n * \n * @type {number}\n * @memberof SoldeApprenantSearch\n */\n idapprenant?: number;\n /**\n * \n * @type {TextSearch}\n * @memberof SoldeApprenantSearch\n */\n anneeScolaire?: TextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SoldeApprenantSearch\n */\n idcentre?: Int32ListSearch;\n /**\n * \n * @type {Array}\n * @memberof SoldeApprenantSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SoldeApprenantSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SoldeApprenantSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SoldeApprenantSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SoldeApprenantSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SoldeApprenantSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SoldeApprenantSearch interface.\n */\nexport function instanceOfSoldeApprenantSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SoldeApprenantSearchFromJSON(json: any): SoldeApprenantSearch {\n return SoldeApprenantSearchFromJSONTyped(json, false);\n}\n\nexport function SoldeApprenantSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SoldeApprenantSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'anneeScolaire': !exists(json, 'anneeScolaire') ? undefined : TextSearchFromJSON(json['anneeScolaire']),\n 'idcentre': !exists(json, 'idcentre') ? undefined : Int32ListSearchFromJSON(json['idcentre']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SoldeApprenantSearchToJSON(value?: SoldeApprenantSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'anneeScolaire': TextSearchToJSON(value.anneeScolaire),\n 'idcentre': Int32ListSearchToJSON(value.idcentre),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface SpecificiteCoursSearch\n */\nexport interface SpecificiteCoursSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof SpecificiteCoursSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof SpecificiteCoursSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof SpecificiteCoursSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof SpecificiteCoursSearch\n */\n isCompanySearch?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof SpecificiteCoursSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SpecificiteCoursSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SpecificiteCoursSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SpecificiteCoursSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SpecificiteCoursSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SpecificiteCoursSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SpecificiteCoursSearch interface.\n */\nexport function instanceOfSpecificiteCoursSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SpecificiteCoursSearchFromJSON(json: any): SpecificiteCoursSearch {\n return SpecificiteCoursSearchFromJSONTyped(json, false);\n}\n\nexport function SpecificiteCoursSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SpecificiteCoursSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'isCompanySearch': !exists(json, 'isCompanySearch') ? undefined : BooleanSearchFromJSON(json['isCompanySearch']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SpecificiteCoursSearchToJSON(value?: SpecificiteCoursSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'libelle': TextSearchToJSON(value.libelle),\n 'actif': BooleanSearchToJSON(value.actif),\n 'isCompanySearch': BooleanSearchToJSON(value.isCompanySearch),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface StadeSearch\n */\nexport interface StadeSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof StadeSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof StadeSearch\n */\n description?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof StadeSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof StadeSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof StadeSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof StadeSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof StadeSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof StadeSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof StadeSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the StadeSearch interface.\n */\nexport function instanceOfStadeSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function StadeSearchFromJSON(json: any): StadeSearch {\n return StadeSearchFromJSONTyped(json, false);\n}\n\nexport function StadeSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): StadeSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'description': !exists(json, 'description') ? undefined : TextSearchFromJSON(json['description']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function StadeSearchToJSON(value?: StadeSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'description': TextSearchToJSON(value.description),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EOrigineDossier } from './EOrigineDossier';\nimport {\n EOrigineDossierFromJSON,\n EOrigineDossierFromJSONTyped,\n EOrigineDossierToJSON,\n} from './EOrigineDossier';\n\n/**\n * \n * @export\n * @interface StatutApprenantEditDto\n */\nexport interface StatutApprenantEditDto {\n /**\n * \n * @type {number}\n * @memberof StatutApprenantEditDto\n */\n idApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantEditDto\n */\n idStatutApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantEditDto\n */\n idParcoursFormation?: number | null;\n /**\n * \n * @type {Date}\n * @memberof StatutApprenantEditDto\n */\n dateStatut?: Date | null;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantEditDto\n */\n idCategorieStatut?: number | null;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantEditDto\n */\n idStatut?: number | null;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantEditDto\n */\n iddureeInoccupation?: number | null;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantEditDto\n */\n idMotifSortie?: number | null;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantEditDto\n */\n idtypeSortie?: number | null;\n /**\n * \n * @type {EOrigineDossier}\n * @memberof StatutApprenantEditDto\n */\n origineSortie?: EOrigineDossier;\n /**\n * \n * @type {boolean}\n * @memberof StatutApprenantEditDto\n */\n postSortie?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof StatutApprenantEditDto\n */\n suiviTermine?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof StatutApprenantEditDto\n */\n simpleUpdate?: boolean;\n}\n\n/**\n * Check if a given object implements the StatutApprenantEditDto interface.\n */\nexport function instanceOfStatutApprenantEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function StatutApprenantEditDtoFromJSON(json: any): StatutApprenantEditDto {\n return StatutApprenantEditDtoFromJSONTyped(json, false);\n}\n\nexport function StatutApprenantEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatutApprenantEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'idStatutApprenant': !exists(json, 'idStatutApprenant') ? undefined : json['idStatutApprenant'],\n 'idParcoursFormation': !exists(json, 'idParcoursFormation') ? undefined : json['idParcoursFormation'],\n 'dateStatut': !exists(json, 'dateStatut') ? undefined : (json['dateStatut'] === null ? null : new Date(json['dateStatut'])),\n 'idCategorieStatut': !exists(json, 'idCategorieStatut') ? undefined : json['idCategorieStatut'],\n 'idStatut': !exists(json, 'idStatut') ? undefined : json['idStatut'],\n 'iddureeInoccupation': !exists(json, 'iddureeInoccupation') ? undefined : json['iddureeInoccupation'],\n 'idMotifSortie': !exists(json, 'idMotifSortie') ? undefined : json['idMotifSortie'],\n 'idtypeSortie': !exists(json, 'idtypeSortie') ? undefined : json['idtypeSortie'],\n 'origineSortie': !exists(json, 'origineSortie') ? undefined : EOrigineDossierFromJSON(json['origineSortie']),\n 'postSortie': !exists(json, 'postSortie') ? undefined : json['postSortie'],\n 'suiviTermine': !exists(json, 'suiviTermine') ? undefined : json['suiviTermine'],\n 'simpleUpdate': !exists(json, 'simpleUpdate') ? undefined : json['simpleUpdate'],\n };\n}\n\nexport function StatutApprenantEditDtoToJSON(value?: StatutApprenantEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'idStatutApprenant': value.idStatutApprenant,\n 'idParcoursFormation': value.idParcoursFormation,\n 'dateStatut': value.dateStatut === undefined ? undefined : (value.dateStatut === null ? null : value.dateStatut.toISOString()),\n 'idCategorieStatut': value.idCategorieStatut,\n 'idStatut': value.idStatut,\n 'iddureeInoccupation': value.iddureeInoccupation,\n 'idMotifSortie': value.idMotifSortie,\n 'idtypeSortie': value.idtypeSortie,\n 'origineSortie': EOrigineDossierToJSON(value.origineSortie),\n 'postSortie': value.postSortie,\n 'suiviTermine': value.suiviTermine,\n 'simpleUpdate': value.simpleUpdate,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { StatutApprenantGridDto } from './StatutApprenantGridDto';\nimport {\n StatutApprenantGridDtoFromJSON,\n StatutApprenantGridDtoFromJSONTyped,\n StatutApprenantGridDtoToJSON,\n} from './StatutApprenantGridDto';\n\n/**\n * \n * @export\n * @interface StatutApprenantGridDtoPaginatedResults\n */\nexport interface StatutApprenantGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof StatutApprenantGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof StatutApprenantGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof StatutApprenantGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the StatutApprenantGridDtoPaginatedResults interface.\n */\nexport function instanceOfStatutApprenantGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function StatutApprenantGridDtoPaginatedResultsFromJSON(json: any): StatutApprenantGridDtoPaginatedResults {\n return StatutApprenantGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function StatutApprenantGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatutApprenantGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(StatutApprenantGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function StatutApprenantGridDtoPaginatedResultsToJSON(value?: StatutApprenantGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(StatutApprenantGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface StatutApprenantSearch\n */\nexport interface StatutApprenantSearch {\n /**\n * \n * @type {number}\n * @memberof StatutApprenantSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof StatutApprenantSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof StatutApprenantSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof StatutApprenantSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof StatutApprenantSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof StatutApprenantSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the StatutApprenantSearch interface.\n */\nexport function instanceOfStatutApprenantSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function StatutApprenantSearchFromJSON(json: any): StatutApprenantSearch {\n return StatutApprenantSearchFromJSONTyped(json, false);\n}\n\nexport function StatutApprenantSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatutApprenantSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function StatutApprenantSearchToJSON(value?: StatutApprenantSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EStatutDemande } from './EStatutDemande';\nimport {\n EStatutDemandeFromJSON,\n EStatutDemandeFromJSONTyped,\n EStatutDemandeToJSON,\n} from './EStatutDemande';\n\n/**\n * \n * @export\n * @interface StatutDemandeCodeIdDto\n */\nexport interface StatutDemandeCodeIdDto {\n /**\n * \n * @type {number}\n * @memberof StatutDemandeCodeIdDto\n */\n idstatutDemande?: number;\n /**\n * \n * @type {EStatutDemande}\n * @memberof StatutDemandeCodeIdDto\n */\n code?: EStatutDemande;\n}\n\n/**\n * Check if a given object implements the StatutDemandeCodeIdDto interface.\n */\nexport function instanceOfStatutDemandeCodeIdDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function StatutDemandeCodeIdDtoFromJSON(json: any): StatutDemandeCodeIdDto {\n return StatutDemandeCodeIdDtoFromJSONTyped(json, false);\n}\n\nexport function StatutDemandeCodeIdDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatutDemandeCodeIdDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idstatutDemande': !exists(json, 'idstatutDemande') ? undefined : json['idstatutDemande'],\n 'code': !exists(json, 'code') ? undefined : EStatutDemandeFromJSON(json['code']),\n };\n}\n\nexport function StatutDemandeCodeIdDtoToJSON(value?: StatutDemandeCodeIdDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idstatutDemande': value.idstatutDemande,\n 'code': EStatutDemandeToJSON(value.code),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface StatutSocialSearch\n */\nexport interface StatutSocialSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof StatutSocialSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof StatutSocialSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof StatutSocialSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof StatutSocialSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof StatutSocialSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof StatutSocialSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof StatutSocialSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof StatutSocialSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the StatutSocialSearch interface.\n */\nexport function instanceOfStatutSocialSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function StatutSocialSearchFromJSON(json: any): StatutSocialSearch {\n return StatutSocialSearchFromJSONTyped(json, false);\n}\n\nexport function StatutSocialSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): StatutSocialSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function StatutSocialSearchToJSON(value?: StatutSocialSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface SuiviActionEditDto\n */\nexport interface SuiviActionEditDto {\n /**\n * \n * @type {number}\n * @memberof SuiviActionEditDto\n */\n idsuiviAction?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviActionEditDto\n */\n idsuivi?: number | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviActionEditDto\n */\n dateEcheance?: Date;\n /**\n * \n * @type {number}\n * @memberof SuiviActionEditDto\n */\n idtypeSuiviAction?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviActionEditDto\n */\n idcollaborateurService?: number;\n /**\n * \n * @type {Date}\n * @memberof SuiviActionEditDto\n */\n dateRealisation?: Date | null;\n /**\n * \n * @type {string}\n * @memberof SuiviActionEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviActionEditDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof SuiviActionEditDto\n */\n fichier?: FileUploadDto;\n}\n\n/**\n * Check if a given object implements the SuiviActionEditDto interface.\n */\nexport function instanceOfSuiviActionEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviActionEditDtoFromJSON(json: any): SuiviActionEditDto {\n return SuiviActionEditDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviActionEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviActionEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuiviAction': !exists(json, 'idsuiviAction') ? undefined : json['idsuiviAction'],\n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'dateEcheance': !exists(json, 'dateEcheance') ? undefined : (new Date(json['dateEcheance'])),\n 'idtypeSuiviAction': !exists(json, 'idtypeSuiviAction') ? undefined : json['idtypeSuiviAction'],\n 'idcollaborateurService': !exists(json, 'idcollaborateurService') ? undefined : json['idcollaborateurService'],\n 'dateRealisation': !exists(json, 'dateRealisation') ? undefined : (json['dateRealisation'] === null ? null : new Date(json['dateRealisation'])),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fichier': !exists(json, 'fichier') ? undefined : FileUploadDtoFromJSON(json['fichier']),\n };\n}\n\nexport function SuiviActionEditDtoToJSON(value?: SuiviActionEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuiviAction': value.idsuiviAction,\n 'idsuivi': value.idsuivi,\n 'dateEcheance': value.dateEcheance === undefined ? undefined : (value.dateEcheance.toISOString()),\n 'idtypeSuiviAction': value.idtypeSuiviAction,\n 'idcollaborateurService': value.idcollaborateurService,\n 'dateRealisation': value.dateRealisation === undefined ? undefined : (value.dateRealisation === null ? null : value.dateRealisation.toISOString()),\n 'remarque': value.remarque,\n 'idfichier': value.idfichier,\n 'fichier': FileUploadDtoToJSON(value.fichier),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SuiviApprenantFichierDto\n */\nexport interface SuiviApprenantFichierDto {\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierDto\n */\n idsuiviApprenantFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierDto\n */\n idsuiviApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierDto\n */\n idtypeSuiviFichier?: number;\n /**\n * \n * @type {string}\n * @memberof SuiviApprenantFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the SuiviApprenantFichierDto interface.\n */\nexport function instanceOfSuiviApprenantFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviApprenantFichierDtoFromJSON(json: any): SuiviApprenantFichierDto {\n return SuiviApprenantFichierDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviApprenantFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviApprenantFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuiviApprenantFichier': !exists(json, 'idsuiviApprenantFichier') ? undefined : json['idsuiviApprenantFichier'],\n 'idsuiviApprenant': !exists(json, 'idsuiviApprenant') ? undefined : json['idsuiviApprenant'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function SuiviApprenantFichierDtoToJSON(value?: SuiviApprenantFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuiviApprenantFichier': value.idsuiviApprenantFichier,\n 'idsuiviApprenant': value.idsuiviApprenant,\n 'idfichier': value.idfichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface SuiviApprenantFichierUploadDto\n */\nexport interface SuiviApprenantFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof SuiviApprenantFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierUploadDto\n */\n idsuiviApprenantFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierUploadDto\n */\n idsuiviApprenant?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantFichierUploadDto\n */\n idtypeSuiviFichier?: number;\n /**\n * \n * @type {string}\n * @memberof SuiviApprenantFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the SuiviApprenantFichierUploadDto interface.\n */\nexport function instanceOfSuiviApprenantFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviApprenantFichierUploadDtoFromJSON(json: any): SuiviApprenantFichierUploadDto {\n return SuiviApprenantFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviApprenantFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviApprenantFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idsuiviApprenantFichier': !exists(json, 'idsuiviApprenantFichier') ? undefined : json['idsuiviApprenantFichier'],\n 'idsuiviApprenant': !exists(json, 'idsuiviApprenant') ? undefined : json['idsuiviApprenant'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function SuiviApprenantFichierUploadDtoToJSON(value?: SuiviApprenantFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idsuiviApprenantFichier': value.idsuiviApprenantFichier,\n 'idsuiviApprenant': value.idsuiviApprenant,\n 'idfichier': value.idfichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface SuiviApprenantSearch\n */\nexport interface SuiviApprenantSearch {\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantSearch\n */\n idApprenant?: number;\n /**\n * \n * @type {Array}\n * @memberof SuiviApprenantSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SuiviApprenantSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviApprenantSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SuiviApprenantSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SuiviApprenantSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SuiviApprenantSearch interface.\n */\nexport function instanceOfSuiviApprenantSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviApprenantSearchFromJSON(json: any): SuiviApprenantSearch {\n return SuiviApprenantSearchFromJSONTyped(json, false);\n}\n\nexport function SuiviApprenantSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviApprenantSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idApprenant': !exists(json, 'idApprenant') ? undefined : json['idApprenant'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SuiviApprenantSearchToJSON(value?: SuiviApprenantSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idApprenant': value.idApprenant,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SuiviFichierDto\n */\nexport interface SuiviFichierDto {\n /**\n * \n * @type {number}\n * @memberof SuiviFichierDto\n */\n idsuiviFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierDto\n */\n idsuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierDto\n */\n idtypeSuiviFichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviFichierDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the SuiviFichierDto interface.\n */\nexport function instanceOfSuiviFichierDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviFichierDtoFromJSON(json: any): SuiviFichierDto {\n return SuiviFichierDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviFichierDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviFichierDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuiviFichier': !exists(json, 'idsuiviFichier') ? undefined : json['idsuiviFichier'],\n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function SuiviFichierDtoToJSON(value?: SuiviFichierDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuiviFichier': value.idsuiviFichier,\n 'idsuivi': value.idsuivi,\n 'idfichier': value.idfichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SuiviFichierGridDto\n */\nexport interface SuiviFichierGridDto {\n /**\n * \n * @type {number}\n * @memberof SuiviFichierGridDto\n */\n idsuiviFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierGridDto\n */\n idtypeSuiviFichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviFichierGridDto\n */\n typeSuiviFichier?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierGridDto\n */\n idfichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviFichierGridDto\n */\n fileName?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierGridDto\n */\n uploadUser?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviFichierGridDto\n */\n creationUserName?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviFichierGridDto\n */\n uploadDate?: Date | null;\n}\n\n/**\n * Check if a given object implements the SuiviFichierGridDto interface.\n */\nexport function instanceOfSuiviFichierGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviFichierGridDtoFromJSON(json: any): SuiviFichierGridDto {\n return SuiviFichierGridDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviFichierGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviFichierGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuiviFichier': !exists(json, 'idsuiviFichier') ? undefined : json['idsuiviFichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'typeSuiviFichier': !exists(json, 'typeSuiviFichier') ? undefined : json['typeSuiviFichier'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : json['uploadUser'],\n 'creationUserName': !exists(json, 'creationUserName') ? undefined : json['creationUserName'],\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : (json['uploadDate'] === null ? null : new Date(json['uploadDate'])),\n };\n}\n\nexport function SuiviFichierGridDtoToJSON(value?: SuiviFichierGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuiviFichier': value.idsuiviFichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'typeSuiviFichier': value.typeSuiviFichier,\n 'idfichier': value.idfichier,\n 'fileName': value.fileName,\n 'uploadUser': value.uploadUser,\n 'creationUserName': value.creationUserName,\n 'uploadDate': value.uploadDate === undefined ? undefined : (value.uploadDate === null ? null : value.uploadDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SuiviFichierGridDto } from './SuiviFichierGridDto';\nimport {\n SuiviFichierGridDtoFromJSON,\n SuiviFichierGridDtoFromJSONTyped,\n SuiviFichierGridDtoToJSON,\n} from './SuiviFichierGridDto';\n\n/**\n * \n * @export\n * @interface SuiviFichierGridDtoPaginatedResults\n */\nexport interface SuiviFichierGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SuiviFichierGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SuiviFichierGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SuiviFichierGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SuiviFichierGridDtoPaginatedResults interface.\n */\nexport function instanceOfSuiviFichierGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviFichierGridDtoPaginatedResultsFromJSON(json: any): SuiviFichierGridDtoPaginatedResults {\n return SuiviFichierGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SuiviFichierGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviFichierGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SuiviFichierGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SuiviFichierGridDtoPaginatedResultsToJSON(value?: SuiviFichierGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SuiviFichierGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { Int32NullableListSearch } from './Int32NullableListSearch';\nimport {\n Int32NullableListSearchFromJSON,\n Int32NullableListSearchFromJSONTyped,\n Int32NullableListSearchToJSON,\n} from './Int32NullableListSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface SuiviFichierSearchDto\n */\nexport interface SuiviFichierSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SuiviFichierSearchDto\n */\n fileName?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SuiviFichierSearchDto\n */\n uploadUser?: UnaccentTextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SuiviFichierSearchDto\n */\n uploadDate?: DateSearch;\n /**\n * \n * @type {Int32NullableListSearch}\n * @memberof SuiviFichierSearchDto\n */\n idtypeSuiviFichier?: Int32NullableListSearch;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierSearchDto\n */\n idsuivi?: number;\n /**\n * \n * @type {Array}\n * @memberof SuiviFichierSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SuiviFichierSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SuiviFichierSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SuiviFichierSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SuiviFichierSearchDto interface.\n */\nexport function instanceOfSuiviFichierSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviFichierSearchDtoFromJSON(json: any): SuiviFichierSearchDto {\n return SuiviFichierSearchDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviFichierSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviFichierSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'fileName': !exists(json, 'fileName') ? undefined : UnaccentTextSearchFromJSON(json['fileName']),\n 'uploadUser': !exists(json, 'uploadUser') ? undefined : UnaccentTextSearchFromJSON(json['uploadUser']),\n 'uploadDate': !exists(json, 'uploadDate') ? undefined : DateSearchFromJSON(json['uploadDate']),\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : Int32NullableListSearchFromJSON(json['idtypeSuiviFichier']),\n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SuiviFichierSearchDtoToJSON(value?: SuiviFichierSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'fileName': UnaccentTextSearchToJSON(value.fileName),\n 'uploadUser': UnaccentTextSearchToJSON(value.uploadUser),\n 'uploadDate': DateSearchToJSON(value.uploadDate),\n 'idtypeSuiviFichier': Int32NullableListSearchToJSON(value.idtypeSuiviFichier),\n 'idsuivi': value.idsuivi,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\n\n/**\n * \n * @export\n * @interface SuiviFichierUploadDto\n */\nexport interface SuiviFichierUploadDto {\n /**\n * \n * @type {FileUploadDto}\n * @memberof SuiviFichierUploadDto\n */\n file?: FileUploadDto;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierUploadDto\n */\n idsuiviFichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierUploadDto\n */\n idsuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierUploadDto\n */\n idfichier?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviFichierUploadDto\n */\n idtypeSuiviFichier?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviFichierUploadDto\n */\n fileName?: string | null;\n}\n\n/**\n * Check if a given object implements the SuiviFichierUploadDto interface.\n */\nexport function instanceOfSuiviFichierUploadDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviFichierUploadDtoFromJSON(json: any): SuiviFichierUploadDto {\n return SuiviFichierUploadDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviFichierUploadDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviFichierUploadDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'file': !exists(json, 'file') ? undefined : FileUploadDtoFromJSON(json['file']),\n 'idsuiviFichier': !exists(json, 'idsuiviFichier') ? undefined : json['idsuiviFichier'],\n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'idfichier': !exists(json, 'idfichier') ? undefined : json['idfichier'],\n 'idtypeSuiviFichier': !exists(json, 'idtypeSuiviFichier') ? undefined : json['idtypeSuiviFichier'],\n 'fileName': !exists(json, 'fileName') ? undefined : json['fileName'],\n };\n}\n\nexport function SuiviFichierUploadDtoToJSON(value?: SuiviFichierUploadDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'file': FileUploadDtoToJSON(value.file),\n 'idsuiviFichier': value.idsuiviFichier,\n 'idsuivi': value.idsuivi,\n 'idfichier': value.idfichier,\n 'idtypeSuiviFichier': value.idtypeSuiviFichier,\n 'fileName': value.fileName,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { DoubleListSearch } from './DoubleListSearch';\nimport {\n DoubleListSearchFromJSON,\n DoubleListSearchFromJSONTyped,\n DoubleListSearchToJSON,\n} from './DoubleListSearch';\nimport type { EOrigineSuiviListSearch } from './EOrigineSuiviListSearch';\nimport {\n EOrigineSuiviListSearchFromJSON,\n EOrigineSuiviListSearchFromJSONTyped,\n EOrigineSuiviListSearchToJSON,\n} from './EOrigineSuiviListSearch';\nimport type { ESuiviActionListSearch } from './ESuiviActionListSearch';\nimport {\n ESuiviActionListSearchFromJSON,\n ESuiviActionListSearchFromJSONTyped,\n ESuiviActionListSearchToJSON,\n} from './ESuiviActionListSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { NumericSearch } from './NumericSearch';\nimport {\n NumericSearchFromJSON,\n NumericSearchFromJSONTyped,\n NumericSearchToJSON,\n} from './NumericSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface SuiviGlobalSearchDto\n */\nexport interface SuiviGlobalSearchDto {\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SuiviGlobalSearchDto\n */\n nomApprenant?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof SuiviGlobalSearchDto\n */\n prenomApprenant?: UnaccentTextSearch;\n /**\n * \n * @type {NumericSearch}\n * @memberof SuiviGlobalSearchDto\n */\n idapprenant?: NumericSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SuiviGlobalSearchDto\n */\n idrealisateurSuivi?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SuiviGlobalSearchDto\n */\n idencodeur?: Int32ListSearch;\n /**\n * \n * @type {EOrigineSuiviListSearch}\n * @memberof SuiviGlobalSearchDto\n */\n origineSuivi?: EOrigineSuiviListSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SuiviGlobalSearchDto\n */\n dateSuivi?: DateSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SuiviGlobalSearchDto\n */\n idtypeSuivi?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SuiviGlobalSearchDto\n */\n idsousTypeSuivi?: Int32ListSearch;\n /**\n * \n * @type {DoubleListSearch}\n * @memberof SuiviGlobalSearchDto\n */\n idservice?: DoubleListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SuiviGlobalSearchDto\n */\n idpri?: Int32ListSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SuiviGlobalSearchDto\n */\n idari?: Int32ListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof SuiviGlobalSearchDto\n */\n onlyUserSuivis?: BooleanSearch;\n /**\n * \n * @type {ESuiviActionListSearch}\n * @memberof SuiviGlobalSearchDto\n */\n suiviAction?: ESuiviActionListSearch;\n /**\n * \n * @type {Array}\n * @memberof SuiviGlobalSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SuiviGlobalSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGlobalSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGlobalSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SuiviGlobalSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGlobalSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SuiviGlobalSearchDto interface.\n */\nexport function instanceOfSuiviGlobalSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviGlobalSearchDtoFromJSON(json: any): SuiviGlobalSearchDto {\n return SuiviGlobalSearchDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviGlobalSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviGlobalSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nomApprenant': !exists(json, 'nomApprenant') ? undefined : UnaccentTextSearchFromJSON(json['nomApprenant']),\n 'prenomApprenant': !exists(json, 'prenomApprenant') ? undefined : UnaccentTextSearchFromJSON(json['prenomApprenant']),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : NumericSearchFromJSON(json['idapprenant']),\n 'idrealisateurSuivi': !exists(json, 'idrealisateurSuivi') ? undefined : Int32ListSearchFromJSON(json['idrealisateurSuivi']),\n 'idencodeur': !exists(json, 'idencodeur') ? undefined : Int32ListSearchFromJSON(json['idencodeur']),\n 'origineSuivi': !exists(json, 'origineSuivi') ? undefined : EOrigineSuiviListSearchFromJSON(json['origineSuivi']),\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : DateSearchFromJSON(json['dateSuivi']),\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : Int32ListSearchFromJSON(json['idtypeSuivi']),\n 'idsousTypeSuivi': !exists(json, 'idsousTypeSuivi') ? undefined : Int32ListSearchFromJSON(json['idsousTypeSuivi']),\n 'idservice': !exists(json, 'idservice') ? undefined : DoubleListSearchFromJSON(json['idservice']),\n 'idpri': !exists(json, 'idpri') ? undefined : Int32ListSearchFromJSON(json['idpri']),\n 'idari': !exists(json, 'idari') ? undefined : Int32ListSearchFromJSON(json['idari']),\n 'onlyUserSuivis': !exists(json, 'onlyUserSuivis') ? undefined : BooleanSearchFromJSON(json['onlyUserSuivis']),\n 'suiviAction': !exists(json, 'suiviAction') ? undefined : ESuiviActionListSearchFromJSON(json['suiviAction']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SuiviGlobalSearchDtoToJSON(value?: SuiviGlobalSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nomApprenant': UnaccentTextSearchToJSON(value.nomApprenant),\n 'prenomApprenant': UnaccentTextSearchToJSON(value.prenomApprenant),\n 'idapprenant': NumericSearchToJSON(value.idapprenant),\n 'idrealisateurSuivi': Int32ListSearchToJSON(value.idrealisateurSuivi),\n 'idencodeur': Int32ListSearchToJSON(value.idencodeur),\n 'origineSuivi': EOrigineSuiviListSearchToJSON(value.origineSuivi),\n 'dateSuivi': DateSearchToJSON(value.dateSuivi),\n 'idtypeSuivi': Int32ListSearchToJSON(value.idtypeSuivi),\n 'idsousTypeSuivi': Int32ListSearchToJSON(value.idsousTypeSuivi),\n 'idservice': DoubleListSearchToJSON(value.idservice),\n 'idpri': Int32ListSearchToJSON(value.idpri),\n 'idari': Int32ListSearchToJSON(value.idari),\n 'onlyUserSuivis': BooleanSearchToJSON(value.onlyUserSuivis),\n 'suiviAction': ESuiviActionListSearchToJSON(value.suiviAction),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EOrigineSuivi } from './EOrigineSuivi';\nimport {\n EOrigineSuiviFromJSON,\n EOrigineSuiviFromJSONTyped,\n EOrigineSuiviToJSON,\n} from './EOrigineSuivi';\n\n/**\n * \n * @export\n * @interface SuiviGridDto\n */\nexport interface SuiviGridDto {\n /**\n * \n * @type {number}\n * @memberof SuiviGridDto\n */\n idsuivi?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGridDto\n */\n idservice?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n service?: string | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n centre?: string | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n userService?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGridDto\n */\n idencodeur?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n encodeur?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGridDto\n */\n idrealisateurSuivi?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n realisateurSuivi?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SuiviGridDto\n */\n fromHope?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviGridDto\n */\n dateSuivi?: Date | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGridDto\n */\n idapprenant?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n nomApprenant?: string | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n prenomApprenant?: string | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n apprenant?: string | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n readonly apprenantFullName?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGridDto\n */\n idtypeSuivi?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n typeSuivi?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGridDto\n */\n idsousTypeSuivi?: number;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n sousTypeSuivi?: string | null;\n /**\n * \n * @type {EOrigineSuivi}\n * @memberof SuiviGridDto\n */\n origineSuivi?: EOrigineSuivi;\n /**\n * \n * @type {string}\n * @memberof SuiviGridDto\n */\n hiddenContent?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviGridDto\n */\n actionDateEcheance?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviGridDto\n */\n actionDateRealisation?: Date | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGridDto\n */\n realisateurAction?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviGridDto\n */\n idcentre?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof SuiviGridDto\n */\n masquee?: boolean;\n}\n\n/**\n * Check if a given object implements the SuiviGridDto interface.\n */\nexport function instanceOfSuiviGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviGridDtoFromJSON(json: any): SuiviGridDto {\n return SuiviGridDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'service': !exists(json, 'service') ? undefined : json['service'],\n 'centre': !exists(json, 'centre') ? undefined : json['centre'],\n 'userService': !exists(json, 'userService') ? undefined : json['userService'],\n 'idencodeur': !exists(json, 'idencodeur') ? undefined : json['idencodeur'],\n 'encodeur': !exists(json, 'encodeur') ? undefined : json['encodeur'],\n 'idrealisateurSuivi': !exists(json, 'idrealisateurSuivi') ? undefined : json['idrealisateurSuivi'],\n 'realisateurSuivi': !exists(json, 'realisateurSuivi') ? undefined : json['realisateurSuivi'],\n 'fromHope': !exists(json, 'fromHope') ? undefined : json['fromHope'],\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : (json['dateSuivi'] === null ? null : new Date(json['dateSuivi'])),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'nomApprenant': !exists(json, 'nomApprenant') ? undefined : json['nomApprenant'],\n 'prenomApprenant': !exists(json, 'prenomApprenant') ? undefined : json['prenomApprenant'],\n 'apprenant': !exists(json, 'apprenant') ? undefined : json['apprenant'],\n 'apprenantFullName': !exists(json, 'apprenantFullName') ? undefined : json['apprenantFullName'],\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : json['idtypeSuivi'],\n 'typeSuivi': !exists(json, 'typeSuivi') ? undefined : json['typeSuivi'],\n 'idsousTypeSuivi': !exists(json, 'idsousTypeSuivi') ? undefined : json['idsousTypeSuivi'],\n 'sousTypeSuivi': !exists(json, 'sousTypeSuivi') ? undefined : json['sousTypeSuivi'],\n 'origineSuivi': !exists(json, 'origineSuivi') ? undefined : EOrigineSuiviFromJSON(json['origineSuivi']),\n 'hiddenContent': !exists(json, 'hiddenContent') ? undefined : json['hiddenContent'],\n 'actionDateEcheance': !exists(json, 'actionDateEcheance') ? undefined : (json['actionDateEcheance'] === null ? null : new Date(json['actionDateEcheance'])),\n 'actionDateRealisation': !exists(json, 'actionDateRealisation') ? undefined : (json['actionDateRealisation'] === null ? null : new Date(json['actionDateRealisation'])),\n 'realisateurAction': !exists(json, 'realisateurAction') ? undefined : json['realisateurAction'],\n 'idcentre': !exists(json, 'idcentre') ? undefined : json['idcentre'],\n 'masquee': !exists(json, 'masquee') ? undefined : json['masquee'],\n };\n}\n\nexport function SuiviGridDtoToJSON(value?: SuiviGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuivi': value.idsuivi,\n 'idservice': value.idservice,\n 'service': value.service,\n 'centre': value.centre,\n 'userService': value.userService,\n 'idencodeur': value.idencodeur,\n 'encodeur': value.encodeur,\n 'idrealisateurSuivi': value.idrealisateurSuivi,\n 'realisateurSuivi': value.realisateurSuivi,\n 'fromHope': value.fromHope,\n 'dateSuivi': value.dateSuivi === undefined ? undefined : (value.dateSuivi === null ? null : value.dateSuivi.toISOString()),\n 'idapprenant': value.idapprenant,\n 'nomApprenant': value.nomApprenant,\n 'prenomApprenant': value.prenomApprenant,\n 'apprenant': value.apprenant,\n 'idtypeSuivi': value.idtypeSuivi,\n 'typeSuivi': value.typeSuivi,\n 'idsousTypeSuivi': value.idsousTypeSuivi,\n 'sousTypeSuivi': value.sousTypeSuivi,\n 'origineSuivi': EOrigineSuiviToJSON(value.origineSuivi),\n 'hiddenContent': value.hiddenContent,\n 'actionDateEcheance': value.actionDateEcheance === undefined ? undefined : (value.actionDateEcheance === null ? null : value.actionDateEcheance.toISOString()),\n 'actionDateRealisation': value.actionDateRealisation === undefined ? undefined : (value.actionDateRealisation === null ? null : value.actionDateRealisation.toISOString()),\n 'realisateurAction': value.realisateurAction,\n 'idcentre': value.idcentre,\n 'masquee': value.masquee,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SuiviGridDto } from './SuiviGridDto';\nimport {\n SuiviGridDtoFromJSON,\n SuiviGridDtoFromJSONTyped,\n SuiviGridDtoToJSON,\n} from './SuiviGridDto';\n\n/**\n * \n * @export\n * @interface SuiviGridDtoPaginatedResults\n */\nexport interface SuiviGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SuiviGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SuiviGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SuiviGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SuiviGridDtoPaginatedResults interface.\n */\nexport function instanceOfSuiviGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviGridDtoPaginatedResultsFromJSON(json: any): SuiviGridDtoPaginatedResults {\n return SuiviGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SuiviGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SuiviGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SuiviGridDtoPaginatedResultsToJSON(value?: SuiviGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SuiviGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EContentHidingMode } from './EContentHidingMode';\nimport {\n EContentHidingModeFromJSON,\n EContentHidingModeFromJSONTyped,\n EContentHidingModeToJSON,\n} from './EContentHidingMode';\nimport type { SuiviActionEditDto } from './SuiviActionEditDto';\nimport {\n SuiviActionEditDtoFromJSON,\n SuiviActionEditDtoFromJSONTyped,\n SuiviActionEditDtoToJSON,\n} from './SuiviActionEditDto';\nimport type { SuiviFichierGridDto } from './SuiviFichierGridDto';\nimport {\n SuiviFichierGridDtoFromJSON,\n SuiviFichierGridDtoFromJSONTyped,\n SuiviFichierGridDtoToJSON,\n} from './SuiviFichierGridDto';\n\n/**\n * \n * @export\n * @interface SuiviHopeEditDto\n */\nexport interface SuiviHopeEditDto {\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idsuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idservice?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n iduserService?: number;\n /**\n * \n * @type {string}\n * @memberof SuiviHopeEditDto\n */\n userService?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n creationUser?: number;\n /**\n * \n * @type {string}\n * @memberof SuiviHopeEditDto\n */\n encodeur?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviHopeEditDto\n */\n dateSuivi?: Date;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idapprenant?: number;\n /**\n * \n * @type {string}\n * @memberof SuiviHopeEditDto\n */\n apprenant?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idtypeSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idsousTypeSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n iddecisionCommissionTutelle?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idmode?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idlieuRencontre?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviHopeEditDto\n */\n contenu?: string | null;\n /**\n * \n * @type {EContentHidingMode}\n * @memberof SuiviHopeEditDto\n */\n contentHidingMode?: EContentHidingMode;\n /**\n * \n * @type {boolean}\n * @memberof SuiviHopeEditDto\n */\n action?: boolean;\n /**\n * \n * @type {SuiviActionEditDto}\n * @memberof SuiviHopeEditDto\n */\n suiviAction?: SuiviActionEditDto;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeEditDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {Array}\n * @memberof SuiviHopeEditDto\n */\n fichiers?: Array | null;\n}\n\n/**\n * Check if a given object implements the SuiviHopeEditDto interface.\n */\nexport function instanceOfSuiviHopeEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviHopeEditDtoFromJSON(json: any): SuiviHopeEditDto {\n return SuiviHopeEditDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviHopeEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviHopeEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'iduserService': !exists(json, 'iduserService') ? undefined : json['iduserService'],\n 'userService': !exists(json, 'userService') ? undefined : json['userService'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'encodeur': !exists(json, 'encodeur') ? undefined : json['encodeur'],\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : (new Date(json['dateSuivi'])),\n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'apprenant': !exists(json, 'apprenant') ? undefined : json['apprenant'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : json['idtypeSuivi'],\n 'idsousTypeSuivi': !exists(json, 'idsousTypeSuivi') ? undefined : json['idsousTypeSuivi'],\n 'iddecisionCommissionTutelle': !exists(json, 'iddecisionCommissionTutelle') ? undefined : json['iddecisionCommissionTutelle'],\n 'idmode': !exists(json, 'idmode') ? undefined : json['idmode'],\n 'idlieuRencontre': !exists(json, 'idlieuRencontre') ? undefined : json['idlieuRencontre'],\n 'contenu': !exists(json, 'contenu') ? undefined : json['contenu'],\n 'contentHidingMode': !exists(json, 'contentHidingMode') ? undefined : EContentHidingModeFromJSON(json['contentHidingMode']),\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'suiviAction': !exists(json, 'suiviAction') ? undefined : SuiviActionEditDtoFromJSON(json['suiviAction']),\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'fichiers': !exists(json, 'fichiers') ? undefined : (json['fichiers'] === null ? null : (json['fichiers'] as Array).map(SuiviFichierGridDtoFromJSON)),\n };\n}\n\nexport function SuiviHopeEditDtoToJSON(value?: SuiviHopeEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuivi': value.idsuivi,\n 'idservice': value.idservice,\n 'iduserService': value.iduserService,\n 'userService': value.userService,\n 'creationUser': value.creationUser,\n 'encodeur': value.encodeur,\n 'dateSuivi': value.dateSuivi === undefined ? undefined : (value.dateSuivi.toISOString()),\n 'idapprenant': value.idapprenant,\n 'apprenant': value.apprenant,\n 'idcontrat': value.idcontrat,\n 'idtypeSuivi': value.idtypeSuivi,\n 'idsousTypeSuivi': value.idsousTypeSuivi,\n 'iddecisionCommissionTutelle': value.iddecisionCommissionTutelle,\n 'idmode': value.idmode,\n 'idlieuRencontre': value.idlieuRencontre,\n 'contenu': value.contenu,\n 'contentHidingMode': EContentHidingModeToJSON(value.contentHidingMode),\n 'action': value.action,\n 'suiviAction': SuiviActionEditDtoToJSON(value.suiviAction),\n 'idmetier': value.idmetier,\n 'idlieuFormation': value.idlieuFormation,\n 'fichiers': value.fichiers === undefined ? undefined : (value.fichiers === null ? null : (value.fichiers as Array).map(SuiviFichierGridDtoToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EContentHidingMode } from './EContentHidingMode';\nimport {\n EContentHidingModeFromJSON,\n EContentHidingModeFromJSONTyped,\n EContentHidingModeToJSON,\n} from './EContentHidingMode';\nimport type { SuiviActionEditDto } from './SuiviActionEditDto';\nimport {\n SuiviActionEditDtoFromJSON,\n SuiviActionEditDtoFromJSONTyped,\n SuiviActionEditDtoToJSON,\n} from './SuiviActionEditDto';\n\n/**\n * \n * @export\n * @interface SuiviHopeMultipleEditDto\n */\nexport interface SuiviHopeMultipleEditDto {\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n idsuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n idservice?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n iduserService?: number;\n /**\n * \n * @type {string}\n * @memberof SuiviHopeMultipleEditDto\n */\n userService?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n creationUser?: number;\n /**\n * \n * @type {string}\n * @memberof SuiviHopeMultipleEditDto\n */\n encodeur?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviHopeMultipleEditDto\n */\n dateSuivi?: Date;\n /**\n * \n * @type {Array}\n * @memberof SuiviHopeMultipleEditDto\n */\n idsApprenant?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n idcontrat?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n idmetier?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n idtypeSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n idsousTypeSuivi?: number;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n iddecisionCommissionTutelle?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n idmode?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviHopeMultipleEditDto\n */\n idlieuRencontre?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviHopeMultipleEditDto\n */\n contenu?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SuiviHopeMultipleEditDto\n */\n action?: boolean;\n /**\n * \n * @type {EContentHidingMode}\n * @memberof SuiviHopeMultipleEditDto\n */\n contentHidingMode?: EContentHidingMode;\n /**\n * \n * @type {SuiviActionEditDto}\n * @memberof SuiviHopeMultipleEditDto\n */\n suiviAction?: SuiviActionEditDto;\n}\n\n/**\n * Check if a given object implements the SuiviHopeMultipleEditDto interface.\n */\nexport function instanceOfSuiviHopeMultipleEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviHopeMultipleEditDtoFromJSON(json: any): SuiviHopeMultipleEditDto {\n return SuiviHopeMultipleEditDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviHopeMultipleEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviHopeMultipleEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'iduserService': !exists(json, 'iduserService') ? undefined : json['iduserService'],\n 'userService': !exists(json, 'userService') ? undefined : json['userService'],\n 'creationUser': !exists(json, 'creationUser') ? undefined : json['creationUser'],\n 'encodeur': !exists(json, 'encodeur') ? undefined : json['encodeur'],\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : (new Date(json['dateSuivi'])),\n 'idsApprenant': !exists(json, 'idsApprenant') ? undefined : json['idsApprenant'],\n 'idcontrat': !exists(json, 'idcontrat') ? undefined : json['idcontrat'],\n 'idmetier': !exists(json, 'idmetier') ? undefined : json['idmetier'],\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : json['idtypeSuivi'],\n 'idsousTypeSuivi': !exists(json, 'idsousTypeSuivi') ? undefined : json['idsousTypeSuivi'],\n 'iddecisionCommissionTutelle': !exists(json, 'iddecisionCommissionTutelle') ? undefined : json['iddecisionCommissionTutelle'],\n 'idmode': !exists(json, 'idmode') ? undefined : json['idmode'],\n 'idlieuRencontre': !exists(json, 'idlieuRencontre') ? undefined : json['idlieuRencontre'],\n 'contenu': !exists(json, 'contenu') ? undefined : json['contenu'],\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'contentHidingMode': !exists(json, 'contentHidingMode') ? undefined : EContentHidingModeFromJSON(json['contentHidingMode']),\n 'suiviAction': !exists(json, 'suiviAction') ? undefined : SuiviActionEditDtoFromJSON(json['suiviAction']),\n };\n}\n\nexport function SuiviHopeMultipleEditDtoToJSON(value?: SuiviHopeMultipleEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuivi': value.idsuivi,\n 'idservice': value.idservice,\n 'iduserService': value.iduserService,\n 'userService': value.userService,\n 'creationUser': value.creationUser,\n 'encodeur': value.encodeur,\n 'dateSuivi': value.dateSuivi === undefined ? undefined : (value.dateSuivi.toISOString()),\n 'idsApprenant': value.idsApprenant,\n 'idcontrat': value.idcontrat,\n 'idmetier': value.idmetier,\n 'idtypeSuivi': value.idtypeSuivi,\n 'idsousTypeSuivi': value.idsousTypeSuivi,\n 'iddecisionCommissionTutelle': value.iddecisionCommissionTutelle,\n 'idmode': value.idmode,\n 'idlieuRencontre': value.idlieuRencontre,\n 'contenu': value.contenu,\n 'action': value.action,\n 'contentHidingMode': EContentHidingModeToJSON(value.contentHidingMode),\n 'suiviAction': SuiviActionEditDtoToJSON(value.suiviAction),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { EOrigineSuiviListSearch } from './EOrigineSuiviListSearch';\nimport {\n EOrigineSuiviListSearchFromJSON,\n EOrigineSuiviListSearchFromJSONTyped,\n EOrigineSuiviListSearchToJSON,\n} from './EOrigineSuiviListSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\n\n/**\n * \n * @export\n * @interface SuiviSearchDto\n */\nexport interface SuiviSearchDto {\n /**\n * \n * @type {number}\n * @memberof SuiviSearchDto\n */\n idapprenant?: number;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SuiviSearchDto\n */\n idrealisateurSuivi?: Int32ListSearch;\n /**\n * \n * @type {EOrigineSuiviListSearch}\n * @memberof SuiviSearchDto\n */\n origineSuivi?: EOrigineSuiviListSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof SuiviSearchDto\n */\n dateSuivi?: DateSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof SuiviSearchDto\n */\n typeSuivi?: Int32ListSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof SuiviSearchDto\n */\n onlyUserSuivis?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof SuiviSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SuiviSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof SuiviSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof SuiviSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof SuiviSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the SuiviSearchDto interface.\n */\nexport function instanceOfSuiviSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviSearchDtoFromJSON(json: any): SuiviSearchDto {\n return SuiviSearchDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idapprenant': !exists(json, 'idapprenant') ? undefined : json['idapprenant'],\n 'idrealisateurSuivi': !exists(json, 'idrealisateurSuivi') ? undefined : Int32ListSearchFromJSON(json['idrealisateurSuivi']),\n 'origineSuivi': !exists(json, 'origineSuivi') ? undefined : EOrigineSuiviListSearchFromJSON(json['origineSuivi']),\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : DateSearchFromJSON(json['dateSuivi']),\n 'typeSuivi': !exists(json, 'typeSuivi') ? undefined : Int32ListSearchFromJSON(json['typeSuivi']),\n 'onlyUserSuivis': !exists(json, 'onlyUserSuivis') ? undefined : BooleanSearchFromJSON(json['onlyUserSuivis']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function SuiviSearchDtoToJSON(value?: SuiviSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idapprenant': value.idapprenant,\n 'idrealisateurSuivi': Int32ListSearchToJSON(value.idrealisateurSuivi),\n 'origineSuivi': EOrigineSuiviListSearchToJSON(value.origineSuivi),\n 'dateSuivi': DateSearchToJSON(value.dateSuivi),\n 'typeSuivi': Int32ListSearchToJSON(value.typeSuivi),\n 'onlyUserSuivis': BooleanSearchToJSON(value.onlyUserSuivis),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SuiviSiegeLieuGridDto\n */\nexport interface SuiviSiegeLieuGridDto {\n /**\n * \n * @type {number}\n * @memberof SuiviSiegeLieuGridDto\n */\n idsuivi?: number | null;\n /**\n * \n * @type {number}\n * @memberof SuiviSiegeLieuGridDto\n */\n idservice?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviSiegeLieuGridDto\n */\n service?: string | null;\n /**\n * \n * @type {string}\n * @memberof SuiviSiegeLieuGridDto\n */\n realisateurSuivi?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviSiegeLieuGridDto\n */\n idencodeur?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviSiegeLieuGridDto\n */\n encodeur?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviSiegeLieuGridDto\n */\n idrealisateurSuivi?: number | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviSiegeLieuGridDto\n */\n dateSuivi?: Date | null;\n /**\n * \n * @type {number}\n * @memberof SuiviSiegeLieuGridDto\n */\n idsiegeSocial?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviSiegeLieuGridDto\n */\n siegeSocial?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviSiegeLieuGridDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviSiegeLieuGridDto\n */\n lieuFormation?: string | null;\n /**\n * \n * @type {number}\n * @memberof SuiviSiegeLieuGridDto\n */\n idtypeSuivi?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviSiegeLieuGridDto\n */\n typeSuivi?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SuiviSiegeLieuGridDto\n */\n hiddenContent?: boolean | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviSiegeLieuGridDto\n */\n actionDateEcheance?: Date | null;\n /**\n * \n * @type {Date}\n * @memberof SuiviSiegeLieuGridDto\n */\n actionDateRealisation?: Date | null;\n /**\n * \n * @type {number}\n * @memberof SuiviSiegeLieuGridDto\n */\n realisateurAction?: number | null;\n /**\n * \n * @type {string}\n * @memberof SuiviSiegeLieuGridDto\n */\n idsuserMasquage?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SuiviSiegeLieuGridDto\n */\n masquee?: boolean;\n}\n\n/**\n * Check if a given object implements the SuiviSiegeLieuGridDto interface.\n */\nexport function instanceOfSuiviSiegeLieuGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviSiegeLieuGridDtoFromJSON(json: any): SuiviSiegeLieuGridDto {\n return SuiviSiegeLieuGridDtoFromJSONTyped(json, false);\n}\n\nexport function SuiviSiegeLieuGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviSiegeLieuGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idsuivi': !exists(json, 'idsuivi') ? undefined : json['idsuivi'],\n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'service': !exists(json, 'service') ? undefined : json['service'],\n 'realisateurSuivi': !exists(json, 'realisateurSuivi') ? undefined : json['realisateurSuivi'],\n 'idencodeur': !exists(json, 'idencodeur') ? undefined : json['idencodeur'],\n 'encodeur': !exists(json, 'encodeur') ? undefined : json['encodeur'],\n 'idrealisateurSuivi': !exists(json, 'idrealisateurSuivi') ? undefined : json['idrealisateurSuivi'],\n 'dateSuivi': !exists(json, 'dateSuivi') ? undefined : (json['dateSuivi'] === null ? null : new Date(json['dateSuivi'])),\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'siegeSocial': !exists(json, 'siegeSocial') ? undefined : json['siegeSocial'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'lieuFormation': !exists(json, 'lieuFormation') ? undefined : json['lieuFormation'],\n 'idtypeSuivi': !exists(json, 'idtypeSuivi') ? undefined : json['idtypeSuivi'],\n 'typeSuivi': !exists(json, 'typeSuivi') ? undefined : json['typeSuivi'],\n 'hiddenContent': !exists(json, 'hiddenContent') ? undefined : json['hiddenContent'],\n 'actionDateEcheance': !exists(json, 'actionDateEcheance') ? undefined : (json['actionDateEcheance'] === null ? null : new Date(json['actionDateEcheance'])),\n 'actionDateRealisation': !exists(json, 'actionDateRealisation') ? undefined : (json['actionDateRealisation'] === null ? null : new Date(json['actionDateRealisation'])),\n 'realisateurAction': !exists(json, 'realisateurAction') ? undefined : json['realisateurAction'],\n 'idsuserMasquage': !exists(json, 'idsuserMasquage') ? undefined : json['idsuserMasquage'],\n 'masquee': !exists(json, 'masquee') ? undefined : json['masquee'],\n };\n}\n\nexport function SuiviSiegeLieuGridDtoToJSON(value?: SuiviSiegeLieuGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idsuivi': value.idsuivi,\n 'idservice': value.idservice,\n 'service': value.service,\n 'realisateurSuivi': value.realisateurSuivi,\n 'idencodeur': value.idencodeur,\n 'encodeur': value.encodeur,\n 'idrealisateurSuivi': value.idrealisateurSuivi,\n 'dateSuivi': value.dateSuivi === undefined ? undefined : (value.dateSuivi === null ? null : value.dateSuivi.toISOString()),\n 'idsiegeSocial': value.idsiegeSocial,\n 'siegeSocial': value.siegeSocial,\n 'idlieuFormation': value.idlieuFormation,\n 'lieuFormation': value.lieuFormation,\n 'idtypeSuivi': value.idtypeSuivi,\n 'typeSuivi': value.typeSuivi,\n 'hiddenContent': value.hiddenContent,\n 'actionDateEcheance': value.actionDateEcheance === undefined ? undefined : (value.actionDateEcheance === null ? null : value.actionDateEcheance.toISOString()),\n 'actionDateRealisation': value.actionDateRealisation === undefined ? undefined : (value.actionDateRealisation === null ? null : value.actionDateRealisation.toISOString()),\n 'realisateurAction': value.realisateurAction,\n 'idsuserMasquage': value.idsuserMasquage,\n 'masquee': value.masquee,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { SuiviSiegeLieuGridDto } from './SuiviSiegeLieuGridDto';\nimport {\n SuiviSiegeLieuGridDtoFromJSON,\n SuiviSiegeLieuGridDtoFromJSONTyped,\n SuiviSiegeLieuGridDtoToJSON,\n} from './SuiviSiegeLieuGridDto';\n\n/**\n * \n * @export\n * @interface SuiviSiegeLieuGridDtoPaginatedResults\n */\nexport interface SuiviSiegeLieuGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof SuiviSiegeLieuGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof SuiviSiegeLieuGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof SuiviSiegeLieuGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the SuiviSiegeLieuGridDtoPaginatedResults interface.\n */\nexport function instanceOfSuiviSiegeLieuGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SuiviSiegeLieuGridDtoPaginatedResultsFromJSON(json: any): SuiviSiegeLieuGridDtoPaginatedResults {\n return SuiviSiegeLieuGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function SuiviSiegeLieuGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SuiviSiegeLieuGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(SuiviSiegeLieuGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function SuiviSiegeLieuGridDtoPaginatedResultsToJSON(value?: SuiviSiegeLieuGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(SuiviSiegeLieuGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SystemInfoDto\n */\nexport interface SystemInfoDto {\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n applicationVersion?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n beIDVersion?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n environment?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n database?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n walterUrl?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n hopeUrl?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof SystemInfoDto\n */\n isTestEnv?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof SystemInfoDto\n */\n enableNextFeatures?: boolean;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n ssrsReportServerUrl?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n applicationWideWarning?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n manuelUrl?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n priseEnMainUrl?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n arWalterManuelUrl?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n arHopeManuelUrl?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n walterStartupPopupText?: string | null;\n /**\n * \n * @type {string}\n * @memberof SystemInfoDto\n */\n hopeStartupPopupText?: string | null;\n /**\n * \n * @type {Date}\n * @memberof SystemInfoDto\n */\n startupMessageEndDate?: Date;\n}\n\n/**\n * Check if a given object implements the SystemInfoDto interface.\n */\nexport function instanceOfSystemInfoDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SystemInfoDtoFromJSON(json: any): SystemInfoDto {\n return SystemInfoDtoFromJSONTyped(json, false);\n}\n\nexport function SystemInfoDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): SystemInfoDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'applicationVersion': !exists(json, 'applicationVersion') ? undefined : json['applicationVersion'],\n 'beIDVersion': !exists(json, 'beIDVersion') ? undefined : json['beIDVersion'],\n 'environment': !exists(json, 'environment') ? undefined : json['environment'],\n 'database': !exists(json, 'database') ? undefined : json['database'],\n 'walterUrl': !exists(json, 'walterUrl') ? undefined : json['walterUrl'],\n 'hopeUrl': !exists(json, 'hopeUrl') ? undefined : json['hopeUrl'],\n 'isTestEnv': !exists(json, 'isTestEnv') ? undefined : json['isTestEnv'],\n 'enableNextFeatures': !exists(json, 'enableNextFeatures') ? undefined : json['enableNextFeatures'],\n 'ssrsReportServerUrl': !exists(json, 'ssrsReportServerUrl') ? undefined : json['ssrsReportServerUrl'],\n 'applicationWideWarning': !exists(json, 'applicationWideWarning') ? undefined : json['applicationWideWarning'],\n 'manuelUrl': !exists(json, 'manuelUrl') ? undefined : json['manuelUrl'],\n 'priseEnMainUrl': !exists(json, 'priseEnMainUrl') ? undefined : json['priseEnMainUrl'],\n 'arWalterManuelUrl': !exists(json, 'arWalterManuelUrl') ? undefined : json['arWalterManuelUrl'],\n 'arHopeManuelUrl': !exists(json, 'arHopeManuelUrl') ? undefined : json['arHopeManuelUrl'],\n 'walterStartupPopupText': !exists(json, 'walterStartupPopupText') ? undefined : json['walterStartupPopupText'],\n 'hopeStartupPopupText': !exists(json, 'hopeStartupPopupText') ? undefined : json['hopeStartupPopupText'],\n 'startupMessageEndDate': !exists(json, 'startupMessageEndDate') ? undefined : (new Date(json['startupMessageEndDate'])),\n };\n}\n\nexport function SystemInfoDtoToJSON(value?: SystemInfoDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'applicationVersion': value.applicationVersion,\n 'beIDVersion': value.beIDVersion,\n 'environment': value.environment,\n 'database': value.database,\n 'walterUrl': value.walterUrl,\n 'hopeUrl': value.hopeUrl,\n 'isTestEnv': value.isTestEnv,\n 'enableNextFeatures': value.enableNextFeatures,\n 'ssrsReportServerUrl': value.ssrsReportServerUrl,\n 'applicationWideWarning': value.applicationWideWarning,\n 'manuelUrl': value.manuelUrl,\n 'priseEnMainUrl': value.priseEnMainUrl,\n 'arWalterManuelUrl': value.arWalterManuelUrl,\n 'arHopeManuelUrl': value.arHopeManuelUrl,\n 'walterStartupPopupText': value.walterStartupPopupText,\n 'hopeStartupPopupText': value.hopeStartupPopupText,\n 'startupMessageEndDate': value.startupMessageEndDate === undefined ? undefined : (value.startupMessageEndDate.toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TelephoneReplaceDto\n */\nexport interface TelephoneReplaceDto {\n /**\n * \n * @type {number}\n * @memberof TelephoneReplaceDto\n */\n oldIdtelephone?: number;\n /**\n * \n * @type {number}\n * @memberof TelephoneReplaceDto\n */\n newIdtelephone?: number | null;\n /**\n * \n * @type {string}\n * @memberof TelephoneReplaceDto\n */\n numero?: string | null;\n /**\n * \n * @type {number}\n * @memberof TelephoneReplaceDto\n */\n idtypeTelephone?: number | null;\n /**\n * \n * @type {number}\n * @memberof TelephoneReplaceDto\n */\n idpersonne?: number;\n /**\n * \n * @type {boolean}\n * @memberof TelephoneReplaceDto\n */\n isNew?: boolean;\n}\n\n/**\n * Check if a given object implements the TelephoneReplaceDto interface.\n */\nexport function instanceOfTelephoneReplaceDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TelephoneReplaceDtoFromJSON(json: any): TelephoneReplaceDto {\n return TelephoneReplaceDtoFromJSONTyped(json, false);\n}\n\nexport function TelephoneReplaceDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TelephoneReplaceDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'oldIdtelephone': !exists(json, 'oldIdtelephone') ? undefined : json['oldIdtelephone'],\n 'newIdtelephone': !exists(json, 'newIdtelephone') ? undefined : json['newIdtelephone'],\n 'numero': !exists(json, 'numero') ? undefined : json['numero'],\n 'idtypeTelephone': !exists(json, 'idtypeTelephone') ? undefined : json['idtypeTelephone'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'isNew': !exists(json, 'isNew') ? undefined : json['isNew'],\n };\n}\n\nexport function TelephoneReplaceDtoToJSON(value?: TelephoneReplaceDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'oldIdtelephone': value.oldIdtelephone,\n 'newIdtelephone': value.newIdtelephone,\n 'numero': value.numero,\n 'idtypeTelephone': value.idtypeTelephone,\n 'idpersonne': value.idpersonne,\n 'isNew': value.isNew,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface TitrePedagogiqueSearch\n */\nexport interface TitrePedagogiqueSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof TitrePedagogiqueSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof TitrePedagogiqueSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof TitrePedagogiqueSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TitrePedagogiqueSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TitrePedagogiqueSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TitrePedagogiqueSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TitrePedagogiqueSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TitrePedagogiqueSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TitrePedagogiqueSearch interface.\n */\nexport function instanceOfTitrePedagogiqueSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TitrePedagogiqueSearchFromJSON(json: any): TitrePedagogiqueSearch {\n return TitrePedagogiqueSearchFromJSONTyped(json, false);\n}\n\nexport function TitrePedagogiqueSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): TitrePedagogiqueSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TitrePedagogiqueSearchToJSON(value?: TitrePedagogiqueSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { FileUploadDto } from './FileUploadDto';\nimport {\n FileUploadDtoFromJSON,\n FileUploadDtoFromJSONTyped,\n FileUploadDtoToJSON,\n} from './FileUploadDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface TuteurEditDto\n */\nexport interface TuteurEditDto {\n /**\n * \n * @type {number}\n * @memberof TuteurEditDto\n */\n idtuteur?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurEditDto\n */\n idtuteurLieu?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurEditDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurEditDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof TuteurEditDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof TuteurEditDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof TuteurEditDto\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n remarque?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurEditDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurEditDto\n */\n tuteurActif?: boolean;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n fonction?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurEditDto\n */\n sortieEntreprise?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurEditDto\n */\n contactPrincipal?: boolean;\n /**\n * \n * @type {number}\n * @memberof TuteurEditDto\n */\n capaciteFormative?: number | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurEditDto\n */\n dateCv?: Date | null;\n /**\n * \n * @type {number}\n * @memberof TuteurEditDto\n */\n idfichierCv?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof TuteurEditDto\n */\n fichierCv?: FileUploadDto;\n /**\n * \n * @type {boolean}\n * @memberof TuteurEditDto\n */\n anneesExperience?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurEditDto\n */\n tutorat?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurEditDto\n */\n vdc?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurEditDto\n */\n derogation?: boolean;\n /**\n * \n * @type {number}\n * @memberof TuteurEditDto\n */\n idresponsableDerogation?: number | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurEditDto\n */\n dateDerogation?: Date | null;\n /**\n * \n * @type {number}\n * @memberof TuteurEditDto\n */\n idfichierDerogation?: number | null;\n /**\n * \n * @type {FileUploadDto}\n * @memberof TuteurEditDto\n */\n fichierDerogation?: FileUploadDto;\n /**\n * \n * @type {Array}\n * @memberof TuteurEditDto\n */\n idmetiers?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TuteurEditDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof TuteurEditDto\n */\n photo?: string | null;\n /**\n * \n * @type {number}\n * @memberof TuteurEditDto\n */\n idfichierPhoto?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurEditDto\n */\n spp?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurEditDto\n */\n capaciteFormativeAtteinte?: boolean | null;\n}\n\n/**\n * Check if a given object implements the TuteurEditDto interface.\n */\nexport function instanceOfTuteurEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurEditDtoFromJSON(json: any): TuteurEditDto {\n return TuteurEditDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'idtuteurLieu': !exists(json, 'idtuteurLieu') ? undefined : json['idtuteurLieu'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'tuteurActif': !exists(json, 'tuteurActif') ? undefined : json['tuteurActif'],\n 'fonction': !exists(json, 'fonction') ? undefined : json['fonction'],\n 'sortieEntreprise': !exists(json, 'sortieEntreprise') ? undefined : (json['sortieEntreprise'] === null ? null : new Date(json['sortieEntreprise'])),\n 'contactPrincipal': !exists(json, 'contactPrincipal') ? undefined : json['contactPrincipal'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n 'dateCv': !exists(json, 'dateCv') ? undefined : (json['dateCv'] === null ? null : new Date(json['dateCv'])),\n 'idfichierCv': !exists(json, 'idfichierCv') ? undefined : json['idfichierCv'],\n 'fichierCv': !exists(json, 'fichierCv') ? undefined : FileUploadDtoFromJSON(json['fichierCv']),\n 'anneesExperience': !exists(json, 'anneesExperience') ? undefined : json['anneesExperience'],\n 'tutorat': !exists(json, 'tutorat') ? undefined : json['tutorat'],\n 'vdc': !exists(json, 'vdc') ? undefined : json['vdc'],\n 'derogation': !exists(json, 'derogation') ? undefined : json['derogation'],\n 'idresponsableDerogation': !exists(json, 'idresponsableDerogation') ? undefined : json['idresponsableDerogation'],\n 'dateDerogation': !exists(json, 'dateDerogation') ? undefined : (json['dateDerogation'] === null ? null : new Date(json['dateDerogation'])),\n 'idfichierDerogation': !exists(json, 'idfichierDerogation') ? undefined : json['idfichierDerogation'],\n 'fichierDerogation': !exists(json, 'fichierDerogation') ? undefined : FileUploadDtoFromJSON(json['fichierDerogation']),\n 'idmetiers': !exists(json, 'idmetiers') ? undefined : json['idmetiers'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'photo': !exists(json, 'photo') ? undefined : json['photo'],\n 'idfichierPhoto': !exists(json, 'idfichierPhoto') ? undefined : json['idfichierPhoto'],\n 'spp': !exists(json, 'spp') ? undefined : json['spp'],\n 'capaciteFormativeAtteinte': !exists(json, 'capaciteFormativeAtteinte') ? undefined : json['capaciteFormativeAtteinte'],\n };\n}\n\nexport function TuteurEditDtoToJSON(value?: TuteurEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteur': value.idtuteur,\n 'idtuteurLieu': value.idtuteurLieu,\n 'idlieuFormation': value.idlieuFormation,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'codesexe': value.codesexe,\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n 'remarque': value.remarque,\n 'actif': value.actif,\n 'tuteurActif': value.tuteurActif,\n 'fonction': value.fonction,\n 'sortieEntreprise': value.sortieEntreprise === undefined ? undefined : (value.sortieEntreprise === null ? null : value.sortieEntreprise.toISOString()),\n 'contactPrincipal': value.contactPrincipal,\n 'capaciteFormative': value.capaciteFormative,\n 'dateCv': value.dateCv === undefined ? undefined : (value.dateCv === null ? null : value.dateCv.toISOString()),\n 'idfichierCv': value.idfichierCv,\n 'fichierCv': FileUploadDtoToJSON(value.fichierCv),\n 'anneesExperience': value.anneesExperience,\n 'tutorat': value.tutorat,\n 'vdc': value.vdc,\n 'derogation': value.derogation,\n 'idresponsableDerogation': value.idresponsableDerogation,\n 'dateDerogation': value.dateDerogation === undefined ? undefined : (value.dateDerogation === null ? null : value.dateDerogation.toISOString()),\n 'idfichierDerogation': value.idfichierDerogation,\n 'fichierDerogation': FileUploadDtoToJSON(value.fichierDerogation),\n 'idmetiers': value.idmetiers,\n 'idpersonne': value.idpersonne,\n 'photo': value.photo,\n 'idfichierPhoto': value.idfichierPhoto,\n 'spp': value.spp,\n 'capaciteFormativeAtteinte': value.capaciteFormativeAtteinte,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface TuteurGridDto\n */\nexport interface TuteurGridDto {\n /**\n * \n * @type {number}\n * @memberof TuteurGridDto\n */\n idtuteur?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurGridDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurGridDto\n */\n c?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurGridDto\n */\n cf?: number;\n /**\n * \n * @type {string}\n * @memberof TuteurGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {number}\n * @memberof TuteurGridDto\n */\n lastLieuFormationId?: number | null;\n /**\n * \n * @type {string}\n * @memberof TuteurGridDto\n */\n lastLieuFormationNom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurGridDto\n */\n lastLieuFormationEnseigne?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof TuteurGridDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof TuteurGridDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof TuteurGridDto\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof TuteurGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof TuteurGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurGridDto\n */\n actif?: boolean;\n /**\n * \n * @type {string}\n * @memberof TuteurGridDto\n */\n registreNational?: string | null;\n}\n\n/**\n * Check if a given object implements the TuteurGridDto interface.\n */\nexport function instanceOfTuteurGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurGridDtoFromJSON(json: any): TuteurGridDto {\n return TuteurGridDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'c': !exists(json, 'c') ? undefined : json['c'],\n 'cf': !exists(json, 'cf') ? undefined : json['cf'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'lastLieuFormationId': !exists(json, 'lastLieuFormationId') ? undefined : json['lastLieuFormationId'],\n 'lastLieuFormationNom': !exists(json, 'lastLieuFormationNom') ? undefined : json['lastLieuFormationNom'],\n 'lastLieuFormationEnseigne': !exists(json, 'lastLieuFormationEnseigne') ? undefined : json['lastLieuFormationEnseigne'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n };\n}\n\nexport function TuteurGridDtoToJSON(value?: TuteurGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteur': value.idtuteur,\n 'idpersonne': value.idpersonne,\n 'c': value.c,\n 'cf': value.cf,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'lastLieuFormationId': value.lastLieuFormationId,\n 'lastLieuFormationNom': value.lastLieuFormationNom,\n 'lastLieuFormationEnseigne': value.lastLieuFormationEnseigne,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n 'localite': value.localite,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'actif': value.actif,\n 'registreNational': value.registreNational,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { TuteurGridDto } from './TuteurGridDto';\nimport {\n TuteurGridDtoFromJSON,\n TuteurGridDtoFromJSONTyped,\n TuteurGridDtoToJSON,\n} from './TuteurGridDto';\n\n/**\n * \n * @export\n * @interface TuteurGridDtoPaginatedResults\n */\nexport interface TuteurGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof TuteurGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof TuteurGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the TuteurGridDtoPaginatedResults interface.\n */\nexport function instanceOfTuteurGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurGridDtoPaginatedResultsFromJSON(json: any): TuteurGridDtoPaginatedResults {\n return TuteurGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function TuteurGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(TuteurGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function TuteurGridDtoPaginatedResultsToJSON(value?: TuteurGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(TuteurGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TuteurHistoryGridDto\n */\nexport interface TuteurHistoryGridDto {\n /**\n * \n * @type {number}\n * @memberof TuteurHistoryGridDto\n */\n idtuteurHistory?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurHistoryGridDto\n */\n iduser?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurHistoryGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurHistoryGridDto\n */\n idtuteur?: number;\n /**\n * \n * @type {string}\n * @memberof TuteurHistoryGridDto\n */\n action?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurHistoryGridDto\n */\n actionType?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurHistoryGridDto\n */\n actionDate?: Date;\n /**\n * \n * @type {string}\n * @memberof TuteurHistoryGridDto\n */\n userName?: string | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurHistoryGridDto\n */\n ifapmeSide?: Array | null;\n}\n\n/**\n * Check if a given object implements the TuteurHistoryGridDto interface.\n */\nexport function instanceOfTuteurHistoryGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurHistoryGridDtoFromJSON(json: any): TuteurHistoryGridDto {\n return TuteurHistoryGridDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurHistoryGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurHistoryGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteurHistory': !exists(json, 'idtuteurHistory') ? undefined : json['idtuteurHistory'],\n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'action': !exists(json, 'action') ? undefined : json['action'],\n 'actionType': !exists(json, 'actionType') ? undefined : json['actionType'],\n 'actionDate': !exists(json, 'actionDate') ? undefined : (new Date(json['actionDate'])),\n 'userName': !exists(json, 'userName') ? undefined : json['userName'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n };\n}\n\nexport function TuteurHistoryGridDtoToJSON(value?: TuteurHistoryGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteurHistory': value.idtuteurHistory,\n 'iduser': value.iduser,\n 'idpersonne': value.idpersonne,\n 'idtuteur': value.idtuteur,\n 'action': value.action,\n 'actionType': value.actionType,\n 'actionDate': value.actionDate === undefined ? undefined : (value.actionDate.toISOString()),\n 'userName': value.userName,\n 'ifapmeSide': value.ifapmeSide,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { TuteurHistoryGridDto } from './TuteurHistoryGridDto';\nimport {\n TuteurHistoryGridDtoFromJSON,\n TuteurHistoryGridDtoFromJSONTyped,\n TuteurHistoryGridDtoToJSON,\n} from './TuteurHistoryGridDto';\n\n/**\n * \n * @export\n * @interface TuteurHistoryGridDtoPaginatedResults\n */\nexport interface TuteurHistoryGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof TuteurHistoryGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof TuteurHistoryGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurHistoryGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the TuteurHistoryGridDtoPaginatedResults interface.\n */\nexport function instanceOfTuteurHistoryGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurHistoryGridDtoPaginatedResultsFromJSON(json: any): TuteurHistoryGridDtoPaginatedResults {\n return TuteurHistoryGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function TuteurHistoryGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurHistoryGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(TuteurHistoryGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function TuteurHistoryGridDtoPaginatedResultsToJSON(value?: TuteurHistoryGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(TuteurHistoryGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface TuteurHistorySearch\n */\nexport interface TuteurHistorySearch {\n /**\n * \n * @type {number}\n * @memberof TuteurHistorySearch\n */\n idtuteur?: number;\n /**\n * \n * @type {Array}\n * @memberof TuteurHistorySearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurHistorySearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TuteurHistorySearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurHistorySearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TuteurHistorySearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TuteurHistorySearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TuteurHistorySearch interface.\n */\nexport function instanceOfTuteurHistorySearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurHistorySearchFromJSON(json: any): TuteurHistorySearch {\n return TuteurHistorySearchFromJSONTyped(json, false);\n}\n\nexport function TuteurHistorySearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurHistorySearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TuteurHistorySearchToJSON(value?: TuteurHistorySearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteur': value.idtuteur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AdresseDto } from './AdresseDto';\nimport {\n AdresseDtoFromJSON,\n AdresseDtoFromJSONTyped,\n AdresseDtoToJSON,\n} from './AdresseDto';\nimport type { CompteBancaireDto } from './CompteBancaireDto';\nimport {\n CompteBancaireDtoFromJSON,\n CompteBancaireDtoFromJSONTyped,\n CompteBancaireDtoToJSON,\n} from './CompteBancaireDto';\n\n/**\n * \n * @export\n * @interface TuteurLieuDoublonGridDto\n */\nexport interface TuteurLieuDoublonGridDto {\n /**\n * \n * @type {number}\n * @memberof TuteurLieuDoublonGridDto\n */\n idTuteurLieu?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuDoublonGridDto\n */\n idtuteur?: number | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurLieuDoublonGridDto\n */\n dateCv?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n anneesExperience?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n tutorat?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n vdc?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n derogation?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n idresponsableDerogation?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurLieuDoublonGridDto\n */\n dateDerogation?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuDoublonGridDto\n */\n idmetiers?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuDoublonGridDto\n */\n idpersonne?: number;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {AdresseDto}\n * @memberof TuteurLieuDoublonGridDto\n */\n adresseDto?: AdresseDto;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n readonly adresse?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n readonly codePostal?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n readonly localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n codePaysNaissance?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurLieuDoublonGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n numeroIdentification?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {CompteBancaireDto}\n * @memberof TuteurLieuDoublonGridDto\n */\n compteBancaire?: CompteBancaireDto;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n beid?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n beidnumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurLieuDoublonGridDto\n */\n dateDeces?: Date | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n localiteNaissance?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonGridDto\n */\n communeNaissance?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n isApprenant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n isRepresentant?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n isTuteur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n isChefEntreprise?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n isCollaborateur?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n isDelegueTutelle?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n isConseillePedagogique?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonGridDto\n */\n isContact?: boolean;\n}\n\n/**\n * Check if a given object implements the TuteurLieuDoublonGridDto interface.\n */\nexport function instanceOfTuteurLieuDoublonGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurLieuDoublonGridDtoFromJSON(json: any): TuteurLieuDoublonGridDto {\n return TuteurLieuDoublonGridDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurLieuDoublonGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurLieuDoublonGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idTuteurLieu': !exists(json, 'idTuteurLieu') ? undefined : json['idTuteurLieu'],\n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'dateCv': !exists(json, 'dateCv') ? undefined : (json['dateCv'] === null ? null : new Date(json['dateCv'])),\n 'anneesExperience': !exists(json, 'anneesExperience') ? undefined : json['anneesExperience'],\n 'tutorat': !exists(json, 'tutorat') ? undefined : json['tutorat'],\n 'vdc': !exists(json, 'vdc') ? undefined : json['vdc'],\n 'derogation': !exists(json, 'derogation') ? undefined : json['derogation'],\n 'idresponsableDerogation': !exists(json, 'idresponsableDerogation') ? undefined : json['idresponsableDerogation'],\n 'dateDerogation': !exists(json, 'dateDerogation') ? undefined : (json['dateDerogation'] === null ? null : new Date(json['dateDerogation'])),\n 'idmetiers': !exists(json, 'idmetiers') ? undefined : json['idmetiers'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'adresseDto': !exists(json, 'adresseDto') ? undefined : AdresseDtoFromJSON(json['adresseDto']),\n 'adresse': !exists(json, 'adresse') ? undefined : json['adresse'],\n 'codePostal': !exists(json, 'codePostal') ? undefined : json['codePostal'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codePaysNaissance': !exists(json, 'codePaysNaissance') ? undefined : json['codePaysNaissance'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'numeroIdentification': !exists(json, 'numeroIdentification') ? undefined : json['numeroIdentification'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'compteBancaire': !exists(json, 'compteBancaire') ? undefined : CompteBancaireDtoFromJSON(json['compteBancaire']),\n 'beid': !exists(json, 'beid') ? undefined : json['beid'],\n 'beidnumber': !exists(json, 'beidnumber') ? undefined : json['beidnumber'],\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateDeces': !exists(json, 'dateDeces') ? undefined : (json['dateDeces'] === null ? null : new Date(json['dateDeces'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n 'communeNaissance': !exists(json, 'communeNaissance') ? undefined : json['communeNaissance'],\n 'isApprenant': !exists(json, 'isApprenant') ? undefined : json['isApprenant'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'isRepresentant': !exists(json, 'isRepresentant') ? undefined : json['isRepresentant'],\n 'isTuteur': !exists(json, 'isTuteur') ? undefined : json['isTuteur'],\n 'isChefEntreprise': !exists(json, 'isChefEntreprise') ? undefined : json['isChefEntreprise'],\n 'isCollaborateur': !exists(json, 'isCollaborateur') ? undefined : json['isCollaborateur'],\n 'isDelegueTutelle': !exists(json, 'isDelegueTutelle') ? undefined : json['isDelegueTutelle'],\n 'isConseillePedagogique': !exists(json, 'isConseillePedagogique') ? undefined : json['isConseillePedagogique'],\n 'isContact': !exists(json, 'isContact') ? undefined : json['isContact'],\n };\n}\n\nexport function TuteurLieuDoublonGridDtoToJSON(value?: TuteurLieuDoublonGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idTuteurLieu': value.idTuteurLieu,\n 'idtuteur': value.idtuteur,\n 'dateCv': value.dateCv === undefined ? undefined : (value.dateCv === null ? null : value.dateCv.toISOString()),\n 'anneesExperience': value.anneesExperience,\n 'tutorat': value.tutorat,\n 'vdc': value.vdc,\n 'derogation': value.derogation,\n 'idresponsableDerogation': value.idresponsableDerogation,\n 'dateDerogation': value.dateDerogation === undefined ? undefined : (value.dateDerogation === null ? null : value.dateDerogation.toISOString()),\n 'idmetiers': value.idmetiers,\n 'idpersonne': value.idpersonne,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'adresseDto': AdresseDtoToJSON(value.adresseDto),\n 'nationalite': value.nationalite,\n 'codePaysNaissance': value.codePaysNaissance,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'registreNational': value.registreNational,\n 'numeroIdentification': value.numeroIdentification,\n 'codesexe': value.codesexe,\n 'compteBancaire': CompteBancaireDtoToJSON(value.compteBancaire),\n 'beid': value.beid,\n 'beidnumber': value.beidnumber,\n 'remarque': value.remarque,\n 'dateDeces': value.dateDeces === undefined ? undefined : (value.dateDeces === null ? null : value.dateDeces.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n 'communeNaissance': value.communeNaissance,\n 'isApprenant': value.isApprenant,\n 'isFormateur': value.isFormateur,\n 'isRepresentant': value.isRepresentant,\n 'isTuteur': value.isTuteur,\n 'isChefEntreprise': value.isChefEntreprise,\n 'isCollaborateur': value.isCollaborateur,\n 'isDelegueTutelle': value.isDelegueTutelle,\n 'isConseillePedagogique': value.isConseillePedagogique,\n 'isContact': value.isContact,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { TuteurLieuDoublonGridDto } from './TuteurLieuDoublonGridDto';\nimport {\n TuteurLieuDoublonGridDtoFromJSON,\n TuteurLieuDoublonGridDtoFromJSONTyped,\n TuteurLieuDoublonGridDtoToJSON,\n} from './TuteurLieuDoublonGridDto';\n\n/**\n * \n * @export\n * @interface TuteurLieuDoublonGridDtoPaginatedResults\n */\nexport interface TuteurLieuDoublonGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof TuteurLieuDoublonGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuDoublonGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuDoublonGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the TuteurLieuDoublonGridDtoPaginatedResults interface.\n */\nexport function instanceOfTuteurLieuDoublonGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurLieuDoublonGridDtoPaginatedResultsFromJSON(json: any): TuteurLieuDoublonGridDtoPaginatedResults {\n return TuteurLieuDoublonGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function TuteurLieuDoublonGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurLieuDoublonGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(TuteurLieuDoublonGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function TuteurLieuDoublonGridDtoPaginatedResultsToJSON(value?: TuteurLieuDoublonGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(TuteurLieuDoublonGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface TuteurLieuDoublonSearchDto\n */\nexport interface TuteurLieuDoublonSearchDto {\n /**\n * \n * @type {number}\n * @memberof TuteurLieuDoublonSearchDto\n */\n idtuteur?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuDoublonSearchDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonSearchDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonSearchDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonSearchDto\n */\n registreNational?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurLieuDoublonSearchDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonSearchDto\n */\n nationalite?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonSearchDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {TelephoneDto}\n * @memberof TuteurLieuDoublonSearchDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof TuteurLieuDoublonSearchDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof TuteurLieuDoublonSearchDto\n */\n email?: EmailDto;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonSearchDto\n */\n remarque?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurLieuDoublonSearchDto\n */\n dateCv?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonSearchDto\n */\n anneesExperience?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonSearchDto\n */\n tutorat?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonSearchDto\n */\n vdc?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuDoublonSearchDto\n */\n derogation?: boolean;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonSearchDto\n */\n responsableDerogation?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurLieuDoublonSearchDto\n */\n dateDerogation?: Date | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuDoublonSearchDto\n */\n idmetiers?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuDoublonSearchDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuDoublonSearchDto\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuDoublonSearchDto\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuDoublonSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuDoublonSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuDoublonSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuDoublonSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TuteurLieuDoublonSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuDoublonSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TuteurLieuDoublonSearchDto interface.\n */\nexport function instanceOfTuteurLieuDoublonSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurLieuDoublonSearchDtoFromJSON(json: any): TuteurLieuDoublonSearchDto {\n return TuteurLieuDoublonSearchDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurLieuDoublonSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurLieuDoublonSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'registreNational': !exists(json, 'registreNational') ? undefined : json['registreNational'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'nationalite': !exists(json, 'nationalite') ? undefined : json['nationalite'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'remarque': !exists(json, 'remarque') ? undefined : json['remarque'],\n 'dateCv': !exists(json, 'dateCv') ? undefined : (json['dateCv'] === null ? null : new Date(json['dateCv'])),\n 'anneesExperience': !exists(json, 'anneesExperience') ? undefined : json['anneesExperience'],\n 'tutorat': !exists(json, 'tutorat') ? undefined : json['tutorat'],\n 'vdc': !exists(json, 'vdc') ? undefined : json['vdc'],\n 'derogation': !exists(json, 'derogation') ? undefined : json['derogation'],\n 'responsableDerogation': !exists(json, 'responsableDerogation') ? undefined : json['responsableDerogation'],\n 'dateDerogation': !exists(json, 'dateDerogation') ? undefined : (json['dateDerogation'] === null ? null : new Date(json['dateDerogation'])),\n 'idmetiers': !exists(json, 'idmetiers') ? undefined : json['idmetiers'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TuteurLieuDoublonSearchDtoToJSON(value?: TuteurLieuDoublonSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteur': value.idtuteur,\n 'idlieuFormation': value.idlieuFormation,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'registreNational': value.registreNational,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'nationalite': value.nationalite,\n 'codesexe': value.codesexe,\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'email': EmailDtoToJSON(value.email),\n 'remarque': value.remarque,\n 'dateCv': value.dateCv === undefined ? undefined : (value.dateCv === null ? null : value.dateCv.toISOString()),\n 'anneesExperience': value.anneesExperience,\n 'tutorat': value.tutorat,\n 'vdc': value.vdc,\n 'derogation': value.derogation,\n 'responsableDerogation': value.responsableDerogation,\n 'dateDerogation': value.dateDerogation === undefined ? undefined : (value.dateDerogation === null ? null : value.dateDerogation.toISOString()),\n 'idmetiers': value.idmetiers,\n 'idpersonne': value.idpersonne,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TuteurLieuFormationGridDto\n */\nexport interface TuteurLieuFormationGridDto {\n /**\n * \n * @type {number}\n * @memberof TuteurLieuFormationGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuFormationGridDto\n */\n idsiegeSocial?: number;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuFormationGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuFormationGridDto\n */\n enseigne?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuFormationGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuFormationGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuFormationGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuFormationGridDto\n */\n numeroUe?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuFormationGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the TuteurLieuFormationGridDto interface.\n */\nexport function instanceOfTuteurLieuFormationGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurLieuFormationGridDtoFromJSON(json: any): TuteurLieuFormationGridDto {\n return TuteurLieuFormationGridDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurLieuFormationGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurLieuFormationGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idsiegeSocial': !exists(json, 'idsiegeSocial') ? undefined : json['idsiegeSocial'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'enseigne': !exists(json, 'enseigne') ? undefined : json['enseigne'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'numeroUe': !exists(json, 'numeroUe') ? undefined : json['numeroUe'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function TuteurLieuFormationGridDtoToJSON(value?: TuteurLieuFormationGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuFormation': value.idlieuFormation,\n 'idsiegeSocial': value.idsiegeSocial,\n 'nom': value.nom,\n 'enseigne': value.enseigne,\n 'email': value.email,\n 'telephone': value.telephone,\n 'localite': value.localite,\n 'numeroUe': value.numeroUe,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { TuteurLieuFormationGridDto } from './TuteurLieuFormationGridDto';\nimport {\n TuteurLieuFormationGridDtoFromJSON,\n TuteurLieuFormationGridDtoFromJSONTyped,\n TuteurLieuFormationGridDtoToJSON,\n} from './TuteurLieuFormationGridDto';\n\n/**\n * \n * @export\n * @interface TuteurLieuFormationGridDtoPaginatedResults\n */\nexport interface TuteurLieuFormationGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof TuteurLieuFormationGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuFormationGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuFormationGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the TuteurLieuFormationGridDtoPaginatedResults interface.\n */\nexport function instanceOfTuteurLieuFormationGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurLieuFormationGridDtoPaginatedResultsFromJSON(json: any): TuteurLieuFormationGridDtoPaginatedResults {\n return TuteurLieuFormationGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function TuteurLieuFormationGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurLieuFormationGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(TuteurLieuFormationGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function TuteurLieuFormationGridDtoPaginatedResultsToJSON(value?: TuteurLieuFormationGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(TuteurLieuFormationGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface TuteurLieuFormationSearchDto\n */\nexport interface TuteurLieuFormationSearchDto {\n /**\n * \n * @type {number}\n * @memberof TuteurLieuFormationSearchDto\n */\n idtuteur?: number;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuFormationSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuFormationSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuFormationSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuFormationSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TuteurLieuFormationSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuFormationSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TuteurLieuFormationSearchDto interface.\n */\nexport function instanceOfTuteurLieuFormationSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurLieuFormationSearchDtoFromJSON(json: any): TuteurLieuFormationSearchDto {\n return TuteurLieuFormationSearchDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurLieuFormationSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurLieuFormationSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TuteurLieuFormationSearchDtoToJSON(value?: TuteurLieuFormationSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteur': value.idtuteur,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TuteurLieuGridDto\n */\nexport interface TuteurLieuGridDto {\n /**\n * \n * @type {number}\n * @memberof TuteurLieuGridDto\n */\n idtuteurLieu?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuGridDto\n */\n c?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuGridDto\n */\n idtuteur?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuGridDto\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuGridDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuGridDto\n */\n personne?: string | null;\n /**\n * \n * @type {number}\n * @memberof TuteurLieuGridDto\n */\n capaciteFormative?: number | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurLieuGridDto\n */\n dateCv?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuGridDto\n */\n anneesExperience?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuGridDto\n */\n tutorat?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuGridDto\n */\n vdc?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuGridDto\n */\n derogation?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof TuteurLieuGridDto\n */\n responsableDerogation?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurLieuGridDto\n */\n dateDerogation?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuGridDto\n */\n spp?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof TuteurLieuGridDto\n */\n actif?: boolean | null;\n}\n\n/**\n * Check if a given object implements the TuteurLieuGridDto interface.\n */\nexport function instanceOfTuteurLieuGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurLieuGridDtoFromJSON(json: any): TuteurLieuGridDto {\n return TuteurLieuGridDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurLieuGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurLieuGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteurLieu': !exists(json, 'idtuteurLieu') ? undefined : json['idtuteurLieu'],\n 'c': !exists(json, 'c') ? undefined : json['c'],\n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'personne': !exists(json, 'personne') ? undefined : json['personne'],\n 'capaciteFormative': !exists(json, 'capaciteFormative') ? undefined : json['capaciteFormative'],\n 'dateCv': !exists(json, 'dateCv') ? undefined : (json['dateCv'] === null ? null : new Date(json['dateCv'])),\n 'anneesExperience': !exists(json, 'anneesExperience') ? undefined : json['anneesExperience'],\n 'tutorat': !exists(json, 'tutorat') ? undefined : json['tutorat'],\n 'vdc': !exists(json, 'vdc') ? undefined : json['vdc'],\n 'derogation': !exists(json, 'derogation') ? undefined : json['derogation'],\n 'responsableDerogation': !exists(json, 'responsableDerogation') ? undefined : json['responsableDerogation'],\n 'dateDerogation': !exists(json, 'dateDerogation') ? undefined : (json['dateDerogation'] === null ? null : new Date(json['dateDerogation'])),\n 'spp': !exists(json, 'spp') ? undefined : json['spp'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n };\n}\n\nexport function TuteurLieuGridDtoToJSON(value?: TuteurLieuGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteurLieu': value.idtuteurLieu,\n 'c': value.c,\n 'idtuteur': value.idtuteur,\n 'idlieuFormation': value.idlieuFormation,\n 'idpersonne': value.idpersonne,\n 'personne': value.personne,\n 'capaciteFormative': value.capaciteFormative,\n 'dateCv': value.dateCv === undefined ? undefined : (value.dateCv === null ? null : value.dateCv.toISOString()),\n 'anneesExperience': value.anneesExperience,\n 'tutorat': value.tutorat,\n 'vdc': value.vdc,\n 'derogation': value.derogation,\n 'responsableDerogation': value.responsableDerogation,\n 'dateDerogation': value.dateDerogation === undefined ? undefined : (value.dateDerogation === null ? null : value.dateDerogation.toISOString()),\n 'spp': value.spp,\n 'actif': value.actif,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { TuteurLieuGridDto } from './TuteurLieuGridDto';\nimport {\n TuteurLieuGridDtoFromJSON,\n TuteurLieuGridDtoFromJSONTyped,\n TuteurLieuGridDtoToJSON,\n} from './TuteurLieuGridDto';\n\n/**\n * \n * @export\n * @interface TuteurLieuGridDtoPaginatedResults\n */\nexport interface TuteurLieuGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof TuteurLieuGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurLieuGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the TuteurLieuGridDtoPaginatedResults interface.\n */\nexport function instanceOfTuteurLieuGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurLieuGridDtoPaginatedResultsFromJSON(json: any): TuteurLieuGridDtoPaginatedResults {\n return TuteurLieuGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function TuteurLieuGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurLieuGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(TuteurLieuGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function TuteurLieuGridDtoPaginatedResultsToJSON(value?: TuteurLieuGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(TuteurLieuGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { Int32ListSearch } from './Int32ListSearch';\nimport {\n Int32ListSearchFromJSON,\n Int32ListSearchFromJSONTyped,\n Int32ListSearchToJSON,\n} from './Int32ListSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\nimport type { UnaccentTextSearch } from './UnaccentTextSearch';\nimport {\n UnaccentTextSearchFromJSON,\n UnaccentTextSearchFromJSONTyped,\n UnaccentTextSearchToJSON,\n} from './UnaccentTextSearch';\n\n/**\n * \n * @export\n * @interface TuteurSearchDto\n */\nexport interface TuteurSearchDto {\n /**\n * \n * @type {number}\n * @memberof TuteurSearchDto\n */\n idlieuformation?: number | null;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof TuteurSearchDto\n */\n nom?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof TuteurSearchDto\n */\n prenom?: UnaccentTextSearch;\n /**\n * \n * @type {Int32ListSearch}\n * @memberof TuteurSearchDto\n */\n idmetier?: Int32ListSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof TuteurSearchDto\n */\n lieuFormation?: UnaccentTextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof TuteurSearchDto\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof TuteurSearchDto\n */\n nomApprenant?: UnaccentTextSearch;\n /**\n * \n * @type {UnaccentTextSearch}\n * @memberof TuteurSearchDto\n */\n prenomApprenant?: UnaccentTextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TuteurSearchDto\n */\n registreNationalOrEmpty?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof TuteurSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TuteurSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TuteurSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TuteurSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TuteurSearchDto interface.\n */\nexport function instanceOfTuteurSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurSearchDtoFromJSON(json: any): TuteurSearchDto {\n return TuteurSearchDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idlieuformation': !exists(json, 'idlieuformation') ? undefined : json['idlieuformation'],\n 'nom': !exists(json, 'nom') ? undefined : UnaccentTextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : UnaccentTextSearchFromJSON(json['prenom']),\n 'idmetier': !exists(json, 'idmetier') ? undefined : Int32ListSearchFromJSON(json['idmetier']),\n 'lieuFormation': !exists(json, 'lieuFormation') ? undefined : UnaccentTextSearchFromJSON(json['lieuFormation']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'nomApprenant': !exists(json, 'nomApprenant') ? undefined : UnaccentTextSearchFromJSON(json['nomApprenant']),\n 'prenomApprenant': !exists(json, 'prenomApprenant') ? undefined : UnaccentTextSearchFromJSON(json['prenomApprenant']),\n 'registreNationalOrEmpty': !exists(json, 'registreNationalOrEmpty') ? undefined : TextSearchFromJSON(json['registreNationalOrEmpty']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TuteurSearchDtoToJSON(value?: TuteurSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idlieuformation': value.idlieuformation,\n 'nom': UnaccentTextSearchToJSON(value.nom),\n 'prenom': UnaccentTextSearchToJSON(value.prenom),\n 'idmetier': Int32ListSearchToJSON(value.idmetier),\n 'lieuFormation': UnaccentTextSearchToJSON(value.lieuFormation),\n 'actif': BooleanSearchToJSON(value.actif),\n 'nomApprenant': UnaccentTextSearchToJSON(value.nomApprenant),\n 'prenomApprenant': UnaccentTextSearchToJSON(value.prenomApprenant),\n 'registreNationalOrEmpty': TextSearchToJSON(value.registreNationalOrEmpty),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TuteurSelectorGridDto\n */\nexport interface TuteurSelectorGridDto {\n /**\n * \n * @type {number}\n * @memberof TuteurSelectorGridDto\n */\n idtuteur?: number;\n /**\n * \n * @type {number}\n * @memberof TuteurSelectorGridDto\n */\n idlieuFormation?: number;\n /**\n * \n * @type {string}\n * @memberof TuteurSelectorGridDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurSelectorGridDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurSelectorGridDto\n */\n telephone?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurSelectorGridDto\n */\n gsm?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurSelectorGridDto\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof TuteurSelectorGridDto\n */\n localite?: string | null;\n /**\n * \n * @type {Date}\n * @memberof TuteurSelectorGridDto\n */\n dateNaissance?: Date | null;\n /**\n * \n * @type {string}\n * @memberof TuteurSelectorGridDto\n */\n localiteNaissance?: string | null;\n}\n\n/**\n * Check if a given object implements the TuteurSelectorGridDto interface.\n */\nexport function instanceOfTuteurSelectorGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurSelectorGridDtoFromJSON(json: any): TuteurSelectorGridDto {\n return TuteurSelectorGridDtoFromJSONTyped(json, false);\n}\n\nexport function TuteurSelectorGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurSelectorGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtuteur': !exists(json, 'idtuteur') ? undefined : json['idtuteur'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'telephone': !exists(json, 'telephone') ? undefined : json['telephone'],\n 'gsm': !exists(json, 'gsm') ? undefined : json['gsm'],\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'localite': !exists(json, 'localite') ? undefined : json['localite'],\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : (json['dateNaissance'] === null ? null : new Date(json['dateNaissance'])),\n 'localiteNaissance': !exists(json, 'localiteNaissance') ? undefined : json['localiteNaissance'],\n };\n}\n\nexport function TuteurSelectorGridDtoToJSON(value?: TuteurSelectorGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtuteur': value.idtuteur,\n 'idlieuFormation': value.idlieuFormation,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'telephone': value.telephone,\n 'gsm': value.gsm,\n 'email': value.email,\n 'localite': value.localite,\n 'dateNaissance': value.dateNaissance === undefined ? undefined : (value.dateNaissance === null ? null : value.dateNaissance.toISOString()),\n 'localiteNaissance': value.localiteNaissance,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { TuteurSelectorGridDto } from './TuteurSelectorGridDto';\nimport {\n TuteurSelectorGridDtoFromJSON,\n TuteurSelectorGridDtoFromJSONTyped,\n TuteurSelectorGridDtoToJSON,\n} from './TuteurSelectorGridDto';\n\n/**\n * \n * @export\n * @interface TuteurSelectorGridDtoPaginatedResults\n */\nexport interface TuteurSelectorGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof TuteurSelectorGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof TuteurSelectorGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurSelectorGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the TuteurSelectorGridDtoPaginatedResults interface.\n */\nexport function instanceOfTuteurSelectorGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurSelectorGridDtoPaginatedResultsFromJSON(json: any): TuteurSelectorGridDtoPaginatedResults {\n return TuteurSelectorGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function TuteurSelectorGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurSelectorGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(TuteurSelectorGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function TuteurSelectorGridDtoPaginatedResultsToJSON(value?: TuteurSelectorGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(TuteurSelectorGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { DateSearch } from './DateSearch';\nimport {\n DateSearchFromJSON,\n DateSearchFromJSONTyped,\n DateSearchToJSON,\n} from './DateSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface TuteurSelectorSearch\n */\nexport interface TuteurSelectorSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof TuteurSelectorSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TuteurSelectorSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TuteurSelectorSearch\n */\n registreNational?: TextSearch;\n /**\n * \n * @type {DateSearch}\n * @memberof TuteurSelectorSearch\n */\n dateNaissance?: DateSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TuteurSelectorSearch\n */\n telephone?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TuteurSelectorSearch\n */\n gsm?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TuteurSelectorSearch\n */\n email?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TuteurSelectorSearch\n */\n localite?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof TuteurSelectorSearch\n */\n selectedTuteurIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurSelectorSearch\n */\n excludedTuteurIds?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TuteurSelectorSearch\n */\n idlieuFormation?: number | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurSelectorSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TuteurSelectorSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TuteurSelectorSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TuteurSelectorSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TuteurSelectorSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TuteurSelectorSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TuteurSelectorSearch interface.\n */\nexport function instanceOfTuteurSelectorSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TuteurSelectorSearchFromJSON(json: any): TuteurSelectorSearch {\n return TuteurSelectorSearchFromJSONTyped(json, false);\n}\n\nexport function TuteurSelectorSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): TuteurSelectorSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'registreNational': !exists(json, 'registreNational') ? undefined : TextSearchFromJSON(json['registreNational']),\n 'dateNaissance': !exists(json, 'dateNaissance') ? undefined : DateSearchFromJSON(json['dateNaissance']),\n 'telephone': !exists(json, 'telephone') ? undefined : TextSearchFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TextSearchFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : TextSearchFromJSON(json['email']),\n 'localite': !exists(json, 'localite') ? undefined : TextSearchFromJSON(json['localite']),\n 'selectedTuteurIds': !exists(json, 'selectedTuteurIds') ? undefined : json['selectedTuteurIds'],\n 'excludedTuteurIds': !exists(json, 'excludedTuteurIds') ? undefined : json['excludedTuteurIds'],\n 'idlieuFormation': !exists(json, 'idlieuFormation') ? undefined : json['idlieuFormation'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TuteurSelectorSearchToJSON(value?: TuteurSelectorSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'registreNational': TextSearchToJSON(value.registreNational),\n 'dateNaissance': DateSearchToJSON(value.dateNaissance),\n 'telephone': TextSearchToJSON(value.telephone),\n 'gsm': TextSearchToJSON(value.gsm),\n 'email': TextSearchToJSON(value.email),\n 'localite': TextSearchToJSON(value.localite),\n 'selectedTuteurIds': value.selectedTuteurIds,\n 'excludedTuteurIds': value.excludedTuteurIds,\n 'idlieuFormation': value.idlieuFormation,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TypeBulletinEditDto\n */\nexport interface TypeBulletinEditDto {\n /**\n * \n * @type {number}\n * @memberof TypeBulletinEditDto\n */\n idtypeBulletin?: number;\n /**\n * \n * @type {string}\n * @memberof TypeBulletinEditDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof TypeBulletinEditDto\n */\n libelle?: string | null;\n}\n\n/**\n * Check if a given object implements the TypeBulletinEditDto interface.\n */\nexport function instanceOfTypeBulletinEditDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TypeBulletinEditDtoFromJSON(json: any): TypeBulletinEditDto {\n return TypeBulletinEditDtoFromJSONTyped(json, false);\n}\n\nexport function TypeBulletinEditDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TypeBulletinEditDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtypeBulletin': !exists(json, 'idtypeBulletin') ? undefined : json['idtypeBulletin'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n };\n}\n\nexport function TypeBulletinEditDtoToJSON(value?: TypeBulletinEditDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtypeBulletin': value.idtypeBulletin,\n 'code': value.code,\n 'libelle': value.libelle,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TypeBulletinGridDto\n */\nexport interface TypeBulletinGridDto {\n /**\n * \n * @type {number}\n * @memberof TypeBulletinGridDto\n */\n idtypeBulletin?: number;\n /**\n * \n * @type {string}\n * @memberof TypeBulletinGridDto\n */\n code?: string | null;\n /**\n * \n * @type {string}\n * @memberof TypeBulletinGridDto\n */\n libelle?: string | null;\n}\n\n/**\n * Check if a given object implements the TypeBulletinGridDto interface.\n */\nexport function instanceOfTypeBulletinGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TypeBulletinGridDtoFromJSON(json: any): TypeBulletinGridDto {\n return TypeBulletinGridDtoFromJSONTyped(json, false);\n}\n\nexport function TypeBulletinGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TypeBulletinGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idtypeBulletin': !exists(json, 'idtypeBulletin') ? undefined : json['idtypeBulletin'],\n 'code': !exists(json, 'code') ? undefined : json['code'],\n 'libelle': !exists(json, 'libelle') ? undefined : json['libelle'],\n };\n}\n\nexport function TypeBulletinGridDtoToJSON(value?: TypeBulletinGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idtypeBulletin': value.idtypeBulletin,\n 'code': value.code,\n 'libelle': value.libelle,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { TypeBulletinGridDto } from './TypeBulletinGridDto';\nimport {\n TypeBulletinGridDtoFromJSON,\n TypeBulletinGridDtoFromJSONTyped,\n TypeBulletinGridDtoToJSON,\n} from './TypeBulletinGridDto';\n\n/**\n * \n * @export\n * @interface TypeBulletinGridDtoPaginatedResults\n */\nexport interface TypeBulletinGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof TypeBulletinGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof TypeBulletinGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TypeBulletinGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the TypeBulletinGridDtoPaginatedResults interface.\n */\nexport function instanceOfTypeBulletinGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TypeBulletinGridDtoPaginatedResultsFromJSON(json: any): TypeBulletinGridDtoPaginatedResults {\n return TypeBulletinGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function TypeBulletinGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TypeBulletinGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(TypeBulletinGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function TypeBulletinGridDtoPaginatedResultsToJSON(value?: TypeBulletinGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(TypeBulletinGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface TypeBulletinSearchDto\n */\nexport interface TypeBulletinSearchDto {\n /**\n * \n * @type {TextSearch}\n * @memberof TypeBulletinSearchDto\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TypeBulletinSearchDto\n */\n libelle?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof TypeBulletinSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TypeBulletinSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TypeBulletinSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TypeBulletinSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TypeBulletinSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TypeBulletinSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TypeBulletinSearchDto interface.\n */\nexport function instanceOfTypeBulletinSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TypeBulletinSearchDtoFromJSON(json: any): TypeBulletinSearchDto {\n return TypeBulletinSearchDtoFromJSONTyped(json, false);\n}\n\nexport function TypeBulletinSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): TypeBulletinSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TypeBulletinSearchDtoToJSON(value?: TypeBulletinSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'libelle': TextSearchToJSON(value.libelle),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface TypeCoursSearch\n */\nexport interface TypeCoursSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof TypeCoursSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TypeCoursSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof TypeCoursSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof TypeCoursSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TypeCoursSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TypeCoursSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TypeCoursSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TypeCoursSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TypeCoursSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TypeCoursSearch interface.\n */\nexport function instanceOfTypeCoursSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TypeCoursSearchFromJSON(json: any): TypeCoursSearch {\n return TypeCoursSearchFromJSONTyped(json, false);\n}\n\nexport function TypeCoursSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): TypeCoursSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TypeCoursSearchToJSON(value?: TypeCoursSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'code': TextSearchToJSON(value.code),\n 'libelle': TextSearchToJSON(value.libelle),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface TypeEnseignementSearch\n */\nexport interface TypeEnseignementSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof TypeEnseignementSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof TypeEnseignementSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof TypeEnseignementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TypeEnseignementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TypeEnseignementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TypeEnseignementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TypeEnseignementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TypeEnseignementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TypeEnseignementSearch interface.\n */\nexport function instanceOfTypeEnseignementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TypeEnseignementSearchFromJSON(json: any): TypeEnseignementSearch {\n return TypeEnseignementSearchFromJSONTyped(json, false);\n}\n\nexport function TypeEnseignementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): TypeEnseignementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TypeEnseignementSearchToJSON(value?: TypeEnseignementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface TypeEvaluationSearch\n */\nexport interface TypeEvaluationSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof TypeEvaluationSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof TypeEvaluationSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TypeEvaluationSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TypeEvaluationSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TypeEvaluationSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TypeEvaluationSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TypeEvaluationSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TypeEvaluationSearch interface.\n */\nexport function instanceOfTypeEvaluationSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TypeEvaluationSearchFromJSON(json: any): TypeEvaluationSearch {\n return TypeEvaluationSearchFromJSONTyped(json, false);\n}\n\nexport function TypeEvaluationSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): TypeEvaluationSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TypeEvaluationSearchToJSON(value?: TypeEvaluationSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface TypeFinancementSearch\n */\nexport interface TypeFinancementSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof TypeFinancementSearch\n */\n libelle?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof TypeFinancementSearch\n */\n code?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof TypeFinancementSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof TypeFinancementSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof TypeFinancementSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof TypeFinancementSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof TypeFinancementSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof TypeFinancementSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof TypeFinancementSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the TypeFinancementSearch interface.\n */\nexport function instanceOfTypeFinancementSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function TypeFinancementSearchFromJSON(json: any): TypeFinancementSearch {\n return TypeFinancementSearchFromJSONTyped(json, false);\n}\n\nexport function TypeFinancementSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): TypeFinancementSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'libelle': !exists(json, 'libelle') ? undefined : TextSearchFromJSON(json['libelle']),\n 'code': !exists(json, 'code') ? undefined : TextSearchFromJSON(json['code']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function TypeFinancementSearchToJSON(value?: TypeFinancementSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'libelle': TextSearchToJSON(value.libelle),\n 'code': TextSearchToJSON(value.code),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface UniteActiviteSearch\n */\nexport interface UniteActiviteSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof UniteActiviteSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof UniteActiviteSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof UniteActiviteSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof UniteActiviteSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof UniteActiviteSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof UniteActiviteSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof UniteActiviteSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the UniteActiviteSearch interface.\n */\nexport function instanceOfUniteActiviteSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UniteActiviteSearchFromJSON(json: any): UniteActiviteSearch {\n return UniteActiviteSearchFromJSONTyped(json, false);\n}\n\nexport function UniteActiviteSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): UniteActiviteSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function UniteActiviteSearchToJSON(value?: UniteActiviteSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface UserActionDto\n */\nexport interface UserActionDto {\n /**\n * \n * @type {string}\n * @memberof UserActionDto\n */\n module?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserActionDto\n */\n tab?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserActionDto\n */\n permission?: string | null;\n}\n\n/**\n * Check if a given object implements the UserActionDto interface.\n */\nexport function instanceOfUserActionDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UserActionDtoFromJSON(json: any): UserActionDto {\n return UserActionDtoFromJSONTyped(json, false);\n}\n\nexport function UserActionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserActionDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'module': !exists(json, 'module') ? undefined : json['module'],\n 'tab': !exists(json, 'tab') ? undefined : json['tab'],\n 'permission': !exists(json, 'permission') ? undefined : json['permission'],\n };\n}\n\nexport function UserActionDtoToJSON(value?: UserActionDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'module': value.module,\n 'tab': value.tab,\n 'permission': value.permission,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { CentreUserDto } from './CentreUserDto';\nimport {\n CentreUserDtoFromJSON,\n CentreUserDtoFromJSONTyped,\n CentreUserDtoToJSON,\n} from './CentreUserDto';\nimport type { EmailDto } from './EmailDto';\nimport {\n EmailDtoFromJSON,\n EmailDtoFromJSONTyped,\n EmailDtoToJSON,\n} from './EmailDto';\nimport type { TelephoneDto } from './TelephoneDto';\nimport {\n TelephoneDtoFromJSON,\n TelephoneDtoFromJSONTyped,\n TelephoneDtoToJSON,\n} from './TelephoneDto';\n\n/**\n * \n * @export\n * @interface UserDto\n */\nexport interface UserDto {\n /**\n * \n * @type {number}\n * @memberof UserDto\n */\n iduser?: number;\n /**\n * \n * @type {number}\n * @memberof UserDto\n */\n idpersonne?: number | null;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n codesexe?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n login?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n azureEmail?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n pwd?: string | null;\n /**\n * \n * @type {number}\n * @memberof UserDto\n */\n idlevel?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof UserDto\n */\n connecte?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof UserDto\n */\n actif?: boolean | null;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n ifapmeSide?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof UserDto\n */\n delegationSignature?: boolean | null;\n /**\n * \n * @type {number}\n * @memberof UserDto\n */\n idtype?: number | null;\n /**\n * \n * @type {number}\n * @memberof UserDto\n */\n idformateur?: number | null;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n idconseillerPedagogique?: string | null;\n /**\n * \n * @type {number}\n * @memberof UserDto\n */\n iddirectionTerritoriale?: number | null;\n /**\n * \n * @type {number}\n * @memberof UserDto\n */\n centres?: number | null;\n /**\n * \n * @type {Date}\n * @memberof UserDto\n */\n lastConnectionTime?: Date | null;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n ntusername?: string | null;\n /**\n * \n * @type {Date}\n * @memberof UserDto\n */\n lastAdConnectionTime?: Date | null;\n /**\n * \n * @type {boolean}\n * @memberof UserDto\n */\n forceAdConnection?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof UserDto\n */\n validationDirection?: boolean;\n /**\n * \n * @type {number}\n * @memberof UserDto\n */\n iddepartement?: number | null;\n /**\n * \n * @type {number}\n * @memberof UserDto\n */\n idposte?: number | null;\n /**\n * \n * @type {boolean}\n * @memberof UserDto\n */\n isFormateur?: boolean;\n /**\n * \n * @type {TelephoneDto}\n * @memberof UserDto\n */\n telephone?: TelephoneDto;\n /**\n * \n * @type {TelephoneDto}\n * @memberof UserDto\n */\n gsm?: TelephoneDto;\n /**\n * \n * @type {EmailDto}\n * @memberof UserDto\n */\n email?: EmailDto;\n /**\n * \n * @type {Array}\n * @memberof UserDto\n */\n centreUsers?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof UserDto\n */\n idsSocieteExterne?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof UserDto\n */\n passwordChange?: boolean;\n /**\n * \n * @type {string}\n * @memberof UserDto\n */\n pwdconfirm?: string | null;\n}\n\n/**\n * Check if a given object implements the UserDto interface.\n */\nexport function instanceOfUserDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UserDtoFromJSON(json: any): UserDto {\n return UserDtoFromJSONTyped(json, false);\n}\n\nexport function UserDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'idpersonne': !exists(json, 'idpersonne') ? undefined : json['idpersonne'],\n 'codesexe': !exists(json, 'codesexe') ? undefined : json['codesexe'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'login': !exists(json, 'login') ? undefined : json['login'],\n 'azureEmail': !exists(json, 'azureEmail') ? undefined : json['azureEmail'],\n 'pwd': !exists(json, 'pwd') ? undefined : json['pwd'],\n 'idlevel': !exists(json, 'idlevel') ? undefined : json['idlevel'],\n 'connecte': !exists(json, 'connecte') ? undefined : json['connecte'],\n 'actif': !exists(json, 'actif') ? undefined : json['actif'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n 'delegationSignature': !exists(json, 'delegationSignature') ? undefined : json['delegationSignature'],\n 'idtype': !exists(json, 'idtype') ? undefined : json['idtype'],\n 'idformateur': !exists(json, 'idformateur') ? undefined : json['idformateur'],\n 'idconseillerPedagogique': !exists(json, 'idconseillerPedagogique') ? undefined : json['idconseillerPedagogique'],\n 'iddirectionTerritoriale': !exists(json, 'iddirectionTerritoriale') ? undefined : json['iddirectionTerritoriale'],\n 'centres': !exists(json, 'centres') ? undefined : json['centres'],\n 'lastConnectionTime': !exists(json, 'lastConnectionTime') ? undefined : (json['lastConnectionTime'] === null ? null : new Date(json['lastConnectionTime'])),\n 'ntusername': !exists(json, 'ntusername') ? undefined : json['ntusername'],\n 'lastAdConnectionTime': !exists(json, 'lastAdConnectionTime') ? undefined : (json['lastAdConnectionTime'] === null ? null : new Date(json['lastAdConnectionTime'])),\n 'forceAdConnection': !exists(json, 'forceAdConnection') ? undefined : json['forceAdConnection'],\n 'validationDirection': !exists(json, 'validationDirection') ? undefined : json['validationDirection'],\n 'iddepartement': !exists(json, 'iddepartement') ? undefined : json['iddepartement'],\n 'idposte': !exists(json, 'idposte') ? undefined : json['idposte'],\n 'isFormateur': !exists(json, 'isFormateur') ? undefined : json['isFormateur'],\n 'telephone': !exists(json, 'telephone') ? undefined : TelephoneDtoFromJSON(json['telephone']),\n 'gsm': !exists(json, 'gsm') ? undefined : TelephoneDtoFromJSON(json['gsm']),\n 'email': !exists(json, 'email') ? undefined : EmailDtoFromJSON(json['email']),\n 'centreUsers': !exists(json, 'centreUsers') ? undefined : (json['centreUsers'] === null ? null : (json['centreUsers'] as Array).map(CentreUserDtoFromJSON)),\n 'idsSocieteExterne': !exists(json, 'idsSocieteExterne') ? undefined : json['idsSocieteExterne'],\n 'passwordChange': !exists(json, 'passwordChange') ? undefined : json['passwordChange'],\n 'pwdconfirm': !exists(json, 'pwdconfirm') ? undefined : json['pwdconfirm'],\n };\n}\n\nexport function UserDtoToJSON(value?: UserDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iduser': value.iduser,\n 'idpersonne': value.idpersonne,\n 'codesexe': value.codesexe,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'login': value.login,\n 'azureEmail': value.azureEmail,\n 'pwd': value.pwd,\n 'idlevel': value.idlevel,\n 'connecte': value.connecte,\n 'actif': value.actif,\n 'ifapmeSide': value.ifapmeSide,\n 'delegationSignature': value.delegationSignature,\n 'idtype': value.idtype,\n 'idformateur': value.idformateur,\n 'idconseillerPedagogique': value.idconseillerPedagogique,\n 'iddirectionTerritoriale': value.iddirectionTerritoriale,\n 'centres': value.centres,\n 'lastConnectionTime': value.lastConnectionTime === undefined ? undefined : (value.lastConnectionTime === null ? null : value.lastConnectionTime.toISOString()),\n 'ntusername': value.ntusername,\n 'lastAdConnectionTime': value.lastAdConnectionTime === undefined ? undefined : (value.lastAdConnectionTime === null ? null : value.lastAdConnectionTime.toISOString()),\n 'forceAdConnection': value.forceAdConnection,\n 'validationDirection': value.validationDirection,\n 'iddepartement': value.iddepartement,\n 'idposte': value.idposte,\n 'isFormateur': value.isFormateur,\n 'telephone': TelephoneDtoToJSON(value.telephone),\n 'gsm': TelephoneDtoToJSON(value.gsm),\n 'email': EmailDtoToJSON(value.email),\n 'centreUsers': value.centreUsers === undefined ? undefined : (value.centreUsers === null ? null : (value.centreUsers as Array).map(CentreUserDtoToJSON)),\n 'idsSocieteExterne': value.idsSocieteExterne,\n 'passwordChange': value.passwordChange,\n 'pwdconfirm': value.pwdconfirm,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { ImpersonateUserInfoDto } from './ImpersonateUserInfoDto';\nimport {\n ImpersonateUserInfoDtoFromJSON,\n ImpersonateUserInfoDtoFromJSONTyped,\n ImpersonateUserInfoDtoToJSON,\n} from './ImpersonateUserInfoDto';\nimport type { UserActionDto } from './UserActionDto';\nimport {\n UserActionDtoFromJSON,\n UserActionDtoFromJSONTyped,\n UserActionDtoToJSON,\n} from './UserActionDto';\n\n/**\n * \n * @export\n * @interface UserProfileDto\n */\nexport interface UserProfileDto {\n /**\n * \n * @type {number}\n * @memberof UserProfileDto\n */\n iduser?: number;\n /**\n * \n * @type {string}\n * @memberof UserProfileDto\n */\n nom?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserProfileDto\n */\n prenom?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserProfileDto\n */\n login?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserProfileDto\n */\n azureEmail?: string | null;\n /**\n * \n * @type {number}\n * @memberof UserProfileDto\n */\n idlevel?: number | null;\n /**\n * \n * @type {string}\n * @memberof UserProfileDto\n */\n ifapmeSide?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserProfileDto\n */\n hopeMainLevelName?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof UserProfileDto\n */\n delegationSignature?: boolean | null;\n /**\n * \n * @type {boolean}\n * @memberof UserProfileDto\n */\n isAdmin?: boolean | null;\n /**\n * \n * @type {Array}\n * @memberof UserProfileDto\n */\n idsSocieteExterne?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof UserProfileDto\n */\n idscentre?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof UserProfileDto\n */\n showStartupPopup?: boolean;\n /**\n * \n * @type {string}\n * @memberof UserProfileDto\n */\n token?: string | null;\n /**\n * \n * @type {Array}\n * @memberof UserProfileDto\n */\n actions?: Array | null;\n /**\n * \n * @type {ImpersonateUserInfoDto}\n * @memberof UserProfileDto\n */\n impersonator?: ImpersonateUserInfoDto;\n}\n\n/**\n * Check if a given object implements the UserProfileDto interface.\n */\nexport function instanceOfUserProfileDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UserProfileDtoFromJSON(json: any): UserProfileDto {\n return UserProfileDtoFromJSONTyped(json, false);\n}\n\nexport function UserProfileDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserProfileDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'iduser': !exists(json, 'iduser') ? undefined : json['iduser'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n 'prenom': !exists(json, 'prenom') ? undefined : json['prenom'],\n 'login': !exists(json, 'login') ? undefined : json['login'],\n 'azureEmail': !exists(json, 'azureEmail') ? undefined : json['azureEmail'],\n 'idlevel': !exists(json, 'idlevel') ? undefined : json['idlevel'],\n 'ifapmeSide': !exists(json, 'ifapmeSide') ? undefined : json['ifapmeSide'],\n 'hopeMainLevelName': !exists(json, 'hopeMainLevelName') ? undefined : json['hopeMainLevelName'],\n 'delegationSignature': !exists(json, 'delegationSignature') ? undefined : json['delegationSignature'],\n 'isAdmin': !exists(json, 'isAdmin') ? undefined : json['isAdmin'],\n 'idsSocieteExterne': !exists(json, 'idsSocieteExterne') ? undefined : json['idsSocieteExterne'],\n 'idscentre': !exists(json, 'idscentre') ? undefined : json['idscentre'],\n 'showStartupPopup': !exists(json, 'showStartupPopup') ? undefined : json['showStartupPopup'],\n 'token': !exists(json, 'token') ? undefined : json['token'],\n 'actions': !exists(json, 'actions') ? undefined : (json['actions'] === null ? null : (json['actions'] as Array).map(UserActionDtoFromJSON)),\n 'impersonator': !exists(json, 'impersonator') ? undefined : ImpersonateUserInfoDtoFromJSON(json['impersonator']),\n };\n}\n\nexport function UserProfileDtoToJSON(value?: UserProfileDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'iduser': value.iduser,\n 'nom': value.nom,\n 'prenom': value.prenom,\n 'login': value.login,\n 'azureEmail': value.azureEmail,\n 'idlevel': value.idlevel,\n 'ifapmeSide': value.ifapmeSide,\n 'hopeMainLevelName': value.hopeMainLevelName,\n 'delegationSignature': value.delegationSignature,\n 'isAdmin': value.isAdmin,\n 'idsSocieteExterne': value.idsSocieteExterne,\n 'idscentre': value.idscentre,\n 'showStartupPopup': value.showStartupPopup,\n 'token': value.token,\n 'actions': value.actions === undefined ? undefined : (value.actions === null ? null : (value.actions as Array).map(UserActionDtoToJSON)),\n 'impersonator': ImpersonateUserInfoDtoToJSON(value.impersonator),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { BooleanSearch } from './BooleanSearch';\nimport {\n BooleanSearchFromJSON,\n BooleanSearchFromJSONTyped,\n BooleanSearchToJSON,\n} from './BooleanSearch';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface UserSearch\n */\nexport interface UserSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof UserSearch\n */\n nom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof UserSearch\n */\n prenom?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof UserSearch\n */\n login?: TextSearch;\n /**\n * \n * @type {BooleanSearch}\n * @memberof UserSearch\n */\n actif?: BooleanSearch;\n /**\n * \n * @type {Array}\n * @memberof UserSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof UserSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof UserSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof UserSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof UserSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof UserSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the UserSearch interface.\n */\nexport function instanceOfUserSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UserSearchFromJSON(json: any): UserSearch {\n return UserSearchFromJSONTyped(json, false);\n}\n\nexport function UserSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'nom': !exists(json, 'nom') ? undefined : TextSearchFromJSON(json['nom']),\n 'prenom': !exists(json, 'prenom') ? undefined : TextSearchFromJSON(json['prenom']),\n 'login': !exists(json, 'login') ? undefined : TextSearchFromJSON(json['login']),\n 'actif': !exists(json, 'actif') ? undefined : BooleanSearchFromJSON(json['actif']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function UserSearchToJSON(value?: UserSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'nom': TextSearchToJSON(value.nom),\n 'prenom': TextSearchToJSON(value.prenom),\n 'login': TextSearchToJSON(value.login),\n 'actif': BooleanSearchToJSON(value.actif),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface UsersCentresLiesSearch\n */\nexport interface UsersCentresLiesSearch {\n /**\n * \n * @type {number}\n * @memberof UsersCentresLiesSearch\n */\n idUser?: number;\n /**\n * \n * @type {Array}\n * @memberof UsersCentresLiesSearch\n */\n selectedIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof UsersCentresLiesSearch\n */\n availableIds?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof UsersCentresLiesSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof UsersCentresLiesSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof UsersCentresLiesSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof UsersCentresLiesSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof UsersCentresLiesSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof UsersCentresLiesSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the UsersCentresLiesSearch interface.\n */\nexport function instanceOfUsersCentresLiesSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UsersCentresLiesSearchFromJSON(json: any): UsersCentresLiesSearch {\n return UsersCentresLiesSearchFromJSONTyped(json, false);\n}\n\nexport function UsersCentresLiesSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): UsersCentresLiesSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n 'selectedIds': !exists(json, 'selectedIds') ? undefined : json['selectedIds'],\n 'availableIds': !exists(json, 'availableIds') ? undefined : json['availableIds'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function UsersCentresLiesSearchToJSON(value?: UsersCentresLiesSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idUser': value.idUser,\n 'selectedIds': value.selectedIds,\n 'availableIds': value.availableIds,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface UsersServicesLiesDto\n */\nexport interface UsersServicesLiesDto {\n /**\n * \n * @type {number}\n * @memberof UsersServicesLiesDto\n */\n idUser?: number;\n /**\n * \n * @type {Array}\n * @memberof UsersServicesLiesDto\n */\n idsServiceTutelles?: Array | null;\n}\n\n/**\n * Check if a given object implements the UsersServicesLiesDto interface.\n */\nexport function instanceOfUsersServicesLiesDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UsersServicesLiesDtoFromJSON(json: any): UsersServicesLiesDto {\n return UsersServicesLiesDtoFromJSONTyped(json, false);\n}\n\nexport function UsersServicesLiesDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): UsersServicesLiesDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n 'idsServiceTutelles': !exists(json, 'idsServiceTutelles') ? undefined : json['idsServiceTutelles'],\n };\n}\n\nexport function UsersServicesLiesDtoToJSON(value?: UsersServicesLiesDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idUser': value.idUser,\n 'idsServiceTutelles': value.idsServiceTutelles,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface UsersServicesLiesGridDto\n */\nexport interface UsersServicesLiesGridDto {\n /**\n * \n * @type {number}\n * @memberof UsersServicesLiesGridDto\n */\n idservice?: number;\n /**\n * \n * @type {string}\n * @memberof UsersServicesLiesGridDto\n */\n nom?: string | null;\n}\n\n/**\n * Check if a given object implements the UsersServicesLiesGridDto interface.\n */\nexport function instanceOfUsersServicesLiesGridDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UsersServicesLiesGridDtoFromJSON(json: any): UsersServicesLiesGridDto {\n return UsersServicesLiesGridDtoFromJSONTyped(json, false);\n}\n\nexport function UsersServicesLiesGridDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): UsersServicesLiesGridDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idservice': !exists(json, 'idservice') ? undefined : json['idservice'],\n 'nom': !exists(json, 'nom') ? undefined : json['nom'],\n };\n}\n\nexport function UsersServicesLiesGridDtoToJSON(value?: UsersServicesLiesGridDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idservice': value.idservice,\n 'nom': value.nom,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { IAggregateResult } from './IAggregateResult';\nimport {\n IAggregateResultFromJSON,\n IAggregateResultFromJSONTyped,\n IAggregateResultToJSON,\n} from './IAggregateResult';\nimport type { UsersServicesLiesGridDto } from './UsersServicesLiesGridDto';\nimport {\n UsersServicesLiesGridDtoFromJSON,\n UsersServicesLiesGridDtoFromJSONTyped,\n UsersServicesLiesGridDtoToJSON,\n} from './UsersServicesLiesGridDto';\n\n/**\n * \n * @export\n * @interface UsersServicesLiesGridDtoPaginatedResults\n */\nexport interface UsersServicesLiesGridDtoPaginatedResults {\n /**\n * \n * @type {number}\n * @memberof UsersServicesLiesGridDtoPaginatedResults\n */\n totalCount?: number;\n /**\n * \n * @type {Array}\n * @memberof UsersServicesLiesGridDtoPaginatedResults\n */\n results?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof UsersServicesLiesGridDtoPaginatedResults\n */\n aggregateResults?: Array | null;\n}\n\n/**\n * Check if a given object implements the UsersServicesLiesGridDtoPaginatedResults interface.\n */\nexport function instanceOfUsersServicesLiesGridDtoPaginatedResults(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UsersServicesLiesGridDtoPaginatedResultsFromJSON(json: any): UsersServicesLiesGridDtoPaginatedResults {\n return UsersServicesLiesGridDtoPaginatedResultsFromJSONTyped(json, false);\n}\n\nexport function UsersServicesLiesGridDtoPaginatedResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): UsersServicesLiesGridDtoPaginatedResults {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'totalCount': !exists(json, 'totalCount') ? undefined : json['totalCount'],\n 'results': !exists(json, 'results') ? undefined : (json['results'] === null ? null : (json['results'] as Array).map(UsersServicesLiesGridDtoFromJSON)),\n 'aggregateResults': !exists(json, 'aggregateResults') ? undefined : (json['aggregateResults'] === null ? null : (json['aggregateResults'] as Array).map(IAggregateResultFromJSON)),\n };\n}\n\nexport function UsersServicesLiesGridDtoPaginatedResultsToJSON(value?: UsersServicesLiesGridDtoPaginatedResults | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'totalCount': value.totalCount,\n 'results': value.results === undefined ? undefined : (value.results === null ? null : (value.results as Array).map(UsersServicesLiesGridDtoToJSON)),\n 'aggregateResults': value.aggregateResults === undefined ? undefined : (value.aggregateResults === null ? null : (value.aggregateResults as Array).map(IAggregateResultToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface UsersServicesLiesSearchDto\n */\nexport interface UsersServicesLiesSearchDto {\n /**\n * \n * @type {number}\n * @memberof UsersServicesLiesSearchDto\n */\n idUser?: number;\n /**\n * \n * @type {Array}\n * @memberof UsersServicesLiesSearchDto\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof UsersServicesLiesSearchDto\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof UsersServicesLiesSearchDto\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof UsersServicesLiesSearchDto\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof UsersServicesLiesSearchDto\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof UsersServicesLiesSearchDto\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the UsersServicesLiesSearchDto interface.\n */\nexport function instanceOfUsersServicesLiesSearchDto(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UsersServicesLiesSearchDtoFromJSON(json: any): UsersServicesLiesSearchDto {\n return UsersServicesLiesSearchDtoFromJSONTyped(json, false);\n}\n\nexport function UsersServicesLiesSearchDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): UsersServicesLiesSearchDto {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idUser': !exists(json, 'idUser') ? undefined : json['idUser'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function UsersServicesLiesSearchDtoToJSON(value?: UsersServicesLiesSearchDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idUser': value.idUser,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ValidationError\n */\nexport interface ValidationError {\n /**\n * \n * @type {boolean}\n * @memberof ValidationError\n */\n isValid?: boolean;\n}\n\n/**\n * Check if a given object implements the ValidationError interface.\n */\nexport function instanceOfValidationError(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ValidationErrorFromJSON(json: any): ValidationError {\n return ValidationErrorFromJSONTyped(json, false);\n}\n\nexport function ValidationErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): ValidationError {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'isValid': !exists(json, 'isValid') ? undefined : json['isValid'],\n };\n}\n\nexport function ValidationErrorToJSON(value?: ValidationError | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'isValid': value.isValid,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface VisiteClasseSearch\n */\nexport interface VisiteClasseSearch {\n /**\n * \n * @type {number}\n * @memberof VisiteClasseSearch\n */\n idVisite?: number;\n /**\n * \n * @type {Array}\n * @memberof VisiteClasseSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof VisiteClasseSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof VisiteClasseSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof VisiteClasseSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof VisiteClasseSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof VisiteClasseSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the VisiteClasseSearch interface.\n */\nexport function instanceOfVisiteClasseSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function VisiteClasseSearchFromJSON(json: any): VisiteClasseSearch {\n return VisiteClasseSearchFromJSONTyped(json, false);\n}\n\nexport function VisiteClasseSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): VisiteClasseSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idVisite': !exists(json, 'idVisite') ? undefined : json['idVisite'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function VisiteClasseSearchToJSON(value?: VisiteClasseSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idVisite': value.idVisite,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\n\n/**\n * \n * @export\n * @interface VisiteFormateurSearch\n */\nexport interface VisiteFormateurSearch {\n /**\n * \n * @type {number}\n * @memberof VisiteFormateurSearch\n */\n idVisite?: number;\n /**\n * \n * @type {Array}\n * @memberof VisiteFormateurSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof VisiteFormateurSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof VisiteFormateurSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof VisiteFormateurSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof VisiteFormateurSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof VisiteFormateurSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the VisiteFormateurSearch interface.\n */\nexport function instanceOfVisiteFormateurSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function VisiteFormateurSearchFromJSON(json: any): VisiteFormateurSearch {\n return VisiteFormateurSearchFromJSONTyped(json, false);\n}\n\nexport function VisiteFormateurSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): VisiteFormateurSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'idVisite': !exists(json, 'idVisite') ? undefined : json['idVisite'],\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function VisiteFormateurSearchToJSON(value?: VisiteFormateurSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'idVisite': value.idVisite,\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { AggregateKeyInfo } from './AggregateKeyInfo';\nimport {\n AggregateKeyInfoFromJSON,\n AggregateKeyInfoFromJSONTyped,\n AggregateKeyInfoToJSON,\n} from './AggregateKeyInfo';\nimport type { TextSearch } from './TextSearch';\nimport {\n TextSearchFromJSON,\n TextSearchFromJSONTyped,\n TextSearchToJSON,\n} from './TextSearch';\n\n/**\n * \n * @export\n * @interface VisiteSearch\n */\nexport interface VisiteSearch {\n /**\n * \n * @type {TextSearch}\n * @memberof VisiteSearch\n */\n lieu?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof VisiteSearch\n */\n accord?: TextSearch;\n /**\n * \n * @type {TextSearch}\n * @memberof VisiteSearch\n */\n anneeAcademique?: TextSearch;\n /**\n * \n * @type {Array}\n * @memberof VisiteSearch\n */\n sortKey?: Array | null;\n /**\n * \n * @type {Array}\n * @memberof VisiteSearch\n */\n aggregateKeys?: Array | null;\n /**\n * \n * @type {number}\n * @memberof VisiteSearch\n */\n forceSkip?: number | null;\n /**\n * \n * @type {number}\n * @memberof VisiteSearch\n */\n forceTake?: number | null;\n /**\n * \n * @type {any}\n * @memberof VisiteSearch\n */\n parameters?: any | null;\n /**\n * \n * @type {string}\n * @memberof VisiteSearch\n */\n filter?: string | null;\n}\n\n/**\n * Check if a given object implements the VisiteSearch interface.\n */\nexport function instanceOfVisiteSearch(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function VisiteSearchFromJSON(json: any): VisiteSearch {\n return VisiteSearchFromJSONTyped(json, false);\n}\n\nexport function VisiteSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean): VisiteSearch {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'lieu': !exists(json, 'lieu') ? undefined : TextSearchFromJSON(json['lieu']),\n 'accord': !exists(json, 'accord') ? undefined : TextSearchFromJSON(json['accord']),\n 'anneeAcademique': !exists(json, 'anneeAcademique') ? undefined : TextSearchFromJSON(json['anneeAcademique']),\n 'sortKey': !exists(json, 'sortKey') ? undefined : json['sortKey'],\n 'aggregateKeys': !exists(json, 'aggregateKeys') ? undefined : (json['aggregateKeys'] === null ? null : (json['aggregateKeys'] as Array).map(AggregateKeyInfoFromJSON)),\n 'forceSkip': !exists(json, 'forceSkip') ? undefined : json['forceSkip'],\n 'forceTake': !exists(json, 'forceTake') ? undefined : json['forceTake'],\n 'parameters': !exists(json, 'parameters') ? undefined : json['parameters'],\n 'filter': !exists(json, 'filter') ? undefined : json['filter'],\n };\n}\n\nexport function VisiteSearchToJSON(value?: VisiteSearch | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'lieu': TextSearchToJSON(value.lieu),\n 'accord': TextSearchToJSON(value.accord),\n 'anneeAcademique': TextSearchToJSON(value.anneeAcademique),\n 'sortKey': value.sortKey,\n 'aggregateKeys': value.aggregateKeys === undefined ? undefined : (value.aggregateKeys === null ? null : (value.aggregateKeys as Array).map(AggregateKeyInfoToJSON)),\n 'forceSkip': value.forceSkip,\n 'forceTake': value.forceTake,\n 'parameters': value.parameters,\n 'filter': value.filter,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Main API v1.0\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * \n * @export\n * @enum {string}\n */\nexport enum EStatutContrat {\n EnCours = 'EnCours',\n Termine = 'Termine',\n Rompu = 'Rompu',\n Suspendu = 'Suspendu',\n NonDemarre = 'NonDemarre',\n SansSuite = 'SansSuite',\n NON_AGREE = 'NON_AGREE',\n RET = 'RET',\n TRANSFERT_CEFA = 'TRANSFERT_CEFA'\n}\n\n\nexport function EStatutContratFromJSON(json: any): EStatutContrat {\n return EStatutContratFromJSONTyped(json, false);\n}\n\nexport function EStatutContratFromJSONTyped(json: any, ignoreDiscriminator: boolean): EStatutContrat {\n return json as EStatutContrat;\n}\n\nexport function EStatutContratToJSON(value?: EStatutContrat | null): any {\n return value as any;\n}\n\n","import \"@blueprintjs/core/lib/css/blueprint.css\";\nimport \"@blueprintjs/datetime/lib/css/blueprint-datetime.css\";\nimport \"@blueprintjs/icons/lib/css/blueprint-icons.css\";\nimport \"@blueprintjs/table/lib/css/table.css\";\nimport \"normalize.css/normalize.css\";\n\nimport { Callout, Classes, Colors, Drawer, Position, Spinner } from \"@blueprintjs/core\";\nimport { useLocalStorageState } from \"ahooks\";\nimport { ErrorBoundary } from \"nsitools-react\";\nimport { darken } from \"polished\";\nimport * as React from \"react\";\nimport { ReactQueryDevtools } from \"react-query/devtools\";\nimport styled from \"styled-components\";\n\nimport { AppNavigation } from \"./app-navigation\";\nimport { AppRouter } from \"./AppRouter\";\nimport {\n AppTheme,\n DialogRoot,\n ExportMenu,\n FooterIfapme,\n Header,\n NavigationMenu,\n RapportMenu,\n StartupDialog\n} from \"./components\";\nimport { useGlobalData } from \"./contexts\";\nimport { useAuth } from \"./contexts/AuthContext\";\nimport { useTheme } from \"./hooks\";\nimport { UnauthorizedPage } from \"./pages\";\nimport { IThemeData } from \"./theme\";\nimport { isAfter, isSameDay } from \"date-fns\";\n\ninterface IAppProps {}\n\nconst AppContainer = styled.div<{ isDark: boolean; theme: IThemeData }>`\n display: flex;\n flex: 1;\n height: -webkit-fill-available;\n width: 100%;\n flex-direction: column;\n background-color: ${props => (props.isDark ? Colors.DARK_GRAY2 : Colors.LIGHT_GRAY3)};\n\n & ::selection {\n color: ${({ theme }) => theme.highlightColor} !important;\n }\n\n & .${Classes.MENU} {\n background-color: ${({ theme }) => theme.menuBackgroundColor} !important;\n }\n\n & .${Classes.CALLOUT} {\n & > .${Classes.ICON} {\n height: 20px;\n display: flex;\n align-items: center;\n }\n\n &.${Classes.INTENT_PRIMARY} {\n color: ${({ theme }) => darken(0.1, theme.primaryColor)} !important;\n }\n\n &.${Classes.INTENT_SUCCESS} {\n color: ${({ theme }) => darken(0.1, theme.sucessColor)} !important;\n }\n\n &.${Classes.INTENT_WARNING} {\n color: ${({ theme }) => darken(0.1, theme.warningColor)} !important;\n }\n\n &.${Classes.INTENT_DANGER} {\n color: ${({ theme }) => darken(0.1, theme.dangerColor)} !important;\n }\n }\n\n & .app-drawer {\n & .${Classes.DRAWER_BODY} {\n background-color: ${({ theme }) => theme.menuBackgroundColor} !important;\n }\n\n & .${Classes.DRAWER_FOOTER} {\n background-color: ${({ theme }) => theme.menuBackgroundColor} !important;\n }\n }\n\n & .${Classes.NAVBAR} {\n background-color: ${props => props.theme.menuBackgroundColor} !important;\n }\n\n & .${Classes.TAG}.${Classes.MINIMAL} {\n &.${Classes.INTENT_PRIMARY} {\n color: ${props => props.theme.primaryColor} !important;\n\n & .${Classes.TAG_REMOVE} > .${Classes.ICON} {\n color: ${props => props.theme.primaryColor} !important;\n }\n }\n\n &.${Classes.INTENT_DANGER} {\n color: ${props => props.theme.dangerColor} !important;\n\n & .${Classes.TAG_REMOVE} > .${Classes.ICON} {\n color: ${props => props.theme.dangerColor} !important;\n }\n }\n\n &.${Classes.INTENT_SUCCESS} {\n color: ${props => props.theme.successColor} !important;\n\n & .${Classes.TAG_REMOVE} > .${Classes.ICON} {\n color: ${props => props.theme.successColor} !important;\n }\n }\n\n &.${Classes.INTENT_WARNING} {\n color: ${props => props.theme.warningColor} !important;\n\n & .${Classes.TAG_REMOVE} > .${Classes.ICON} {\n color: ${props => props.theme.warningColor} !important;\n }\n }\n }\n`;\n\nconst ContentContainer = styled.div`\n flex: 1;\n display: flex;\n flex-direction: row;\n align-items: stretch;\n width: 100%;\n`;\n\nconst CenterContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n margin-top: 100px;\n flex: 1;\n`;\n\nconst RouterContainer = styled.div<{ withWarning: number }>`\n height: ${props => (props.withWarning ? \"84vh\" : \"89vh\")} !important;\n flex: 1;\n width: 0;\n`;\n\nexport const App: React.FunctionComponent = () => {\n const [menuFixed, setMenuFixed] = useLocalStorageState(\"menuFixed\", { defaultValue: true });\n const { theme, ifapmeSide } = useTheme();\n const {\n enableNextFeatures,\n applicationWideWarning,\n loading,\n walterStartupPopupText,\n hopeStartupPopupText,\n startupMessageEndDate\n } = useGlobalData();\n\n const [drawerVisible, setDrawerVisible] = React.useState(false);\n const [exportMenuVisible, setExportMenuVisible] = React.useState(false);\n const [reportMenuVisible, setReportMenuVisible] = React.useState(false);\n const [darkMode, setDarkMode] = React.useState(false);\n const [showStartupDialog, setShowStartupDialog] = React.useState(false);\n const { user, userPermissions, isLoading: authLoading, azureAdAccount, authenticationFailed } = useAuth();\n\n const finalMenuFixed = React.useMemo(() => menuFixed && !exportMenuVisible && !reportMenuVisible, [\n exportMenuVisible,\n menuFixed,\n reportMenuVisible\n ]);\n\n const onToggleFixed = React.useCallback(() => {\n if (reportMenuVisible || exportMenuVisible) return;\n\n if (!menuFixed) {\n setDrawerVisible(false);\n }\n setMenuFixed(!menuFixed);\n }, [exportMenuVisible, menuFixed, reportMenuVisible, setMenuFixed]);\n\n const navigationItems = React.useMemo(\n () =>\n AppNavigation(userPermissions?.map(p => p.module.toUpperCase()) ?? [], ifapmeSide, enableNextFeatures).filter(\n n => !!n\n ),\n [enableNextFeatures, ifapmeSide, userPermissions]\n );\n\n const hasStartupText = React.useMemo(\n () => (!!walterStartupPopupText && ifapmeSide === \"walter\") || (!!hopeStartupPopupText && ifapmeSide === \"hope\"),\n [hopeStartupPopupText, ifapmeSide, walterStartupPopupText]\n );\n\n React.useEffect(() => {\n if (\n !authenticationFailed &&\n !authLoading &&\n !!user &&\n user.showStartupPopup &&\n hasStartupText &&\n (isAfter(startupMessageEndDate, new Date()) || isSameDay(startupMessageEndDate, new Date()))\n ) {\n setShowStartupDialog(true);\n }\n }, [\n authLoading,\n authenticationFailed,\n hasStartupText,\n hopeStartupPopupText,\n ifapmeSide,\n startupMessageEndDate,\n user,\n walterStartupPopupText\n ]);\n\n if (authenticationFailed) {\n return (\n \n {!!applicationWideWarning && }\n \n \n );\n }\n\n if (authLoading || !user) {\n return (\n \n \n \n );\n }\n return (\n \n \n \n {!!applicationWideWarning && }\n {!user && !azureAdAccount ? (\n \n \n \n ) : (\n <>\n {\n setDrawerVisible(s => !s);\n }}\n toggleExportMenu={() => {\n setExportMenuVisible(s => !s);\n setReportMenuVisible(false);\n }}\n toggleReportMenu={() => {\n setReportMenuVisible(s => !s);\n setExportMenuVisible(false);\n }}\n isDark={darkMode}\n onDarkSwitchChange={() => setDarkMode(!darkMode)}\n />\n {loading ? (\n \n \n \n ) : (\n \n setDrawerVisible(false)}\n canEscapeKeyClose={true}\n canOutsideClickClose={true}\n usePortal={false}\n >\n
\n setDrawerVisible(false)}\n />\n
\n
\n \n\n {finalMenuFixed && (\n setMenuFixed(!menuFixed)}\n />\n )}\n \n \n \n {exportMenuVisible && !reportMenuVisible && (\n {\n setExportMenuVisible(s => !s);\n setReportMenuVisible(false);\n }}\n />\n )}\n {reportMenuVisible && !exportMenuVisible && (\n {\n setReportMenuVisible(s => !s);\n setExportMenuVisible(false);\n }}\n />\n )}\n \n )}\n \n \n )}\n \n \n \n {user.showStartupPopup && hasStartupText && (\n setShowStartupDialog(false)} />\n )}\n \n );\n};\n","import { createHashHistory } from \"history\";\nimport * as React from \"react\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\nimport { Router } from \"react-router-dom\";\nimport { RecoilRoot } from \"recoil\";\n\nimport {\n AuthProvider,\n BeIdCardProvider,\n BreadcrumbProvider,\n DialogProvider,\n EventsProvider,\n GlobalDataProvider,\n ModifiedByProvider,\n PrintingQueueProvider,\n RouteParamsProvider,\n SearchCriteriaProvider,\n useDialog\n} from \"./contexts\";\nimport { useTl } from \"./hooks\";\nimport { ETLCodes } from \"./locales\";\n\nconst AppWithRouterProvider: React.FunctionComponent = props => {\n const { showDialog } = useDialog();\n const { t } = useTl();\n const hashHistory = React.useMemo(\n () =>\n createHashHistory({\n getUserConfirmation: (message, cb) => {\n showDialog({\n message,\n title: t(ETLCodes.RouteConfirmDialogTitle),\n onDialogClosed: res => {\n if (res === \"yes\" || res === \"ok\") {\n cb(true);\n } else {\n cb(false);\n }\n }\n });\n }\n }),\n [showDialog, t]\n );\n return (\n \n \n \n \n \n \n \n \n \n {props.children}\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const AppProvider: React.FunctionComponent = props => {\n const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false\n },\n mutations: {}\n }\n });\n\n return (\n \n \n \n {props.children}\n \n \n \n );\n};\n","export const versions = {\n version: \"1.0.183\",\n revision: \"e74c1b292\",\n branch: \"HEAD\",\n gitInfo: {\n dirty: true,\n raw: \"v1.0.183-4428-ge74c1b292-dirty\",\n hash: \"ge74c1b292\",\n distance: 4428,\n tag: \"v1.0.183\",\n semver: {\n options: { loose: false, includePrerelease: false },\n loose: false,\n raw: \"v1.0.183\",\n major: 1,\n minor: 0,\n patch: 183,\n prerelease: [],\n build: [],\n version: \"1.0.183\"\n },\n suffix: \"4428-ge74c1b292-dirty\",\n semverString: \"1.0.183+4428.ge74c1b292.dirty\"\n }\n};\n","import \"./index.css\";\nimport * as React from \"react\";\nimport * as ReactDom from \"react-dom\";\nimport { App } from \"./App\";\nimport { AppProvider } from \"./AppProvider\";\nimport { pdfjs } from \"react-pdf\";\nimport { versions } from \"./version\";\n\n(window as any).__app_version = versions;\npdfjs.GlobalWorkerOptions.workerSrc = \"pdf.worker.min.js\";\n\nReactDom.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n","export const phoneRegex = /^[+\\d/\\-. ]*$/gm;\n","import { IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport {\n DeliberationMasseApi,\n DeliberationMasseSearch,\n FcbDeliberationMasseGridDto,\n ETextSearchType\n} from \"../../../../api\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { SearchTablePage } from \"../../../../components\";\nimport { Spinner, Checkbox } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { useGlobalData, useAuth } from \"../../../../contexts\";\n\nexport interface IDeliberationMasseSelectorProps {\n loading: boolean;\n submitIds: (ids: number[]) => void;\n}\nexport const DeliberationMasseSelector: React.FunctionComponent = ({\n loading,\n submitIds\n}) => {\n const { t } = useTl();\n const api = useApiService(DeliberationMasseApi);\n const [selectedIDs, setSelectedIDs] = React.useState([]);\n const lastSearchObject = React.useRef();\n const [selectAllLoading, setSelectAllLoading] = React.useState(false);\n const [nbReturnedIds, setNbReturnedIds] = React.useState(0);\n const { currentAnneeScolaire } = useGlobalData();\n const { getCurrentPermission } = useAuth();\n const hasRights = React.useMemo(() => getCurrentPermission()?.permission?.includes(\"RW\"), [getCurrentPermission]);\n\n const apiFactory = useAbortableApiServiceFactory(DeliberationMasseApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: DeliberationMasseSearch) => {\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject.current)) {\n lastSearchObject.current = nextSearch;\n }\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.deliberationMasseBaseSearch({ DeliberationMasseSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const selectAll = React.useCallback(() => {\n setSelectAllLoading(true);\n api\n .deliberationMasseSearchBatIds({\n DeliberationMasseSearch: { ...lastSearchObject.current, forceSkip: 0, forceTake: 999999 }\n })\n .then(allIds => {\n if (allIds.length === selectedIDs.length) {\n setSelectedIDs([]);\n setNbReturnedIds(0);\n } else {\n setSelectedIDs(allIds);\n setNbReturnedIds(allIds.length);\n }\n setSelectAllLoading(false);\n });\n }, [api, selectedIDs]);\n\n const toggleSelection = React.useCallback(\n (item: FcbDeliberationMasseGridDto) => {\n if (!selectedIDs.includes(item.idbulletinApprenantType)) {\n setSelectedIDs(ids => [...ids, item.idbulletinApprenantType]);\n } else {\n setSelectedIDs(ids => ids.filter(id => id !== item.idbulletinApprenantType));\n }\n },\n [selectedIDs]\n );\n\n const columns = React.useMemo(() => {\n return [\n {\n computed: true,\n fieldName: \"checkboxes\",\n autoFitContent: true,\n header: () =>\n selectAllLoading ? (\n \n ) : (\n 0 && nbReturnedIds === selectedIDs.length}\n onChange={selectAll}\n />\n ),\n render: (item: FcbDeliberationMasseGridDto) => (\n {\n toggleSelection(item);\n }}\n />\n )\n },\n {\n fieldName: \"idapprenant\",\n header: () => t(ETLCodes.Identifiant)\n },\n {\n fieldName: \"nom\",\n header: () => t(ETLCodes.Nom)\n },\n {\n fieldName: \"prenom\",\n header: () => t(ETLCodes.Prenom)\n },\n {\n fieldName: \"dateNaissance\",\n header: () => t(ETLCodes.DateNaissance)\n },\n {\n fieldName: \"anneeScolaire\",\n header: () => t(ETLCodes.AnneeScolaire)\n },\n {\n fieldName: \"degre\",\n header: () => t(ETLCodes.Degre)\n },\n {\n fieldName: \"metier\",\n header: () => t(ETLCodes.Metier)\n },\n {\n fieldName: \"idclasse\",\n header: () => t(ETLCodes.ClasseIdentifiant)\n }\n ];\n }, [hasRights, nbReturnedIds, selectAll, selectAllLoading, selectedIDs, t, toggleSelection]);\n\n const getCriteria = React.useCallback(() => api.deliberationMasseGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n submitIds(selectedIDs),\n loading: loading\n }\n ]}\n defaultCriterias={[\n {\n criteria: \"AnneeScolaire\",\n searchMode: ETextSearchType.Equals,\n value: currentAnneeScolaire?.idanneeScolaire,\n mandatory: true\n }\n ]}\n />\n );\n};\n","import { FGListen, FieldGroup, FieldSet } from \"nsitools-react\";\nimport * as React from \"react\";\nimport * as Yup from \"yup\";\n\nimport { DeliberationMasseApi, FcbDeliberationMasseDtoFromJSON } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterDateMaskInput, PageBase, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { DeliberationMasseSelector } from \"./DeliberationMasseSelector\";\n\nexport interface IDeliberationMasseItemPageProps {}\n\nexport const DeliberationMasseItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const [dateDeliberation, setDateDeliberation] = React.useState(null);\n const api = useApiService(DeliberationMasseApi);\n const { data, saving, saveItem } = useCrudApi({\n getApiFn: () => {\n return FcbDeliberationMasseDtoFromJSON({});\n },\n saveApiFn: d => api.deliberationMasseSave({ FcbDeliberationMasseDto: d }),\n onSavedRoute: () => `${ERoutes.deliberationMasse}`,\n deleteApiFn: () => {}\n });\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n dateDeliberation: Yup.date()\n .typeError(t(ETLCodes.DateInvalide))\n .required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n \n
\n {data && (\n \n setDateDeliberation(value)} />\n \n \n \n \n )}\n \n saveItem({\n dateDeliberation: dateDeliberation,\n idBulletinApprenantTypes: ids\n })\n }\n />\n
\n
\n );\n};\n","import { Icon, Tooltip } from \"@blueprintjs/core\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport {\n EBooleanSearchTypes,\n ELieuFormationAgrementStatut,\n OffreDemandeGridDto,\n LieuFormationAgrementSearchDto,\n OffreDemandeApi\n} from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport {\n BooleanColumn,\n CircleColumn,\n CustomBulletList,\n EditButton,\n LinkButton,\n SearchTablePage,\n ViewButton\n} from \"../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTheme, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst LegendHeaderContainer = styled.div`\n & > * + * {\n margin-left: 0.5rem;\n }\n`;\n\nexport interface IOffreListPageProps {}\n\nexport const OffreListPage: React.FunctionComponent = () => {\n const { t, tUnsafe } = useTl();\n const { theme } = useTheme();\n const { push } = useHistory();\n const api = useApiService(OffreDemandeApi);\n\n const apiFactory = useAbortableApiServiceFactory(OffreDemandeApi);\n const lastAbortController = React.useRef();\n const searchFunction = React.useCallback(\n (sObj?: LieuFormationAgrementSearchDto) => {\n sObj.excludedStatuts = [ELieuFormationAgrementStatut.Suspendu, ELieuFormationAgrementStatut.Retrait];\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.offreDemandeBaseSearch({ OffreDemandeSearchDto: sObj });\n },\n [apiFactory]\n );\n\n const computeType = React.useCallback(\n (row: OffreDemandeGridDto) => {\n if (row.agrementPartielA && row.agrementPartielB) return t(ETLCodes.PartielAB);\n if (row.agrementPartielA) return t(ETLCodes.PartielA);\n if (row.agrementPartielB) return t(ETLCodes.PartielB);\n return t(ETLCodes.Complet);\n },\n [t]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: OffreDemandeGridDto) => (\n \n push(`${ERoutes.offre}/${row.idlieuFormationAgrementOffre}/detail/view`)}\n />\n push(`${ERoutes.offre}/${row.idlieuFormationAgrementOffre}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.LieuFormation),\n fieldName: \"nomLieuFormation\",\n render: (row: OffreDemandeGridDto) => (\n \n window.open(\n `#${ERoutes.lieuFormation}/${row.idlieuFormation}/detail/view?idsiegeSocial=${row.idsiegeSocial}`\n )\n }\n />\n )\n },\n {\n header: () => t(ETLCodes.Enseigne),\n fieldName: \"enseigneLieuFormation\"\n },\n {\n header: () => t(ETLCodes.Active),\n fieldName: \"offreActive\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: OffreDemandeGridDto) => \n },\n {\n header: () => (\n \n {t(ETLCodes.C)}\n \n }\n popoverClassName=\"bullet-list-popover\"\n position=\"right\"\n >\n \n \n \n ),\n fieldName: \"capaciteAtteinte\",\n autoFitContent: true,\n render: (row: OffreDemandeGridDto) => (\n \n )\n },\n {\n header: () => t(ETLCodes.CodeMetier),\n fieldName: \"codeMetier\"\n },\n {\n header: () => t(ETLCodes.NomMetier),\n fieldName: \"nomMetier\"\n },\n {\n header: () => t(ETLCodes.Stade),\n fieldName: \"nomStade\"\n },\n {\n header: () => t(ETLCodes.Statut),\n fieldName: \"statut\",\n render: row => tUnsafe(`StatutAgrement_${row.statut}`)\n },\n {\n header: () => t(ETLCodes.Type),\n fieldName: \"type\",\n render: (row: OffreDemandeGridDto) => computeType(row)\n },\n {\n header: () => t(ETLCodes.DateDecision),\n fieldName: \"dateDecision\"\n }\n ],\n [computeType, push, t, tUnsafe, theme.dangerColor, theme.sucessColor]\n );\n\n const getCriteria = React.useCallback(() => api.offreDemandeGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport { OffreDetail } from \".\";\nimport { LieuFormationAgrementApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IOffreItemPageProps {}\n\nexport const OffreItemPage: React.FunctionComponent = props => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(LieuFormationAgrementApi);\n const [displayName] = useApiEffect(\n () => api.lieuFormationAgrementGetOffreDisplayName({ idlieuFormationAgrementOffre: +id }),\n [id]\n );\n\n return (\n \n history.push(`${ERoutes.offre}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n \n \n );\n};\n","import { Radio, RadioGroup } from \"@blueprintjs/core\";\nimport { getIn } from \"formik\";\nimport { FGCustomInput, FGTextAreaInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory, useParams } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { LieuFormationAgrementApi, LieuFormationAgrementOffreDto } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGReadOnlyInput, LinkButton, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTheme, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst InputContainer = styled.div`\n padding: 0.4rem 0 0 0.6rem;\n`;\n\nconst OffreContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport interface IOffreDetailProps {}\n\nexport const OffreDetail: React.FunctionComponent = props => {\n const { t } = useTl();\n const { theme } = useTheme();\n const history = useHistory();\n const api = useApiService(LieuFormationAgrementApi);\n\n const { id, state } = useParams<{ id: string; state: string }>();\n\n const { data, loading, saveItem, saving, validationErrors } = useCrudApi(\n React.useMemo(\n () => ({\n getApiFn: () => {\n return api.lieuFormationAgrementGetOffre({ idlieuFormationAgrementOffre: +id });\n },\n saveApiFn: async (d: LieuFormationAgrementOffreDto) => {\n return api.lieuFormationAgrementSaveOffre({ LieuFormationAgrementOffreDto: d });\n },\n onSavedRoute: d => `${ERoutes.offre}`\n }),\n [api, id]\n )\n );\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n remarque: Yup.string(),\n actif: Yup.boolean().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const fetchCapaciteFormativeAtteinte = React.useCallback(() => {\n return api.lieuFormationAgrementCheckCapaciteFormativeAtteinte({ idlieuFormationAgrementOffre: +id });\n }, [api, id]);\n const { data: capaciteFormativeAtteinte } = useQuery([\"offre-cap-form\", id], fetchCapaciteFormativeAtteinte);\n\n return (\n history.push(ERoutes.offre)}\n saving={saving}\n validationErrors={validationErrors}\n showDeleteButton={false}\n minLabelWidth={205}\n >\n \n \n (\n \n \n window.open(\n `#${ERoutes.lieuFormation}/${ctx?.formik?.values?.idlieuFormation}/agrements/view/${ctx?.formik?.values?.idlieuFormationAgrement}?idsiegeSocial=${ctx?.formik?.values?.idsiegeSocial}`,\n \"_blank\"\n )\n }\n />\n \n )}\n >\n \n {ctx => (\n \n ctx.formik.setFieldValue(\"actif\", e.currentTarget.value === \"1\")}\n disabled={!ctx?.editMode && capaciteFormativeAtteinte?.value}\n >\n \n \n \n \n )}\n \n \n \n \n \n );\n};\n","import { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { AcquisIfapmeApi, AcquisIfapmeEditDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IAcquisIfapmeDetailPageProps {\n editMode: boolean;\n id: number;\n}\n\nexport const AcquisIfapmeDetailPage: React.FunctionComponent = ({ editMode, id }) => {\n const { t } = useTl();\n const api = useApiService(AcquisIfapmeApi);\n const history = useHistory();\n\n const fetchIsDeletable = React.useCallback(async () => {\n if (!id) return;\n const res = await api.acquisIfapmeIsAcquisDeletable({\n id\n });\n\n return res.value;\n }, [id, api]);\n\n const { data: isDeletable } = useQuery([\"acquisIfapme-is-deletable\", id], fetchIsDeletable, {\n enabled: true\n });\n\n const { data, loading, saveItem, saving, deleteItem, deleting } = useCrudApi({\n getApiFn: () =>\n id === 0 ? AcquisIfapmeEditDtoFromJSON({ idtitreDiplomeCertificationIfapme: 0 }) : api.acquisIfapmeGet({ id }),\n saveApiFn: d => api.acquisIfapmeSave({ AcquisIfapmeEditDto: d }),\n onSavedRoute: d => `${ERoutes.acquisIfapme}/${d.idtitreDiplomeCertificationIfapme}/detail/edit`,\n deleteApiFn: d => api.acquisIfapmeDelete({ id: d.idtitreDiplomeCertificationIfapme }),\n onDeletedRoute: () => `${ERoutes.acquisIfapme}/`\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n description: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n history.push(ERoutes.acquisIfapme)}\n onDelete={deleteItem}\n deleting={deleting}\n showDeleteButton={id !== 0}\n deleteBtnDisabled={!isDeletable}\n saving={saving}\n specificRights={{ module: \"ANNEESCOLAIRE\", tab: \"DETAIL\", rights: \"RW\" }}\n >\n \n \n \n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { AcquisIfapmeApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { AcquisIfapmeDetailPage } from \"./AcquisIfapmeDetailPage\";\n\nexport interface IAcquisIfapmeItemPageProps {}\n\nexport const AcquisIfapmeItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const AcquisApi = useApiService(AcquisIfapmeApi);\n const [displayName] = useApiEffect(() => AcquisApi.acquisIfapmeGetDisplayName({ id: +id }), [id]);\n return (\n \n history.push(`${ERoutes.acquisIfapme}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { AcquisIfapmeApi, AcquisIfapmeGridDto, AcquisIfapmeSearchDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\nexport interface IAcquisIfapmeListPageProps {}\n\nexport const AcquisIfapmeListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(AcquisIfapmeApi);\n const [lastSearchObject, setLastSearchObject] = React.useState();\n\n const apiFactory = useAbortableApiServiceFactory(AcquisIfapmeApi);\n const lastAbortController = React.useRef();\n const search = React.useCallback(\n (nextSearch?: AcquisIfapmeSearchDto) => {\n if (JSON.stringify(nextSearch) !== JSON.stringify(lastSearchObject)) {\n setLastSearchObject(nextSearch);\n }\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.acquisIfapmeBaseSearch({ AcquisIfapmeSearchDto: nextSearch });\n },\n [apiFactory, lastSearchObject]\n );\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: AcquisIfapmeGridDto) => (\n \n \n history.push(`${ERoutes.acquisIfapme}/${row.idtitreDiplomeCertificationIfapme}/detail/view`)\n }\n />\n \n history.push(`${ERoutes.acquisIfapme}/${row.idtitreDiplomeCertificationIfapme}/detail/edit`)\n }\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.acquisIfapme}/0/detail/edit`);\n }, [history]);\n\n const getCriteria = React.useCallback(() => api.acquisIfapmeGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../../hooks\";\nimport { useHistory } from \"react-router\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport {\n SpecificiteCoursApi,\n FcbSpecificiteCoursGridDto,\n SpecificiteCoursSearch,\n EBooleanSearchTypes\n} from \"../../../../../api\";\nimport styled from \"styled-components\";\nimport { Checkbox } from \"@blueprintjs/core\";\nimport { IDataTableColumn } from \"nsitools-react\";\n\ninterface ISpecificiteCoursListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const SpecificiteCoursListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(SpecificiteCoursApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbSpecificiteCoursGridDto) => (\n \n history.push(`${ERoutes.specificiteCours}/${row.code}/detail/view`)}\n />\n history.push(`${ERoutes.specificiteCours}/${row.code}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n },\n {\n header: () => t(ETLCodes.IsCompanySearch),\n fieldName: \"isCompanySearch\",\n autoFitContent: true,\n alignment: \"center\",\n render: (row: FcbSpecificiteCoursGridDto) => \n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.specificiteCours}/-1/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.specificiteCoursGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(SpecificiteCoursApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: SpecificiteCoursSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.specificiteCoursBaseSearch({ SpecificiteCoursSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGEmpty, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbSpecificiteCoursDtoFromJSON, SpecificiteCoursApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { FGWalterCheckboxInput, SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ISpecificiteCoursDetailPageProps {\n codeSpecificite: string;\n editMode: boolean;\n}\n\nexport const SpecificiteCoursDetailPage: React.FunctionComponent = ({\n codeSpecificite,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(SpecificiteCoursApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n codeSpecificite === \"-1\"\n ? FcbSpecificiteCoursDtoFromJSON({})\n : api.specificiteCoursGet({ code: codeSpecificite }),\n saveApiFn: d => api.specificiteCoursSave({ FcbSpecificiteCoursDto: d }),\n onSavedRoute: d => `${ERoutes.specificiteCours}/${d.code}/detail/edit`,\n deleteApiFn: d => api.specificiteCoursDelete({ code: d.code }),\n onDeletedRoute: () => ERoutes.specificiteCours\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n code: Yup.string()\n .required(t(ETLCodes.Required))\n .test(\"code-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === data.code) return true;\n const validationError = await api.specificiteCoursCodeExists({ code: value });\n return validationError.isValid;\n }),\n libelle: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t, api, data]);\n\n return (\n data && (\n history.push(ERoutes.specificiteCours)}\n onDelete={deleteItem}\n showDeleteButton={codeSpecificite !== \"-1\"}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { SpecificiteCoursApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { SpecificiteCoursDetailPage } from \"./SpecificiteCoursDetailPage\";\n\ninterface ISpecificiteCoursItemPageProps {}\n\nexport const SpecificiteCoursItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n\n const specificiteCoursApi = useApiService(SpecificiteCoursApi);\n const [displayName] = useApiEffect(() => specificiteCoursApi.specificiteCoursGetDisplayName({ id: id }), [id]);\n return (\n \n history.push(`${ERoutes.specificiteCours}/${id}/${newTabId}`)}\n renderActiveTabPanelOnly\n selectedTabId={tab}\n >\n \n }\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../../hooks\";\nimport { useHistory } from \"react-router\";\nimport { ViewButton, EditButton, SearchTablePage } from \"../../../../../components\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { TypeEvaluationApi, FcbTypeEvaluationDto, TypeEvaluationSearch, EBooleanSearchTypes } from \"../../../../../api\";\n\ninterface ITypeEvaluationListPageProps {}\nconst Container = styled.div`\n display: flex;\n`;\nexport const TypeEvaluationListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(TypeEvaluationApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbTypeEvaluationDto) => (\n \n history.push(`${ERoutes.typeEvaluation}/${row.idevaluationType}/detail/view`)}\n />\n history.push(`${ERoutes.typeEvaluation}/${row.idevaluationType}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.typeEvaluation}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.typeEvaluationGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(TypeEvaluationApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: TypeEvaluationSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.typeEvaluationBaseSearch({ TypeEvaluationSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbTypeEvaluationDtoFromJSON, TypeEvaluationApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ITypeEvaluationDetailPageProps {\n idTypeEvaluation: number;\n editMode: boolean;\n}\n\nexport const TypeEvaluationDetailPage: React.FunctionComponent = ({\n idTypeEvaluation,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(TypeEvaluationApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idTypeEvaluation <= 0\n ? FcbTypeEvaluationDtoFromJSON({ idTypeEvaluation: 0 })\n : api.typeEvaluationGet({ id: +idTypeEvaluation }),\n saveApiFn: d => api.typeEvaluationSave({ FcbTypeEvaluationDto: d }),\n onSavedRoute: d => `${ERoutes.typeEvaluation}/${d.idevaluationType}/detail/edit`,\n deleteApiFn: d => api.typeEvaluationDelete({ id: d.idevaluationType }),\n onDeletedRoute: () => ERoutes.typeEvaluation\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n libelle: Yup.string()\n .required(t(ETLCodes.Required))\n .max(50)\n .test(\"libelle-not-exists\", t(ETLCodes.CodeExistsError), async value => {\n if (value === data.libelle) return true;\n const validationError = await api.typeEvaluationExists({ libelle: value });\n return validationError.isValid;\n })\n });\n }, [t, api, data]);\n\n return (\n data && (\n history.push(ERoutes.typeEvaluation)}\n onDelete={deleteItem}\n showDeleteButton={+idTypeEvaluation > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { TypeEvaluationDetailPage } from \"..\";\nimport { TypeEvaluationApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ITypeEvaluationItemPageProps {}\n\nexport const TypeEvaluationItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n\n const typeEvaluationApi = useApiService(TypeEvaluationApi);\n const [displayName] = useApiEffect(() => typeEvaluationApi.typeEvaluationGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.typeEvaluation}/${id}/${newTabId}`)}\n renderActiveTabPanelOnly\n selectedTabId={tab}\n >\n \n }\n />\n \n \n );\n};\n","import { FGMaskInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbUniteActiviteDtoFromJSON, UniteActiviteApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IUniteActiviteDetailPageProps {\n idUnite: number;\n editMode: boolean;\n}\n\nexport const UniteActiviteDetailPage: React.FunctionComponent = ({\n idUnite,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(UniteActiviteApi);\n const history = useHistory();\n const [annees, aLoading] = useReferential(a => a.referentialGetAnneeScolaire(), false, []);\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n anneeAcademique: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idUnite <= 0 ? FcbUniteActiviteDtoFromJSON({ idUnite: 0 }) : api.uniteActiviteGet({ id: +idUnite }),\n saveApiFn: d => api.uniteActiviteSave({ FcbUniteActiviteDto: d }),\n onSavedRoute: d => `${ERoutes.uniteActivite}/${d.idUnite}/detail/edit`,\n deleteApiFn: d => api.uniteActiviteDelete({ id: d.idUnite }),\n onDeletedRoute: () => ERoutes.uniteActivite\n });\n\n return (\n data && (\n history.push(ERoutes.uniteActivite)}\n onDelete={deleteItem}\n showDeleteButton={+idUnite > 0}\n saving={saving}\n deleting={deleting}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { UniteActiviteApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { UniteActiviteDetailPage } from \"./UniteActiviteDetailPage\";\n\nexport interface IUniteActiviteItemPageProps {}\n\nexport const UniteActiviteItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const Api = useApiService(UniteActiviteApi);\n const [displayName] = useApiEffect(() => Api.uniteActiviteGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.uniteActivite}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../hooks\";\nimport { useHistory } from \"react-router\";\nimport { FcbUniteActiviteDto, UniteActiviteApi, UniteActiviteSearch } from \"../../../../api\";\nimport { ButtonContainer } from \"nsitools-react\";\nimport { ViewButton, EditButton, SearchTablePage } from \"../../../../components\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IUniteActiviteListPageProps {}\n\nexport const UniteActiviteListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(UniteActiviteApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbUniteActiviteDto) => (\n \n history.push(`${ERoutes.uniteActivite}/${row.idUnite}/detail/view`)}\n />\n history.push(`${ERoutes.uniteActivite}/${row.idUnite}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeAcademique\"\n },\n {\n header: () => t(ETLCodes.AAPS1),\n fieldName: \"aaS1\"\n },\n {\n header: () => t(ETLCodes.AAPS2),\n fieldName: \"aaS2\"\n },\n {\n header: () => t(ETLCodes.BAPS1),\n fieldName: \"abS1\"\n },\n {\n header: () => t(ETLCodes.BAPS2),\n fieldName: \"abS2\"\n },\n {\n header: () => t(ETLCodes.IAPS1),\n fieldName: \"aiS1\"\n },\n {\n header: () => t(ETLCodes.IAPS2),\n fieldName: \"aiS2\"\n },\n {\n header: () => t(ETLCodes.ACES1),\n fieldName: \"ceaS1\"\n },\n {\n header: () => t(ETLCodes.ACES2),\n fieldName: \"ceaS2\"\n },\n {\n header: () => t(ETLCodes.BCES1),\n fieldName: \"cebS1\"\n },\n {\n header: () => t(ETLCodes.BCES2),\n fieldName: \"cebS2\"\n },\n {\n header: () => t(ETLCodes.ICES1),\n fieldName: \"ceiS1\"\n },\n {\n header: () => t(ETLCodes.IECS2),\n fieldName: \"ceiS2\"\n },\n {\n header: () => t(ETLCodes.FAGS1),\n fieldName: \"fagS1\"\n },\n {\n header: () => t(ETLCodes.FAGS2),\n fieldName: \"fagS2\"\n },\n {\n header: () => t(ETLCodes.IndiceRecyclageS1),\n fieldName: \"recyclageS1\"\n },\n {\n header: () => t(ETLCodes.IndiceRecyclageS2),\n fieldName: \"recyclageS2\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.uniteActivite}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.uniteActiviteGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(UniteActiviteApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: UniteActiviteSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.uniteActiviteBaseSearch({ UniteActiviteSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGCheckboxInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { ExportGapApi, FcbExportGapDtoFromJSON } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IExportationGapDetailPageProps {\n idExport: number;\n editMode: boolean;\n}\n\nexport const ExportationGapDetailPage: React.FunctionComponent = ({\n idExport,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(ExportGapApi);\n const history = useHistory();\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n idcentre: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n const [centre, cLoading] = useReferential(a => a.referentialGetCentre(), true, []);\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () => (idExport <= 0 ? FcbExportGapDtoFromJSON({ idExport: 0 }) : api.exportGapGet({ id: +idExport })),\n saveApiFn: d => api.exportGapSave({ FcbExportGapDto: d }),\n onSavedRoute: d => `${ERoutes.exportationGap}/${d.idexport}/detail/edit`,\n deleteApiFn: d => api.exportGapDelete({ id: d.idexport }),\n onDeletedRoute: () => ERoutes.exportationGap\n });\n\n return (\n history.push(ERoutes.exportationGap)}\n onDelete={deleteItem}\n showDeleteButton={idExport > 0}\n saving={saving}\n deleting={deleting}\n >\n \n 0} />\n \n \n \n \n \n );\n};\n","import { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ExportGapPrestationApi, RechercheExportGapSearch } from \"../../../../api\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IExportationGapPrestationListPageProps {\n idExport: number;\n}\n\nexport const ExportationGapPrestationListPage: React.FunctionComponent = ({\n idExport\n}) => {\n const { t } = useTl();\n const api = useApiService(ExportGapPrestationApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { jour: \"DESC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: RechercheExportGapSearch) => {\n sObj.idexport = idExport;\n return api.exportGapPrestationBaseSearch({ RechercheExportGapSearch: sObj });\n },\n [api, idExport]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"jour\"\n },\n {\n header: () => t(ETLCodes.CodeClasse),\n fieldName: \"codeClasse\"\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"classe\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"formateur\"\n },\n {\n header: () => t(ETLCodes.Matricule),\n fieldName: \"matricule\"\n },\n {\n header: () => t(ETLCodes.NbHeure),\n fieldName: \"count\"\n }\n ],\n [t]\n );\n\n return (\n <>\n {idExport > 0 && (\n
\n \n
\n )}\n \n );\n};\n","import { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ExportGapRemplacementApi, RechercheExportGapSearch } from \"../../../../api\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IExportationGapRemplacementsListPageProps {\n idExport: number;\n}\n\nexport const ExportationGapRemplacementsListPage: React.FunctionComponent = ({\n idExport\n}) => {\n const { t } = useTl();\n const api = useApiService(ExportGapRemplacementApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [15, 25, 50],\n pageSize: 15,\n sortKeys: { jour: \"DESC\" }\n });\n\n const { totalCount } = tableState;\n\n const searchFunction = React.useCallback(\n (sObj?: RechercheExportGapSearch) => {\n sObj.idexport = idExport;\n return api.exportGapRemplacementBaseSearch({ RechercheExportGapSearch: sObj });\n },\n [api, idExport]\n );\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Jour),\n fieldName: \"jour\"\n },\n {\n header: () => t(ETLCodes.Formateur),\n fieldName: \"matricule\"\n },\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"codeClasse\"\n },\n {\n header: () => t(ETLCodes.HeuresPrestees),\n fieldName: \"count\"\n },\n {\n header: () => t(ETLCodes.Signe),\n fieldName: \"signe\"\n }\n ],\n [t]\n );\n\n return (\n <>\n {idExport > 0 && (\n
\n \n
\n )}\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ExportGapClassesList, ExportGapFormateursList, ExportGapStatistiqueList } from \"..\";\nimport { ExportGapApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { ExportationGapDetailPage } from \"./ExportationGapDetailPage\";\nimport { ExportationGapPrestationListPage } from \"./ExportationGapPrestationListPage\";\nimport { ExportationGapRemplacementsListPage } from \"./ExportationGapRemplacementsListPage\";\n\nexport interface IExportationGapItemPageProps {}\n\nexport const ExportationGapItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const exportationGapApi = useApiService(ExportGapApi);\n const [displayName] = useApiEffect(() => exportationGapApi.exportGapGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.exportationGap}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n }\n disabled={+id <= 0}\n />\n }\n disabled={+id <= 0}\n />\n }\n disabled={+id <= 0}\n />\n }\n disabled={+id <= 0}\n />\n }\n disabled={+id <= 0}\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService } from \"../../../../hooks\";\nimport { useHistory } from \"react-router\";\nimport { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport { ViewButton, EditButton, SearchTablePage } from \"../../../../components\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { FcbRechercheExportGapDto, ExportGapApi, RechercheExportGapSearch } from \"../../../../api\";\nimport { Checkbox } from \"@blueprintjs/core\";\n\nexport interface IExportationGapListPageProps {}\n\nexport const ExportationGapListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ExportGapApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbRechercheExportGapDto) => (\n \n history.push(`${ERoutes.exportationGap}/${row.idexport}/detail/view`)}\n />\n history.push(`${ERoutes.exportationGap}/${row.idexport}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Numero),\n fieldName: \"idexport\"\n },\n {\n header: () => t(ETLCodes.Date),\n fieldName: \"date\"\n },\n {\n header: () => t(ETLCodes.Centre),\n fieldName: \"centre\"\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.Valide),\n fieldName: \"valide\",\n autofitcontent: true,\n alignment: \"center\",\n render: (row: FcbRechercheExportGapDto) => \n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.exportationGap}/0/detail/edit`);\n }, [history]);\n\n return (\n api.exportGapGetSearchCriterias({ includeListsValues: true })}\n searchFunction={(sObj?: RechercheExportGapSearch) => api.exportGapBaseSearch({ RechercheExportGapSearch: sObj })}\n columns={columns}\n breadCrumbs={[{ text: t(ETLCodes.ExportationsGAP), route: ERoutes.exportationGap }]}\n addFunc={onAddItem}\n sortKeys={{ idexport: \"ASC\" }}\n />\n );\n};\n","import { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ExportGapClassesApi, RechercheExportGapSearch } from \"../../../../api\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IExportGapClassesListProps {\n idExport: number;\n}\n\nexport const ExportGapClassesList: React.FunctionComponent = ({ idExport }) => {\n const { t } = useTl();\n const api = useApiService(ExportGapClassesApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { Nom: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: RechercheExportGapSearch) => {\n sObj.idexport = idExport;\n return api.exportGapClassesBaseSearch({ RechercheExportGapSearch: sObj });\n },\n [api, idExport]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Classe),\n fieldName: \"codeClasse\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"classe\"\n },\n {\n header: () => t(ETLCodes.HeureS1),\n fieldName: \"nbheuresSemestre1\"\n },\n {\n header: () => t(ETLCodes.HeureS2),\n fieldName: \"nbheuresSemestre2\"\n },\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n }\n ],\n [t]\n );\n\n return (\n <>\n {idExport > 0 && (\n
\n \n
\n )}\n \n );\n};\n","import { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ExportGapFormateurApi, RechercheExportGapSearch } from \"../../../../api\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IExportGapFormateursListProps {\n idExport: number;\n}\n\nexport const ExportGapFormateursList: React.FunctionComponent = ({ idExport }) => {\n const { t } = useTl();\n const api = useApiService(ExportGapFormateurApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { Nom: \"ASC\" }\n });\n\n const searchFunction = React.useCallback(\n (sObj?: RechercheExportGapSearch) => {\n sObj.idexport = idExport;\n return api.exportGapFormateurBaseSearch({ RechercheExportGapSearch: sObj });\n },\n [api, idExport]\n );\n\n const { loading } = useSearchApi({\n searchFunction,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.Matricule),\n fieldName: \"matricule\"\n },\n {\n header: () => t(ETLCodes.AncienMatricule),\n fieldName: \"ancienMatricule\"\n },\n {\n header: () => t(ETLCodes.Adresse),\n fieldName: \"adresseDomicile\"\n }\n ],\n [t]\n );\n\n return (\n <>\n {idExport > 0 && (\n
\n \n
\n )}\n \n );\n};\n","import { DataTable, FieldSet, useGridState, useSearchApi } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ExportGapStatApi, ExportGapStatsVacataireApi, RechercheExportGapSearch } from \"../../../../api\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IExportGapStatistiqueListProps {\n idExport: number;\n}\n\nexport const ExportGapStatistiqueList: React.FunctionComponent = ({ idExport }) => {\n const { t } = useTl();\n const apiStat = useApiService(ExportGapStatApi);\n const apiStatVac = useApiService(ExportGapStatsVacataireApi);\n\n const tableState = useGridState({\n serverMode: true,\n enablePagination: true,\n enableFilter: false,\n availablePageSizes: [5],\n pageSize: 5,\n sortKeys: { HeureCpdateCe: \"ASC\" }\n });\n\n const searchFunctionStat = React.useCallback(\n (sObj?: RechercheExportGapSearch) => {\n sObj.idexport = idExport;\n return apiStat.exportGapStatBaseSearch({ RechercheExportGapSearch: sObj });\n },\n [apiStat, idExport]\n );\n\n const loadingStat = useSearchApi({\n searchFunction: searchFunctionStat,\n tableState,\n initialSearch: true\n });\n\n const searchFunctionStatVac = React.useCallback(\n (sObj?: RechercheExportGapSearch) => {\n sObj.idexport = idExport;\n return apiStatVac.exportGapStatsVacataireBaseSearch({ RechercheExportGapSearch: sObj });\n },\n [apiStatVac, idExport]\n );\n\n const loadingStatVac = useSearchApi({\n searchFunction: searchFunctionStatVac,\n tableState,\n initialSearch: true\n });\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.GrilleCe),\n fieldName: \"HeureCpdateCe\"\n },\n {\n header: () => t(ETLCodes.RemplacantPlusCE),\n fieldName: \"PlusRemplacantCe\"\n },\n {\n header: () => t(ETLCodes.RemplacePlusCE),\n fieldName: \"PlusRemplaceCe\"\n },\n {\n header: () => t(ETLCodes.RempMoinsCE),\n fieldName: \"MoinsCrdateCe\"\n },\n {\n header: () => t(ETLCodes.Grille),\n fieldName: \"HeureCpdateApp\"\n },\n {\n header: () => t(ETLCodes.RemplacantPlusApp),\n fieldName: \"PlusRemplacantApp\"\n },\n {\n header: () => t(ETLCodes.RemplacaPlusApp),\n fieldName: \"PlusRemplaceApp\"\n },\n {\n header: () => t(ETLCodes.RemplaceMoinsApp),\n fieldName: \"MoinsCrdateApp\"\n }\n ],\n [t]\n );\n\n return (\n <>\n {idExport > 0 && (\n
\n \n
\n )}\n {idExport > 0 && (\n
\n \n
\n )}\n \n );\n};\n","import { ButtonContainer, IDataTableColumn } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { FcbForfaitAuditeurDto, ForfaitAuditeurApi, ForfaitAuditeurSearch } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../components\";\nimport { useTl } from \"../../../../hooks\";\nimport { useAbortableApiServiceFactory, useApiService } from \"../../../../hooks/useApiService\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IForfaitAuditeurListProps {}\n\nexport const ForfaitAuditeurList: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(ForfaitAuditeurApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbForfaitAuditeurDto) => (\n \n history.push(`${ERoutes.forfaitAuditeur}/${row.idForfait}/detail/view`)}\n />\n history.push(`${ERoutes.forfaitAuditeur}/${row.idForfait}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.AnneeScolaire),\n fieldName: \"anneeAcademique\"\n },\n {\n header: () => t(ETLCodes.AaS1),\n fieldName: \"aaS1\"\n },\n {\n header: () => t(ETLCodes.AaS2),\n fieldName: \"aaS2\"\n },\n {\n header: () => t(ETLCodes.ABS1),\n fieldName: \"abS1\"\n },\n {\n header: () => t(ETLCodes.ABS2),\n fieldName: \"abS2\"\n },\n {\n header: () => t(ETLCodes.AIS1),\n fieldName: \"aiS1\"\n },\n {\n header: () => t(ETLCodes.AIS2),\n fieldName: \"aiS2\"\n },\n {\n header: () => t(ETLCodes.CEAS1),\n fieldName: \"ceaS1\"\n },\n {\n header: () => t(ETLCodes.CEAS2),\n fieldName: \"ceaS2\"\n },\n {\n header: () => t(ETLCodes.CEBS1),\n fieldName: \"cebS1\"\n },\n {\n header: () => t(ETLCodes.CEBS2),\n fieldName: \"cebS2\"\n },\n {\n header: () => t(ETLCodes.CEIS1),\n fieldName: \"ceiS1\"\n },\n {\n header: () => t(ETLCodes.CEIS2),\n fieldName: \"ceiS2\"\n },\n {\n header: () => t(ETLCodes.FAGS1),\n fieldName: \"fagS1\"\n },\n {\n header: () => t(ETLCodes.FAGS2),\n fieldName: \"fagS2\"\n }\n ],\n [history, t]\n );\n\n const onAddItem = React.useCallback(() => {\n history.push(`${ERoutes.forfaitAuditeur}/0/detail/edit`);\n }, [history]);\n\n const getCriteriasFn = React.useCallback(() => api.forfaitAuditeurGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(ForfaitAuditeurApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: ForfaitAuditeurSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.forfaitAuditeurBaseSearch({ ForfaitAuditeurSearch: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { ForfaitAuditeurDetail } from \"..\";\nimport { ForfaitAuditeurApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IForfaitAuditeurPageProps {}\n\nexport const ForfaitAuditeurPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const Api = useApiService(ForfaitAuditeurApi);\n const [displayName] = useApiEffect(() => Api.forfaitAuditeurGetDisplayName({ id: +id }), [id]);\n\n return (\n \n history.push(`${ERoutes.forfaitAuditeur}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n }\n />\n \n \n );\n};\n","import { FGEmpty, FGMaskInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { FcbForfaitAuditeurDtoFromJSON, ForfaitAuditeurApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface IForfaitAuditeurDetailProps {\n idForfait: number;\n editMode: boolean;\n}\n\nexport const ForfaitAuditeurDetail: React.FunctionComponent = ({\n idForfait,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(ForfaitAuditeurApi);\n const history = useHistory();\n\n const { data, loading, saveItem, saving, deleteItem, deleting } = useCrudApi({\n getApiFn: () =>\n idForfait <= 0\n ? FcbForfaitAuditeurDtoFromJSON({\n idForfait: 0\n })\n : api.forfaitAuditeurGet({ id: idForfait }),\n saveApiFn: d => api.forfaitAuditeurSave({ FcbForfaitAuditeurDto: d }),\n deleteApiFn: d => api.forfaitAuditeurDelete({ id: d.idForfait }),\n onDeletedRoute: () => ERoutes.forfaitAuditeur,\n onSavedRoute: d => `${ERoutes.forfaitAuditeur}/${d.idForfait}/detail/edit`\n });\n\n const [annees, aloading] = useReferential(apiL => apiL.referentialGetAnneeScolaire(), false);\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n anneeAcademique: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n history.push(ERoutes.forfaitAuditeur)}\n saving={saving}\n onDelete={deleteItem}\n deleting={deleting}\n showDeleteButton={idForfait > 0}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { FGCustomPanel, FGListen, FGNumberInput, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\nimport * as Yup from \"yup\";\n\nimport { FcbSmsUtilitaireDetailDtoFromJSON, SmsUtilitaireApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { FGWalterDateMaskInput, FGWalterSelectInput, SmallFormGenerator } from \"../../../../components\";\nimport { FGEuroMaskInput } from \"../../../../components/formGenerator/FGEuroMaskInput\";\nimport { useRouteParamsContext } from \"../../../../contexts\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../hooks\";\nimport { useReferential } from \"../../../../hooks/useReferential\";\nimport { ETLCodes } from \"../../../../locales\";\n\nconst SignatureMessageContainer = styled.span`\n & > div {\n display: inline-block;\n min-width: 180px;\n margin-right: 10px;\n }\n`;\n\nexport interface ISmsDetailPageProps {\n idLot: number;\n editMode: boolean;\n}\n\nexport const SmsDetailPage: React.FunctionComponent = ({ idLot, editMode }) => {\n const { t } = useTl();\n const api = useApiService(SmsUtilitaireApi);\n const history = useHistory();\n const [idCentre, setIdCentre] = React.useState(0);\n const { popSmsRecipientIds, popSmsRecipientType } = useRouteParamsContext();\n const [extractedRecipientIds] = React.useState(() => popSmsRecipientIds());\n const [extractedRecipientType] = React.useState(() => popSmsRecipientType());\n const [type, tLoading] = useReferential(a => a.referentialGetTypeLotSms(), true, []);\n const [centre, cLoading] = useReferential(a => a.referentialGetCentreByUser({ idCentre: idCentre }), true, [\n idCentre\n ]);\n const [etat, eLoading] = useReferential(a => a.referentialGetEtatLotSms(), true, []);\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n description: Yup.string().required(t(ETLCodes.Required)),\n idtype: Yup.number().required(t(ETLCodes.Required)),\n idcentre: Yup.number().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n const { data, loading, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idLot <= 0\n ? FcbSmsUtilitaireDetailDtoFromJSON({ idLot: 0, idetat: 1, nbDestinataires: extractedRecipientIds.length })\n : api.smsUtilitaireGet({ id: +idLot }),\n saveApiFn: d =>\n api.smsUtilitaireSave({\n FcbSmsUtilitaireDetailDto: { ...d, recipientIds: extractedRecipientIds, typeRecipient: extractedRecipientType }\n }),\n onSavedRoute: d => `${ERoutes.sms}/${d.idlot}/detail/edit`,\n deleteApiFn: d => {},\n onDeletedRoute: () => ERoutes.sms\n });\n\n return (\n <>\n history.push(ERoutes.sms)}\n onDelete={() => {}}\n showDeleteButton={false}\n saving={saving}\n deleting={false}\n hideButtons={extractedRecipientIds.length === 0 || !extractedRecipientType}\n >\n setIdCentre(value)} />\n \n \n \n \n \n \n {ctx => (\n \n
\n {t(ETLCodes.AddedToMessageAutomatically)}: {t(ETLCodes.MerciDeNePasRepondre)}\n
\n )}\n
\n \n \n {idLot > 0 && (\n \n \n \n \n \n \n {!!data?.dateEnvoi && (\n \n )}\n \n )}\n
\n \n \n );\n};\n","import * as React from \"react\";\nimport { useTl, useApiService, useAbortableApiServiceFactory } from \"../../../../hooks\";\nimport { SmsSuiviApi, SmsSuiviSearch } from \"../../../../api\";\nimport { SearchTablePage } from \"../../../../components\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { IDataTableColumn } from \"nsitools-react\";\n\nexport interface ISmsSuiviPageProps {\n idLot: number;\n}\n\nexport const SmsSuiviPage: React.FunctionComponent = ({ idLot }) => {\n const { t } = useTl();\n const api = useApiService(SmsSuiviApi);\n\n const columns = React.useMemo(\n () => [\n {\n header: () => t(ETLCodes.Nom),\n fieldName: \"nom\"\n },\n {\n header: () => t(ETLCodes.Prenom),\n fieldName: \"prenom\"\n },\n {\n header: () => t(ETLCodes.DateNaissance),\n fieldName: \"dateNaissance\"\n },\n {\n header: () => t(ETLCodes.Numero),\n fieldName: \"numero\"\n },\n {\n header: () => t(ETLCodes.Status),\n fieldName: \"statut\"\n }\n ],\n [t]\n );\n\n const getCriteriasFn = React.useCallback(() => api.smsSuiviGetSearchCriterias({ includeListsValues: true }), [api]);\n\n const apiFactory = useAbortableApiServiceFactory(SmsSuiviApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: SmsSuiviSearch) => {\n sObj.idlot = idLot;\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.smsSuiviBaseSearch({ SmsSuiviSearch: sObj });\n },\n [apiFactory, idLot]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { FcbSmsUtilitaireDetailDtoFromJSON, SmsUtilitaireApi } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../components\";\nimport { useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\nimport { SmsDetailPage } from \"./SmsDetailPage\";\nimport { SmsSuiviPage } from \"./SmsSuiviPage\";\n\nexport interface ISmsItemPageProps {}\n\nexport const SmsItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state } = useParams<{ id: string; tab: string; state: string }>();\n const history = useHistory();\n\n const api = useApiService(SmsUtilitaireApi);\n\n const [displayName] = useApiEffect(() => api.smsUtilitaireGetDisplayName({ id: +id }), [id]);\n const [sms] = useApiEffect(async () => {\n return +id <= 0\n ? FcbSmsUtilitaireDetailDtoFromJSON({ idLot: 0, idetat: 1 })\n : await api.smsUtilitaireGet({ id: +id });\n });\n\n return (\n \n history.push(`${ERoutes.sms}/${id}/${newTabId}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n } />\n }\n disabled={sms?.idtype === 1 || +id <= 0}\n />\n \n \n );\n};\n","import { ButtonContainer } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\n\nimport { FcbSmsUtilitaireGridDto, SmsUtilitaireApi, SmsUtilitaireSearch } from \"../../../../api\";\nimport { ERoutes } from \"../../../../AppRouter\";\nimport { SearchTablePage, ViewButton } from \"../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../hooks\";\nimport { ETLCodes } from \"../../../../locales\";\n\nexport interface ISmsListPageProps {}\n\nexport const SmsListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(SmsUtilitaireApi);\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: FcbSmsUtilitaireGridDto) => (\n \n history.push(`${ERoutes.sms}/${row.idlot}/detail/view`)} />\n \n )\n },\n {\n header: () => t(ETLCodes.Description),\n fieldName: \"description\"\n },\n {\n header: () => t(ETLCodes.DateCreation),\n fieldName: \"creationDate\"\n },\n {\n header: () => t(ETLCodes.DateEnvoi),\n fieldName: \"dateEnvoi\"\n },\n {\n header: () => t(ETLCodes.NbrDestinataire),\n fieldName: \"nbredestinataire\"\n },\n {\n header: () => t(ETLCodes.NbrEnvoye),\n fieldName: \"nbreenvoye\"\n },\n {\n header: () => t(ETLCodes.NbrErreur),\n fieldName: \"nbreerreur\"\n },\n {\n header: () => t(ETLCodes.Identifiant),\n fieldName: \"idlot\"\n }\n ],\n [history, t]\n );\n\n const getCriteriasFn = React.useCallback(() => api.smsUtilitaireGetSearchCriterias({ includeListsValues: true }), [\n api\n ]);\n\n const apiFactory = useAbortableApiServiceFactory(SmsUtilitaireApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (sObj?: SmsUtilitaireSearch) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.smsUtilitaireBaseSearch({ SmsUtilitaireSearch: sObj });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { FGEmpty, FGTextAreaInput, FGTextInput, FieldGroup } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport * as Yup from \"yup\";\n\nimport { CommissionParitaireApi, CommissionParitaireEditDtoFromJSON } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { SmallFormGenerator } from \"../../../../../components\";\nimport { useApiService, useCrudApi, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ICommissionParitaireDetailPageProps {\n editMode: boolean;\n idCommissionParitaire: number;\n}\n\nexport const CommissionParitaireDetailPage: React.FunctionComponent = ({\n idCommissionParitaire,\n editMode\n}) => {\n const { t } = useTl();\n const api = useApiService(CommissionParitaireApi);\n const history = useHistory();\n\n const { data, loading, deleteItem, deleting, saveItem, saving } = useCrudApi({\n getApiFn: () =>\n +idCommissionParitaire <= 0\n ? CommissionParitaireEditDtoFromJSON({ idCommissionParitaire: 0 })\n : api.commissionParitaireGetCommissionParitaire({ id: +idCommissionParitaire }),\n saveApiFn: d => api.commissionParitaireSaveCommissionParitaire({ CommissionParitaireEditDto: d }),\n onSavedRoute: d => `${ERoutes.commissionParitaire}/${d.idcommissionParitaire}/detail/edit`\n // deleteApiFn: d => api.commissionParitaireDeleteCommissionParitaire({ id: d.idcommissionParitaire }),\n // onDeletedRoute: () => ERoutes.commissionParitaire\n });\n\n const FormSchema = React.useMemo(() => {\n return Yup.object().shape({\n code: Yup.string().required(t(ETLCodes.Required))\n });\n }, [t]);\n\n return (\n data && (\n history.push(ERoutes.commissionParitaire)}\n // onDelete={deleteItem}\n // showDeleteButton={+idCommissionParitaire > 0}\n saving={saving}\n // deleting={deleting}\n >\n \n \n \n \n \n \n )\n );\n};\n","import { Tab } from \"@blueprintjs/core\";\nimport { useApiEffect } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useHistory, useParams } from \"react-router\";\n\nimport { CommissionParitaireApi } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { BackButton, PageBase, ProtectedTabs } from \"../../../../../components\";\nimport { useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\nimport { CommissionParitaireDetailPage } from \"./CommissionParitaireDetailPage\";\n\ninterface ICommissionParitaireItemPageProps {}\n\nexport const CommissionParitaireItemPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const { id, tab, state = \"edit\" } = useParams<{ id: string; tab: string; state: string }>();\n const idCommissionParitaire = React.useMemo(() => +id, [id]);\n const history = useHistory();\n\n const commissionparitaireApi = useApiService(CommissionParitaireApi);\n const [displayName] = useApiEffect(\n () => commissionparitaireApi.commissionParitaireGetDisplayName({ id: idCommissionParitaire }),\n [id]\n );\n\n return (\n \n history.push(`${ERoutes.commissionParitaire}/${id}/${newTabId}/${state}`)}\n selectedTabId={tab}\n renderActiveTabPanelOnly\n >\n \n \n }\n />\n \n \n );\n};\n","import * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport styled from \"styled-components\";\n\nimport { CommissionParitaireApi, CommissionParitaireGridDto, CommissionParitaireSearchDto } from \"../../../../../api\";\nimport { ERoutes } from \"../../../../../AppRouter\";\nimport { EditButton, SearchTablePage, ViewButton } from \"../../../../../components\";\nimport { useAbortableApiServiceFactory, useApiService, useTl } from \"../../../../../hooks\";\nimport { ETLCodes } from \"../../../../../locales\";\n\ninterface ICommissionParitaireListPageProps {}\n\nconst Container = styled.div`\n display: flex;\n`;\n\nexport const CommissionParitaireListPage: React.FunctionComponent = () => {\n const { t } = useTl();\n const history = useHistory();\n const api = useApiService(CommissionParitaireApi);\n\n const columns = React.useMemo(\n () => [\n {\n computed: true,\n fieldName: \"actions\",\n autoFitContent: true,\n render: (row: CommissionParitaireGridDto) => (\n \n history.push(`${ERoutes.commissionParitaire}/${row.idcommissionParitaire}/detail/view`)}\n />\n history.push(`${ERoutes.commissionParitaire}/${row.idcommissionParitaire}/detail/edit`)}\n />\n \n )\n },\n {\n header: () => t(ETLCodes.Code),\n fieldName: \"code\"\n },\n {\n header: () => t(ETLCodes.Libelle),\n fieldName: \"libelle\"\n }\n ],\n [history, t]\n );\n\n const addItemFunction = React.useCallback(() => history.push(`${ERoutes.commissionParitaire}/0/detail/edit`), [\n history\n ]);\n\n const getCriteriasFn = React.useCallback(\n () => api.commissionParitaireGetSearchCriterias({ includeListsValues: true }),\n [api]\n );\n\n const apiFactory = useAbortableApiServiceFactory(CommissionParitaireApi);\n const lastAbortController = React.useRef();\n const searchFn = React.useCallback(\n (nextSearch?: CommissionParitaireSearchDto) => {\n const { api: abortableApi, abortController } = apiFactory();\n lastAbortController.current = abortController;\n return abortableApi.commissionParitaireBaseSearch({ CommissionParitaireSearchDto: nextSearch });\n },\n [apiFactory]\n );\n\n const onAbort = React.useCallback(() => lastAbortController.current?.abort(), []);\n\n return (\n \n );\n};\n","import { Loading } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { Redirect, Route, RouteProps, Switch, useHistory } from \"react-router-dom\";\n\nimport { FinAppNavigationItemFromRoute, GetFirstRoute } from \"./app-navigation\";\nimport { RapportHopeViewer, StillInDev } from \"./components\";\nimport { useAuth, useGlobalData } from \"./contexts\";\nimport { useTheme } from \"./hooks\";\nimport {\n AgrementClasseItemPage,\n AgrementClasseListPage,\n AnneeScolaireItemPage,\n AnneeScolaireListPage,\n ApprenantItemPage,\n ApprenantListPage,\n BeidReaderPage,\n CalendrierItemPage,\n CalendrierListPage,\n CentreGlobalItemPage,\n CentreGlobalListPage,\n CentreItemPage,\n CentreListPage,\n ChefEntrepriseItemPage,\n ChefEntrepriseListPage,\n ClasseItemPage,\n ClasseListPage,\n ClasseMiseAJourPage,\n ClauseItemPage,\n ClauseListPage,\n CodePostalItemPage,\n CodePostalListPage,\n ConseillerPedagogiqueItemPage,\n ConseillerPedagogiqueListPage,\n ContactItemPage,\n ContactListPage,\n ContratFormateurItemPage,\n ContratFormateurListPage,\n ContratItemPage,\n ContratListPage,\n DashboardPage,\n DegreItemPage,\n DegreListPage,\n DelegueTutelleItemPage,\n DelegueTutelleListPage,\n DeliberationItemPage,\n DeliberationTypeListPage,\n DerniereAnneeReussieItemPage,\n DerniereAnneeReussieListPage,\n DiplomeItemPage,\n DiplomeListPage,\n DirectionTerritorialeItemPage,\n DirectionTerritorialeListPage,\n DoublonsItemPage,\n DoublonsListPage,\n DoublonsNewPage,\n EcoleItemPage,\n EcoleListPage,\n EvaluationItemPage,\n EvaluationListPage,\n ExportHopeListPage,\n ExportItemPage,\n ExportListPage,\n ExportUtilitaireItemPage,\n FeuillePresenceItemPage,\n FeuillePresenceListPage,\n GestionDroitsListPage,\n ImpressionItemPage,\n ImpressionListPage,\n InscriptionMasseItemPage,\n InstitutionItemPage,\n InstitutionSearchPage,\n KitSurviePage,\n LieuFormationItemPage,\n LocalisationClasseItemPage,\n LocalisationClasseListPage,\n LocalItemPage,\n LocalListPage,\n MetierItemPage,\n MetierListPage,\n PaysItemPage,\n PaysListPage,\n PersonneItemPage,\n PersonneListPage,\n PrintingHistory,\n ProfessionFormateurItemPage,\n ProfessionFormateurListPage,\n ProjetFinancementItemPage,\n ProjetFinancementListPage,\n PublipostageListPage,\n RapportHopeItemPage,\n RapportHopeListPage,\n RapportItemPage,\n ReferentielItemPage,\n ReferentielListPage,\n RemplacementItemPage,\n RemplacementListPage,\n RepresentantItemPage,\n RepresentantListPage,\n SecteurClasseHomogeneItemPage,\n SecteurClasseHomogeneListPage,\n SecteurMetierItemPage,\n SecteurMetierListPage,\n ServiceTutelleItemPage,\n ServiceTutelleListPage,\n SiegeSocialItemPage,\n SiegeSocialList,\n SocieteExterneItem,\n SocieteExterneList,\n StadeItemPage,\n StadeListPage,\n StatutSocialItemPage,\n StatutSocialListPage,\n SuiviItemPage,\n SuiviSearchPage,\n SuiviSiegeLieuSearchPage,\n TitrePedagogiqueItemPage,\n TitrePedagogiqueListPage,\n TuteurItemPage,\n TuteurListPage,\n TypeBulletinItemPage,\n TypeBulletinListPage,\n TypeCoursItemPage,\n TypeCoursListPage,\n TypeEnseignementItemPage,\n TypeEnseignementListPage,\n TypeFinancementItemPage,\n TypeFinancementListPage,\n UnauthorizedPage,\n UtilisateurItemPage,\n UtilisateurListPage,\n ValidationMasseItemPage,\n VisiteExterieureItemPage,\n VisiteExterieureListPage\n} from \"./pages\";\nimport { DeliberationMasseItemPage } from \"./pages/cours/deliberationMasse\";\nimport { FormateurItemPage, FormateurListPage } from \"./pages/cours/formateur\";\nimport { OffreItemPage, OffreListPage } from \"./pages/cours/offre\";\nimport { AcquisIfapmeItemPage } from \"./pages/donnees/FO/acquisIfapme/item/AcquisIfapmeItemPage\";\nimport { AcquisIfapmeListPage } from \"./pages/donnees/FO/acquisIfapme/list/AcquisIfapmeListPage\";\nimport { SpecificiteCoursItemPage, SpecificiteCoursListPage } from \"./pages/donnees/FO/specificiteCours\";\nimport { TypeEvaluationItemPage, TypeEvaluationListPage } from \"./pages/donnees/FO/typeEvaluation\";\nimport {\n ExportationGapItemPage,\n ExportationGapListPage,\n UniteActiviteItemPage,\n UniteActiviteListPage\n} from \"./pages/gestion\";\nimport { ForfaitAuditeurList, ForfaitAuditeurPage } from \"./pages/gestion/forfaitAuditeur\";\nimport { SmsItemPage, SmsListPage } from \"./pages/utilitaire/sms\";\nimport { CommissionParitaireItemPage, CommissionParitaireListPage } from \"./pages/donnees/FO/commissionParitaire\";\n\nexport enum ERoutes {\n test = \"/_test\",\n dashboard = \"/dashboard\",\n anneeReussie = \"/anneeReussie\",\n apprenant = \"/apprenant\",\n centre = \"/centres\",\n centreGlobal = \"/centreglobal\",\n clause = \"/clause\",\n codePostal = \"/codepostal\",\n conseillerPedagogique = \"/conseillerPedagogique\",\n contratFormateur = \"/contratFormateur\",\n degre = \"/degre\",\n delegueTutelle = \"/delegueTutelle\",\n diplome = \"/diplome\",\n directionTerritoriale = \"/directionTerritoriale\",\n ecole = \"/ecole\",\n home = \"/home\",\n local = \"/local\",\n metier = \"/metier\",\n pays = \"/pays\",\n professionFormateur = \"/professionFormateur\",\n projetFinancement = \"/projetFinancement\",\n referentiel = \"/referentiel\",\n secteurClasseHomogene = \"/secteurClasseHomogene\",\n secteurMetier = \"/secteurMetier\",\n serviceTutelle = \"/serviceTutelle\",\n specificiteCours = \"/specificiteCours\",\n stade = \"/stade\",\n statutSocial = \"/statutSocial\",\n titrePedagogique = \"/titrePedagogique\",\n typeCours = \"/typeCours\",\n typeEnseignement = \"/typeEnseignement\",\n typeEvaluation = \"/typeEvaluation\",\n typeFinancement = \"/typeFinancement\",\n representant = \"/representant\",\n formateur = \"/formateur\",\n classe = \"/classe\",\n inscriptionMasse = \"/inscriptionMasse\",\n anneeScolaire = \"/anneeScolaire\",\n doublon = \"/doublon\",\n classeMiseAJourMasse = \"/masseMiseAJourClasse\",\n deliberationMasse = \"/deliberationMasse\",\n visiteExterieure = \"/visiteExterieure\",\n users = \"/users\",\n exportation = \"/exportation\",\n impressions = \"/impression\",\n evaluation = \"/evaluation\",\n agrementClasse = \"/agrementClasse\",\n localisationClasse = \"/LocalisationClasse\",\n remplacement = \"/remplacement\",\n deliberationType = \"/typeDeliberation\",\n feuillePresence = \"/feuillePresence\",\n kitSurvie = \"/kitSurvie\",\n exportationGap = \"/exportationGap\",\n forfaitAuditeur = \"/forfaitAuditeur\",\n calendrier = \"/calendrier\",\n uniteActivite = \"/uniteActivite\",\n downloadBeid = \"/downloadBeid\",\n beidReader = \"/beidReader\",\n sms = \"/sms\",\n export = \"/export\",\n report = \"/report\",\n validationMasse = \"/validationMasse\",\n gestionDroits = \"/gestionDroits\",\n siegeSocial = \"/siegeSocial\",\n lieuFormation = \"/lieuFormation\",\n unauthorized = \"/unauthorized\",\n contrat = \"/contrat\",\n offreDemande = \"/offreDemande\",\n institution = \"/institution\",\n personne = \"/personne\",\n suivi = \"/suivi\",\n tuteur = \"/tuteur\",\n chefEntreprise = \"/chefEntreprise\",\n contacts = \"/contacts\",\n offre = \"/offre\",\n suiviSiegeLieu = \"/suiviSiegeLieu\",\n societeExterne = \"/societeExterne\",\n exports = \"/exports\",\n publipostage = \"/publipostage\",\n rapports = \"/rapports\",\n testSSRSReports = \"/test_ssrs_reports\",\n SSRSReports = \"/ssrsReports\",\n acquisIfapme = \"/acquisIfapme\",\n UserSelection = \"/userSelection\",\n typeBulletin = \"/typeBulletin\",\n commissionParitaire = \"/commissionParitaire\",\n printingHistory = \"/printingHistory\"\n}\n\ninterface IProtectedRouteProps extends RouteProps {\n module?: string;\n}\n\nexport const ProtectedRoute: React.FC = ({ module, ...routeProps }) => {\n const { matchModule, matchTab, user } = useAuth();\n const { devMode, ifapmeSide } = useTheme();\n const { push } = useHistory();\n const { enableNextFeatures } = useGlobalData();\n\n const userAllowed = React.useMemo(\n () =>\n user &&\n (devMode ||\n (user.ifapmeSide?.includes(\"Hope\") && ifapmeSide === \"hope\") ||\n (user.ifapmeSide?.includes(\"Walter\") && ifapmeSide === \"walter\")),\n [devMode, ifapmeSide, user]\n );\n\n const currentpathRouteModule = React.useMemo(() => {\n if (module) {\n return module;\n } else {\n const found = FinAppNavigationItemFromRoute(routeProps.path as string, ifapmeSide, enableNextFeatures);\n return found?.route?.split(\"/\")[1];\n }\n }, [enableNextFeatures, ifapmeSide, module, routeProps.path]);\n\n const isRoot = React.useMemo(() => Object.values(ERoutes).some(r => r + \"\" === routeProps.path), [routeProps.path]);\n\n const activeModule = React.useMemo(\n () =>\n !!currentpathRouteModule &&\n matchModule(currentpathRouteModule) &&\n (!isRoot || matchTab(\"search\") || matchTab(\"\") || matchTab(\"DETAIL\")),\n [currentpathRouteModule, isRoot, matchModule, matchTab]\n );\n\n React.useEffect(() => {\n if ((!activeModule || !userAllowed) && !!user?.ifapmeSide) {\n push(ERoutes.unauthorized);\n }\n }, [activeModule, push, routeProps.path, user?.ifapmeSide, userAllowed]);\n\n if (activeModule && userAllowed) {\n return ;\n } else {\n return null;\n }\n};\n\nexport const AppRouter = () => {\n const { userPermissions, user, hasPermission } = useAuth();\n const { devMode, ifapmeSide } = useTheme();\n const { push } = useHistory();\n const { enableNextFeatures, isFetchedAfterMount } = useGlobalData();\n\n const userAllowed = React.useMemo(\n () =>\n user &&\n (devMode ||\n (user.ifapmeSide?.includes(\"Hope\") && ifapmeSide === \"hope\") ||\n (user.ifapmeSide?.includes(\"Walter\") && ifapmeSide === \"walter\")),\n [devMode, ifapmeSide, user]\n );\n const hasAnyPermission = React.useMemo(() => userPermissions?.length > 0, [userPermissions]);\n\n const defaultRoute = React.useMemo(() => {\n if (hasAnyPermission && userAllowed) {\n const perm = userPermissions?.find(p => p.module === \"DASHBOARD\");\n return !!perm\n ? `${ERoutes.dashboard}/${perm.tab.toLowerCase()}`\n : user.azureEmail?.endsWith(\"@formateur.ifapme.be\")\n ? ERoutes.evaluation\n : GetFirstRoute(\n userPermissions.filter(p => p.tab === \"\" || p.tab === \"SEARCH\")?.map(p => p.module.toUpperCase()),\n ifapmeSide,\n enableNextFeatures\n );\n } else {\n return ERoutes.unauthorized;\n }\n }, [enableNextFeatures, hasAnyPermission, ifapmeSide, user.azureEmail, userAllowed, userPermissions]);\n\n React.useEffect(() => {\n if (defaultRoute === ERoutes.unauthorized) {\n push(defaultRoute);\n }\n }, [defaultRoute, push]);\n\n if (!userPermissions && !isFetchedAfterMount) {\n return <>{};\n } else {\n return (\n <>\n {\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {ifapmeSide === \"walter\" && (\n \n )}\n {ifapmeSide === \"walter\" && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {hasPermission(\"DOUBLON\", \"RW\", \"NEW\") && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n \n );\n }\n};\n","import * as React from \"react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\nimport { Intent, Button } from \"@blueprintjs/core\";\n\ninterface ICancelButtonProps extends ICustomButtonProps {}\n\nexport const CancelButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n disabled,\n loading,\n intent = Intent.NONE\n}) => {\n const { t } = useTl();\n\n return (\n \n );\n};\n","import { Button, IconName, Intent, MaybeElement } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ToolTipButton } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { useAuth } from \"../../contexts\";\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\nexport interface IDeleteButtonProps extends Omit {\n onDelete?: () => void;\n tooltipText?: string;\n icon?: IconName | MaybeElement;\n specificRights?: { module: string; tab?: string; rights?: \"R\" | \"RW\" | \"RWD\" };\n}\n\nexport const DeleteButton: React.FunctionComponent = ({\n minimal = true,\n onDelete,\n loading,\n disabled,\n intent = Intent.DANGER,\n tooltipText,\n text,\n icon,\n specificRights\n}) => {\n const { t } = useTl();\n const { getCurrentPermission, hasPermission } = useAuth();\n\n const hasRights = React.useMemo(\n () =>\n !!specificRights\n ? hasPermission(specificRights.module, specificRights.rights ?? \"RWD\", specificRights.tab)\n : getCurrentPermission()?.permission === \"RWD\",\n [getCurrentPermission, hasPermission, specificRights]\n );\n\n const finalText = React.useMemo(() => (minimal ? null : text ?? t(ETLCodes.General_Delete)), [minimal, t, text]);\n\n return hasRights ? (\n <>\n {!!tooltipText ? (\n \n ) : (\n \n )}\n \n ) : (\n <>\n );\n};\n","import * as React from \"react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\nimport { Intent, Button } from \"@blueprintjs/core\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\nimport { useAuth } from \"../../contexts\";\n\ninterface ISaveButtonProps extends ICustomButtonProps {\n specificRights?: { module: string; tab?: string; rights?: \"R\" | \"RW\" | \"RWD\" };\n}\n\nexport const SaveButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.PRIMARY,\n text,\n specificRights\n}) => {\n const { t } = useTl();\n const { getCurrentPermission, hasPermission } = useAuth();\n const hasRights = React.useMemo(\n () =>\n !!specificRights\n ? hasPermission(specificRights.module, specificRights.rights ?? \"R\", specificRights.tab)\n : getCurrentPermission()?.permission?.includes(\"RW\"),\n [getCurrentPermission, hasPermission, specificRights]\n );\n\n return hasRights ? (\n \n ) : null;\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\n\nimport { useAuth } from \"../../contexts\";\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface IEditButtonProps extends ICustomButtonProps {\n specificRights?: { module: string; tab?: string };\n}\n\nexport const EditButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.NONE,\n text,\n tabIndex,\n specificRights\n}) => {\n const { t } = useTl();\n const { getCurrentPermission, hasPermission } = useAuth();\n const hasRights = React.useMemo(\n () =>\n !!specificRights\n ? hasPermission(specificRights.module, \"R\", specificRights.tab)\n : getCurrentPermission()?.permission?.includes(\"RW\"),\n [getCurrentPermission, hasPermission, specificRights]\n );\n\n return hasRights ? (\n \n ) : (\n <>\n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\n\nimport { useAuth } from \"../../contexts\";\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface IViewButtonProps extends ICustomButtonProps {\n specificRights?: { module: string; tab?: string };\n}\n\nexport const ViewButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n text,\n disabled,\n intent = Intent.NONE,\n tabIndex,\n specificRights\n}) => {\n const { t } = useTl();\n const { getCurrentPermission, hasPermission } = useAuth();\n const hasRights = React.useMemo(\n () =>\n !!specificRights\n ? hasPermission(specificRights.module, \"R\", specificRights.tab)\n : getCurrentPermission()?.permission?.includes(\"R\"),\n [getCurrentPermission, hasPermission, specificRights]\n );\n\n return hasRights ? (\n \n ) : (\n <>\n );\n};\n","import { Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ToolTipButton } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface IEmailProps extends Omit {\n email?: string;\n emailBcc?: string;\n afterClick?: () => void;\n}\n\nexport const EmailButton: React.FunctionComponent = ({\n minimal = true,\n email,\n emailBcc,\n loading,\n disabled,\n intent = Intent.NONE,\n afterClick\n}) => {\n const onClickMail = React.useCallback(() => {\n const el = document.createElement(\"a\");\n const bccEmail = !!emailBcc ? `?bcc=${emailBcc}` : \"\";\n el.setAttribute(\"href\", `mailto:${email}${bccEmail}`);\n el.click();\n el.remove();\n\n if (afterClick) {\n afterClick();\n }\n }, [afterClick, emailBcc, email]);\n\n return email || emailBcc ? (\n \n ) : (\n <>\n );\n};\n","import { Button, IconName, Intent, MaybeElement } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ToolTipButton } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { useAuth } from \"../../contexts\";\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface IAddButtonProps extends ICustomButtonProps {\n icon?: IconName | MaybeElement;\n fill?: boolean;\n tooltipText?: string;\n}\n\nexport const AddButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.PRIMARY,\n text,\n icon = IconNames.ADD,\n tooltipText,\n fill = false\n}) => {\n const { t } = useTl();\n const { getCurrentPermission } = useAuth();\n const hasRights = React.useMemo(() => getCurrentPermission()?.permission?.includes(\"RW\"), [getCurrentPermission]);\n\n const finalText = React.useMemo(() => text || (minimal ? null : t(ETLCodes.General_Add)), [minimal, t, text]);\n\n return hasRights ? (\n !!tooltipText ? (\n \n ) : (\n \n )\n ) : (\n <>\n );\n};\n","import * as React from \"react\";\nimport { ToolTipButton } from \"nsitools-react\";\nimport { useHistory } from \"react-router\";\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales\";\nimport { ERoutes } from \"../../AppRouter\";\ninterface IBackButtonProps {\n backRoute: ERoutes | string;\n}\n\nexport const BackButton: React.FunctionComponent = ({ backRoute }) => {\n const { t } = useTl();\n const history = useHistory();\n\n return (\n history.push(backRoute)}\n >\n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\n\nimport { useAuth } from \"../../contexts\";\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface ICopyButtonProps extends ICustomButtonProps {\n byPassRights?: boolean;\n}\n\nexport const CopyButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.NONE,\n byPassRights = false\n}) => {\n const { t } = useTl();\n const { getCurrentPermission } = useAuth();\n const hasRights = React.useMemo(() => getCurrentPermission()?.permission?.includes(\"RW\"), [getCurrentPermission]);\n\n return hasRights || byPassRights ? (\n \n ) : (\n <>\n );\n};\n","import { ToolTipButton } from \"nsitools-react\";\nimport * as React from \"react\";\n\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface ISmsProps extends ICustomButtonProps {\n phone: string;\n onClick?: () => any;\n}\n\nexport const SmsButton: React.FunctionComponent = ({ minimal = true, phone, loading, onClick }) => {\n const { t } = useTl();\n return phone ? (\n \n ) : (\n <>\n );\n};\n","import * as React from \"react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\nimport { Intent, Button } from \"@blueprintjs/core\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface ISearchButtonProps extends ICustomButtonProps {}\n\nexport const SearchButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.PRIMARY\n}) => {\n const { t } = useTl();\n return (\n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\n\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface IPrintButtonProps extends ICustomButtonProps {}\n\nexport const PrintButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n intent = Intent.NONE,\n loading\n}) => {\n const { t } = useTl();\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { ToolTipButton } from \"nsitools-react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\nimport { Intent } from \"@blueprintjs/core\";\n\ninterface IDownloadButtonProps extends ICustomButtonProps {}\n\nexport const DownloadButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.NONE,\n text,\n outlined\n}) => {\n const { t } = useTl();\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\nimport { Intent, Button } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\n\nexport interface IFusionButtonProps extends ICustomButtonProps {}\n\nexport const FusionButton: React.FunctionComponent = ({\n minimal = false,\n onClick,\n loading,\n disabled,\n intent = Intent.PRIMARY\n}) => {\n const { t } = useTl();\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\nimport { Intent, Button } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\n\nexport interface IHomonymeButtonProps extends ICustomButtonProps {}\n\nexport const HomonymeButton: React.FunctionComponent = ({\n minimal = false,\n onClick,\n loading,\n disabled,\n intent = Intent.PRIMARY\n}) => {\n const { t } = useTl();\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { ToolTipButton } from \"nsitools-react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\nimport { Intent } from \"@blueprintjs/core\";\nimport { useAuth } from \"../../contexts\";\n\nexport interface ICutButtonProps extends ICustomButtonProps {}\n\nexport const CutButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.NONE,\n text\n}) => {\n const { t } = useTl();\n const { getCurrentPermission } = useAuth();\n const hasRights = React.useMemo(() => getCurrentPermission()?.permission?.includes(\"RW\"), [getCurrentPermission]);\n\n return hasRights ? (\n \n ) : (\n <>\n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\n\nimport { useAuth } from \"../../contexts\";\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface ICreateAzureButtonProps extends ICustomButtonProps {}\n\nexport const CreateAzureButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.PRIMARY,\n text\n}) => {\n const { t } = useTl();\n const { getCurrentPermission } = useAuth();\n const hasRights = React.useMemo(() => getCurrentPermission()?.permission?.includes(\"RW\"), [getCurrentPermission]);\n\n return hasRights ? (\n \n ) : (\n <>\n );\n};\n","import * as React from \"react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\nimport { Intent, Button } from \"@blueprintjs/core\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\nexport interface IDuplicateButtonProps extends ICustomButtonProps {}\n\nexport const DuplicateButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.PRIMARY\n}) => {\n const { t } = useTl();\n return (\n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\n\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface IClearButtonProps extends ICustomButtonProps {\n tabIndex: number;\n}\n\nexport const ClearButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n disabled,\n loading,\n intent = Intent.NONE,\n tabIndex\n}) => {\n const { t } = useTl();\n\n return (\n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\n\nimport { useTl } from \"../../hooks\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\ninterface ISelectButtonProps extends ICustomButtonProps {}\n\nexport const SelectButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.PRIMARY,\n text,\n hideText,\n small\n}) => {\n const { t } = useTl();\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { Button, Classes, IconName, Intent, MaybeElement } from \"@blueprintjs/core\";\nimport styled from \"styled-components\";\nimport { useTheme } from \"../../hooks\";\nimport { IThemeData } from \"../../theme\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\nconst StyledButton = styled(Button) <{ theme: IThemeData }>`\n color: ${props => props.theme.primaryColor} !important;\n background: none !important;\n border: none !important;\n box-shadow: none !important;\n padding: 0 !important;\n min-height: 0 !important;\n text-decoration: underline;\n cursor: pointer;\n\n &:hover {\n box-shadow: none !important;\n }\n\n &:focus {\n outline: none !important;\n }\n\n & .${Classes.ICON} {\n color: ${props => props.theme.primaryColor} !important;\n }\n`;\n\nexport interface ILinkButtonProps extends Omit {\n icon?: IconName | MaybeElement;\n rightIcon?: IconName | MaybeElement;\n}\n\nexport const LinkButton: React.FunctionComponent = ({ onClick, loading, disabled, text, icon, rightIcon }) => {\n const { theme } = useTheme();\n return (\n \n );\n};\n","import { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\n\nconst StyledButton = styled(Button)`\n &:focus {\n outline: none;\n }\n\n & *:focus {\n outline: none;\n }\n`;\n\ninterface IFavoriteButtonProps extends Omit {\n selected: boolean;\n}\n\nexport const FavoriteButton: React.FunctionComponent = ({\n onClick,\n disabled,\n loading,\n selected\n}) => {\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\nimport { Intent, Button } from \"@blueprintjs/core\";\n\ninterface INextButtonProps extends ICustomButtonProps {\n className?: string;\n}\n\nexport const NextButton: React.FunctionComponent = ({\n minimal,\n onClick,\n disabled,\n loading,\n intent = Intent.NONE,\n hideText,\n className\n}) => {\n const { t } = useTl();\n\n return (\n \n );\n};\n","import * as React from \"react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\nimport { Intent, Button } from \"@blueprintjs/core\";\n\ninterface IPreviousButtonProps extends ICustomButtonProps {\n className?: string;\n}\n\nexport const PreviousButton: React.FunctionComponent = ({\n minimal,\n onClick,\n disabled,\n loading,\n intent = Intent.NONE,\n hideText,\n className\n}) => {\n const { t } = useTl();\n\n return (\n \n );\n};\n","import { Button, ButtonProps, Intent } from \"@blueprintjs/core\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\ninterface IConfirmableIconButtonProps extends ButtonProps {\n onHoverMode?: boolean;\n}\n\nconst ButtonContainer = styled.div`\n & > .no-padding {\n padding: 0px !important;\n }\n\n & *:focus {\n outline: none !important;\n }\n`;\n\nexport const ConfirmableIconButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n disabled,\n loading,\n intent = Intent.NONE,\n icon,\n className\n}) => {\n const [toConfirm, setToConfirm] = React.useState(false);\n\n return (\n \n {toConfirm && (\n <>\n {\n e.stopPropagation();\n setToConfirm(false);\n if (!!onClick) onClick(e);\n }}\n intent=\"success\"\n />\n {\n e.stopPropagation();\n setToConfirm(false);\n }}\n intent=\"danger\"\n />\n \n )}\n {\n e.stopPropagation();\n setToConfirm(true);\n }}\n intent={intent}\n loading={loading}\n disabled={disabled}\n />\n \n );\n};\n","import * as React from \"react\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { ETLCodes } from \"../../locales/ETLCodes\";\nimport { useTl } from \"../../hooks\";\nimport { ICustomButtonProps } from \"./ICustomButtonProps\";\nimport { Button, Intent } from \"@blueprintjs/core\";\n\ninterface ISelectAllButtonProps extends ICustomButtonProps {}\n\nexport const SelectAllButton: React.FunctionComponent = ({\n minimal = true,\n onClick,\n loading,\n disabled,\n intent = Intent.NONE,\n text,\n outlined\n}) => {\n const { t } = useTl();\n\n return (\n \n );\n};\n","import { Button, ButtonGroup, Colors, Spinner, Tag } from \"@blueprintjs/core\";\nimport isArray from \"lodash/isArray\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { IFGCustomInputProps, useFGContext } from \"nsitools-react\";\nimport * as React from \"react\";\nimport { useQuery } from \"react-query\";\nimport styled from \"styled-components\";\n\nimport { RepresentantSelectorDialog } from \".\";\nimport { ClearButton, FGReadOnlyInput } from \"../..\";\nimport { RepresentantSelectorApi } from \"../../../api\";\nimport { ERoutes } from \"../../../AppRouter\";\nimport { useAuth } from \"../../../contexts\";\nimport { useApiService } from \"../../../hooks\";\n\nconst InputContainer = styled.div`\n padding: 0.4rem 0 0 0.6rem;\n`;\n\nconst StyledTag = styled(Tag)`\n & a {\n color: ${Colors.WHITE};\n }\n`;\n\nconst NamesContainer = styled.div`\n > * + * {\n margin-left: 5px;\n }\n`;\n\nexport interface IRepresentantSelectorFieldProps extends Omit {\n parentRepresentantIds?: number[];\n disabled?: boolean;\n allowMultipleSelection?: boolean;\n ref?: React.Ref;\n}\n\nexport const RepresentantSelectorField: React.FunctionComponent = ({\n name,\n parentRepresentantIds = [],\n label = null,\n disabled = false,\n className,\n allowMultipleSelection = false,\n ref,\n ...fgCustomInputProps\n}) => {\n const { hasPermission } = useAuth();\n const ctx = useFGContext();\n const api = useApiService(RepresentantSelectorApi);\n\n const hasValue = React.useMemo(\n () =>\n (allowMultipleSelection && !isEmpty(ctx?.formik?.values?.[name])) ||\n (!allowMultipleSelection && !!ctx?.formik?.values?.[name]),\n [allowMultipleSelection, ctx?.formik?.values, name]\n );\n const [selectorDialogOpen, setSelectorDialogOpen] = React.useState(false);\n const [currentSelectedRepresentantIds, setSelectedRepresentantIds] = React.useState([]);\n\n const { data: displayNames, isFetching: loadingDisplayNames } = useQuery(\n [\"representant-display-names\", currentSelectedRepresentantIds],\n async () => api.representantSelectorGetDisplayNames({ request_body: currentSelectedRepresentantIds })\n );\n\n const clearSelectedRepresentant = React.useCallback(() => {\n ctx?.formik?.setFieldValue(name, allowMultipleSelection ? [] : null, true);\n setSelectedRepresentantIds([]);\n }, [allowMultipleSelection, ctx?.formik, name]);\n\n React.useEffect(() => {\n if (ctx?.formik?.values?.[name]) {\n const value = ctx?.formik?.values?.[name];\n setSelectedRepresentantIds(isArray(value) ? value : [value]);\n } else {\n setSelectedRepresentantIds([]);\n }\n }, [ctx?.formik?.values, name]);\n\n const onRepresentantsSelected = React.useCallback(\n (selectedRepresentantIds?: number[]) => {\n if (selectedRepresentantIds?.length > 0) {\n ctx?.formik?.setFieldTouched(name);\n ctx?.formik?.setFieldValue(\n name,\n allowMultipleSelection ? selectedRepresentantIds : selectedRepresentantIds[0],\n true\n );\n setSelectedRepresentantIds(selectedRepresentantIds);\n }\n },\n [allowMultipleSelection, ctx?.formik, name]\n );\n\n const selectorProps = React.useMemo(\n () => ({\n excludedRepresentantIds: parentRepresentantIds,\n allowMultipleSelection,\n preSelectedIds: currentSelectedRepresentantIds\n }),\n [allowMultipleSelection, parentRepresentantIds, currentSelectedRepresentantIds]\n );\n\n const openRepresentantSelector = React.useCallback(() => {\n setSelectorDialogOpen(true);\n }, []);\n\n const getEditRoute = React.useCallback(\n (id: number) =>\n `#${ERoutes.representant}/${id}/detail/${hasPermission(\"REPRESENTANT\", \"RW\", \"DETAIL\") ? \"edit\" : \"view\"}`,\n [hasPermission]\n );\n\n const removeRepresentantId = React.useCallback(\n (representantId: number) => {\n const newRepresentantIds = [...currentSelectedRepresentantIds];\n newRepresentantIds.splice(currentSelectedRepresentantIds.indexOf(representantId), 1);\n ctx?.formik?.setFieldTouched(name);\n ctx?.formik?.setFieldValue(name, newRepresentantIds, true);\n setSelectedRepresentantIds(newRepresentantIds);\n },\n [ctx?.formik, currentSelectedRepresentantIds, name]\n );\n\n const getRepresentantLink = React.useCallback(\n (id: number, name: string, tags: boolean) => {\n const link = hasPermission(\"REPRESENTANT\", \"R\", \"DETAIL\") ? (\n \n {name}\n \n ) : (\n name\n );\n return tags ? (\n removeRepresentantId(id)}>\n {link}\n \n ) : (\n link\n );\n },\n [getEditRoute, hasPermission, removeRepresentantId]\n );\n\n const onClosed = React.useCallback(\n (selectedRepresentantIds?: number[]) => {\n onRepresentantsSelected(selectedRepresentantIds);\n setSelectorDialogOpen(false);\n },\n [onRepresentantsSelected]\n );\n\n return (\n <>\n \n {loadingDisplayNames ? (\n \n ) : (\n \n {displayNames.map(dn => getRepresentantLink(dn.id, dn.text, allowMultipleSelection))}\n \n )}\n \n }\n rightElement={\n \n {hasValue && }\n