2 lines
16 KiB
JavaScript
2 lines
16 KiB
JavaScript
import{a as se}from"./chunk-CQKJN64S.js";import{a as re}from"./chunk-YEESETR2.js";import{b as J,c as K,d as Q,e as X,f as Y,g as Z,h as $,k as ee,l as te,n as ie,p as ne,t as oe}from"./chunk-UDFQV3WY.js";import{i as R}from"./chunk-ZEULGWAI.js";import{a as U}from"./chunk-MBEC6LK4.js";import{Eb as s,Fa as l,Fb as h,Gb as E,Jb as v,Kb as C,Lb as b,Oa as T,Ob as I,R as c,Rb as L,S as p,T as x,Ta as A,U as V,Ya as y,ca as f,db as M,fb as w,hb as N,ib as j,jb as u,kb as i,lb as n,mb as _,nb as F,ob as B,pc as O,qb as S,qc as z,rb as g,rc as G,sb as m,sc as H,xc as q,zb as W}from"./chunk-TVKQFRWX.js";import{a as D,b as P}from"./chunk-DAQOROHW.js";var le=()=>({"background-color":"#00843B","border-color":"#00843B"}),de=()=>({}),me=(a,t,e)=>({"bg-green-50 border-green-500 text-green-700":a,"bg-red-50 border-red-500 text-red-700":t,"bg-blue-50 border-blue-500 text-blue-700":e}),ce=(a,t)=>t.id;function pe(a,t){a&1&&(i(0,"div",9),_(1,"div",14),n())}function ue(a,t){a&1&&(i(0,"div",9),x(),i(1,"svg",15),_(2,"path",16),n(),V(),i(3,"p",4),s(4,"Aucun ajout pour le moment"),n()())}function ge(a,t){if(a&1){let e=S();i(0,"tr")(1,"td")(2,"div",22)(3,"p",23),s(4),n()()(),i(5,"td")(6,"span",24),s(7),n()(),i(8,"td")(9,"span",25),s(10),n()(),i(11,"td")(12,"span",26),s(13),n()(),i(14,"td",18)(15,"div",27)(16,"button",28),g("click",function(){let o=c(e).$implicit,d=m(2);return p(d.editDocument(o))}),x(),i(17,"svg",29),_(18,"path",30),n()(),V(),i(19,"button",31),g("click",function(){let o=c(e).$implicit,d=m(2);return p(d.deleteDocument(o))}),x(),i(20,"svg",32),_(21,"path",33),n()()()()()}if(a&2){let e=t.$implicit;l(4),h(e.nom),l(3),h(e.prenom),l(3),h(e.profession),l(2),u("ngClass",e.isActif?"badge-primary":"badge-danger"),l(),E(" ",e.isActif?"Activ\xE9":"Non activ\xE9"," ")}}function fe(a,t){if(a&1){let e=S();F(0),i(1,"button",34),g("click",function(){let o=c(e).$implicit,d=m(2);return p(d.goToPage(o))}),s(2),n(),B()}if(a&2){let e=t.$implicit,r=m(2);l(),u("ngClass",r.currentPage()===e?"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?I(3,le):I(4,de)),l(),E(" ",e," ")}}function _e(a,t){if(a&1){let e=S();i(0,"div",10)(1,"table",17)(2,"thead")(3,"tr")(4,"th"),s(5,"Nom"),n(),i(6,"th"),s(7,"pr\xE9nom"),n(),i(8,"th"),s(9,"Profession"),n(),i(10,"th"),s(11,"Actif"),n(),i(12,"th",18),s(13,"Actions"),n()()(),i(14,"tbody"),N(15,ge,22,5,"tr",null,ce),n()(),i(17,"div",19)(18,"button",20),g("click",function(){c(e);let o=m();return p(o.prevPage())}),s(19," \xAB Pr\xE9c\xE9dent "),n(),y(20,fe,3,5,"ng-container",21),i(21,"button",20),g("click",function(){c(e);let o=m();return p(o.nextPage())}),s(22," Suivant \xBB "),n()()()}if(a&2){let e=m();l(15),j(e.documents()),l(3),u("disabled",e.currentPage()===1),l(2),u("ngForOf",e.pages()),l(),u("disabled",e.currentPage()===e.totalPages())}}function xe(a,t){if(a&1&&(i(0,"option",59),s(1),n()),a&2){let e=t.$implicit;u("value",e.id),l(),E(" ",e.nomGeneral," ")}}function he(a,t){a&1&&(i(0,"p",60),s(1," Le contenu est obligatoire "),n())}function ve(a,t){a&1&&_(0,"div",58)}function Ce(a,t){if(a&1){let e=S();i(0,"div",11)(1,"div",35)(2,"div",36)(3,"h2",37),s(4),n()(),i(5,"form",38),g("ngSubmit",function(){c(e);let o=m();return p(o.saveDocument())}),i(6,"div")(7,"label",39),s(8,"Minist\xE8re"),i(9,"span",40),s(10,"*"),n()(),i(11,"select",41),b("ngModelChange",function(o){c(e);let d=m();return C(d.form.ministereId,o)||(d.form.ministereId=o),p(o)}),i(12,"option",42),s(13,"-- S\xE9lectionner --"),n(),y(14,xe,2,2,"option",43),n()(),i(15,"div",44)(16,"div")(17,"label",39),s(18,"Nom "),i(19,"span",40),s(20,"*"),n()(),i(21,"input",45),b("ngModelChange",function(o){c(e);let d=m();return C(d.form.nom,o)||(d.form.nom=o),p(o)}),n()(),i(22,"div")(23,"label",39),s(24,"Prenom "),i(25,"span",40),s(26,"*"),n()(),i(27,"input",46),b("ngModelChange",function(o){c(e);let d=m();return C(d.form.prenom,o)||(d.form.prenom=o),p(o)}),n()()(),i(28,"div")(29,"label",39),s(30,"Profession "),i(31,"span",40),s(32,"*"),n()(),i(33,"input",47),b("ngModelChange",function(o){c(e);let d=m();return C(d.form.profession,o)||(d.form.profession=o),p(o)}),n()(),i(34,"div")(35,"label",39),s(36,"Biographie "),i(37,"span",48),s(38,"*"),n()(),i(39,"textarea",49,0),b("ngModelChange",function(o){c(e);let d=m();return C(d.form.biographie,o)||(d.form.biographie=o),p(o)}),n(),y(41,he,2,0,"p",50),n(),i(42,"div")(43,"label",39),s(44,"Photo"),i(45,"span",48),s(46,"*"),n()(),i(47,"input",51),g("change",function(o){c(e);let d=m();return p(d.onFileSelected(o))}),n()(),i(48,"div",52)(49,"input",53),b("ngModelChange",function(o){c(e);let d=m();return C(d.form.isActif,o)||(d.form.isActif=o),p(o)}),n(),i(50,"label",54),s(51,"Activer"),n()(),i(52,"div",55)(53,"button",56),g("click",function(){c(e);let o=m();return p(o.closeModal())}),s(54,"Annuler"),n(),i(55,"button",57),M(56,ve,1,0,"div",58),s(57),n()()()()()}if(a&2){let e=W(40),r=m();l(4),h(r.editingDocument()?"Modifier ":"Nouveau "),l(7),v("ngModel",r.form.ministereId),l(3),u("ngForOf",r.projects()),l(7),v("ngModel",r.form.nom),l(6),v("ngModel",r.form.prenom),l(6),v("ngModel",r.form.profession),l(6),v("ngModel",r.form.biographie),l(2),u("ngIf",e.invalid&&e.touched),l(8),v("ngModel",r.form.isActif),l(6),u("disabled",r.saving()),l(),w(r.saving()?56:-1),l(),E(" ",r.editingDocument()?"Mettre \xE0 jour":"Cr\xE9er"," ")}}function be(a,t){a&1&&(x(),i(0,"svg",64),_(1,"path",65),n())}function Me(a,t){a&1&&(x(),i(0,"svg",64),_(1,"path",66),n())}function we(a,t){a&1&&(x(),i(0,"svg",64),_(1,"path",67),n())}function Se(a,t){if(a&1&&(i(0,"div",12)(1,"div",61),y(2,be,2,0,"svg",62)(3,Me,2,0,"svg",62)(4,we,2,0,"svg",62),i(5,"span",63),s(6),n()()()),a&2){let e=m();l(),u("ngClass",L(5,me,e.notification().type==="success",e.notification().type==="error",e.notification().type==="info")),l(),u("ngIf",e.notification().type==="success"),l(),u("ngIf",e.notification().type==="error"),l(),u("ngIf",e.notification().type==="info"),l(2),h(e.notification().message)}}function ye(a,t){if(a&1){let e=S();i(0,"div",13)(1,"div",68)(2,"h3",69),s(3,"Confirmation"),n(),i(4,"p",70),s(5),n(),i(6,"div",71)(7,"button",72),g("click",function(){c(e);let o=m();return p(o.closeConfirmModal())}),s(8," Annuler "),n(),i(9,"button",73),g("click",function(){c(e);let o=m();return p(o.confirmModal().onConfirm())}),s(10," Supprimer "),n()()()()}if(a&2){let e=m();l(5),h(e.confirmModal().message)}}var ae=class a{constructor(t,e){this.apiService=t;this.minService=e}API_URL=U.FileUrl;notification=f({show:!1,message:"",type:"success"});projects=f([]);documents=f([]);loading=f(!0);showModal=f(!1);editingDocument=f(null);saving=f(!1);selectedImage=null;selectedFile=null;currentPage=f(1);pageSize=7;totalPages=f(1);form={nom:"",prenom:"",profession:"",biographie:"",isActif:!0,ministereId:0};ngOnInit(){this.loadDocuments(),this.loadProjects()}loadDocuments(t=0){this.loading.set(!0),this.apiService.getAllMinistre(t,this.pageSize).subscribe({next:e=>{e.success&&(this.documents.set(e.data.content),this.totalPages.set(e.data.totalPages),this.currentPage.set(t+1)),this.loading.set(!1)},error:()=>this.loading.set(!1)})}nextPage(){this.currentPage()<this.totalPages()&&this.loadDocuments(this.currentPage())}prevPage(){this.currentPage()>1&&this.loadDocuments(this.currentPage()-2)}goToPage(t){this.loadDocuments(t-1)}pages(){return Array.from({length:this.totalPages()},(t,e)=>e+1)}openModal(){this.form={nom:"",prenom:"",profession:"",biographie:"",ministereId:0,isActif:!0},this.selectedFile=null,this.editingDocument.set(null),this.showModal.set(!0)}openModal1(){this.form={nom:"",prenom:"",profession:"",biographie:"",isActif:!0,ministereId:0},this.editingDocument.set(null),this.showModal.set(!0)}closeModal(){this.showModal.set(!1),this.editingDocument.set(null)}editDocument1(t){this.form={nom:t.nom,prenom:t.prenom,profession:t.profession,biographie:t.biographie,isActif:t.isActif,ministereId:t.ministereId},this.editingDocument.set(t),this.showModal.set(!0)}editDocument(t){this.form={nom:t.nom,prenom:t.prenom,profession:t.profession,ministereId:t.ministereId,biographie:t.biographie,isActif:t.isActif},this.editingDocument.set(t),this.showModal.set(!0)}loadProjects(){this.minService.getAllMins().subscribe({next:t=>{console.log("RESPONSE =",t),this.projects.set(t.data.content),console.log("PROJECTS =",this.projects())},error:t=>{console.error("Erreur API",t)}})}onFileSelected(t){let e=t.target;if(!e.files||e.files.length===0){this.selectedFile=null;return}let r=e.files[0];if(!r.type.startsWith("image/")){alert("Pour une actualit\xE9, veuillez s\xE9lectionner une image"),e.value="",this.selectedFile=null;return}this.selectedFile=r}saveDocument(){if(!this.form.nom)return;let e=this.projects().find(k=>k.id==this.form.ministereId)?.nomGeneral;this.saving.set(!0);let r=this.editingDocument(),o={nom:this.form.nom,prenom:this.form.prenom,profession:this.form.profession,biographie:this.form.biographie,isActif:this.form.isActif,ministereId:this.form.ministereId};console.log(o);let d=new FormData;d.append("ministre",new Blob([JSON.stringify(o)],{type:"application/json"})),this.selectedFile&&d.append("photo",this.selectedFile),(r?this.apiService.updateMinistre(r.id,d):this.apiService.createMinistre(d)).subscribe({next:k=>{this.loadDocuments(),this.closeModal(),this.saving.set(!1),this.showNotification(r?"Document mis \xE0 jour avec succ\xE8s":"Document cr\xE9\xE9 avec succ\xE8s","success")},error:k=>{console.error("Erreur lors de la sauvegarde",k),this.saving.set(!1),this.showNotification("Erreur lors de la sauvegarde","error")}})}formatDate(t){return t?new Date(t).toLocaleDateString("fr-FR"):""}showNotification(t,e="success",r=2e3){this.notification.set({show:!0,message:t,type:e}),setTimeout(()=>this.notification.update(o=>P(D({},o),{show:!1})),r)}confirmModal=f({show:!1,message:"",onConfirm:()=>{}});openConfirmModal(t,e){this.confirmModal.set({show:!0,message:t,onConfirm:e})}closeConfirmModal(){this.confirmModal.update(t=>P(D({},t),{show:!1}))}deleteDocument(t){this.openConfirmModal(`Voulez-vous vraiment supprimer l'article "${t.nom}" ?`,()=>{this.apiService.deleteOrg(t.id).subscribe({next:()=>{this.loadDocuments(),this.closeConfirmModal(),this.showNotification("Article supprim\xE9 avec succ\xE8s","success")},error:()=>{this.showNotification("Erreur lors de la suppression","error"),this.closeConfirmModal()}})})}getImageUrl(t){return console.log(t),t?this.API_URL+t:null}static \u0275fac=function(e){return new(e||a)(T(se),T(re))};static \u0275cmp=A({type:a,selectors:[["app-ministre"]],decls:18,vars:4,consts:[["content","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"],[1,"p-8","text-center"],[1,"table-container"],[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,"spinner","w-8","h-8","mx-auto"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-12","h-12","text-neutral-300","mx-auto","mb-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z"],[1,"table"],[1,"text-right"],[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,"max-w-xs"],[1,"font-medium","text-neutral-900","truncate"],[1,""],[1,"badge-primary"],[3,"ngClass"],[1,"flex","justify-end","gap-2"],["title","Modifier",1,"flex","items-center","justify-center","p-2","border-2","border-green-500","rounded-full","bg-white","hover:bg-green-50","transition-colors",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,"flex","items-center","justify-center","p-2","border-2","border-red-500","rounded-full","bg-white","hover:bg-red-50","transition-colors",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-3xl","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"],[1,"grid","grid-cols-1","md:grid-cols-2","gap-6"],["type","text","name","nom","required","",1,"input",3,"ngModelChange","ngModel"],["type","text","name","prenom","required","",1,"input",3,"ngModelChange","ngModel"],["type","text","name","profession","required","",1,"input",3,"ngModelChange","ngModel"],[1,"text-red-500"],["name","biographie","rows","6","required","",1,"input","resize-none",3,"ngModelChange","ngModel"],["class","text-sm text-red-500 mt-1",4,"ngIf"],["type","file","accept","image/*",1,"input",3,"change"],[1,"flex","items-center","gap-2"],["type","checkbox","name","isActif","id","isActif",1,"rounded","border-neutral-300","text-primary-500","focus:ring-primary-500",3,"ngModelChange","ngModel"],["for","featured",1,"text-sm","text-neutral-700"],[1,"flex","justify-end","gap-3","pt-4","border-t","border-neutral-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,"btn-primary",3,"disabled"],[1,"spinner","w-4","h-4","mr-2"],[3,"value"],[1,"text-sm","text-red-500","mt-1"],[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",1)(1,"div",2)(2,"div")(3,"h1",3),s(4,"Ministres"),n(),i(5,"p",4),s(6,"G\xE9rez le suivi des ministres"),n()(),i(7,"button",5),g("click",function(){return r.openModal()}),x(),i(8,"svg",6),_(9,"path",7),n(),s(10," Nouvel Ajout "),n()(),V(),i(11,"div",8),M(12,pe,2,0,"div",9)(13,ue,5,0,"div",9)(14,_e,23,3,"div",10),n(),M(15,Ce,58,12,"div",11),n(),M(16,Se,7,9,"div",12),M(17,ye,11,1,"div",13)),e&2&&(l(12),w(r.loading()?12:r.documents().length===0?13:14),l(3),w(r.showModal()?15:-1),l(),w(r.notification().show?16:-1),l(),w(r.confirmModal().show?17:-1))},dependencies:[q,O,z,G,H,oe,$,te,ie,K,J,ee,Q,X,ne,Z,Y,R],encapsulation:2})};export{ae as MinistreComponent};
|