import{a as te}from"./chunk-CQKJN64S.js";import{a as ee}from"./chunk-YEESETR2.js";import{c as H,d as R,e as q,f as J,g as K,h as Q,k as U,l as X,n as Y,p as Z,t as $}from"./chunk-UDFQV3WY.js";import"./chunk-MBEC6LK4.js";import{Eb as l,Fa as a,Fb as N,Gb as v,Jb as w,Kb as y,Lb as S,Oa as V,Ob as E,R as p,Rb as B,S as u,T as x,Ta as T,U as j,Ya as C,ca as g,db as h,fb as b,hb as I,ib as F,jb as m,kb as i,lb as n,mb as _,nb as D,ob as A,pc as z,qb as M,qc as O,rb as f,rc as G,sb as d,sc as L,xc as W}from"./chunk-TVKQFRWX.js";import{a as k,b as P}from"./chunk-DAQOROHW.js";var ne=()=>[],oe=()=>({"background-color":"#00843B","border-color":"#00843B"}),re=()=>({}),se=(o,t,e)=>({"bg-green-50 border-green-500 text-green-700":o,"bg-red-50 border-red-500 text-red-700":t,"bg-blue-50 border-blue-500 text-blue-700":e}),ae=(o,t)=>t.id;function le(o,t){if(o&1){let e=M();i(0,"tr",16)(1,"td",23)(2,"p",24),l(3),n()(),i(4,"td",23)(5,"p",25),l(6),n()(),i(7,"td",26)(8,"div",27)(9,"button",28),f("click",function(){let s=p(e).$implicit,c=d();return u(c.editProject(s))}),x(),i(10,"svg",29),_(11,"path",30),n()(),j(),i(12,"button",31),f("click",function(){let s=p(e).$implicit,c=d();return u(c.deleteProject(s))}),x(),i(13,"svg",32),_(14,"path",33),n()()()()()}if(o&2){let e=t.$implicit;a(3),v(" ",e.categorie," "),a(3),v(" ",e.description," ")}}function de(o,t){if(o&1){let e=M();D(0),i(1,"button",34),f("click",function(){let s=p(e).index,c=d();return u(c.currentPage.set(s+1))}),l(2),n(),A()}if(o&2){let e=t.index,r=d();a(),m("ngClass",r.currentPage()===e+1?"px-3 py-1 border rounded text-white":"px-3 py-1 border border-gray-300 rounded hover:bg-gray-100 transition-colors")("ngStyle",r.currentPage()===e+1?E(3,oe):E(4,re)),a(),v(" ",e+1," ")}}function ce(o,t){if(o&1&&(i(0,"option",50),l(1),n()),o&2){let e=t.$implicit;m("value",e.id),a(),v(" ",e.nomGeneral," ")}}function me(o,t){o&1&&_(0,"div",49)}function pe(o,t){if(o&1){let e=M();i(0,"div",20)(1,"div",35)(2,"div",36)(3,"h2",37),l(4),n()(),i(5,"form",38,0),f("ngSubmit",function(){p(e);let s=d();return u(s.saveProject())}),i(7,"div")(8,"label",39),l(9,"Minist\xE8re"),i(10,"span",40),l(11,"*"),n()(),i(12,"select",41),S("ngModelChange",function(s){p(e);let c=d();return y(c.form.ministereId,s)||(c.form.ministereId=s),u(s)}),i(13,"option",42),l(14,"-- S\xE9lectionner --"),n(),C(15,ce,2,2,"option",43),n()(),i(16,"div")(17,"label",39),l(18,"Categorie "),n(),i(19,"input",44,1),S("ngModelChange",function(s){p(e);let c=d();return y(c.form.categorie,s)||(c.form.categorie=s),u(s)}),n()(),i(21,"div")(22,"label",39),l(23,"Description"),n(),i(24,"textarea",45),S("ngModelChange",function(s){p(e);let c=d();return y(c.form.description,s)||(c.form.description=s),u(s)}),n()(),i(25,"div",46)(26,"button",47),f("click",function(){p(e);let s=d();return u(s.closeModal())}),l(27," Annuler "),n(),i(28,"button",48),h(29,me,1,0,"div",49),l(30),n()()()()()}if(o&2){let e=d();a(4),v(" ",e.editingProject()?"Modifier le projet":"Nouveau projet"," "),a(8),w("ngModel",e.form.ministereId),a(3),m("ngForOf",e.ministere()),a(4),w("ngModel",e.form.categorie),a(5),w("ngModel",e.form.description),a(4),m("disabled",e.saving()),a(),b(e.saving()?29:-1),a(),v(" ",e.editingProject()?"Mettre \xE0 jour":"Enr\xE9gistrer"," ")}}function ue(o,t){o&1&&(x(),i(0,"svg",54),_(1,"path",55),n())}function ge(o,t){o&1&&(x(),i(0,"svg",54),_(1,"path",56),n())}function fe(o,t){o&1&&(x(),i(0,"svg",54),_(1,"path",57),n())}function _e(o,t){if(o&1&&(i(0,"div",21)(1,"div",51),C(2,ue,2,0,"svg",52)(3,ge,2,0,"svg",52)(4,fe,2,0,"svg",52),i(5,"span",53),l(6),n()()()),o&2){let e=d();a(),m("ngClass",B(5,se,e.notification().type==="success",e.notification().type==="error",e.notification().type==="info")),a(),m("ngIf",e.notification().type==="success"),a(),m("ngIf",e.notification().type==="error"),a(),m("ngIf",e.notification().type==="info"),a(2),N(e.notification().message)}}function xe(o,t){if(o&1){let e=M();i(0,"div",22)(1,"div",58)(2,"h3",59),l(3,"Confirmation"),n(),i(4,"p",60),l(5),n(),i(6,"div",61)(7,"button",62),f("click",function(){p(e);let s=d();return u(s.closeConfirmModal())}),l(8," Annuler "),n(),i(9,"button",63),f("click",function(){p(e);let s=d();return u(s.confirmModal().onConfirm())}),l(10," Supprimer "),n()()()()}if(o&2){let e=d();a(5),N(e.confirmModal().message)}}var ie=class o{constructor(t,e){this.apiService=t;this.minService=e}notification=g({show:!1,message:"",type:"success"});ministere=g([]);projects=g([]);loading=g(!0);showModal=g(!1);editingProject=g(null);saving=g(!1);currentPage=g(1);pageSize=7;totalPages=g(1);form={categorie:"",description:"",ministereId:0};ngOnInit(){this.loadProjects(),this.loadMin()}loadProjects(){this.loading.set(!0),this.apiService.getAllMissions().subscribe({next:t=>{console.log("RESPONSE =",t),this.projects.set(t.data.content),console.log("PROJECTS =",this.projects()),this.totalPages.set(Math.ceil(t.data.content.length/this.pageSize)),this.currentPage.set(1),this.loading.set(!1)},error:t=>{console.error("Erreur API",t),this.loading.set(!1)}})}loadMin(){this.minService.getAllMins().subscribe({next:t=>{console.log("RESPONSE =",t),this.ministere.set(t.data.content),console.log("PROJECTS =",this.ministere())},error:t=>{console.error("Erreur API",t)}})}paginatedProjects(){let t=this.projects(),e=(this.currentPage()-1)*this.pageSize;return t.slice(e,e+this.pageSize)}nextPage(){this.currentPage()t+1)}prevPage(){this.currentPage()>1&&this.currentPage.update(t=>t-1)}openModal(){this.form={categorie:"",description:"",ministereId:0},this.editingProject.set(null),this.showModal.set(!0)}closeModal(){this.showModal.set(!1),this.editingProject.set(null)}editProject(t){this.form={categorie:t.categorie,description:t.description,ministereId:t.ministereId},this.editingProject.set(t),this.showModal.set(!0)}saveProject(){this.saving.set(!0);let t=this.editingProject();(t?this.apiService.updateMissions(t.id,this.form):this.apiService.createMissions(this.form)).subscribe({next:r=>{console.log("API response =",r),this.loadProjects(),this.closeModal(),this.saving.set(!1),this.showNotification(t?"Type Document mis \xE0 jour avec succ\xE8s":"Type Document cr\xE9\xE9 avec succ\xE8s","success")},error:r=>{console.error("Erreur lors de la sauvegarde",r),this.saving.set(!1),this.showNotification("Erreur lors de la sauvegarde","error")}})}showNotification(t,e="success",r=2e3){this.notification.set({show:!0,message:t,type:e}),setTimeout(()=>this.notification.update(s=>P(k({},s),{show:!1})),r)}confirmModal=g({show:!1,message:"",onConfirm:()=>{}});openConfirmModal(t,e){this.confirmModal.set({show:!0,message:t,onConfirm:e})}closeConfirmModal(){this.confirmModal.update(t=>P(k({},t),{show:!1}))}deleteProject(t){console.log("fvfv"),this.openConfirmModal(`Voulez-vous vraiment supprimer ce type de document "${t.categorie}" ?`,()=>{this.apiService.deleteMissions(t.id).subscribe({next:()=>{this.loadProjects(),this.closeConfirmModal(),this.showNotification("Projet supprim\xE9 avec succ\xE8s","success")},error:()=>{this.showNotification("Erreur lors de la suppression","error"),this.closeConfirmModal()}})})}static \u0275fac=function(e){return new(e||o)(V(te),V(ee))};static \u0275cmp=T({type:o,selectors:[["app-mission"]],decls:34,vars:7,consts:[["projectForm","ngForm"],["nameField","ngModel"],[1,"space-y-6"],[1,"flex","flex-col","sm:flex-row","sm:items-center","sm:justify-between","gap-4"],[1,"text-2xl","font-bold","text-neutral-900"],[1,"text-neutral-500"],[1,"btn-primary",2,"background-color","#00843B",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","mr-2"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 6v6m0 0v6m0-6h6m-6 0H6"],[1,"card","p-0","shadow-lg","rounded-lg","overflow-hidden"],[1,"table-container"],[1,"w-full","table-auto"],[1,"bg-gray-50"],[1,"px-6","py-3","text-left"],[1,"px-6","py-3","text-right","whitespace-nowrap"],[1,"bg-white","divide-y","divide-gray-200"],[1,"hover:bg-gray-50","transition"],[1,"flex","justify-end","items-center","mt-2","px-6","py-2","gap-2","border-t","border-gray-200","bg-gray-50","rounded-b-lg"],[1,"px-3","py-1","border","border-gray-300","rounded","hover:bg-gray-100","disabled:opacity-50","transition-colors",3,"click","disabled"],[4,"ngFor","ngForOf"],[1,"fixed","inset-0","bg-black/50","flex","items-center","justify-center","z-50","p-4"],[1,"fixed","top-4","right-4","z-50","pointer-events-none"],[1,"fixed","inset-0","bg-black/30","flex","items-center","justify-center","z-50","p-4"],[1,"px-6","py-4"],[1,"font-semibold","text-gray-900","truncate","max-w-[200px]"],[1,"text-xs","text-neutral-400","truncate","max-w-[250px]"],[1,"px-6","py-4","text-right","whitespace-nowrap"],[1,"flex","justify-end","gap-2"],["title","Modifier",1,"p-2","border-2","border-green-500","rounded-full","bg-white","hover:bg-green-50","transition",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-green-500"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"],["title","Supprimer",1,"p-2","border-2","border-red-500","rounded-full","bg-white","hover:bg-red-50","transition",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-red-500"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"],[3,"click","ngClass","ngStyle"],[1,"bg-white","rounded-2xl","shadow-xl","w-full","max-w-2xl","max-h-[90vh]","overflow-y-auto"],[1,"p-6","border-b","border-neutral-200"],[1,"text-xl","font-semibold","text-neutral-900"],[1,"p-6","space-y-5",3,"ngSubmit"],[1,"label"],[1,"text-danger-500"],["name","ministereId","required","",1,"input",3,"ngModelChange","ngModel"],["value",""],[3,"value",4,"ngFor","ngForOf"],["type","text","name","categorie",1,"input",3,"ngModelChange","ngModel"],["name","description","rows","2",1,"input","resize-none",3,"ngModelChange","ngModel"],[1,"flex","justify-end","gap-3","pt-4","border-t","border-gray-200"],["type","button",1,"px-4","py-2","rounded-lg","border","border-red-500","text-red-500","hover:bg-red-50","transition-colors","font-medium",3,"click"],["type","submit",1,"px-4","py-2","rounded-lg","bg-[#00843B]","text-white","hover:bg-[#006830]","transition-colors","font-medium","flex","items-center","justify-center","gap-2",3,"disabled"],[1,"spinner","w-4","h-4","border-2","border-t-white","border-gray-200","rounded-full","animate-spin"],[3,"value"],[1,"pointer-events-auto","border-l-4","rounded-lg","shadow-lg","p-6","max-w-sm","w-full","flex","items-center","gap-4","animate-fade-in",3,"ngClass"],["class","w-6 h-6 flex-shrink-0","fill","none","stroke","currentColor","viewBox","0 0 24 24",4,"ngIf"],[1,"text-sm","font-medium"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-6","h-6","flex-shrink-0"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M5 13l4 4L19 7"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M6 18L18 6M6 6l12 12"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M13 16h-1v-4h-1m1-4h.01M12 20a8 8 0 100-16 8 8 0 000 16z"],[1,"bg-white","rounded-2xl","shadow-xl","w-full","max-w-md","p-6","space-y-4"],[1,"text-lg","font-semibold","text-neutral-900"],[1,"text-neutral-700"],[1,"flex","justify-end","gap-3","mt-4"],[1,"px-4","py-2","rounded-lg","border","border-gray-300","text-gray-700","hover:bg-gray-100","transition-colors","font-medium",3,"click"],[1,"px-4","py-2","rounded-lg","bg-red-600","text-white","hover:bg-red-700","transition-colors","font-medium",3,"click"]],template:function(e,r){e&1&&(i(0,"div",2)(1,"div",3)(2,"div")(3,"h1",4),l(4,"Missions"),n(),i(5,"p",5),l(6,"G\xE9rez les categories de missions du ministere"),n()(),i(7,"button",6),f("click",function(){return r.openModal()}),x(),i(8,"svg",7),_(9,"path",8),n(),l(10," Nouveau "),n()(),j(),i(11,"div",9)(12,"div",10)(13,"table",11)(14,"thead")(15,"tr",12)(16,"th",13),l(17,"Cat\xE9gorie"),n(),i(18,"th",13),l(19,"Description"),n(),i(20,"th",14),l(21,"Actions"),n()()(),i(22,"tbody",15),I(23,le,15,2,"tr",16,ae),n()(),i(25,"div",17)(26,"button",18),f("click",function(){return r.prevPage()}),l(27," \xAB Pr\xE9c\xE9dent "),n(),C(28,de,3,5,"ng-container",19),i(29,"button",18),f("click",function(){return r.nextPage()}),l(30," Suivant \xBB "),n()()(),h(31,pe,31,8,"div",20),n(),h(32,_e,7,9,"div",21),h(33,xe,11,1,"div",22),n()),e&2&&(a(23),F(r.paginatedProjects()),a(3),m("disabled",r.currentPage()===1),a(2),m("ngForOf",E(6,ne).constructor(r.totalPages())),a(),m("disabled",r.currentPage()===r.totalPages()),a(2),b(r.showModal()?31:-1),a(),b(r.notification().show?32:-1),a(),b(r.confirmModal().show?33:-1))},dependencies:[W,z,O,G,L,$,Q,X,Y,H,U,R,q,Z,K,J],encapsulation:2})};export{ie as MissionComponent};