PageSourceSearch

https://app.lynara.ai/_next/static/chunks/31102-080476fa964b8b5d.js

js lynara.ai collected 2026-10-05 15:11:59 UTC 15,199 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[31102],{131102:(e,a,l)=>{l.d(a,{o:()=>D});var s=l(695155),n=l(212115),t=l(521567),r=l(73312),i=l(998986),o=l(951344),c=l(537528),d=l(22130),m=l(644857),u=l(814081),p=l(948617),x=l(871406),h=l(187780),v=l(234085),g=l(992598),_=l(614505),j=l(562884),y=l(930814),f=l(306621),b=l(720405),N=l(44812),w=l(225121),S=l(646754),C=l(733900);function D(e){let{open:a,onOpenChange:l,employee:D,onGenerated:E}=e,{currentAccount:A}=(0,f.i)(),[P,k]=(0,n.useState)(!1),[F,z]=(0,n.useState)([]),[I,L]=(0,n.useState)(""),[O,V]=(0,n.useState)("attestation_work"),[G,J]=(0,n.useState)(""),[q,R]=(0,n.useState)(""),[T,U]=(0,n.useState)(!1),[M,W]=(0,n.useState)(null),[Z,$]=(0,n.useState)(""),[X,B]=(0,n.useState)(""),[H,K]=(0,n.useState)(""),[Q,Y]=(0,n.useState)([]),[ee,ea]=(0,n.useState)({}),el=[{value:"attestation_work",label:"Attestation de Travail"},{value:"attestation_salary",label:"Attestation de Salaire"},{value:"fpe",label:"Fin de P\xe9riode d'Essai"},{value:"stc",label:"Solde de Tout Compte"},{value:"custom",label:"Autres Documents"}];(0,n.useEffect)(()=>{let e=async()=>{if((null==A?void 0:A.company_id)&&"personal"!==A.company_id&&(null==D?void 0:D.employee_id))try{k(!0);let e=await (0,N.OG)(A.company_id,D.employee_id);W(e)}catch(e){console.error("Error loading data:",e),y.toast.error("Erreur lors du chargement des donn\xe9es")}finally{k(!1)}};a&&e()},[null==A?void 0:A.company_id,null==D?void 0:D.employee_id,a]),(0,n.useEffect)(()=>{let e=async()=>{if((null==A?void 0:A.company_id)&&O)try{let e=await (0,b.jG)(A.company_id,O,!0);z(e),L(""),J("")}catch(e){console.error("❌ Error loading templates:",e),y.toast.error("Erreur lors du chargement des templates: "+e.message)}};a&&e()},[O,null==A?void 0:A.company_id,a]);let es=F.find(e=>e.template_id===I),en=e=>(null==e?void 0:e.cin_number)?"CIN: ".concat(e.cin_number):(null==e?void 0:e.passport_number)?"Passeport: ".concat(e.passport_number):(null==e?void 0:e.residence_permit_number)?"Carte de s\xe9jour: ".concat(e.residence_permit_number):"",et=function(e,a){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=e,n=[],r=[];try{n=l.signataires||[],r=l.signaturePlaces||[]}catch(e){console.error("Error parsing metadata:",e)}let i=n.find(e=>e.id===Z),o=r.find(e=>e.id===X);return Object.entries({employee_full_name:"".concat((null==a?void 0:a.first_name)||""," ").concat((null==a?void 0:a.last_name)||""),employee_first_name:(null==a?void 0:a.first_name)||"",employee_last_name:(null==a?void 0:a.last_name)||"",employee_email:(null==a?void 0:a.email)||"",employee_cin:en(a),employee_birth_date:(null==a?void 0:a.dob)||"",employee_address:(null==a?void 0:a.street)?"".concat(a.street,", ").concat(a.postal_code||""," ").concat(a.city||"",", ").concat(a.country_code||"").trim():"",position:(null==a?void 0:a.position)||"",department:(null==a?void 0:a.department)||"",hire_date:(null==a?void 0:a.hire_date)||"",company_name:(null==A?void 0:A.legal_name)||"",company_legal_name:(null==A?void 0:A.legal_name)||"",company_info:er(A),company_logo:l.logoUrl?'<img src="'.concat(l.logoUrl,'" alt="Logo" style="max-height: 80px;" />'):"",company_address:(null==A?void 0:A.address)||(null==A?void 0:A.address_line1)||"",company_address_line1:(null==A?void 0:A.address_line1)||(null==A?void 0:A.address)||"",company_address_line2:(null==A?void 0:A.address_line2)||"",company_city:(null==A?void 0:A.address_city)||(null==A?void 0:A.city)||"",company_postal_code:(null==A?void 0:A.address_postal_code)||(null==A?void 0:A.postal_code)||"",company_state:(null==A?void 0:A.address_state)||(null==A?void 0:A.state)||"",company_country:(null==A?void 0:A.address_country)||(null==A?void 0:A.country)||"",company_email:(null==A?void 0:A.email)||"",company_phone:(null==A?void 0:A.phone)||"",company_website:(null==A?void 0:A.website)||"",company_registration_number:(null==A?void 0:A.registration_number)||(null==A?void 0:A.registration_no)||"",company_vat_number:(null==A?void 0:A.vat_number)||"",company_siret:(null==A?void 0:A.siret_number)||"",company_naf_code:(null==A?void 0:A.naf_code)||"",company_ceo_name:(null==A?void 0:A.ceo_name)||"",company_legal_form:(null==A?void 0:A.legal_form)||"",company_industry:(null==A?void 0:A.industry)||"",company_activity_description:(null==A?void 0:A.activity_description)||"",signature_date:new Date().toLocaleDateString((0,t.eM)()),signature_place:(null==o?void 0:o.name)||"",employer_signature:"[Signature employeur]",employer_signature_name:(null==i?void 0:i.name)||"[Nom du signataire]",employer_signature_position:(null==i?void 0:i.position)||"[Poste du signataire]",employee_signature:"".concat((null==a?void 0:a.first_name)||""," ").concat((null==a?void 0:a.last_name)||"")}
1).forEach(e=>{let[a,l]=e,n=RegExp("{{".concat(a,"}}"),"g");s=s.replace(n,String(l))}),s},er=e=>"".concat((null==e?void 0:e.legal_name)||"","\nAdresse: ").concat((null==e?void 0:e.address)||"","\n").concat((null==e?void 0:e.registration_number)?"Immatriculation: ".concat(e.registration_number):"").trim(),ei=/{{\s*([\w.-]+)\s*}}/g,eo=e=>{let a;if(!e)return[];let l=new Set;for(;null!==(a=ei.exec(e));)l.add(a[1]);return ei.lastIndex=0,Array.from(l)},ec=(e,a)=>{if(!e)return"";let l=e;return Object.entries(a).forEach(e=>{let[a,s]=e;if(void 0===s)return;let n=RegExp("{{\\s*".concat(a,"\\s*}}"),"g");l=l.replace(n,null!=s?s:"")}),l},ed=(e,a)=>{ea(l=>({...l,[e]:a}))};(0,n.useEffect)(()=>{if(es&&M){let e={};try{e=es.metadata?JSON.parse(es.metadata):{}}catch(e){console.error("Error parsing template metadata:",e)}let a=et(es.content,M,e);ea({}),Y([]),K(a),U(!1)}else K(""),ea({}),Y([]),J(""),R("")},[es,M,Z,X]),(0,n.useEffect)(()=>{if(!H){J(""),T||R("");return}Y(eo(H));let e=ec(H,ee);J(e),T||R(e)},[H,ee,T]);let em=async()=>{if(!I){y.toast.error("Veuillez s\xe9lectionner un template");return}if(!(null==A?void 0:A.company_id)||!(null==D?void 0:D.employee_id)){y.toast.error("Donn\xe9es manquantes pour g\xe9n\xe9rer le PDF");return}try{var e;k(!0);let a=ec(H||G||"",ee),l=T||Q.length>0,s=T?q:a,n=await (0,b.AG)({companyId:A.company_id,templateId:I,contractId:"",employeeId:D.employee_id,signataireId:Z||void 0,placeId:X||void 0,customContent:l?s:void 0}),t=window.URL.createObjectURL(n),r=document.createElement("a");r.href=t;let i="".concat(D.first_name,"_").concat(D.last_name).replace(/\s+/g,"_"),o=(null===(e=el.find(e=>e.value===O))||void 0===e?void 0:e.label)||"Document",c=new Date().toISOString().split("T")[0];r.download="".concat(o,"_").concat(i,"_").concat(c,".pdf"),document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(t),y.toast.success("PDF g\xe9n\xe9r\xe9 et t\xe9l\xe9charg\xe9 avec succ\xe8s !"),E()}catch(e){console.error("Error generating PDF:",e),y.toast.error(e.message||"Erreur lors de la g\xe9n\xe9ration du PDF")}finally{k(!1)}};return(0,s.jsx)(o.lG,{open:a,onOpenChange:l,children:(0,s.jsxs)(o.Cf,{className:"max-w-5xl max-h-[90vh] overflow-hidden flex flex-col",children:[(0,s.jsxs)(o.c7,{children:[(0,s.jsxs)(o.L3,{className:"text-2xl font-bold flex items-center gap-2",children:[(0,s.jsx)(m.A,{className:"h-6 w-6 text-blue-600"}),"G\xe9n\xe9rer une attestation - ",null==D?void 0:D.first_name," ",null==D?void 0:D.last_name]}),(0,s.jsx)(o.rr,{children:"S\xe9lectionnez le type d'attestation et un template pour g\xe9n\xe9rer le document PDF"})]}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto space-y-4 py-4",children:[(0,s.jsx)(d.Zp,{children:(0,s.jsx)(d.Wu,{className:"pt-6",children:(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(u.A,{className:"h-5 w-5 text-purple-600"}),(0,s.jsx)(i.J,{className:"text-base font-semibold",children:"Type de document"})]}),(0,s.jsxs)(c.l6,{value:O,onValueChange:V,children:[(0,s.jsx)(c.bq,{className:"w-full",children:(0,s.jsx)(c.yv,{placeholder:"S\xe9lectionnez un type..."})}),(0,s.jsx)(c.gC,{children:el.map(e=>(0,s.jsx)(c.eb,{value:e.value,children:e.label},e.value))})]})]})})}),(0,s.jsx)(d.Zp,{children:(0,s.jsx)(d.Wu,{className:"pt-6",children:(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(u.A,{className:"h-5 w-5 text-blue-600"}),(0,s.jsx)(i.J,{className:"text-base font-semibold",children:"Template"})]}),(0,s.jsxs)(c.l6,{value:I,onValueChange:L,disabled:P||0===F.length,children:[(0,s.jsx)(c.bq,{className:"w-full",children:(0,s.jsx)(c.yv,{placeholder:"S\xe9lectionnez un template..."})}),(0,s.jsxs)(c.gC,{children:[0===F.length&&!P&&(0,s.jsx)("div",{className:"p-4 text-center text-sm text-muted-foreground",children:"Aucun template disponible pour ce type de document"}),F.map(e=>(0,s.jsx)(c.eb,{value:e.template_id,children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{children:e.name}),e.is_default&&(0,s.jsx)(w.E,{variant:"secondary",className:"text-xs",children:"Par d\xe9faut"})]})},e.template_id))]})]})]})})}),es&&(()=>{let e=[],a=[];try{let l=es.metadata?JSON.parse(es.metadata):{};e=l.signataires||[],a=l.signaturePlaces||[]}catch(e){console.error("Error parsing metadata:",e)}return e.length>0||a.length>0?(0,s.jsx)(d.Zp,{children:(0,s.jsx)(d.Wu,{className:"pt-6",children:(0,s.jsxs)("div",{className:"space-y-6",children:[a.length>0&&(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-2xl",children:"\uD83D\uDCCD"}),(0,s.jsx)(i.J,{className:"text-base font-semibold",children:"Lieu de signature"})]}),(0,s.jsxs)(c.l6,{value:X,onValueChange:B,children:[(0,s.jsx)(c.bq,{className:"w-full",children:(0,s.jsx)(c.yv,{placeholder:"S\xe9lectionnez un lieu..."})}),(0,s.jsx)(c.gC,{children:a.map(e=>(0,s.jsx)(c.eb,{value:e.id,children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{children:"\uD83D\uDCCD"}),(0,s.jsx)("span",{className:"font-semibold",children:e.name})]})},e.id))})]})]}),e.length>0&&(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-2xl",children:"✍️"}),(0,s.jsx)(i.J,{className:"text-base font-semibold",children:"Signataire employeur"})]}),(0,s.jsxs)(c.l6,{value:Z,onValueChange:$,children:[(0,s.jsx)(c.bq,{className:"w-full",children:(0,s.jsx)(c.yv,{placeholder:"S\xe9lectionnez un signataire..."})}),(0,s.jsx)(c.gC,{children:e.map(e=>(0,s.jsx)(c.eb,{value:e.id,children:(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsx)("span",{className:"font-semibold",children:e.name}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:e.position})]})},e.id))})]})]})]})})}):null})(),Q.length>0&&(0,s.jsx)(d.Zp,{className:"border border-blue-200 bg-blue-50/40",children:(0,s.jsxs)(d.Wu,{className:"pt-6 space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("div",{className:"p-2 rounded-full bg-blue-600/10",children:(0,s.jsx)(p.A,{className:"h-5 w-5 text-blue-600"})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"font-semibold text-blue-950",children:["Variables personnalis\xe9es d\xe9tect\xe9es (",Q.length,")"]}),(0,s.jsx)("p",{className:"text-sm text-blue-800",children:"Compl\xe9tez les champs ci-dessous pour remplacer les placeholders restants du template."})]})]}),Q.some(e=>{var a;return!(null===(a=ee[e])||void 0===a?void 0:a.trim())})&&(0,s.jsx)(w.E,{variant:"secondary",className:"text-xs bg-amber-100 text-amber-700 border-amber-200",children:"Valeurs manquantes"})]}),(0,s.jsx)("div",{className:"grid gap-4 md:grid-cols-2",children:Q.map(e=>{var a;return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(i.J,{className:"text-xs font-semibold text-blue-900",children:"{{".concat(e,"}}")}
1),(0,s.jsx)(C.p,{value:null!==(a=ee[e])&&void 0!==a?a:"",onChange:a=>ed(e,a.target.value),placeholder:"Saisir une valeur pour ".concat(e),className:"bg-white"})]},e)})})]})}),G&&(0,s.jsx)(d.Zp,{children:(0,s.jsx)(d.Wu,{className:"pt-6",children:(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(x.A,{className:"h-5 w-5 text-purple-600"}),(0,s.jsx)(i.J,{className:"text-base font-semibold",children:"Document g\xe9n\xe9r\xe9"})]}),(0,s.jsx)(r.$,{variant:T?"default":"outline",size:"sm",onClick:()=>{T&&J(q),U(!T)},children:T?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.A,{className:"h-4 w-4 mr-2"}),"Sauvegarder les modifications"]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v.A,{className:"h-4 w-4 mr-2"}),"Modifier le contenu"]})})]}),(0,s.jsxs)(j.tU,{defaultValue:"preview",className:"w-full",children:[(0,s.jsxs)(j.j7,{className:"grid w-full grid-cols-2",children:[(0,s.jsxs)(j.Xi,{value:"preview",children:[(0,s.jsx)(g.A,{className:"h-4 w-4 mr-2"}),"Aper\xe7u"]}),(0,s.jsxs)(j.Xi,{value:"edit",children:[(0,s.jsx)(v.A,{className:"h-4 w-4 mr-2"}),"\xc9diter"]})]}),(0,s.jsxs)(j.av,{value:"preview",className:"space-y-3",children:[(0,s.jsx)("div",{className:"border rounded-lg p-6 bg-white max-h-[500px] overflow-y-auto",children:(0,s.jsx)("div",{className:"prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:(e=>{let a=e.split("\x3c!-- PAGE_BREAK --\x3e");return a.map((e,l)=>{let s=e.split("\n").map(e=>e.trim()).filter(e=>e.length>0).join("<br/>");return s=s.replace(/:\s*([^<\n]+)/g,": <strong>$1</strong>"),'\n        <div class="page mb-8 pb-8 border-b-2 border-gray-300">\n          <div class="flex justify-between items-center mb-4 text-xs text-gray-500">\n            <span>Page '.concat(l+1," / ").concat(a.length,"</span>\n            <span>").concat(new Date().toLocaleDateString((0,t.eM)()),'</span>\n          </div>\n          <div class="content leading-relaxed text-sm">\n            ').concat(s,"\n          </div>\n        </div>\n      ")}).join("")})(T?q:G)}})}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground",children:["\uD83D\uDCA1 Les valeurs en ",(0,s.jsx)("strong",{children:"gras"})," sont les donn\xe9es remplies automatiquement"]})]}),(0,s.jsxs)(j.av,{value:"edit",className:"space-y-3",children:[(0,s.jsx)(S.T,{value:q,onChange:e=>R(e.target.value),className:"font-mono text-xs h-96 resize-none",placeholder:"Modifiez le contenu ici..."}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"✏️ Vous pouvez modifier, ajouter des notes ou personnaliser le contenu avant de g\xe9n\xe9rer le PDF"})]})]})]})})})]}),(0,s.jsxs)(o.Es,{className:"flex-shrink-0",children:[(0,s.jsx)(r.$,{variant:"outline",onClick:()=>l(!1),disabled:P,children:"Annuler"}),(0,s.jsx)(r.$,{onClick:em,disabled:P||!I||Q.some(e=>{var a;return!(null===(a=ee[e])||void 0===a?void 0:a.trim())}),className:"bg-gradient-to-r from-blue-600 to-cyan-600 hover:from-blue-700 hover:to-cyan-700",children:P?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(_.A,{className:"h-4 w-4 mr-2 animate-spin"}),"G\xe9n\xe9ration..."]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(m.A,{className:"h-4 w-4 mr-2"}),"G\xe9n\xe9rer le PDF"]})})]})]})})}}}]);

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