PageSourceSearch

https://prijavi.org/_next/static/chunks/app/(soc)/page-62a2d468343b1e61.js

js prijavi.org collected 2026-10-02 02:04:49 UTC 67,263 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[271],{471:function(e,t,r){Promise.resolve().then(r.bind(r,7334)),Promise.resolve().then(r.bind(r,2972)),Promise.resolve().then(r.bind(r,9111))},6988:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var a=r(7573),s=r(7653),n=r(5664),l=r(743);function i(){let e=(0,n.QN)(),{effectsOn:t}=(0,l.I)(),r=(0,s.useMemo)(()=>{if(!e)return null;let{total:r,openShareModal:s}=e;return(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-lg border px-3 py-2 ".concat(t?"border-white/10 bg-black/25":"border-zinc-300 bg-zinc-50"),children:[(0,a.jsxs)("p",{className:"text-[11px] ".concat(t?"text-slate-400":"text-zinc-800"),children:["Споделувања за свест:"," ",(0,a.jsx)("span",{className:"font-mono font-semibold ".concat(t?"text-[#00f2c3]/90":"text-emerald-800"),children:null===r?"…":r})]}),(0,a.jsx)("button",{type:"button",onClick:s,className:"rounded-full border px-3 py-1 text-[10px] font-bold uppercase tracking-wider ".concat(t?"border-[#00f2c3]/35 bg-[#00f2c3]/10 text-[#00f2c3] hover:bg-[#00f2c3]/15":"soc-lite-contrast-btn border-zinc-800 bg-neutral-950 text-white hover:bg-black"),children:"Сподели"})]})},[e,t]);return e?(0,a.jsx)(a.Fragment,{children:r}):null}},7334:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return Y}});var a=r(7573),s=r(7653),n=r(1695),l=r(833);function i(e){let{color:t="#00f2c3",seed:r=1,height:n=36}=e,l=(0,s.useMemo)(()=>{let e=[],t=48;for(let a=0;a<14;a+=1){t=Math.max(8,Math.min(92,t+14*Math.sin((.13*r+.45*a)%6.28)*.22+.35*((r+7*a)%11-5)));let s=a/13*120,l=n-t/100*(n-6)-3;e.push({x:s,y:l})}return{w:120,pts:e}},[r,n]),i=(0,s.useMemo)(()=>l.pts.length?l.pts.reduce((e,t,r)=>"".concat(e).concat(0===r?"M":"L").concat(t.x.toFixed(1),",").concat(t.y.toFixed(1)),""):"",[l.pts]);return(0,a.jsx)("svg",{width:"100%",height:n,viewBox:"0 0 ".concat(l.w," ").concat(n),className:"opacity-90",preserveAspectRatio:"none",children:(0,a.jsx)("path",{d:i,fill:"none",stroke:t,strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function o(e,t){let r=Number(t||0),a=Number(e||0);return r<=0?a>0?12:0:Math.round((a-r)/r*100)}function c(e){let{title:t,titleMobile:r,value:s,subline:n,sparkColor:l,sparkSeed:o,delta:c,deltaTone:d="teal"}=e;return(0,a.jsxs)("div",{className:"soc-panel flex min-h-0 max-w-[7.25rem] shrink-0 flex-col justify-between gap-1 rounded-xl p-2 sm:max-w-[7.75rem] sm:p-2.5 lg:max-w-none lg:min-h-[118px] lg:shrink lg:gap-0 lg:p-3",children:[(0,a.jsx)("div",{className:"text-[7px] font-bold uppercase leading-tight tracking-[0.12em] text-slate-500 sm:text-[8px] sm:tracking-[0.16em] lg:text-[10px] lg:tracking-[0.2em]",children:r?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"lg:hidden",children:r}),(0,a.jsx)("span",{className:"hidden lg:inline",children:t})]}):t}),(0,a.jsxs)("div",{className:"flex items-end justify-between gap-2 lg:min-h-0",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"text-base font-semibold tabular-nums text-slate-50 drop-shadow-[0_0_14px_rgba(0,242,195,0.12)] sm:text-lg lg:text-2xl",children:s}),n?(0,a.jsx)("div",{className:"mt-0.5 hidden text-[8px] text-slate-500 sm:text-[9px] lg:mt-1 lg:block lg:text-[11px]",children:n}):null,"number"==typeof c?(0,a.jsxs)("div",{className:"mt-0.5 text-[8px] font-semibold sm:text-[9px] lg:mt-1 lg:text-xs ".concat("red"===d?"text-[#ff4b5c]":"orange"===d?"text-[#ff9f43]":"text-[#00f2c3]"),children:[c>0?"+".concat(c,"%"):"".concat(c,"%")," од вчера"]}):null]}),(0,a.jsx)("div",{className:"hidden w-[42%] min-w-[72px] opacity-95 lg:block",children:(0,a.jsx)(i,{color:l,seed:o})})]})]})}function d(e){var t,r,n;let{stats:l={},reports:i=[]}=e,d=(0,s.useMemo)(()=>{var e,t;return{totalAll:Number(null!==(t=null!==(e=l.totalReportsAll)&&void 0!==e?e:i.length)&&void 0!==t?t:0)}},[l.totalReportsAll,i.length]),x=Number(l.totalReportsToday||0),u=Number(l.totalReportsYesterday||0),p=Number(null!==(t=l.verifiedThreats)&&void 0!==t?t:Math.floor(.68*d.totalAll)),m=Number(null!==(r=l.activeThreatsHigh)&&void 0!==r?r:Math.floor(.15*d.totalAll)),h=Number(null!==(n=l.resolvedCases)&&void 0!==n?n:Math.max(0,d.totalAll-m)),f=Number(l.onlineReporters||0);return(0,a.jsxs)("div",{className:"mx-auto flex max-w-full gap-2 overflow-x-auto pb-0.5 [-ms-overflow-style:none] [scrollbar-width:none] lg:mx-0 lg:grid lg:max-w-none lg:grid-cols-5 lg:gap-3 lg:overflow-visible lg:pb-0 [&::-webkit-scrollbar]:hidden",children:[(0,a.jsx)(c,{title:"Вкупно пријави",value:d.totalAll,sparkColor:"#00f2c3",sparkSeed:d.totalAll+3,delta:o(x,u)}),(0,a.jsx)("div",{className:"hidden lg:contents",children:(0,a.jsx)(c,{title:"Проверени закани",value:p,sparkColor:"#ff9f43",sparkSeed:p+1,delta:Math.min(18,Math.max(-8,o(p,Math.floor(.92*p)))),deltaTone:"orange"})}),(0,a.jsx)(c,{title:"Активни закани",value:m,sparkColor:"#ff4b5c",
1sparkSeed:m+5,delta:m>0?-5:0,deltaTone:"red"}),(0,a.jsx)(c,{title:"Решени случаи",value:h,sparkColor:"#2dd4bf",sparkSeed:h+2,delta:Math.min(22,Math.max(0,o(h,Math.floor(.87*h))))}),(0,a.jsx)(c,{title:"Онлајн корисници",titleMobile:"Онлајн:",value:f,subline:"во последните активности",sparkColor:"#5eead4",sparkSeed:f+9,delta:null})]})}var x=r(4647),u=r(1122),p=r(9608),m=r(8146);function h(e){let{reports:t=[]}=e,r=(0,s.useMemo)(()=>(0,p.b2)((t||[]).filter(e=>!e.resolved_at)).slice(0,5),[t]),n=r.length>0;return(0,a.jsxs)("div",{className:"soc-panel flex h-full min-h-[240px] flex-col rounded-xl p-2.5 max-lg:min-h-[220px] lg:min-h-[280px] lg:p-3",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2 lg:mb-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(m.default,{href:"/active-sites",title:"Отвори активни сајтови",className:"inline-flex h-6 w-6 items-center justify-center rounded-md border border-white/10 text-slate-400 transition hover:border-[#00f2c3]/40 hover:text-[#00f2c3] max-lg:h-6 max-lg:w-6 lg:h-7 lg:w-7",children:"↗"}),(0,a.jsx)("h3",{className:"text-[9px] font-bold uppercase tracking-[0.2em] text-slate-400 max-lg:leading-tight lg:text-[10px] lg:tracking-[0.22em]",children:"Активни веб-цели (во живо)"})]}),n?(0,a.jsx)("span",{className:"soc-live-dot",title:"Има активни LIVE цели"}):null]}),(0,a.jsx)("p",{className:"mb-1.5 text-[9px] text-slate-500 max-lg:leading-snug lg:mb-2 lg:text-[10px]",children:"Преглед на најактивни натрапници според јавните пријави."}),(0,a.jsx)("div",{className:"flex max-h-[140px] flex-1 flex-col gap-2 overflow-auto max-lg:max-h-[130px] max-lg:gap-1.5 lg:max-h-[160px] lg:gap-3",children:0===r.length?(0,a.jsx)("p",{className:"text-xs text-slate-500",children:"Нема веб-пријави за приказ. Користете го табот „Веб-страна“ десно."}):r.map(e=>(0,a.jsxs)(x.E.div,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},className:"rounded-lg border border-red-500/20 bg-red-500/5 px-2 py-1.5 max-lg:px-1.5 max-lg:py-1 lg:px-2 lg:py-2",children:[(0,a.jsx)("div",{className:"truncate text-[10px] font-medium text-[#00f2c3] max-lg:text-[9px] lg:text-[11px]",title:e.site,children:e.site}),(0,a.jsxs)("div",{className:"mt-0.5 flex flex-wrap justify-between gap-1 text-[9px] text-slate-400 max-lg:text-[8px] lg:mt-1 lg:text-[10px]",children:[(0,a.jsxs)("span",{children:["во фокус од ",(0,u.Ti)(e.firstSeen)]}),(0,a.jsxs)("span",{className:"text-slate-500",children:[e.hits," пријави"]})]})]},e.site))})]})}let f=["#00f2c3","#ff9f43","#a78bfa"];function b(e){let{reports:t=[]}=e,{segments:r,total:n,legend:l}=(0,s.useMemo)(()=>{let e={email:0,website:0,phone:0};for(let r of t)e[function(e){let t=(e||"").toLowerCase();return t.includes("email")||t.includes("пошта")||t.includes("mail")?"email":t.includes("phone")||t.includes("тел")?"phone":"website"}(r.threat_type)]+=1;let r=Object.values(e).reduce((e,t)=>e+t,0)||1,a=[{key:"email",label:"Е-пошта"},{key:"website",label:"Веб-страна"},{key:"phone",label:"Телефон"}].map((t,a)=>({...t,raw:e[t.key],pct:Math.round(e[t.key]/r*100),color:f[a]}));return{segments:a,total:r,legend:a}},[t]),i=2*Math.PI*53,o=-90;return(0,a.jsxs)("div",{className:"soc-panel flex min-h-[280px] flex-col rounded-xl p-3",children:[(0,a.jsx)("h3",{className:"mb-2 text-[10px] font-bold uppercase tracking-[0.22em] text-slate-400",children:"Типови пријави"}),(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,a.jsxs)(x.E.svg,{width:120,height:120,className:"shrink-0",initial:{opacity:.4,scale:.94},animate:{opacity:1,scale:1},transition:{duration:.55,ease:"easeOut"},children:[(0,a.jsx)("circle",{cx:60,cy:60,r:53,fill:"none",stroke:"rgba(255,255,255,0.06)",strokeWidth:14}),r.map(e=>{if(e.raw<=0)return null;let t=e.raw/n,r=t*i,s=(0,a.jsx)("circle",{cx:60,cy:60,r:53,fill:"none",stroke:e.color,strokeWidth:14,strokeDasharray:"".concat(r," ").concat(i-r),strokeLinecap:"round",transform:"rotate(".concat(o," ").concat(60," ").concat(60,")"),opacity:"0.96"},e.key);return o+=360*t,s})]}),(0,a.jsx)("ul",{className:"flex flex-1 flex-col gap-2 text-[11px]",children:l.map(e=>(0,a.jsxs)("li",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)("span",{className:"flex items-center gap-2 text-slate-300",children:[(0,a.jsx)("span",{className:"h-2 w-2 rounded-full shadow-[0_0_8px_currentColor]",style:{backgroundColor:e.color,color:e.color}}),e.label]}),(0,a.jsxs)("span",{className:"tabular-nums text-slate-400",children:[e.pct,"%"]})]},e.key))})]}),0===t.length?(0,a.jsx)("p",{className:"mt-2 text-[11px] text-slate-500",children:"Графиконот се полни со пријави."}):null]})}function g(e){let{stats:t={},reports:r=[]}=e,n=(0,s.useId)().replace(/:/g,""),{pct:l,verified:i,waiting:o}=(0,s.useMemo)(()=>{let e=Number(t.totalReportsAll||0)||r.length||0,a=Number(t.verifiedThreats||0),s=Number(t.pendingReports||0);return(r.length>=2&&e<5&&(a=r.length,s=Math.max(0,(e=r.length)-a)),e<=0)?{pct:0,verified:0,waiting:0}:{pct:Math.min(100,Math.round(a/e*100)),verified:a,waiting:Math.max(0,s)}},[t.verifiedThreats,t.pendingReports,t.totalReportsAll,r]),c=2*Math.PI*60,d="".concat(l/100*c," ").concat(c);return(0,a.jsxs)("div",{className:"soc-panel flex min-h-[280px] flex-col rounded-xl p-3",children:[(0,a.jsx)("h3",{className:"mb-2 text-[10px] font-bold uppercase tracking-[0.22em] text-slate-400",children:"Статус на обработка"}),(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-3",children:[(0,a.jsxs)("div",{className:"relative shrink-0",children:[(0,a.jsxs)(x.E.svg,{width:132,height:132,className:"-rotate-90",initial:{opacity:.5}
1,animate:{opacity:1},transition:{duration:.45},children:[(0,a.jsx)("circle",{cx:66,cy:66,r:60,fill:"none",stroke:"rgba(255,255,255,0.06)",strokeWidth:12}),(0,a.jsx)(x.E.circle,{cx:66,cy:66,r:60,fill:"none",stroke:"url(#".concat(n,")"),strokeWidth:12,strokeLinecap:"round",strokeDasharray:d,initial:{strokeDasharray:"0 ".concat(c)},animate:{strokeDasharray:d},transition:{duration:1.05,ease:"easeOut"}}),(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:n,x1:"0%",y1:"0%",x2:"100%",y2:"0%",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:"#00f2c3"}),(0,a.jsx)("stop",{offset:"100%",stopColor:"#2dd4bf"})]})})]}),(0,a.jsxs)("div",{className:"pointer-events-none absolute inset-0 flex flex-col items-center justify-center text-center",children:[(0,a.jsxs)("div",{className:"text-xl font-bold tabular-nums text-[#00f2c3] drop-shadow-[0_0_12px_rgba(0,242,195,0.35)]",children:[l,"%"]}),(0,a.jsx)("div",{className:"text-[9px] font-semibold uppercase tracking-wider text-slate-500",children:"обработено"})]})]}),(0,a.jsxs)("ul",{className:"flex flex-1 flex-col gap-2 text-[11px]",children:[(0,a.jsxs)("li",{className:"flex justify-between gap-2 border-b border-white/5 py-1",children:[(0,a.jsx)("span",{className:"text-[#00f2c3]",children:"Потврдени"}),(0,a.jsx)("span",{className:"tabular-nums text-slate-200",children:i})]}),(0,a.jsxs)("li",{className:"flex justify-between gap-2 py-1",children:[(0,a.jsx)("span",{className:"text-[#ff4b5c]",children:"Чекаат проверка"}),(0,a.jsx)("span",{className:"tabular-nums text-slate-200",children:o})]})]})]})]})}var w=r(4357);let j=[{label:"Легенда на месецот",chip:"bg-gradient-to-r from-amber-500/30 to-yellow-500/20 text-amber-200 border-amber-400/40"},{label:"Брз сигнал",chip:"bg-cyan-500/15 text-cyan-200 border-cyan-400/35"},{label:"Чувар на мрежата",chip:"bg-emerald-500/15 text-emerald-200 border-emerald-400/35"},{label:"Топ извидник",chip:"bg-violet-500/15 text-violet-200 border-violet-400/35"},{label:"Активен пријавувач",chip:"bg-rose-500/15 text-rose-200 border-rose-400/35"}];function v(e){let{rank:t}=e;return(0,a.jsx)("span",{className:"font-black tabular-nums text-base",children:t})}function y(e){let{reports:t=[]}=e,r=(0,s.useMemo)(()=>{let e=new Map;for(let r of t){let t=(r.reporter_name||"anon").trim()||"anon";e.set(t,(e.get(t)||0)+1)}return[...e.entries()].sort((e,t)=>t[1]-e[1]).slice(0,5).map((e,t)=>{let[r,a]=e;return{name:r,count:a,style:j[t]||j[4]}})},[t]);return(0,a.jsxs)("div",{className:"soc-panel flex min-h-[280px] flex-col rounded-xl p-3",children:[(0,a.jsx)("h3",{className:"mb-2 text-[10px] font-bold uppercase tracking-[0.22em] text-slate-400",children:"Топ 5 пријавувачи"}),(0,a.jsx)("p",{className:"mb-2 text-[10px] text-slate-500",children:"Топ 1 корисник на крајот на секој месец добива специјален ранг."}),(0,a.jsx)("div",{className:"max-h-[160px] space-y-2 overflow-y-auto pr-1",children:(0,a.jsx)(w.M,{initial:!1,children:0===r.length?(0,a.jsx)("p",{className:"text-xs text-slate-500",children:"Нема доволно податоци за ранг-листа."}):r.map((e,t)=>(0,a.jsxs)(x.E.div,{layout:!0,initial:{opacity:0,y:-10},animate:{opacity:1,y:0},transition:{delay:.04*t},className:"flex items-start gap-2 rounded-lg border border-white/[0.07] bg-black/25 px-2 py-2",children:["admin"===e.name?(0,a.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center overflow-hidden rounded-md border border-white/10 bg-black/40",children:(0,a.jsx)("img",{src:"https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExenA5dzlidGV0am5xZzdscWw0Nzc5Z3RiZmhsaGptbXBrYTRnd3d5aSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/zbGPHNIT3Xv4lkCFx5/giphy.gif",alt:"",className:"h-full w-full object-cover"})}):(0,a.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-white/10 bg-white/5 text-[#00f2c3]",children:(0,a.jsx)(v,{rank:t+1})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"truncate text-[11px] font-semibold ".concat("admin"===e.name?"text-slate-50 drop-shadow-[0_0_14px_rgba(0,0,0,0.55)]":"text-slate-100"),children:["@",e.name,"admin"===e.name?(0,a.jsx)("span",{className:"ml-2 roun
1ded border border-red-500/40 bg-red-500/20 px-1.5 py-0.5 text-[9px] text-red-200",children:"ADMIN"}):null]}),"admin"===e.name?(0,a.jsxs)("div",{className:"mt-1 text-[10px] text-slate-400",children:[e.count," пријави"]}):(0,a.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:[(0,a.jsx)("span",{className:"rounded-full border px-2 py-0.5 text-[9px] font-bold uppercase tracking-wide ".concat(e.style.chip),children:e.style.label}),(0,a.jsxs)("span",{className:"text-[10px] text-slate-500",children:[e.count," пријави"]})]})]})]},e.name))})})]})}function N(e){let{reports:t=[]}=e,r=(0,s.useMemo)(()=>{let e=new Map;for(let r of t||[]){let t=new Date(r.created_at).getTime();if(!Number.isFinite(t))continue;let a=(r.threat_value||r.title||"").toString().trim();if(!a)continue;let s=a.toLowerCase(),n=e.get(s);if(n){let a=Math.max(n._latestAt||0,t);e.set(s,{...n,_count:(n._count||1)+1,_latestAt:a,created_at:a===t?r.created_at:n.created_at})}else e.set(s,{...r,threat_value:a,_count:1,_latestAt:t})}return[...e.values()].sort((e,t)=>(t._latestAt||0)-(e._latestAt||0)).slice(0,10)},[t]);return(0,a.jsxs)("div",{className:"soc-panel flex flex-col rounded-xl p-3",children:[(0,a.jsx)("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-2",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(m.default,{href:"/reports-archive",title:"Отвори архива",className:"inline-flex h-7 w-7 items-center justify-center rounded-md border border-white/10 text-slate-400 transition hover:border-[#00f2c3]/40 hover:text-[#00f2c3]",children:"↗"}),(0,a.jsx)("h3",{className:"text-[10px] font-bold uppercase tracking-[0.22em] text-slate-400",children:"Најнови пријави"})]})}),(0,a.jsxs)("div",{className:"max-h-[112px] overflow-x-auto overflow-y-auto",children:[(0,a.jsxs)("table",{className:"w-full min-w-[520px] border-separate border-spacing-y-1 text-left text-[11px]",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"text-[10px] font-bold uppercase tracking-wider text-slate-500",children:[(0,a.jsx)("th",{className:"pb-2 pr-2",children:"Време"}),(0,a.jsx)("th",{className:"pb-2 pr-2",children:"Тип"}),(0,a.jsx)("th",{className:"pb-2 pr-2",children:"Детали"}),(0,a.jsx)("th",{className:"pb-2 pr-2",children:"Статус"}),(0,a.jsx)("th",{className:"pb-2 text-center",children:"Таг"})]})}),(0,a.jsx)("tbody",{children:r.map(e=>{let t=e.resolved_at?{label:"НЕАКТИВНО",className:"bg-slate-500/15 text-slate-200 border-slate-400/30"}:{label:"АКТИВНО",className:"bg-red-500/20 text-[#ff4b5c] border-[#ff4b5c]/40"};return(0,a.jsxs)(x.E.tr,{initial:{opacity:0}
1,animate:{opacity:1},className:"group rounded-lg bg-white/[0.02] transition hover:bg-white/[0.05]",children:[(0,a.jsx)("td",{className:"rounded-l-lg px-2 py-2 font-mono text-slate-400",children:(0,u.Ti)(e.created_at)}),(0,a.jsx)("td",{className:"px-2 py-2 text-slate-300",children:(0,u.Si)(e.threat_type)}),(0,a.jsxs)("td",{className:"max-w-[200px] truncate px-2 py-2 text-slate-200",title:e.threat_value,children:[e.threat_value||"—",e._count>1?(0,a.jsxs)("span",{className:"ml-2 rounded bg-white/5 px-1.5 py-0.5 text-[10px] text-slate-400",children:["x",e._count]}):null]}),(0,a.jsx)("td",{className:"px-2 py-2",children:(0,a.jsx)("span",{className:"inline-block rounded-full border px-2 py-0.5 text-[9px] font-bold ".concat(t.className),children:t.label})}),(0,a.jsxs)("td",{className:"rounded-r-lg px-2 py-2 text-center text-[10px] font-semibold text-[#00f2c3]",children:["@",(e.reporter_name||"anon").slice(0,11)]})]},e.id)})})]}),0===r.length?(0,a.jsx)("p",{className:"py-6 text-center text-xs text-slate-500",children:"Нема записи за приказ."}):null]})]})}function k(e){let{label:t="Вчитувам…",className:r=""}=e;return(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-6 ".concat(r),role:"status","aria-live":"polite","aria-busy":"true",children:[(0,a.jsx)("div",{className:"soc-cyber-spinner","aria-hidden":"true",children:(0,a.jsx)("span",{className:"soc-cyber-spinner-core"})}),t?(0,a.jsx)("p",{className:"text-[10px] font-medium uppercase tracking-[0.22em] text-slate-500",children:t}):null]})}function S(e){let{reports:t=[],loading:r=!1}=e,n=(0,s.useMemo)(()=>{var e;let r=new Map;for(let e of t){let t=(e.threat_value||"").trim(),a=t;try{/^https?:/i.test(t)?a=new URL(t).hostname.replace(/^www\./,""):t.includes("@")?a=t.split("@")[1]||t:t.includes("/")&&!t.includes(" ")&&(a=t.split("/")[0].replace(/^www\./,""))}catch(e){a=t.slice(0,64)}a&&r.set(a,(r.get(a)||0)+1)}let a=[...r.entries()].sort((e,t)=>t[1]-e[1]).slice(0,5),s=(null===(e=a[0])||void 0===e?void 0:e[1])||1;return a.map(e=>{let[t,r]=e;return{domain:t,count:r,pct:Math.round(r/s*100)}})},[t]);return(0,a.jsxs)("div",{className:"soc-panel flex h-full flex-col rounded-xl p-3",children:[(0,a.jsx)("h3",{className:"mb-3 text-[10px] font-bold uppercase tracking-[0.22em] text-slate-400",children:"Најпријавени домени"}),(0,a.jsx)("div",{className:"max-h-[118px] min-h-[118px] flex-1 overflow-y-auto",children:r?(0,a.jsx)(k,{label:"Вчитувам домени…",className:"min-h-[90px]"}):0===n.length?(0,a.jsx)("p",{className:"text-xs text-slate-500",children:"Домените се препознаваат од URL или е-пошта во пријавите."}):n.map(e=>(0,a.jsxs)("div",{className:"mb-3 last:mb-0",children:[(0,a.jsxs)("div",{className:"mb-1 flex justify-between gap-2 text-[11px]",children:[(0,a.jsx)("span",{className:"truncate text-[#00f2c3]",title:e.domain,children:e.domain}),(0,a.jsx)("span",{className:"shrink-0 text-slate-400",children:e.count})]}),(0,a.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-white/5",children:(0,a.jsx)("div",{className:"h-full rounded-full bg-[#00f2c3]/75 shadow-[0_0_10px_rgba(0,242,195,0.25)]",style:{width:"".concat(e.pct,"%")}})})]},e.domain))})]})}var _=r(743),C=r(3458);let M="https://cybermap.kaspersky.com/en/widget/dynamic/dark";function A(e){let{presentation:t="embed"}=e,{effectsOn:r}=(0,_.I)(),[n,l]=(0,s.useState)(!1),[i,o]=(0,s.useState)(!1);if((0,s.useEffect)(()=>{o(!0)},[]),(0,s.useEffect)(()=>{if(!n)return;let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[n]),!r)return"trigger"===t?null:(0,a.jsx)("p",{className:"text-center text-[11px] leading-relaxed text-slate-500",children:"Картата е исклучена додека е активен режимот за послаб компјутер (Моќ OFF)."});if("embed"===t)return(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-white/10 bg-black/40",children:(0,a.jsx)("iframe",{width:"340",height:"240",src:M,title:"Kaspersky Cybermap widget",className:"h-[220px] w-full sm:h-[240px]",loading:"lazy"})});let c=n&&i?(0,a.jsxs)("div",{className:"fixed inset-0 z-[200] flex items-center justify-center p-3 sm:p-5",role:"presentation",children:[(0,a.jsx)("button",{type:"button",className:"absolute inset-0 bg-black/75 backdrop-blur-sm","aria-label":"Затвори карта",onClick:()=>l(!1)}
1),(0,a.jsxs)("div",{className:"relative z-[201] flex max-h-[min(92vh,880px)] w-[min(calc(100vw-1.5rem),56rem)] flex-col overflow-hidden rounded-xl border border-[#00f2c3]/35 bg-[#040910] p-3 shadow-[0_0_48px_rgba(0,242,195,0.25)] sm:p-4",role:"dialog","aria-modal":"true","aria-label":"Kaspersky Cybermap",children:[(0,a.jsxs)("div",{className:"mb-2 flex shrink-0 items-center justify-between gap-2",children:[(0,a.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-[0.2em] text-[#00f2c3] sm:text-[11px]",children:"Светски закани"}),(0,a.jsx)("button",{type:"button",onClick:()=>l(!1),className:"shrink-0 rounded-lg border border-white/15 px-2.5 py-1 text-[11px] font-semibold text-slate-200 hover:bg-white/10",children:"Затвори"})]}),(0,a.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden rounded-lg border border-white/10 bg-black/40",children:(0,a.jsx)("iframe",{width:"900",height:"560",src:M,title:"Kaspersky Cybermap widget",className:"h-[min(62vh,600px)] w-full min-h-[280px] sm:h-[min(65vh,640px)] sm:min-h-[320px]",loading:"lazy"})})]})]}):null;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{type:"button",onClick:()=>l(!0),className:"inline-flex shrink-0 items-center justify-center gap-1.5 rounded-xl border border-[#00f2c3]/40 bg-[#00f2c3]/10 px-2.5 py-2 text-[9px] font-bold uppercase tracking-wider text-[#00f2c3] shadow-[0_0_18px_rgba(0,242,195,0.12)] transition hover:bg-[#00f2c3]/18 sm:gap-2 sm:px-3 sm:text-[10px]","aria-haspopup":"dialog","aria-expanded":n,"aria-label":"Отвори преглед на светски закани (глобална карта)",children:[(0,a.jsx)("span",{className:"text-sm leading-none sm:text-base","aria-hidden":!0,children:"\uD83C\uDF10"}),(0,a.jsx)("span",{className:"max-w-[9.5rem] leading-tight sm:max-w-none",children:"СВЕТСКИ ЗАКАНИ"})]}),i&&c?(0,C.createPortal)(c,document.body):null]})}let R=[{key:"oas",title:"On-Access Scan",mkShort:"Скенирање во реално време"},{key:"ods",title:"On-Demand Scan",mkShort:"Рачно/планирано скенирање"},{key:"mav",title:"Mail Anti-Virus",mkShort:"Закани преку е-пошта"},{key:"wav",title:"Web Anti-Virus",mkShort:"Закани преку веб"},{key:"ids",title:"Intrusion Detection",mkShort:"Детекција на упади"},{key:"vul",title:"Vulnerability Scan",mkShort:"Ранливости"},{key:"kas",title:"Kaspersky Anti-Spam",mkShort:"Анти-спам"},{key:"rmw",title:"Ransomware",mkShort:"Рансомвер закани"}];function T(e,t){return"".concat("https://sm-cybermap-mediaprod.smweb.tech/data/securelist","/").concat(e,"_").concat(t,"_m_49.json")}async function E(e){let{timeoutMs:t=8e3}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new AbortController,a=setTimeout(()=>r.abort(),t);try{let t=await fetch(e,{signal:r.signal,cache:"no-store"});if(!t.ok)throw Error("HTTP ".concat(t.status));return await t.json()}finally{clearTimeout(a)}}async function I(e,t){try{return await E(e,t)}catch(r){return await E(e,{...t||{},timeoutMs:15e3})}}function L(){let{effectsOn:e}=(0,_.I)(),[t,r]=(0,s.useState)("rmw"),[n,l]=(0,s.useState)({}),[i,o]=(0,s.useState)({}),[c,d]=(0,s.useState)(!0),[x,u]=(0,s.useState)(""),[p,m]=(0,s.useState)(null);(0,s.useEffect)(()=>{let t=!1;return async function(){if(!e){d(!1),u("");return}d(!0),u("");try{let e=R.map(e=>I(T("top10",e.key)).then(t=>({ok:!0,key:e.key,data:t})).catch(()=>({ok:!1,key:e.key}))),r=R.map(e=>I(T("graph",e.key)).then(t=>({ok:!0,key:e.key,data:t})).catch(()=>({ok:!1,key:e.key}))),[a,s]=await Promise.all([Promise.allSettled(e),Promise.allSettled(r)]);if(t)return;let n=a.map(e=>"fulfilled"===e.status?e.value:null).filter(e=>e&&e.ok&&Array.isArray(e.data)),i=s.map(e=>"fulfilled"===e.status?e.value:null).filter(e=>e&&e.ok&&Array.isArray(e.data));l(Object.fromEntries(n.map(e=>[e.key,e.data]))),o(Object.fromEntries(i.map(e=>[e.key,e.data]))),(n.length<R.length||i.length<R.length)&&u("Некои SecureList извори не се вчитаа (делумен приказ).")}catch(e){t||u("Не успеав да ги вчитам SecureList податоците (обиди се повторно).")}finally{t||d(!1)}}(),()=>{t=!0}},[e]),(0,s.useEffect)(()=>
1{if(!e)return;let t=!1;return(async()=>{try{let e=await fetch("/api/stats/total-affected/",{cache:"no-store"}),r=await e.json().catch(()=>({}));!t&&e.ok&&r.ok&&null!=r.total&&m(Number(r.total))}catch(e){}})(),()=>{t=!0}},[e]);let h=(0,s.useMemo)(()=>{let e=0;for(let t of R){let r=i[t.key];if(Array.isArray(r))for(let t of r)e+=Number((null==t?void 0:t.count)||0)||0}return e},[i]),f=null==p||Number.isNaN(p)?h:p,b=(0,s.useMemo)(()=>{let e=n[t];return Array.isArray(e)?e.slice(0,4):[]},[n,t]);return e?(0,a.jsxs)("div",{className:"soc-panel rounded-xl p-2",children:[(0,a.jsxs)("div",{className:"mb-1 hidden items-center justify-between gap-2 lg:flex",children:[(0,a.jsx)("h3",{className:"text-[9px] font-bold uppercase tracking-[0.24em] text-slate-500",children:"Топ закани — последен месец (Северна Македонија)"}),(0,a.jsxs)("div",{className:"rounded-full border border-[#00f2c3]/25 bg-[#00f2c3]/10 px-3 py-1 text-[10px] text-slate-200 shadow-[0_0_16px_rgba(0,242,195,0.12)]",children:[(0,a.jsx)("span",{className:"text-slate-300",children:"Вкупно засегнати:"})," ",(0,a.jsx)("span",{className:"font-mono font-extrabold text-[#00f2c3] drop-shadow-[0_0_10px_rgba(0,242,195,0.35)]",children:c?"…":f.toLocaleString("mk-MK")})]})]}),(0,a.jsxs)("div",{className:"mb-3 px-1 lg:hidden",children:[(0,a.jsx)("p",{className:"mb-1.5 text-center text-[8px] font-medium uppercase tracking-[0.12em] text-slate-500 sm:text-[9px]",children:"(Во Република Северна Македонија)"}),(0,a.jsxs)("div",{className:"flex w-full min-w-0 items-center justify-between gap-3",children:[(0,a.jsxs)("div",{className:"min-w-0 max-w-[calc(100%-8.5rem)] shrink rounded-full border border-[#00f2c3]/25 bg-[#00f2c3]/10 px-2.5 py-1.5 text-[9px] text-slate-200 shadow-[0_0_16px_rgba(0,242,195,0.12)] sm:max-w-[calc(100%-9.5rem)] sm:px-3 sm:text-[10px]",children:[(0,a.jsx)("span",{className:"text-slate-300",children:"Вкупно засегнати:"})," ",(0,a.jsx)("span",{className:"font-mono font-extrabold text-[#00f2c3] drop-shadow-[0_0_10px_rgba(0,242,195,0.35)]",children:c?"…":f.toLocaleString("mk-MK")})]}),(0,a.jsx)("div",{className:"shrink-0",children:(0,a.jsx)(A,{presentation:"trigger"})})]})]}),x?(0,a.jsx)("div",{className:"mb-2 rounded-lg border border-amber-400/25 bg-amber-500/10 px-3 py-2 text-xs text-amber-200",children:x}):null,(0,a.jsxs)("div",{className:"hidden grid-cols-1 gap-3 lg:grid lg:grid-cols-12",children:[(0,a.jsx)("div",{className:"lg:col-span-3",children:(0,a.jsx)("div",{className:"max-h-[80px] overflow-y-auto rounded-lg border border-white/10 bg-black/20 p-1",children:R.map(e=>{let s=e.key===t;return(0,a.jsx)("button",{type:"button",onClick:()=>r(e.key),className:"mb-1 w-full rounded-md border px-2 py-1 text-left text-[11px] transition ".concat(s?"border-[#00f2c3]/45 bg-[#00f2c3]/10 text-[#00f2c3]":"border-transparent text-slate-300 hover:bg-white/5"),children:(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("span",{className:"font-semibold",children:e.key.toUpperCase()}),(0,a.jsx)("span",{className:"truncate text-[10px] text-slate-500",children:e.mkShort})]})},e.key)})})}),(0,a.jsx)("div",{className:"lg:col-span-9",children:c?(0,a.jsx)("div",{className:"rounded-lg border border-white/10 bg-black/15 p-4 text-center text-xs text-slate-500",children:"Вчитувам…"}):(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[b.map(e=>(0,a.jsxs)("div",{className:"rounded-lg border border-white/10 bg-black/20 px-3 py-2",children:[(0,a.jsx)("div",{className:"truncate text-[11px] font-semibold text-slate-100",title:e.name,children:e.name}),(0,a.jsxs)("div",{className:"mt-1 flex items-center justify-between text-[11px] text-slate-400",children:[(0,a.jsx)("span",{children:"удел"}),(0,a.jsxs)("span",{className:"font-mono text-[#00f2c3]",children:[Number(e.percent||0).toFixed(2),"%"]})]})]},e.name)),0===b.length?(0,a.jsx)("div",{className:"col-span-2 rounded-lg border border-white/10 bg-black/15 p-6 text-center text-xs text-slate-500",children:"Нема податоци за приказ."}):null]})})]})]}):(0,a.jsxs)("div",{className:"rounded-xl border border-zinc-200 bg-white p-4 text-sm text-zinc-700 shadow-sm",children:[(0,a.jsx)("p",{className:"font-semibold text-zinc-900",children:"Топ закани — исклучено"}),(0,a.jsx)("p",{className:"mt-2 leading-relaxed text-zinc-600",children:"Графиците и податоците од SecureList се исклучени додека е активен режимот за послаб компјутер (Моќ OFF)."})]})}function z(){let e=new Date().getFullYear();return(0,a.jsxs)("footer",{className:"mt-4 hidden border-t border-white/[0.06] py-3 text-[10px] text-slate-500 lg:flex lg:flex-row lg:flex-wrap lg:items-center lg:justify-between lg:text-left",children:[(0,a.jsxs)("span",{children:["\xa9 ",e," Систем за пријавување на фишинг и злоупотреби"]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"tabular-nums text-slate-400",children:"Верзија 1.0"}),(0,a.jsx)(m.default,{href:"/security-privacy",className:"text-[#00f2c3]/80 underline decoration-[#00f2c3]/30 underline-offset-2 hover:text-[#00f2c3]",children:"Безбедност и приватност"})]})]})}
1function D(){return(0,a.jsx)("div",{className:"soc-panel rounded-xl p-4",children:(0,a.jsx)(A,{presentation:"embed"})})}var P=r(3146),O=r.n(P),W=r(6988);let F=/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/i,q=/^(?:https?:\/\/)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}(?:\/[^\s]*)?$/i,U=/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i,V=[{id:"email",icon:"✉",label:"Е-пошта",type:"phishing-email"},{id:"website",icon:"⛶",label:"Веб-страна",type:"phishing-website"},{id:"phone",icon:"☎",label:"Телефон",type:"phishing-phone"}],B="0x4AAAAAADSC0PUUsCb_d45H";function H(e){let{onSubmit:t,soundOn:r,setSoundOn:n,onEnableNotifications:l,errorMessage:i}=e,[o,c]=(0,s.useState)("email"),[d,x]=(0,s.useState)(""),[u,p]=(0,s.useState)(""),[m,h]=(0,s.useState)(""),[f,b]=(0,s.useState)(""),[g,w]=(0,s.useState)(""),[j,v]=(0,s.useState)([]),[y,N]=(0,s.useState)(""),[k,S]=(0,s.useState)(""),[_,C]=(0,s.useState)(!1),[M,A]=(0,s.useState)(!1),[R,T]=(0,s.useState)(null),[E,I]=(0,s.useState)(null),[L,z]=(0,s.useState)(!1),[D,P]=(0,s.useState)(0),[H,G]=(0,s.useState)(""),[K,Y]=(0,s.useState)(""),Z=(0,s.useRef)(null),$=(0,s.useRef)(null),X=(0,s.useRef)(null),J=(0,s.useRef)(null),Q=V.find(e=>e.id===o)||V[0];(0,s.useEffect)(()=>{try{let e=sessionStorage.getItem("socReporterName");if(e&&e.trim()&&e.trim().length>=3&&"admin"!==e.trim().toLowerCase()){let t=e.trim();x(t),p(t);return}let t="anon-".concat(Math.random().toString(36).slice(2,8));sessionStorage.setItem("socReporterName",t),x(t),p(t)}catch(t){let e="anon-".concat(Math.random().toString(36).slice(2,8));x(e),p(e)}},[]),(0,s.useEffect)(()=>{try{let e=Number(sessionStorage.getItem("socReportsSubmitted")||0);Number.isFinite(e)&&e>0&&P(e)}catch(e){}},[]);let ee=D>=5;function et(e){h("");let t=function(e){let t=String(e||"").trim();return t?t.slice(0,11):""}(e);if("admin"===t.toLowerCase()){z(!0),window.setTimeout(()=>z(!1),5e3),x(u);return}x(t),t.trim().length>=3&&p(t)}async function er(){C(!0);try{h("");let e=(d||"").trim();if(e.length<3){h("Корисничкиот таг мора да има најмалку 3 знаци.");return}let r=await t({reporterName:e,threatType:Q.type,threatValue:f.trim(),description:g.trim()?g:void 0,screenshots:j.length?j:void 0,captchaToken:ee?H:void 0});if((null==r?void 0:r.ok)===!1)return;b(""),w(""),v([]),N(""),Z.current&&(Z.current.value="");let a=D+1;P(a);try{sessionStorage.setItem("socReportsSubmitted",String(a))}catch(e){}if(T(null),G(""),null!=J.current&&window.turnstile)try{window.turnstile.reset(J.current)}catch(e){}if(null==r?void 0:r.autoModerated){let e="approved"===r.decision?"Оваа пријава е автоматски одобрена според претходна одлука за истиот идентификатор.":"Оваа пријава е автоматски одбиена според претходна одлука за истиот идентификатор.";T({decision:r.decision,text:e}),window.setTimeout(()=>T(null),12e3)}else A(!0),window.setTimeout(()=>A(!1),3600)}finally{C(!1)}}function ea(){let e=f.trim();return"email"===o?function(e){let t=String(e||"").trim();return t?F.test(t)?"":"Внесете валидна е-пошта (пр. [email protected]).":"Внесете фишинг е-пошта."}(e):"website"===o?function(e){let t=String(e||"").trim();if(!t)return"Внесете URL или домен.";let r=t.replace(/^https?:\/\//i,"").split("/")[0].split("?")[0];return q.test(t)||U.test(r)?"":"Внесете валиден домен (пр. www.example.com, example.shop, example.co.uk)."}(e):function(e){let t=String(e||"").trim();return t?/^\+?[0-9]+$/.test(t)?"":"Дозволени се само цифри и опционален + на почеток.":"Внесете телефонски број."}(e)}async function es(e){e.preventDefault();let t=ea();if(t){S(t);return}if(S(""),!f.trim())return;if(ee&&!H){Y("Потврдете CAPTCHA пред поднесување.");return}let r=!!g.trim(),a=j.length>0;if(!a&&r){I({type:"noPhoto"});return}if(!r&&a){I({type:"noDesc"});return}if(!r&&!a){I({type:"both"});return}await er()}function en(){return"email"===o?"Внесете фишинг е-пошта":"website"===o?"Внесете URL или домен (https://…)":"Внесете телефонски број"}(0,s.useEffect)(()=>
1{if(!ee||!B)return;let e=!1,t=()=>{!e&&X.current&&window.turnstile&&null==J.current&&(J.current=window.turnstile.render(X.current,{sitekey:B,callback:e=>{G(String(e||"")),Y("")},"expired-callback":()=>G(""),"error-callback":()=>G("")}))};if(!window.turnstile){let r=document.createElement("script");return r.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",r.async=!0,r.defer=!0,r.onload=t,document.head.appendChild(r),()=>{e=!0}}return t(),()=>{e=!0}},[ee]),(0,s.useEffect)(()=>{try{let e=(d||"").trim();e.length>=3&&"admin"!==e.toLowerCase()&&sessionStorage.setItem("socReporterName",e)}catch(e){}},[d]);let el=0===j.length?"Нема избрано слики":"".concat(j.length," слик").concat(1===j.length?"а":"и"," \xb7 ").concat((j.reduce((e,t)=>e+t.size,0)/1048576).toFixed(2)," MB");return(0,a.jsx)("div",{"data-tour":"report-form-anchor",id:"report-form-anchor",className:"relative",children:(0,a.jsxs)("form",{onSubmit:es,className:"soc-panel rounded-xl p-4",children:[(0,a.jsx)("h3",{className:"mb-3 text-center text-[11px] font-bold uppercase tracking-[0.28em] text-slate-300",children:"Пријави закана"}),(0,a.jsx)("div",{className:"mb-4 grid grid-cols-3 gap-1 rounded-lg border border-white/[0.08] bg-black/30 p-1",children:V.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>{c(e.id),b(""),S("")},className:"flex flex-col items-center gap-0.5 rounded-md py-2 text-[9px] font-semibold uppercase tracking-wide transition ".concat(o===e.id?"border border-[#00f2c3]/45 bg-[#00f2c3]/15 text-[#00f2c3] shadow-[0_0_18px_rgba(0,242,195,0.2)]":"border border-transparent text-slate-500 hover:bg-white/5 hover:text-slate-300"),children:[(0,a.jsx)("span",{className:"text-base leading-none",children:e.icon}),e.label]},e.id))}),(0,a.jsx)("label",{className:"mb-1 block text-[10px] font-semibold uppercase tracking-wider text-slate-500",children:en()}),(0,a.jsx)("input",{required:!0,value:f,onChange:e=>{let t=e.target.value;"phone"===o&&(t=t.replace(/[^\d+]/g,"")).includes("+")&&(t="+".concat(t.replace(/\+/g,""))),b(t),k&&S("")},onBlur:()=>{let e=ea();e&&S(e)},placeholder:en(),className:"soc-input mb-1 w-full rounded-lg px-3 py-2 text-sm ".concat(k?"border-red-500/50":""),type:"email"===o?"email":"phone"===o?"tel":"text",inputMode:"phone"===o?"tel":void 0,autoComplete:"email"===o?"email":"off"}),k?(0,a.jsx)("p",{className:"mb-3 text-[11px] text-red-400",children:k}):(0,a.jsx)("div",{className:"mb-3"}),(0,a.jsx)("label",{className:"mb-1 block text-[10px] font-semibold uppercase tracking-wider text-slate-500",children:"Кориснички таг"}),(0,a.jsx)("p",{className:"mb-1 text-[10px] text-slate-500",children:"Дозволено: 3-11 букви/бројки."}),(0,a.jsxs)("div",{className:"mb-3 flex gap-2",children:[(0,a.jsx)("input",{value:d,onChange:e=>et(e.target.value),className:"soc-input flex-1 rounded-lg px-3 py-2 text-sm"}),(0,a.jsx)("button",{type:"button",onClick:()=>{let e="anon-".concat(Math.random().toString(36).slice(2,8));et(e);try{sessionStorage.setItem("socReporterName",e)}catch(e){}},className:"shrink-0 rounded-lg border border-[#00f2c3]/30 px-2 text-[11px] text-[#00f2c3] hover:bg-[#00f2c3]/10",children:"Ново"})]}),m?(0,a.jsx)("p",{className:"mb-3 text-[11px] text-amber-300",children:m}):null,(0,a.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2",children:[(0,a.jsx)("label",{className:"block text-[10px] font-semibold uppercase tracking-wider text-slate-500",children:"Детален опис"}),(0,a.jsxs)("span",{className:"text-[10px] tabular-nums ".concat(g.length>=1e3?"text-amber-300":"text-slate-500"),children:[g.length,"/",1e3]})]}),(0,a.jsx)("textarea",{ref:$,value:g,onChange:e=>{w(e.target.value.slice(0,1e3))},maxLength:1e3,rows:4,className:"soc-input mb-3 w-full resize-none rounded-lg px-3 py-2 text-sm"}),(0,a.jsxs)("label",{className:"mb-1 block text-[10px] font-semibold uppercase tracking-wider text-slate-500",children:["Докази (опционално, до ",6," слики, вкупно до 20 MB)"]}),(0,a.jsxs)("div",{className:"mb-4 flex flex-col gap-1",children:[(0,a.jsxs)("label",{className:"soc-input flex cursor-pointer items-center justify-between rounded-lg px-3 py-2 text-xs text-slate-500",children:[(0,a.jsx)("span",{className:"truncate",children:el}),(0,a.jsx)("span",{className:"shrink-0 rounded border border-[#00f2c3]/35 px-2 py-0.5 text-[11px] text-[#00f2c3]",children:"Прелистај"}),(0,a.jsx)("input",{ref:Z,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:function(e){N("");let t=Array.from(e.target.files||[]);if(t.length>6){N("Најмногу ".concat(6," слики.")),v([]),e.target.value="";return}if(t.reduce((e,t)=>
1e+t.size,0)>20971520){N("Вкупниот лимит за докази е 20 MB."),v([]),e.target.value="";return}v(t)}})]}),y?(0,a.jsx)("p",{className:"text-[11px] text-amber-300",children:y}):null]}),(0,a.jsx)("button",{type:"submit",disabled:_,className:"w-full rounded-lg bg-gradient-to-r from-[#00f2c3] to-[#14c9a6] py-3 text-sm font-bold uppercase tracking-[0.2em] text-[#050a0f] shadow-[0_0_28px_rgba(0,242,195,0.35)] transition hover:brightness-110 disabled:opacity-50",children:_?"Се поднесува…":"Пријави закана"}),ee?(0,a.jsxs)("div",{className:"mt-3 rounded-lg border border-white/10 bg-black/25 p-3",children:[(0,a.jsx)("p",{className:"mb-2 text-[11px] text-slate-400",children:"CAPTCHA е задолжителна по 5 пријави во тековната сесија."}),B?(0,a.jsx)("div",{ref:X}):(0,a.jsx)("p",{className:"text-[11px] text-amber-300",children:"Недостасува NEXT_PUBLIC_TURNSTILE_SITE_KEY."}),K?(0,a.jsx)("p",{className:"mt-2 text-[11px] text-amber-300",children:K}):null]}):null,(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(W.Z,{})}),i?(0,a.jsx)("p",{className:"mt-3 text-center text-xs text-[#ff4b5c]",children:i}):null,R?(0,a.jsx)("div",{className:"fixed inset-0 z-[115] flex items-center justify-center bg-black/55 p-4",children:(0,a.jsxs)("div",{className:"soc-panel w-full max-w-md rounded-xl border bg-[#050a0f]/95 p-4 text-center shadow-[0_0_26px_rgba(0,0,0,0.35)] ".concat("approved"===R.decision?"border-emerald-400/40 shadow-[0_0_26px_rgba(52,211,153,0.2)]":"border-amber-400/45 shadow-[0_0_26px_rgba(251,191,36,0.18)]"),children:[(0,a.jsx)("div",{className:"mb-2 text-[10px] font-bold uppercase tracking-[0.24em] ".concat("approved"===R.decision?"text-emerald-300":"text-amber-300"),children:"Автоматска одлука"}),(0,a.jsx)("p",{className:"text-sm text-slate-100",children:R.text}),(0,a.jsx)("button",{type:"button",className:"mt-4 rounded-lg border border-white/15 px-4 py-2 text-xs font-semibold text-slate-300 hover:bg-white/5",onClick:()=>T(null),children:"Разбрав"})]})}):null,M?(0,a.jsx)("div",{className:"fixed inset-0 z-[115] flex items-center justify-center bg-black/55 p-4",children:(0,a.jsxs)("div",{className:"soc-panel w-full max-w-md rounded-xl border border-[#00f2c3]/30 bg-[#050a0f]/95 p-4 text-center shadow-[0_0_26px_rgba(0,242,195,0.22)]",children:[(0,a.jsx)("div",{className:"mb-2 text-[10px] font-bold uppercase tracking-[0.24em] text-[#00f2c3] animate-pulse",children:"AI Message"}),(0,a.jsx)("p",{className:"text-sm text-slate-100 [text-shadow:0_0_8px_rgba(0,242,195,0.35)]",children:"Успешно ја доставивме пријавата до админ. Ви благодариме за помошта :)"})]})}):null,E?(0,a.jsx)("div",{className:"fixed inset-0 z-[121] flex items-center justify-center bg-black/70 p-4",onClick:()=>I(null),children:(0,a.jsxs)("div",{className:"soc-panel w-full max-w-md rounded-xl border border-white/10 bg-[#050a0f]/95 p-4 shadow-[0_0_26px_rgba(0,242,195,0.12)]",onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("div",{className:"mb-2 text-[10px] font-bold uppercase tracking-[0.24em] text-[#00f2c3]",children:"Брза напомена"}),"noPhoto"===E.type?(0,a.jsx)("p",{className:"text-sm text-slate-200",children:"Пријави без фотографија се обработуваат побавно. Ако можеш, додади фото-доказ."}):null,"noDesc"===E.type?(0,a.jsx)("p",{className:"text-sm text-slate-200",children:"Пријави без опис се обработуваат побавно. Ако можеш, додади краток опис."}):null,"both"===E.type?(0,a.jsx)("p",{className:"text-sm text-slate-200",children:"Без опис и без фото, проверката е значително потешка. Ако можеш, додади барем едно од двете."}):null,(0,a.jsxs)("div",{className:"mt-4 grid grid-cols-2 gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:async()=>{I(null),await er()},className:"rounded-lg border border-[#00f2c3]/35 bg-[#00f2c3]/10 px-3 py-2 text-xs font-bold uppercase tracking-wider text-[#00f2c3] hover:bg-[#00f2c3]/15",children:"Пријави сепак"}),(0,a.jsx)("button",{type:"button",onClick:()=>{var e,t,r,a;if(I(null),"noDesc"===E.type){null===(a=$.current)||void 0===a||null===(r=a.focus)||void 0===r||r.call(a);return}("noPhoto"===E.type||"both"===E.type)&&(null===(t=Z.current)||void 0===t||null===(e=t.click)||void 0===e||e.call(t))},className:"rounded-lg border border-white/10 px-3 py-2 text-xs font-bold uppercase tracking-wider text-slate-200 hover:border-[#00f2c3]/40",children:"Ќе додадам"})]})]})}):null,L?(0,a.jsxs)("div",{className:"jsx-35dbb4f359d1dbb4 pointer-events-none fixed inset-0 z-[130] overflow-hidden",children:[(0,a.jsxs)("div",{className:"jsx-35dbb4f359d1dbb4 absolute left-[-55%] top-[42%] w-[220%] rotate-[-5deg]",children:[(0,a.jsx)("div",{className:"jsx-35dbb4f359d1dbb4 glitch-marquee font-mono text-[14px] font-bold uppercase tracking-[0.28em] text-[#ff4b5c] drop-shadow-[0_0_18px_rgba(255,75,92,0.45)]",children:"НЕ СИ МОЈОТ ADMIN \xb7 НЕ СИ МОЈОТ ADMIN \xb7 @ADMIN Е РЕЗЕРВИРАН \xb7 ОБИДОТ Е ЕВИДЕНТИРАН \xb7"}),(0,a.jsx)("div",{className:"jsx-35dbb4f359d1dbb4 glitch-marquee2 mt-2 font-mono text-[12px] font-bold uppercase tracking-[0.28em] text-[#00f2c3] drop-shadow-[0_0_18px_rgba(0,242,195,0.35)]",children:"СИСТЕМСКА ГРЕШКА // робо-стражар: „не се преправај“ // СИСТЕМСКА ГРЕШКА //"})]}),(0,a.jsx)(O(),{id:"35dbb4f359d1dbb4",children:".glitch-marquee.jsx-35dbb4f359d1dbb4{-webkit-animation:soc-marquee 2.6s linear infinite;-moz-animation:soc-marquee 2.6s linear infinite;-o-animation:soc-marquee 2.6s linear infinite;animation:soc-marquee 2.6s linear infinite;opacity:.95;text-shadow:2px 0 rgba(0,242,195,.25),-2px 0 rgba(255,75,92,.25)}.glitch-marquee2.jsx-35dbb4f359d1dbb4{animation:soc-marquee 2.2s linear infinite reverse;opacity:.85;-webkit-filter:blur(.1px);filter:blur(.1px)}
1@-webkit-keyframes soc-marquee{0%{-webkit-transform:translatex(0%);transform:translatex(0%)}100%{-webkit-transform:translatex(-35%);transform:translatex(-35%)}}@-moz-keyframes soc-marquee{0%{-moz-transform:translatex(0%);transform:translatex(0%)}100%{-moz-transform:translatex(-35%);transform:translatex(-35%)}}@-o-keyframes soc-marquee{0%{-o-transform:translatex(0%);transform:translatex(0%)}100%{-o-transform:translatex(-35%);transform:translatex(-35%)}}@keyframes soc-marquee{0%{-webkit-transform:translatex(0%);-moz-transform:translatex(0%);-o-transform:translatex(0%);transform:translatex(0%)}100%{-webkit-transform:translatex(-35%);-moz-transform:translatex(-35%);-o-transform:translatex(-35%);transform:translatex(-35%)}}"})]}):null]})})}function G(){for(let e of document.querySelectorAll('[data-tour="report-form-anchor"]')){let t=e.getBoundingClientRect();if(t.width>=8&&t.height>=8)return e}return null}function K(e){let{active:t}=e,[r,n]=(0,s.useState)(!1),[l,i]=(0,s.useState)(null),o=(0,s.useCallback)(()=>{if(!t){i(null);return}let e=G();if(!e){i(null);return}let r=e.getBoundingClientRect(),a=window.innerWidth,s=window.innerHeight,n=r.left+r.width/2,l=r.top+r.height/2;i({tipX:n,tipY:Math.max(56,l-Math.min(140,.45*r.height+80)),targetX:n,targetY:l,vw:a,vh:s})},[t]);if((0,s.useEffect)(()=>{n(!0)},[]),(0,s.useLayoutEffect)(()=>{if(!t)return;let e=G();try{null==e||e.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})}catch(t){null==e||e.scrollIntoView(!0)}o();let r=window.setTimeout(o,120),a=window.setTimeout(o,450);return window.addEventListener("scroll",o,!0),window.addEventListener("resize",o),()=>{window.clearTimeout(r),window.clearTimeout(a),window.removeEventListener("scroll",o,!0),window.removeEventListener("resize",o)}},[t,o]),!r||!t||!l)return null;let{tipX:c,tipY:d,targetX:x,targetY:u,vw:p,vh:m}=l;return(0,C.createPortal)((0,a.jsx)("div",{className:"pointer-events-none fixed inset-0 z-[195]","aria-hidden":!0,children:(0,a.jsxs)("svg",{width:p,height:m,className:"absolute left-0 top-0",viewBox:"0 0 ".concat(p," ").concat(m),children:[(0,a.jsxs)("defs",{children:[(0,a.jsx)("marker",{id:"soc-report-arrowhead",markerWidth:"10",markerHeight:"10",refX:"9",refY:"5",orient:"auto",children:(0,a.jsx)("path",{d:"M0,0 L10,5 L0,10 Z",fill:"#ef4444"})}),(0,a.jsxs)("filter",{id:"soc-report-glow",x:"-40%",y:"-40%",width:"180%",height:"180%",children:[(0,a.jsx)("feGaussianBlur",{stdDeviation:"2.5",result:"b"}),(0,a.jsxs)("feMerge",{children:[(0,a.jsx)("feMergeNode",{in:"b"}),(0,a.jsx)("feMergeNode",{in:"SourceGraphic"})]})]})]}),(0,a.jsx)("line",{x1:c,y1:d,x2:x,y2:u,stroke:"#ef4444",strokeWidth:"3",filter:"url(#soc-report-glow)",markerEnd:"url(#soc-report-arrowhead)",opacity:"0.95"})]})}),document.body)}function Y(){let{reports:e=[],reportsReady:t=!1,stats:r={},submitReport:i,enableNotifications:o,submitError:c=""}=(0,l.N)(),[x,u]=(0,s.useState)(!1),[p,m]=(0,s.useState)(!1),f=(0,n.useSearchParams)();return(0,s.useEffect)(()=>(function(){let e=null==f?void 0:f.get("focus");if("report"!==(e=e||new URLSearchParams(window.location.search).get("focus"))){m(!1);return}m(!0);let t=window.setTimeout(()=>m(!1),3e3);return()=>window.clearTimeout(t)})(),[f]),(0,a.jsxs)("div",{className:"min-h-0 flex-1",children:[(0,a.jsx)(K,{active:p}),(0,a.jsxs)("main",{className:"min-h-0 min-w-0 overflow-x-hidden overflow-y-auto max-lg:!overflow-y-visible p-3 sm:p-4 lg:p-5 lg:pr-[400px]",children:[(0,a.jsx)("div",{className:"mb-4 space-y-3 lg:hidden","data-tour":"report-panel-mobile",children:(0,a.jsx)(H,{onSubmit:i,soundOn:x,setSoundOn:u,onEnableNotifications:o,errorMessage:c})}),(0,a.jsxs)("div",{"data-tour":"main-dashboard",className:"space-y-3 sm:space-y-4",children:[(0,a.jsx)("div",{"data-tour":"kpi-stats",className:"space-y-3",children:(0,a.jsx)(d,{stats:r,reports:e})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-4",children:[(0,a.jsx)(h,{reports:e}),(0,a.jsx)("div",{className:"hidden lg:block",children:(0,a.jsx)(b,{reports:e})}),(0,a.jsx)("div",{className:"hidden lg:block",children:(0,a.jsx)(g,{stats:r,reports:e})}),(0,a.jsx)(y,{reports:e})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 lg:grid-cols-12",children:[(0,a.jsx)("div",{className:"min-w-0 lg:col-span-8",children:(0,a.jsx)(N,{reports:e})}),(0,a.jsx)("div",{className:"hidden min-w-0 lg:col-span-4 lg:block",children:(0,a.jsx)(S,{reports:e,loading:!t})})]}),(0,a.jsx)("div",{children:(0,a.jsx)(L,{})}),(0,a.jsx)(z,{})]})]}),(0,a.jsx)("aside",{"data-tour":"report-panel",id:"report-panel-focus",className:"fixed right-0 top-0 hidden h-screen w-[380px] overflow-y-auto border-l border-white/[0.08] bg-[#040910]/90 p-4 backdrop-blur-md lg:block",children:(0,a.jsxs)("div",{className:"flex flex-col gap-3 pt-2",children:[(0,a.jsx)(D,{}),(0,a.jsx)(H,{onSubmit:i,soundOn:x,setSoundOn:u,onEnableNotifications:o,errorMessage:c})]})})]})}},5664:function(e,t,r){"use strict";r.d(t,{Gm:function(){return m},QN:function(){return h}});var a=r(7573),s=r(7653),n=r(3458);let l="soc_client_session_id",i="https://api.prijavi.org/api",o=i.endsWith("/api")?i:"".concat(i.replace(/\/$/,""),"/api");async function c(e){let t=function(){try{let e=sessionStorage.getItem(l);return e||(e="sess_".concat(Math.random().toString(36).slice(2),"_").concat(Date.now().toString(36)),sessionStorage.setItem(l,e)),e}catch(e){return""}}();if(!t)return null;let r=await fetch("".concat(o,"/share"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({clientSessionId:t,channel:e})}),a=await r.json().catch(()=>({}));if("number"==typeof a.totalShareClicks){try{window.dispatchEvent(new CustomEvent("soc-share",{detail:{totalShareClicks:a.totalShareClicks}}))}catch(e){}return a.totalShareClicks}return null}let d="https://api.prijavi.org/api",x=d.endsWith("/api")?d:"".concat(d.replace(/\/$/,""),"/api"),u=(0,s.createContext)(null);function p(e){let{shareMessage:t,shareTitle:r,openExternal:s,copyLink:n,copied:l,onClose:i}=e,o=window.location.href,c=encodeURIComponent("".concat(t,"\n").concat(o)),d=encodeURIComponent(o),x=encodeURIComponent(r);return(0,a.jsx)("div",{className:"fixed inset-0 z-[200] flex items-center justify-center bg-black/65 p-4",onClick:i,children:(0,a.jsxs)("div",{className:"soc-panel w-full max-w-md rounded-xl border border-[#00f2c3]/20 bg-[#050a0f]/95 p-4 backdrop-blur-md",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,a.jsx)("h3",{className:"text-sm font-bold text-[#00f2c3]",children:"Сподели за свест"}),(0,a.jsx)("button",{type:"button",onClick:i,className:"rounded border border-white/10 px-2 py-1 text-xs text-slate-300",children:"✕"})]}),(0,a.jsx)("p",{className:"mb-3 text-xs text-slate-400",children:t}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[(0,a.jsx)("button",{type:"button",onClick:()=>s("https://www.facebook.com/sharer/sharer.php?u=".concat(d,"&quote=").concat(encodeURIComponent(t)),"facebook"),className:"rounded border border-white/10 px-3 py-2 text-center text-slate-200 hover:border-[#00f2c3]/40",children:"Facebook"}),(0,a.jsx)("button",{type:"button",onClick:()=>s("https://www.instagram.com/","instagram"),className:"rounded border border-white/10 px-3 py-2 text-center text-slate-200 hover:border-[#00f2c3]/40",children:"Instagram"}),(0,a.jsx)("button",{type:"button",onClick:()=>s("https://twitter.com/intent/tweet?text=".concat(c),"twitter"),className:"rounded border border-white/10 px-3 py-2 text-center text-slate-200 hover:border-[#00f2c3]/40",children:"X (Twitter)"}),(0,a.jsx)("button",{type:"button",onClick:n,className:"rounded border border-white/10 px-3 py-2 text-center text-slate-200 hover:border-[#00f2c3]/40",children:l?"Копирано!":"Копирај линк"}),(0,a.jsx)("button",{type:"button",onClick:()=>s("https://wa.me/?text=".concat(c),"whatsapp"),className:"rounded border border-white/10 px-3 py-2 text-center text-slate-200 hover:border-[#00f2c3]/40",children:"WhatsApp"}),(0,a.jsx)("button",{type:"button",onClick:()=>s("https://t.me/share/url?url=".concat(d,"&text=").concat(encodeURIComponent(t)),"telegram"),className:"rounded border border-white/10 px-3 py-2 text-center text-slate-200 hover:border-[#00f2c3]/40",children:"Telegram"}),(0,a.jsx)("button",{type:"button",onClick:()=>s("https://www.linkedin.com/sharing/share-offsite/?url=".concat(d,"&title=").concat(x),"linkedin"),className:"col-span-2 rounded border border-white/10 px-3 py-2 text-center text-slate-200 hover:border-[#00f2c3]/40",children:"LinkedIn"})]})]})})}function m(e){let{children:t}
1=e,[r,l]=(0,s.useState)(null),[i,o]=(0,s.useState)(!1),[d,m]=(0,s.useState)(!1),[h,f]=(0,s.useState)(!1);(0,s.useEffect)(()=>{function e(){m(!1),o(!0)}function t(e){var t;"number"==typeof(null===(t=e.detail)||void 0===t?void 0:t.totalShareClicks)&&l(e.detail.totalShareClicks)}return f(!0),fetch("".concat(x,"/bootstrap")).then(e=>e.json()).then(e=>l(Number(e.totalShareClicks)||0)).catch(()=>l(0)),window.addEventListener("soc-open-share",e),window.addEventListener("soc-share",t),()=>{window.removeEventListener("soc-open-share",e),window.removeEventListener("soc-share",t)}},[]);let b="Го споделувам овој линк за свест на граѓаните од измама.",g=(0,s.useCallback)(()=>{fetch("".concat(x,"/bootstrap")).then(e=>e.json()).then(e=>l(Number(e.totalShareClicks)||0)).catch(()=>{})},[]),w=(0,s.useCallback)(async e=>{try{let t=await c(e);"number"==typeof t&&l(t)}catch(e){}},[]),j=(0,s.useCallback)(()=>{m(!1),o(!0)},[]),v=(0,s.useCallback)(async(e,t)=>{await w(t),window.open(e,"_blank","noreferrer")},[w]),y=(0,s.useCallback)(async()=>{await w("copy");try{let e=window.location.href;await navigator.clipboard.writeText(e),m(!0),window.setTimeout(()=>m(!1),1400)}catch(e){}},[w]),N=(0,s.useMemo)(()=>({total:r,refreshTotal:g,openShareModal:j,countShareOnce:w,shareMessage:b,openExternal:v,copyLink:y,copied:d}),[r,g,j,w,b,v,y,d]);return(0,a.jsxs)(u.Provider,{value:N,children:[t,h&&i?(0,n.createPortal)((0,a.jsx)(p,{shareMessage:b,shareTitle:"Систем за пријавување на фишинг и злоупотреби",openExternal:v,copyLink:y,copied:d,onClose:()=>o(!1)}),document.body):null]})}function h(){return(0,s.useContext)(u)}},1122:function(e,t,r){"use strict";function a(e){if(!e)return"—";let t=new Date(e).getTime();if(Number.isNaN(t))return"—";let r=Math.floor((Date.now()-t)/1e3);if(r<5)return"пред момент";if(r<60)return"пред ".concat(r," сек");let a=Math.floor(r/60);if(a<60)return"пред ".concat(a," мин");let s=Math.floor(a/60);return s<48?"пред ".concat(s," ч"):"пред ".concat(Math.floor(s/24)," дена")}function s(e){let t=(e||"").toLowerCase();return t.includes("email")||t.includes("пошта")?"Е-пошта":t.includes("phone")||t.includes("тел")?"Телефон":t.includes("domain")||t.includes("домен")||t.includes("website")||t.includes("веб")||t.includes("link")?"Веб-страна":"Друго"}function n(e){return(null==e?void 0:e.resolved_at)?{label:"НЕАКТИВНО",className:"bg-slate-500/15 text-slate-200 border-slate-400/30"}:{label:"АКТИВНО",className:"bg-red-500/20 text-[#ff4b5c] border-[#ff4b5c]/40"}}r.d(t,{Si:function(){return s},Ti:function(){return a},vQ:function(){return n}})},9608:function(e,t,r){"use strict";function a(e){if(!e||"string"!=typeof e)return"";let t=e.trim();if(!t)return"";try{if(/^https?:\/\//i.test(t))return new URL(t).hostname.replace(/^www\./,"").toLowerCase()}catch(e){}return t.includes(" ")||t.includes("@")?"":t.replace(/^www\./i,"").split("/")[0].toLowerCase()}function s(e){let t=(e||"").toLowerCase();return t.includes("website")||t.includes("domain")||t.includes("link")||t.includes("scam")||"phishing-website"===t||"phishing-domain"===t}function n(e){let t=(e||"").toLowerCase();return t.includes("email")||t.includes("mail")||t.includes("пошта")||"phishing-email"===t}function l(e){let t=(e||"").toLowerCase();return t.includes("phone")||t.includes("тел")||"phishing-phone"===t}function i(e){if(!e||"string"!=typeof e)return"";let t=e.trim().toLowerCase();return!t||!t.includes("@")||t.includes(" ")?"":t}function o(e){if(!e||"string"!=typeof e)return"";let t=e.trim();if(!t)return"";let r=t.replace(/[^\d+]/g,"");return r.length>=6?r:t.replace(/\s+/g,"").slice(0,32)}function c(e){let t=new Map;for(let r of e||[]){if(!s(r.threat_type))continue;let e=a(r.threat_value||r.title);if(!e)continue;let n=new Date(r.created_at).getTime();if(Number.isNaN(n))continue;let l=t.get(e);if(l){let a=new Date(l.firstSeen).getTime();t.set(e,{site:e,firstSeen:n<a?r.created_at:l.firstSeen,hits:l.hits+1})}else t.set(e,{site:e,firstSeen:r.created_at,hits:1})}return[...t.values()].sort((e,t)=>
1new Date(e.firstSeen)-new Date(t.firstSeen))}function d(e){let t=new Map;for(let r of e||[]){let e=r.threat_type||"",c=null,d="";if(s(e))c="website",d=a(r.threat_value||r.title);else if(n(e))c="email",d=i(r.threat_value||r.title);else{if(!l(e))continue;c="phone",d=o(r.threat_value||r.title)}if(!d)continue;let x="".concat(c,":").concat(d),u=new Date(r.created_at).getTime();if(Number.isNaN(u))continue;let p=t.get(x);if(p){let e=new Date(p.firstSeen).getTime();t.set(x,{...p,firstSeen:u<e?r.created_at:p.firstSeen,hits:p.hits+1})}else t.set(x,{key:d,kind:c,firstSeen:r.created_at,hits:1})}return[...t.values()].sort((e,t)=>new Date(e.firstSeen)-new Date(t.firstSeen))}r.d(t,{Gq:function(){return l},JH:function(){return a},RG:function(){return o},Rz:function(){return d},ZC:function(){return i},b2:function(){return c},uW:function(){return n}})},743:function(e,t,r){"use strict";r.d(t,{I:function(){return i},L:function(){return l}});var a=r(7573),s=r(7653);let n=(0,s.createContext)({effectsOn:!0});function l(e){let{effectsOn:t,children:r}=e;return(0,a.jsx)(n.Provider,{value:{effectsOn:!!t},children:r})}function i(){return(0,s.useContext)(n)}},833:function(e,t,r){"use strict";r.d(t,{N:function(){return d}});var a=r(7653),s=r(8688),n=r(1122);let l="https://api.prijavi.org/api",i=l.endsWith("/api")?l:"".concat(l.replace(/\/$/,""),"/api"),o="soc_client_session_id";function c(){try{let e=sessionStorage.getItem(o);return e||(e="sess_".concat(Math.random().toString(36).slice(2),"_").concat(Date.now().toString(36)),sessionStorage.setItem(o,e)),e}catch(e){return""}}function d(){let[e,t]=(0,a.useState)([]),[r,l]=(0,a.useState)(!1),[o,d]=(0,a.useState)(""),[x,u]=(0,a.useState)({lastReportAgo:"чекаме податоци…",lastReportAt:null,totalReportsToday:0,totalReportsYesterday:0,totalReportsAll:0,verifiedThreats:0,activeThreatsHigh:0,resolvedCases:0,pendingReports:0,activeDomains:0,onlineReporters:0,adminReportsCount:0,totalShareClicks:0}),p=(0,a.useRef)(null);function m(e){if(null==e?void 0:e.resolved_at)return}async function h(e){let t;d("");let r=new FormData;e.threatType&&r.append("threatType",e.threatType),e.threatValue&&r.append("threatValue",e.threatValue),e.reporterName&&r.append("reporterName",e.reporterName),e.description&&r.append("description",e.description),e.captchaToken&&r.append("captchaToken",e.captchaToken);let a=c();if(a&&r.append("clientSessionId",a),Array.isArray(e.screenshots)&&e.screenshots.length)for(let t of e.screenshots)r.append("screenshot",t);else e.screenshot&&r.append("screenshot",e.screenshot);try{t=await fetch("".concat(i,"/reports"),{method:"POST",body:r})}catch(e){return d("Network error: backend серверот не е пуштен (http://localhost:4000)."),{ok:!1}}let s={};try{s=await t.json()}catch(e){}if(!t.ok){let e=(null==s?void 0:s.error)||"Неуспешно поднесување";return d(e),{ok:!1,error:e}}return{ok:!0,reportId:null==s?void 0:s.reportId,pending:null==s?void 0:s.pending,autoModerated:!!(null==s?void 0:s.autoModerated),decision:null==s?void 0:s.decision}}async function f(){if(!("serviceWorker"in navigator)||!("PushManager"in window))return!1;try{let e=await Notification.requestPermission();if("granted"!==e)return!1;let t=await navigator.serviceWorker.ready,r=await t.pushManager.getSubscription();if(!r){let e=await fetch("".concat(i,"/push/public-key")),a=await e.json().catch(()=>({}));if(!e.ok||!(null==a?void 0:a.publicKey))return!1;r=await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){let t="=".repeat((4-e.length%4)%4),r=atob((e+t).replace(/-/g,"+").replace(/_/g,"/")),a=new Uint8Array(r.length);for(let e=0;e<r.length;++e)a[e]=r.charCodeAt(e);return a}(a.publicKey)})}return await fetch("".concat(i,"/push/subscribe"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({clientSessionId:c(),subscription:r.toJSON()})}),!0}catch(e){return!1}}async function b(){if(!("serviceWorker"in navigator)||!("PushManager"in window))return!0;try{let e=await navigator.serviceWorker.ready,t=await e.pushManager.getSubscription();return t&&(await fetch("".concat(i,"/push/unsubscribe"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({endpoint:t.endpoint})}).catch(()=>{}),await t.unsubscribe().catch(()=>{})),!0}catch(e){return!1}}return(0,a.useEffect)(()=>{function e(e){var t;let r=null===(t=e.detail)||void 0===t?void 0:t.totalShareClicks;"number"==typeof r&&u(e=>({...e,totalShareClicks:r}))}return window.addEventListener("soc-share",e),()=>window.removeEventListener("soc-share",e)},[]),(0,a.useEffect)(()=>
1{"serviceWorker"in navigator&&navigator.serviceWorker.register("/push-sw.js").catch(()=>{})},[]),(0,a.useEffect)(()=>{let e=!1;async function r(){try{let[r,a]=await Promise.all([fetch("".concat(i,"/bootstrap")).then(e=>e.json()),fetch("".concat(i,"/reports/public")).then(e=>e.json())]);if(e)return;p.current=(null==r?void 0:r.lastReportAt)||null,u(e=>({...e,...r||{},totalShareClicks:Number(null==r?void 0:r.totalShareClicks)||0,lastReportAgo:(null==r?void 0:r.lastReportAt)?(0,n.Ti)(r.lastReportAt):e.lastReportAgo})),(null==a?void 0:a.ok)&&t(Array.isArray(a.items)?a.items:[])}catch(e){}}fetch("".concat(i,"/bootstrap")).then(e=>e.json()).then(t=>{e||(p.current=t.lastReportAt||null,u(e=>({...e,...t,totalShareClicks:Number(t.totalShareClicks)||0,lastReportAgo:t.lastReportAt?(0,n.Ti)(t.lastReportAt):"чекаме податоци…"})))}).catch(()=>{e||d("Backend не е достапен. Стартувај го серверот на :4000.")});let a=(0,s.io)("https://api.prijavi.org");a.on("presence:update",e=>{let{onlineReporters:t}=e;u(e=>({...e,onlineReporters:t}))}),a.on("threat:new",e=>{let r=e.created_at||new Date().toISOString();p.current=r,t(t=>[e,...t].slice(0,150)),m(e),u(t=>{let a=Number(e.severity_score||0)>=3?1:0,s=Number(e.severity_score||0)>=4?1:0;return{...t,totalReportsToday:(t.totalReportsToday||0)+1,totalReportsAll:(t.totalReportsAll||0)+1,verifiedThreats:(t.verifiedThreats||0)+a,activeThreatsHigh:(t.activeThreatsHigh||0)+s,lastReportAt:r,lastReportAgo:(0,n.Ti)(r)}})}),a.on("threat:submitted",()=>{u(e=>({...e,totalReportsToday:(e.totalReportsToday||0)+1,totalReportsAll:(e.totalReportsAll||0)+1,pendingReports:(e.pendingReports||0)+1}))}),a.on("threat:approved",e=>{let r=e.created_at||new Date().toISOString();p.current=r,t(t=>[e,...t].slice(0,150)),m(e),u(e=>({...e,lastReportAt:r,lastReportAgo:(0,n.Ti)(r)}))}),a.on("threat:moderation-changed",r),fetch("".concat(i,"/reports/public")).then(e=>e.json()).then(r=>{!e&&(null==r?void 0:r.ok)&&t(Array.isArray(r.items)?r.items:[])}).catch(()=>{}).finally(()=>{e||l(!0)});let o=window.setInterval(()=>{p.current&&u(e=>({...e,lastReportAgo:(0,n.Ti)(p.current)}))},1e3),c=window.setInterval(()=>{try{a.emit("presence:ping")}catch(e){}},12e3);return()=>{e=!0,a.disconnect(),clearInterval(o),clearInterval(c)}},[]),(0,a.useMemo)(()=>({reports:e,reportsReady:r,stats:x,submitReport:h,enableNotifications:f,disableNotifications:b,submitError:o}),[e,r,x,o])}}},function(e){e.O(0,[647,340,688,161,293,528,744],function(){return e(e.s=471)}),_N_E=e.O()}]);

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.