PageSourceSearch

https://upclinic-aa025.web.app/static/js/625.3c4198ff.chunk.js

js upclinic-aa025.web.app collected 2026-10-03 12:41:47 UTC 20,001 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkupclinic_frontend=self.webpackChunkupclinic_frontend||[]).push([[625,6521],{625:(e,t,i)=>{i.r(t),i.d(t,{CriticalFindingsAlert:()=>D,default:()=>F});var o=i(9950),a=i(98785),r=i(65429),n=i(93230),c=i(18216),s=i(25333),d=i(92743),l=i(16491),u=i(25277),h=i(96583),p=i(40033),I=i(82053),A=i(28170),m=i(249),g=i(26050),y=i(83563),v=i(79739),f=i(95699),N=i(65471),C=i(44414);const w=(0,N.A)((0,C.jsx)("path",{d:"M18 16v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1zm-5 0h-2v-2h2zm0-4h-2V8h2zm-1 10c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2"}),"NotificationImportant");var T=i(31113),b=i(86835),E=i(11227),O=i(80028),x=i(92803),R=i(28429);const D=()=>{const{currentUser:e}=(0,x.Z)(),t=(0,R.Zp)(),[i,N]=(0,o.useState)([]),[D,F]=(0,o.useState)(null),[j,L]=(0,o.useState)(!1),[S,U]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(null===e||void 0===e||!e.clinicId)return;const t=async()=>{try{const t=await O.H.getUnacknowledgedFindings(e.clinicId);t.length>0&&(N(t),F(t[0]),L(!0))}catch(t){console.error("Erro ao carregar achados cr\xedticos:",t)}};t();const i=setInterval(t,3e4);return()=>clearInterval(i)},[null===e||void 0===e?void 0:e.clinicId]);const P=()=>{L(!1)},k=()=>{U(!0)},z=e=>{switch(e){case"emergency":case"critical":return"error";case"high":return"warning";default:return"info"}},H=e=>{switch(e){case"emergency":case"critical":return(0,C.jsx)(f.A,{});default:return(0,C.jsx)(w,{})}};return D?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(a.A,{open:j,anchorOrigin:{vertical:"top",horizontal:"right"},onClose:P,autoHideDuration:1e4,children:(0,C.jsxs)(r.A,{severity:z(D.severity),icon:H(D.severity),action:(0,C.jsxs)(n.A,{direction:"row",spacing:1,children:[(0,C.jsx)(c.A,{size:"small",onClick:k,startIcon:(0,C.jsx)(T.A,{}),children:"Ver Detalhes"}),(0,C.jsx)(s.A,{size:"small",onClick:P,children:(0,C.jsx)(b.A,{})})]}),sx:{minWidth:400},children:[(0,C.jsx)(d.A,{children:D.title}),D.description,i.length>1&&(0,C.jsx)(l.A,{sx:{mt:1},children:(0,C.jsx)(u.A,{label:"+".concat(i.length-1," mais"),size:"small",onClick:k,sx:{cursor:"pointer"}})})]})}),(0,C.jsxs)(h.A,{open:S,onClose:()=>U(!1),maxWidth:"md",fullWidth:!0,children:[(0,C.jsx)(p.A,{children:(0,C.jsxs)(n.A,{direction:"row",alignItems:"center",spacing:2,children:[H(D.severity),(0,C.jsx)(I.A,{variant:"h6",children:"Achados Cr\xedticos"}),(0,C.jsx)(u.A,{label:i.length,color:z(D.severity),size:"small"})]})}),(0,C.jsx)(A.A,{children:(0,C.jsx)(m.A,{children:i.map(o=>(0,C.jsxs)(g.Ay,{sx:{border:1,borderColor:"divider",borderRadius:2,mb:1,bgcolor:"error"===z(o.severity)?"error.light":"warning"===z(o.severity)?"warning.light":"background.paper"},children:[(0,C.jsx)(y.A,{primary:(0,C.jsxs)(n.A,{direction:"row",alignItems:"center",spacing:1,children:[(0,C.jsx)(I.A,{variant:"subtitle1",fontWeight:"bold",children:o.title}),(0,C.jsx)(u.A,{label:o.severity.toUpperCase(),size:"small",color:z(o.severity)})]}),secondary:(0,C.jsxs)(l.A,{sx:{mt:1},children:[(0,C.jsx)(I.A,{variant:"body2",sx:{mb:1},children:o.description}),o.recommendations.length>0&&(0,C.jsxs)(l.A,{children:[(0,C.jsx)(I.A,{variant:"caption",fontWeight:"bold",sx:{mb:.5,display:"block"},children:"Recomenda\xe7\xf5es:"}),o.recommendations.map((e,t)=>(0,C.jsxs)(I.A,{variant:"caption",component:"div",children:["\u2022 ",e]},t))]}),(0,C.jsxs)(n.A,{direction:"row",spacing:1,sx:{mt:1},children:[(0,C.jsx)(u.A,{label:"Paciente: ".concat(o.patientId.slice(0,8),"..."),size:"small",variant:"outlined"}),(0,C.jsx)(u.A,{label:new Date(o.detectedAt).toLocaleDateString("pt-BR"),size:"small",variant:"outlined"})]})]})}),(0,C.jsxs)(n.A,{direction:"column",spacing:1,children:[(0,C.jsx)(c.A,{size:"small",variant:"outlined",startIcon:(0,C.jsx)(T.A,{}),onClick:()=>(e=>{t("/patients/".concat(e.patientId,"/evolutions/").concat(e.evolutionId)),U(!1),L(!1)})(o),children:"Ver Evolu\xe7\xe3o"}),(0,C.jsx)(c.A,{size:"small",variant:"contained",color:"success",startIcon:(0,C.jsx)(E.A,{}),onClick:()=>(async t=>{try{null!==e&&void 0!==e&&e.uid&&(await O.H.acknowledgeFinding(t,e.uid),N(e=>e.filter(e=>e.id!==t)),i.length>0?F(i[1]||null):L(!1))}
1catch(o){console.error("Erro ao reconhecer achado:",o)}})(o.id),children:"Reconhecer"})]})]},o.id))})}),(0,C.jsx)(v.A,{children:(0,C.jsx)(c.A,{onClick:()=>U(!1),children:"Fechar"})})]})]}):null},F=D},56521:(e,t,i)=>{i.d(t,{pushNotificationService:()=>n});var o=i(89379),a=i(55975),r=i(66220);const n=new class{constructor(){this.COLLECTION="push_notifications",this.PREFERENCES_COLLECTION="notification_preferences",this.listeners=new Map}async createNotification(e){try{var t;console.log("\ud83d\udd14 [PUSH-NOTIFICATION] Criando notifica\xe7\xe3o:",e.title);const s=(null===(t=e.data)||void 0===t?void 0:t.soundType)||("appointment"===e.type?"appointment":"lab_result"===e.type?"info":"payment"===e.type?"success":"default"),d=(0,o.A)((0,o.A)({},e),{},{read:!1,createdAt:r.Timestamp.now(),expiresAt:e.expiresAt?r.Timestamp.fromDate(e.expiresAt):null,data:(0,o.A)((0,o.A)({},e.data),{},{soundType:s})}),l=await(0,r.addDoc)((0,r.collection)(a.db,this.COLLECTION),d);if("serviceWorker"in navigator&&"Notification"in window&&"granted"===Notification.permission)try{var n;const t=await navigator.serviceWorker.ready;await t.showNotification(e.title,{body:e.message,icon:"/favicon.ico",badge:"/favicon.ico",tag:"upclinic-".concat(e.type),data:(0,o.A)((0,o.A)({},e.data||{}),{},{soundType:s,url:(null===(n=e.data)||void 0===n?void 0:n.actionUrl)||"/dashboard",type:e.type}),requireInteraction:"urgent"===e.priority,silent:!1,vibrate:"urgent"===e.priority?[200,100,200]:[100]}),"undefined"!==typeof window&&Promise.resolve().then(i.bind(i,31352)).then(e=>{let{soundNotificationService:t}=e;t.playSound(s).catch(()=>{})})}catch(c){console.warn("\u26a0\ufe0f [PUSH-NOTIFICATION] Erro ao exibir notifica\xe7\xe3o push:",c)}return console.log("\u2705 [PUSH-NOTIFICATION] Notifica\xe7\xe3o criada:",l.id),l.id}catch(s){throw console.error("\u274c [PUSH-NOTIFICATION] Erro ao criar notifica\xe7\xe3o:",s),s}}async notifyLabResultReady(e,t,i){try{await this.createNotification({title:"\ud83d\udd2c Resultado de Exame Dispon\xedvel",message:"Novo resultado de exame laboratorial est\xe1 dispon\xedvel para an\xe1lise.",type:"lab_result",priority:"high",targetRole:"doctor",data:{labResultId:e,patientId:t,actionUrl:"/laboratory?tab=results&resultId=".concat(e)},clinicId:i}),await this.createNotification({title:"\ud83d\udcca Resultado Processado",message:"Resultado de exame foi processado e est\xe1 pronto para revis\xe3o m\xe9dica.",type:"lab_result",priority:"normal",targetRole:"technician",data:{labResultId:e,patientId:t,actionUrl:"/laboratory?tab=results&resultId=".concat(e)},clinicId:i})}catch(o){console.error("\u274c [PUSH-NOTIFICATION] Erro ao notificar resultado:",o)}}async notifyLabOrderCreated(e,t,i){try{await this.createNotification({title:"\ud83d\udccb Novo Pedido de Exame",message:"Um novo pedido de exame laboratorial foi criado e precisa ser processado.",type:"lab_order",priority:"normal",targetRole:"technician",data:{labOrderId:e,patientId:t,actionUrl:"/laboratory?tab=orders&orderId=".concat(e)},clinicId:i})}catch(o){console.error("\u274c [PUSH-NOTIFICATION] Erro ao notificar pedido:",o)}}async notifyCriticalResult(e,t,i){try{await this.createNotification({title:"\ud83d\udea8 RESULTADO CR\xcdTICO",message:"ATEN\xc7\xc3O: Resultado de exame com valores cr\xedticos detectados!",type:"lab_result",priority:"urgent",targetRole:"doctor",data:{labResultId:e,patientId:t,actionUrl:"/laboratory?tab=results&resultId=".concat(e),urgent:!0},clinicId:i,expiresAt:new Date(Date.now()+72e5)})}catch(o){console.error("\u274c [PUSH-NOTIFICATION] Erro ao notificar resultado cr\xedtico:",o)}}async notifyLabOrderStatusChange(e,t,i){try{const o={collected:"Coleta realizada com sucesso",processing:"Exame em processamento",completed:"Exame conclu\xeddo",cancelled:"Exame cancelado"};await this.createNotification({title:"\ud83d\udd04 Status do Exame Atualizado",message:o[t]||"Status alterado para: ".concat(t),type:"lab_order",priority:"normal",targetRole:"all",data:{labOrderId:e,status:t,actionUrl:"/laboratory?tab=orders&orderId=".concat(e)},clinicId:i})}
1catch(o){console.error("\u274c [PUSH-NOTIFICATION] Erro ao notificar mudan\xe7a de status:",o)}}async getNotifications(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:50;try{const n=(0,r.query)((0,r.collection)(a.db,this.COLLECTION),(0,r.where)("clinicId","==",t),(0,r.where)("targetUserId","==",e),(0,r.orderBy)("createdAt","desc"),(0,r.limit)(i));return(await(0,r.getDocs)(n)).docs.map(e=>{var t;return(0,o.A)((0,o.A)({id:e.id},e.data()),{},{createdAt:e.data().createdAt.toDate(),expiresAt:null===(t=e.data().expiresAt)||void 0===t?void 0:t.toDate()})})}catch(n){return console.error("\u274c [PUSH-NOTIFICATION] Erro ao buscar notifica\xe7\xf5es:",n),[]}}async getUnreadCount(e,t){try{const i=(0,r.query)((0,r.collection)(a.db,this.COLLECTION),(0,r.where)("clinicId","==",t),(0,r.where)("targetUserId","==",e),(0,r.where)("read","==",!1));return(await(0,r.getDocs)(i)).size}catch(i){return console.error("\u274c [PUSH-NOTIFICATION] Erro ao contar notifica\xe7\xf5es n\xe3o lidas:",i),0}}async markAsRead(e){try{await(0,r.updateDoc)((0,r.doc)(a.db,this.COLLECTION,e),{read:!0})}catch(t){console.error("\u274c [PUSH-NOTIFICATION] Erro ao marcar como lida:",t)}}async markAllAsRead(e,t){try{const i=await this.getNotifications(e,t,100),o=i.filter(e=>!e.read).map(e=>(0,r.updateDoc)((0,r.doc)(a.db,this.COLLECTION,e.id),{read:!0}));await Promise.all(o)}catch(i){console.error("\u274c [PUSH-NOTIFICATION] Erro ao marcar todas como lidas:",i)}}subscribeToNotifications(e,t,i){const n=(0,r.query)((0,r.collection)(a.db,this.COLLECTION),(0,r.where)("clinicId","==",t),(0,r.where)("targetUserId","==",e),(0,r.orderBy)("createdAt","desc"),(0,r.limit)(20)),c=(0,r.aQ)(n,e=>{const t=e.docs.map(e=>{var t;return(0,o.A)((0,o.A)({id:e.id},e.data()),{},{createdAt:e.data().createdAt.toDate(),expiresAt:null===(t=e.data().expiresAt)||void 0===t?void 0:t.toDate()})});i(t)},e=>{"permission-denied"!==(null===e||void 0===e?void 0:e.code)&&console.warn("\u26a0\ufe0f [PUSH-NOTIFICATION] subscribeToNotifications:",e),i([])});return this.listeners.set("".concat(e,"-").concat(t),c),c}unsubscribeFromNotifications(e,t){const i="".concat(e,"-").concat(t),o=this.listeners.get(i);o&&(o(),this.listeners.delete(i))}async getNotificationPreferences(e,t){try{const i=(0,r.query)((0,r.collection)(a.db,this.PREFERENCES_COLLECTION),(0,r.where)("userId","==",e),(0,r.where)("clinicId","==",t)),o=await(0,r.getDocs)(i);return o.empty?null:o.docs[0].data()}catch(i){return console.error("\u274c [PUSH-NOTIFICATION] Erro ao buscar prefer\xeancias:",i),null}}async updateNotificationPreferences(e){try{const t=(0,r.query)((0,r.collection)(a.db,this.PREFERENCES_COLLECTION),(0,r.where)("userId","==",e.userId),(0,r.where)("clinicId","==",e.clinicId)),i=await(0,r.getDocs)(t);i.empty?await(0,r.addDoc)((0,r.collection)(a.db,this.PREFERENCES_COLLECTION),e):await(0,r.updateDoc)(i.docs[0].ref,e)}catch(t){console.error("\u274c [PUSH-NOTIFICATION] Erro ao atualizar prefer\xeancias:",t)}}async notifySystemUpdate(e,t){try{await this.createNotification({title:"\ud83d\udd27 Atualiza\xe7\xe3o do Sistema",message:e,type:"system",priority:"normal",targetRole:"all",clinicId:t})}catch(i){console.error("\u274c [PUSH-NOTIFICATION] Erro ao notificar atualiza\xe7\xe3o:",i)}}async cleanupExpiredNotifications(){try{const e=r.Timestamp.now(),t=(0,r.query)((0,r.collection)(a.db,this.COLLECTION),(0,r.where)("expiresAt","<=",e)),i=(await(0,r.getDocs)(t)).docs.map(e=>(0,r.updateDoc)(e.ref,{read:!0}));await Promise.all(i),console.log("\ud83e\uddf9 [PUSH-NOTIFICATION] Notifica\xe7\xf5es expiradas limpas")}catch(e){console.error("\u274c [PUSH-NOTIFICATION] Erro na limpeza:",e)}}}},80028:(e,t,i)=>{i.d(t,{H:()=>c});var o=i(89379),a=i(66220),r=i(55975),n=i(56521);const c=new class{constructor(){this.findingsCollection="critical_findings",this.rulesCollection="notification_rules"}async checkAndNotify(e,t,i,o,a){try{console.log("\ud83d\udd14 [CRITICAL-NOTIFIER] Verificando an\xe1lise:",t);const r=[],n=await this.getActiveRules(a);for(const c of n){if(!c.enabled)continue;if(this.evaluateConditions(c.conditions,e)){const n=this.determineSeverity(e,c),s=await this.createCriticalFinding({patientId:i,evolutionId:o,clinicId:a,findingType:t,severity:n,title:this.generateTitle(e,n),description:this.generateDescription(e,n),relatedData:e,recommendations:this.generateRecommendations(e,n),actionRequired:"critical"===n||"emergency"===n});r.push(s),await this.sendNotifications(s,c),console.log("\ud83d\udea8 [CRITICAL-NOTIFIER] Achado cr\xedtico detectado:",s.severity)}}return r}catch(r){throw console.error("\u274c [CRITICAL-NOTIFIER] Erro ao verificar an\xe1lise:",r),r}}async createCriticalFinding(e){try{const t=(0,o.A)((0,o.A)({},e),{},{detectedAt:a.Timestamp.now(),notifiedAt:null,acknowledgedAt:null}),i=await(0,a.addDoc)((0,a.collection)(r.db,this.findingsCollection),t);return(0,o.A)((0,o.A)({id:i.id},e),{},{detectedAt:new Date,notifiedAt:void 0,acknowledgedAt:void 0})}catch(t){throw console.error("\u274c [CRITICAL-NOTIFIER] Erro ao criar achado cr\xedtico:",t),t}}async getActiveRules(e){try{const t=(0,a.query)((0,a.collection)(r.db,this.rulesCollection),(0,a.where)("clinicId","==",e),(0,a.where)("enabled","==",!0)),i=await(0,a.getDocs)(t),n=[];
1return i.forEach(e=>{var t,i;const a=e.data();n.push((0,o.A)((0,o.A)({id:e.id},a),{},{createdAt:(null===(t=a.createdAt)||void 0===t?void 0:t.toDate())||new Date,updatedAt:(null===(i=a.updatedAt)||void 0===i?void 0:i.toDate())||new Date}))}),n}catch(t){return console.error("\u274c [CRITICAL-NOTIFIER] Erro ao buscar regras:",t),[]}}async createNotificationRule(e){try{const t=(0,o.A)((0,o.A)({},e),{},{createdAt:a.Timestamp.now(),updatedAt:a.Timestamp.now()}),i=await(0,a.addDoc)((0,a.collection)(r.db,this.rulesCollection),t);return console.log("\u2705 [CRITICAL-NOTIFIER] Regra criada:",i.id),i.id}catch(t){throw console.error("\u274c [CRITICAL-NOTIFIER] Erro ao criar regra:",t),t}}evaluateConditions(e,t){if(0===e.length)return!1;let i=!0,o="AND";for(const a of e){const e=this.getNestedValue(t,a.field),r=this.evaluateCondition(a,e);a.logic&&(o=a.logic),i="AND"===o?i&&r:i||r}return i}evaluateCondition(e,t){switch(e.operator){case">":return Number(t)>Number(e.value);case"<":return Number(t)<Number(e.value);case">=":return Number(t)>=Number(e.value);case"<=":return Number(t)<=Number(e.value);case"==":return t==e.value;case"!=":return t!=e.value;default:return!1}}getNestedValue(e,t){return t.split(".").reduce((e,t)=>null===e||void 0===e?void 0:e[t],e)}determineSeverity(e,t){return e.confidence>.9&&"stat"===e.urgency?"emergency":e.confidence>.8||"critical"===e.riskLevel?"critical":e.confidence>.7||"high"===e.riskLevel?"high":"moderate"}generateTitle(e,t){return"".concat({emergency:"\ud83d\udea8",critical:"\u26a0\ufe0f",high:"\ud83d\udce2",moderate:"\u2139\ufe0f"}[t]," Achado ").concat(t.toUpperCase()," Detectado")}generateDescription(e,t){if(e.findings){const t=e.findings.filter(e=>"severe"===e.severity||"critical"===e.severity);if(t.length>0)return"Detectados ".concat(t.length," achados cr\xedticos na an\xe1lise. Confian\xe7a: ").concat((100*e.confidence).toFixed(0),"%")}if(e.changePercent){const t=e.changePercent>0?"aumento":"redu\xe7\xe3o";return"Mudan\xe7a significativa detectada: ".concat(t," de ").concat(Math.abs(e.changePercent).toFixed(1),"%")}return"Achado ".concat(t," detectado na an\xe1lise com confian\xe7a de ").concat((100*e.confidence).toFixed(0),"%")}generateRecommendations(e,t){const i=[];return"emergency"===t||"critical"===t?(i.push("\ud83d\udea8 Avalia\xe7\xe3o m\xe9dica IMEDIATA recomendada"),i.push("\ud83d\udcde Considerar contato urgente com paciente")):"high"===t?(i.push("\u26a0\ufe0f Revis\xe3o m\xe9dica recomendada em 24h"),i.push("\ud83d\udccb Monitoramento cont\xednuo necess\xe1rio")):i.push("\ud83d\udcc5 Agendar reavalia\xe7\xe3o na pr\xf3xima consulta"),e.suggestedActions&&i.push(...e.suggestedActions),i}async sendNotifications(e,t){try{e.title,e.description;for(const o of t.channels)if(o.enabled)try{switch(o.type){case"push":await this.sendPushNotification(e,t);break;case"email":await this.sendEmailNotification(e,t);break;case"sms":await this.sendSMSNotification(e,t);break;case"whatsapp":await this.sendWhatsAppNotification(e,t)}}catch(i){console.error("\u274c [CRITICAL-NOTIFIER] Erro ao enviar ".concat(o.type,":"),i)}await(0,a.updateDoc)((0,a.doc)(r.db,this.findingsCollection,e.id),{notifiedAt:a.Timestamp.now()}),e.notifiedAt=new Date}catch(i){console.error("\u274c [CRITICAL-NOTIFIER] Erro ao enviar notifica\xe7\xf5es:",i)}}async sendPushNotification(e,t){for(const i of t.recipients)i.userId&&await n.pushNotificationService.createNotification({targetUserId:i.userId,title:e.title,message:e.description,type:"system",priority:"urgent"===t.priority?"urgent":"high",data:{findingId:e.id,patientId:e.patientId,evolutionId:e.evolutionId,severity:e.severity,actionUrl:"/patients/".concat(e.patientId,"/evolutions/").concat(e.evolutionId)},clinicId:e.clinicId,expiresAt:new Date(Date.now()+6048e5)})}async sendEmailNotification(e,t){console.log("\ud83d\udce7 [CRITICAL-NOTIFIER] Email enviado para:",t.recipients.map(e=>e.email).join(", "))}async sendSMSNotification(e,t){console.log("\ud83d\udcf1 [CRITICAL-NOTIFIER] SMS enviado para:",t.recipients.map(e=>e.phone).join(", "))}async sendWhatsAppNotification(e,t){console.log("\ud83d\udcac [CRITICAL-NOTIFIER] WhatsApp envi
1ado para:",t.recipients.map(e=>e.phone).join(", "))}async getUnacknowledgedFindings(e,t){try{let i=(0,a.query)((0,a.collection)(r.db,this.findingsCollection),(0,a.where)("clinicId","==",e),(0,a.where)("acknowledgedAt","==",null));t&&(i=(0,a.query)(i,(0,a.where)("patientId","==",t)));const n=await(0,a.getDocs)(i),c=[];return n.forEach(e=>{var t,i,a;const r=e.data();c.push((0,o.A)((0,o.A)({id:e.id},r),{},{detectedAt:(null===(t=r.detectedAt)||void 0===t?void 0:t.toDate())||new Date,notifiedAt:null===(i=r.notifiedAt)||void 0===i?void 0:i.toDate(),acknowledgedAt:null===(a=r.acknowledgedAt)||void 0===a?void 0:a.toDate()}))}),c.sort((e,t)=>{const i={emergency:4,critical:3,high:2,moderate:1},o=(i[t.severity]||0)-(i[e.severity]||0);return 0!==o?o:t.detectedAt.getTime()-e.detectedAt.getTime()})}catch(n){var i;return"permission-denied"===(null===n||void 0===n?void 0:n.code)||null!==n&&void 0!==n&&null!==(i=n.message)&&void 0!==i&&i.includes("permission")||console.error("\u274c [CRITICAL-NOTIFIER] Erro ao buscar achados:",n),[]}}async acknowledgeFinding(e,t){try{await(0,a.updateDoc)((0,a.doc)(r.db,this.findingsCollection,e),{acknowledgedAt:a.Timestamp.now(),acknowledgedBy:t}),console.log("\u2705 [CRITICAL-NOTIFIER] Achado reconhecido:",e)}catch(i){throw console.error("\u274c [CRITICAL-NOTIFIER] Erro ao reconhecer achado:",i),i}}}},86835:(e,t,i)=>{i.d(t,{A:()=>r});var o=i(65471),a=i(44414);const r=(0,o.A)((0,a.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close")},92743:(e,t,i)=>{i.d(t,{A:()=>g});var o=i(58168),a=i(98587),r=i(9950),n=i(72004),c=i(88465),s=i(59254),d=i(18463),l=i(82053),u=i(1763),h=i(423);function p(e){return(0,h.Ay)("MuiAlertTitle",e)}(0,u.A)("MuiAlertTitle",["root"]);var I=i(44414);const A=["className"],m=(0,s.Ay)(l.A,{name:"MuiAlertTitle",slot:"Root",overridesResolver:(e,t)=>t.root})(e=>{let{theme:t}=e;return{fontWeight:t.typography.fontWeightMedium,marginTop:-2}}),g=r.forwardRef(function(e,t){const i=(0,d.b)({props:e,name:"MuiAlertTitle"}),{className:r}=i,s=(0,a.A)(i,A),l=i,u=(e=>{const{classes:t}=e;return(0,c.A)({root:["root"]},p,t)})(l);return(0,I.jsx)(m,(0,o.A)({gutterBottom:!0,component:"div",ownerState:l,ref:t,className:(0,n.A)(u.root,r)},s))})},95699:(e,t,i)=>{i.d(t,{A:()=>r});var o=i(65471),a=i(44414);const r=(0,o.A)((0,a.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning")}}]);

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.