PageSourceSearch

https://www.deskvibe.ai/_next/static/chunks/27265.eca96f36f6398b52.js

js deskvibe.ai collected 2026-10-05 14:32:12 UTC 16,605 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[27265],{9199:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(90425).A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},22164:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(90425).A)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},27265:(e,t,a)=>{a.r(t),a.d(t,{BiometricConsentDialog:()=>k});var i=a(95155),r=a(12115),s=a(439),n=a(12651),o=a(41585),l=a(48368),c=a(22164),d=a(58515),m=a(36201),x=a(86542),p=a(9199),u=a(6296),h=a(92289),f=a(56204),v=a(38023),b=a(9339);let g=(0,b.createServerReference)("005f57ba5d0dfd5ca462ab7bf2469af58b809119b9",b.callServer,void 0,b.findSourceMapURL,"requestBiometricConsentOtpAction"),w=(0,b.createServerReference)("4077bc29ea199227844d4aa56d4d2321f3b221aa6d",b.callServer,void 0,b.findSourceMapURL,"requestBiometricConsentOtpWhatsAppAction"),j=(0,b.createServerReference)("0019c7dae78f3f4a482b7b486d68fd74685662202f",b.callServer,void 0,b.findSourceMapURL,"withdrawBiometricConsentAction"),y=(0,b.createServerReference)("4071f02b0b1fef6354a951a761878bb6bc8eff845a",b.callServer,void 0,b.findSourceMapURL,"giveBiometricConsentWithOtpAction");var N=a(13896),A=a(37208),C=a(66609);function k({hasConsent:e,onClose:t,onSaved:a}){let b=(0,N.MW)(),k=(0,N.SC)(),z=(0,N.kc)(),[S,P]=(0,r.useState)(!1),[R,T]=(0,r.useState)(e),[I,L]=(0,r.useState)(!1),O=(0,r.useRef)(null),W=(0,r.useRef)(!1),E=(0,r.useRef)(!1),[M,B]=(0,r.useState)(!1),[q,F]=(0,r.useState)(!1),[D,U]=(0,r.useState)("email"),[V,G]=(0,r.useState)(null),[H,J]=(0,r.useState)(""),[_,Q]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(!e){let e=setTimeout(()=>{(()=>{let e=O.current;if(!e)return;let t=e.getBoundingClientRect();if(0===t.width||0===t.height)return;let a=window.devicePixelRatio||1;e.width=Math.round(t.width*a),e.height=Math.round(t.height*a);let i=e.getContext("2d");i&&(i.setTransform(a,0,0,a,0,0),i.strokeStyle="#34d399",i.fillStyle="#34d399",i.lineWidth=2.5,i.lineCap="round",i.lineJoin="round")})()},50);return()=>clearTimeout(e)}},[e]);let $=e=>{let t=O.current;if(!t)return{x:0,y:0};let a=t.getBoundingClientRect();return{x:e.clientX-a.left,y:e.clientY-a.top}},K=e=>{if(W.current){W.current=!1;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}},X=async()=>{Q("email");try{let e=await g();e.success?(F(!0),U("email"),G(e.email),C.toast.success("Codice OTP inviato!",{description:`Abbiamo inviato un codice a 6 cifre alla tua email (${e.email}).`})):C.toast.error("Errore invio OTP",{description:e.error})}catch(e){C.toast.error("Errore di connessione",{description:e.message||"Impossibile inviare OTP"})}finally{Q(null)}},Y=async()=>{Q("whatsapp");try{let e=await w();if(!e.success&&e.requiresPhone){Q(null);let t=await z({title:"Numero WhatsApp",description:"Inserisci il tuo numero di cellulare con prefisso internazionale per ricevere il codice OTP su WhatsApp.",placeholder:"+39 340 1234567",label:"Numero WhatsApp",confirmLabel:"Invia OTP",cancelLabel:"Annulla"});if(!t||!t.trim())return;Q("whatsapp"),e=await w({phone:t.trim()})}e.success?(F(!0),U("whatsapp"),G(e.destination),C.toast.success("Codice OTP inviato!",{description:`Abbiamo inviato un codice a 6 cifre al tuo WhatsApp (${e.destination}).`})):C.toast.error("Errore invio OTP",{description:e.error})}catch(e){C.toast.error("Errore di connessione",{description:e.message||"Impossibile inviare OTP via WhatsApp"})}finally{Q(null)}};async function Z(){if(await k({title:"Confermi la revoca del consenso?",description:"La revoca comporter\xe0 l'eliminazione immediata e irreversibile della tua firma facciale registrata. Non potrai pi\xf9 accedere o timbrare con il volto: continuerai ad accedere e timbrare con il tuo Badge QR personale, PIN o credenziali.",confirmLabel:"S\xec, revoca consenso",variant:"danger"})){P(!0);try{let e=await j();e.success?(await b({title:"Consenso Revocato",description:"Il tuo consenso biometrico \xe8 stato revocato e i dati del tuo viso sono stati eliminati definitivamente."}),a()):await b({title:"Errore",description:e.error})}catch(e){await b({title:"Errore",description:e.message||"Errore durante la revoca"})}finally{P(!1)}}}async function ee(){if(e&&!R)return void await Z();if(e)t();else{if(!R)return void await b({title:"Attenzione",description:"\xc8 necessario dichiarare di aver letto e compreso l'informativa."});if(!M)return void await b({title:"Firma mancante",description:"Apponi la tua firma grafica nel riquadro apposito prima di procedere."});if(!H||6!==H.trim().length)return void await b({title:"Codice OTP mancante",description:"Richiedi il codice OTP (via email o WhatsApp) e inserisci le 6 cifre per convali
1dare il consenso."});let e=O.current,t=e?e.toDataURL("image/png"):"";P(!0);try{let e=await y({otpCode:H.trim(),signatureSvg:t});e.success?(await b({title:"Consenso Biometrico Registrato",description:"Il tuo consenso \xe8 stato perfezionato con successo tramite firma digitale e OTP. Ora puoi procedere con la scansione del tuo volto."}),a()):await b({title:"Errore Validazione",description:e.error})}catch(e){await b({title:"Errore",description:e.message||"Errore durante il salvataggio"})}finally{P(!1)}}}return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(v.aF,{title:e?"Gestione Consenso Biometrico":"Autorizzazione Riconoscimento Facciale",onClose:t,onSubmit:ee,busy:S,submitLabel:e?R?"Chiudi":"Revoca Consenso":"Conferma e Sottoscrivi",dirty:!e||!R,children:(0,i.jsxs)("div",{className:"space-y-4 max-h-[75vh] overflow-y-auto pr-1",children:[(0,i.jsxs)("div",{className:"flex items-start gap-3 bg-emerald-500/10 border border-emerald-500/20 text-emerald-300 p-3.5 rounded-2xl",children:[(0,i.jsx)(s.A,{className:"w-5 h-5 mt-0.5 flex-shrink-0 text-emerald-400"}),(0,i.jsxs)("div",{className:"text-xs space-y-1 leading-relaxed",children:[(0,i.jsxs)("div",{className:"font-bold text-emerald-200",children:["Compliance GDPR (Art. 7, 9, 13) — ",A.x]}),(0,i.jsxs)("p",{className:"text-zinc-300 text-[11px]",children:["L'autorizzazione consente il riconoscimento facciale per l'accesso protetto alle postazioni dello studio e per la timbratura presenze al Kiosk. Il consenso \xe8 ",(0,i.jsx)("strong",{children:"100% facoltativo"}),": puoi sempre utilizzare in alternativa il tuo ",(0,i.jsx)("strong",{children:"Badge QR"})," o il ",(0,i.jsx)("strong",{children:"PIN"}),"."]})]})]}),e?(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{className:"p-4 rounded-2xl bg-zinc-900/60 border border-emerald-500/20 flex items-center justify-between",children:[(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)("div",{className:"p-2 rounded-xl bg-emerald-500/20 text-emerald-400",children:(0,i.jsx)(n.A,{className:"w-5 h-5"})}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-sm font-bold text-white",children:"Consenso Biometrico Attivo"}),(0,i.jsx)("div",{className:"text-xs text-zinc-400",children:"Firmato digitalmente e convalidato con OTP"})]})]}),(0,i.jsx)("span",{className:"text-[11px] font-mono bg-emerald-500/10 text-emerald-400 border border-emerald-500/20 px-2.5 py-1 rounded-full font-bold",children:A.x})]}),(0,i.jsxs)("div",{className:"p-3.5 rounded-xl border border-rose-500/20 bg-rose-500/5 space-y-2",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-rose-400 text-xs font-bold",children:[(0,i.jsx)(o.A,{className:"w-4 h-4"})," Revoca del Consenso"]}),(0,i.jsx)("p",{className:"text-[11px] text-zinc-400",children:"Puoi revocare il consenso in qualsiasi momento. La tua firma facciale verr\xe0 cancellata istantaneamente e potrai continuare a timbrare e accedere con Badge QR o PIN."}),(0,i.jsx)("button",{type:"button",onClick:Z,disabled:S,className:"px-4 py-2 bg-rose-500/20 hover:bg-rose-500/30 text-rose-300 border border-rose-500/30 rounded-xl text-xs font-bold transition-all disabled:opacity-50",children:S?"Revoca in corso...":"Revoca Consenso e Cancella Viso"})]})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("label",{className:"text-xs font-bold text-zinc-300 uppercase tracking-wider flex items-center gap-1.5",children:[(0,i.jsx)(l.A,{className:"w-3.5 h-3.5 text-emerald-400"})," 1. Informativa Privacy (Art. 13 GDPR)"]}),(0,i.jsxs)("button",{type:"button",onClick:()=>L(!0),className:"text-[11px] text-emerald-400 hover:text-emerald-300 font-medium inline-flex items-center gap-1 transition-colors hover:underline",children:[(0,i.jsx)("span",{children:"Consulta informativa completa"}),(0,i.jsx)(c.A,{className:"w-3 h-3"})]})]}),(0,i.jsxs)("div",{onClick:()=>T(!R),className:"flex items-start gap-3 p-3.5 rounded-2xl border border-white/10 bg-white/[0.02] hover:bg-white/[0.04] transition-all cursor-pointer select-none",children:[(0,i.jsx)("div",{className:"mt-0.5 text-primary flex-shrink-0",children:R?(0,i.jsx)(d.A,{className:"w-4 h-4 text-emerald-400 fill-emerald-500/10"}):(0,i.jsx)(m.A,{className:"w-4 h-4 text-zinc-500"})}),(0,i.jsxs)("div",{className:"space-y-1",children:[(0,i.jsxs)("div",{className:"text-xs font-bold text-white leading-snug",children:["Dichiaro di aver letto e compreso l'",(0,i.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),L(!0)},className:"text-emerald-400 hover:text-emerald-300 underline underline-offset-2 ml-1 inline-flex items-center gap-1 font-bold",children:["Informativa Biometrica (",A.x,") ",(0,i.jsx)(c.A,{className:"w-3 h-3"})]})]}),(0,i.jsx)("p",{className:"text-[11px] text-zinc-400 leading-normal",children:"Acconsento al trattamento facoltativo e revocabile dei dati b
1iometrici (vettore numerico) per l'accesso rapido al gestionale e la timbratura presenze al Kiosk dello studio."})]})]})]}),(0,i.jsxs)("div",{className:"space-y-1.5",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("label",{className:"text-xs font-bold text-zinc-300 uppercase tracking-wider flex items-center gap-1.5",children:[(0,i.jsx)(x.A,{className:"w-3.5 h-3.5 text-emerald-400"})," 2. Firma Grafica Autografa"]}),M&&(0,i.jsxs)("button",{type:"button",onClick:()=>{let e=O.current;if(!e)return;let t=e.getContext("2d");if(!t)return;let a=window.devicePixelRatio||1;t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height),t.setTransform(a,0,0,a,0,0),t.strokeStyle="#34d399",t.fillStyle="#34d399",t.lineWidth=2.5,t.lineCap="round",t.lineJoin="round",W.current=!1,E.current=!1,B(!1)},className:"text-[11px] text-zinc-400 hover:text-rose-400 flex items-center gap-1 transition-colors",children:[(0,i.jsx)(p.A,{className:"w-3 h-3"})," Cancella"]})]}),(0,i.jsxs)("div",{className:"relative border border-white/10 rounded-2xl bg-zinc-950/90 overflow-hidden shadow-inner select-none touch-none",children:[(0,i.jsx)("canvas",{ref:O,onPointerDown:e=>{let t=O.current;if(!t)return;let a=t.getContext("2d");if(!a)return;try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}W.current=!0,a.strokeStyle="#34d399",a.fillStyle="#34d399",a.lineWidth=2.5,a.lineCap="round",a.lineJoin="round";let{x:i,y:r}=$(e);a.beginPath(),a.arc(i,r,1.25,0,2*Math.PI),a.fill(),a.beginPath(),a.moveTo(i,r)},onPointerMove:e=>{if(!W.current)return;let t=O.current;if(!t)return;let a=t.getContext("2d");if(!a)return;a.strokeStyle="#34d399",a.lineWidth=2.5,a.lineCap="round",a.lineJoin="round";let{x:i,y:r}=$(e);a.lineTo(i,r),a.stroke(),E.current||(E.current=!0,B(!0))},onPointerUp:K,onPointerCancel:K,className:"w-full h-[130px] cursor-crosshair block touch-none",style:{touchAction:"none"}}),!M&&(0,i.jsxs)("div",{className:"absolute inset-0 pointer-events-none flex flex-col items-center justify-center gap-1 text-zinc-500 text-xs select-none",children:[(0,i.jsx)(x.A,{className:"w-4 h-4 text-zinc-600 animate-pulse"}),(0,i.jsx)("span",{children:"Firma qui con il mouse, penna o touch"})]}),(0,i.jsxs)("div",{className:"absolute bottom-3 left-4 right-4 pointer-events-none flex items-center justify-between border-t border-dashed border-white/10 pt-1 text-[10px] text-zinc-500 font-mono select-none",children:[(0,i.jsx)("span",{children:"✕ Firma Elettronica Semplice (FES)"}),(0,i.jsx)("span",{className:"text-[9px] text-zinc-600",children:"Tracciato crittografato SHA-256"})]})]})]}),(0,i.jsxs)("div",{className:"space-y-2.5 p-3.5 rounded-2xl bg-zinc-900/50 border border-white/10",children:[(0,i.jsxs)("label",{className:"text-xs font-bold text-zinc-300 uppercase tracking-wider flex items-center gap-1.5",children:[(0,i.jsx)(s.A,{className:"w-3.5 h-3.5 text-sky-400"})," 3. Verifica di Sicurezza OTP"]}),(0,i.jsx)("p",{className:"text-[11px] text-zinc-400",children:"Riceverai un codice a 6 cifre via WhatsApp o alla tua email registrata per confermare la tua identit\xe0."}),q?(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between text-[11px] flex-wrap gap-1",children:[(0,i.jsxs)("span",{className:"text-emerald-400 font-medium",children:["Codice inviato ","whatsapp"===D?"via WhatsApp":"via email"," a ",V]}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("button",{type:"button",onClick:"whatsapp"===D?Y:X,disabled:null!==_,className:"text-sky-400 hover:underline cursor-pointer",children:"Rinvia codice"}),(0,i.jsx)("span",{className:"text-zinc-600",children:"\xb7"}),(0,i.jsxs)("button",{type:"button",onClick:"whatsapp"===D?X:Y,disabled:null!==_,className:"text-zinc-400 hover:text-zinc-200 hover:underline cursor-pointer",children:["Invia via ","whatsapp"===D?"email":"WhatsApp"]})]})]}),(0,i.jsx)("input",{type:"text",maxLength:6,placeholder:"123456",value:H,onChange:e=>J(e.target.value.replace(/\D/g,"")),className:"w-full bg-zinc-950 border border-white/20 focus:border-emerald-500 rounded-xl py-2.5 px-4 text-center font-mono text-xl tracking-[0.4em] text-white focus:outline-none transition-all"})]}):(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2 pt-1",children:[(0,i.jsxs)("button",{type:"button",onClick:X,disabled:null!==_,className:"w-full py-2.5 px-3 bg-white/10 hover:bg-white/15 text-white rounded-xl text-xs font-bold flex items-center justify-center gap-2 transition-all disabled:opacity-50 cursor-pointer",children:["email"===_?(0,i.jsx)(u.A,{className:"w-4 h-4 animate-spin"}):(0,i.jsx)(h.A,{className:"w-4 h-4 text-sky-400"}),(0,i.jsx)("span",{children:"Invia via email"})]}),(0,i.jsxs)("button",{type:"button",onClick:Y,disabled:null!==_,className:"w-full py-2.5 px-3 bg-emerald-500/15 hover:bg-emerald-500/25 text-emerald-400 border border-emerald-500/30 rounded-xl text-xs font-bold flex items-center justify-center gap-2 transition-all disabled:opacity-50 cursor-pointer",children:["whatsapp"===_?(0,i.jsx)(u.A,{className:"w-4 h-4 animate-spin"}):(0,i.jsx)(f.A,{className:"w-4 h-4 text-emerald-400"}),(0,i.jsx)("span",{children:"Invia via WhatsApp"})]})]})]})]})]})}),I&&(0,i.jsx)(v.aF,{title:`Informativa Trattamento Dati Biometrici (${A.x})`,onClose:()=>L(!1),onSubmit:()=>{T(!0),L(!1)},busy:!1,submitLabel:"Ho Letto e Preso Visione",hideSubmit:!1,children:(0,i.jsxs)("div",{className:"space-y-4 max-h-[65vh] overflow-y-auto pr-1 select-text",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2.5 p-3 bg-emerald-500/10 border border-emerald-500/20 text-emerald-300 rounded-xl text-xs",children:[(0,i.jsx)(l.A,{className:"w-4 h-4 flex-shrink-0 text-emerald-400"}),(0,i.jsx)("span",{children:"Informativa resa ai sensi dell'Art. 13 del Regolamento UE 2016/679 (GDPR)."})]}),(0,i.jsx)("div",{className:"bg-zinc-950 p-4 rounded-xl border border-white/10 text-[11px] text-zinc-300 font-mono leading-relaxed whitespace-pre-wrap",children:A.I})]})})]})}},36201:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(90425).A)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]])},58515:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(90425).A)("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acy
1p4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},86542:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(90425).A)("pen-tool",[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]])}}]);

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.