PageSourceSearch

https://app.gdprregister.eu/build/assets/Index-CFf_iNv_.js

js gdprregister.eu collected 2026-09-24 19:33:07 UTC 12,644 bytes, 1 lines download raw bytes

1import{j as i,r as u,L as T,a as C}from"./app-1vgDEoGC.js";import{C as l}from"./tokens-B37dFduH.js";import{u as B}from"./useTranslate-BHVuDmqB.js";import{A as P}from"./AppLayout-DaqEkbg4.js";import{s as h,R as E,A as z,C as q}from"./ClassificationWizard-C0IMNG4K.js";import{T as $}from"./Tooltip-BHql35ey.js";import{p as W,P as _,s as c,R as I,d as S}from"./aiRegister.module-CsNxaOp-.js";import{A as M,a as H}from"./Avatar-D8GC2Sii.js";import{V as K}from"./VendorLogo-DEjQRF-5.js";import{P as U}from"./Pill-DosfGYhZ.js";import{C as V}from"./Card-CkDxMrjQ.js";import{S as G}from"./StatCards-DCHYFTA0.js";import{C as N}from"./Callout-Ddx612Hx.js";import{B as v}from"./Button-C1UBfgUD.js";import{E as O}from"./EmptyState-BcOEBujR.js";import{A as w}from"./AiSparkleIcon-V1x39sgN.js";import{A as Y}from"./ArrowRightIcon-CRISNE6U.js";import{B as X}from"./wizardLogic-DV961htX.js";import{D as J}from"./DataTable-CPR8XibB.js";import{R as Q}from"./RowMenu-AMwbdSlG.js";import{c as Z}from"./countLabel-LvdBppA9.js";import"./preload-helper-I4rgV-VL.js";import"./merge-WwJn_B7a.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./nav.module-CPSaaDRT.js";import"./AlertIcon-C51GveBo.js";import"./Toaster-APP9jgKp.js";import"./toastBus-9iO4cE5G.js";import"./SearchIcon-kBxLXvqZ.js";import"./EditableLabel-CxmEKnoO.js";import"./Field-D4EcR6vh.js";import"./InfoHint-Cheg-sCt.js";import"./form.module-DRFqX35K.js";import"./TextInput-DRsNYNVU.js";import"./Textarea-48tAO1Jv.js";import"./Modal-hoqpFf51.js";import"./useDescribe-CPeum1-R.js";import"./ChevronRightIcon-CBtU0BC-.js";import"./Checkbox-BlIsyWBV.js";import"./ChipsInput-C-TZBE_e.js";import"./ChevronDownIcon-DIcq07J4.js";import"./DateInput-DOKY-lW1.js";import"./SpinnerIcon-idox9C1S.js";import"./Switch-BAKt-sxX.js";import"./Drawer-CCrORZwR.js";import"./ConfirmDialog-EbcbS2sJ.js";import"./ClockIcon-Cx8ji1wJ.js";import"./PlusIcon-BoV2LIzJ.js";import"./TableSkeleton-Dl7JBm-h.js";import"./SearchSelect-9NMbOYPQ.js";import"./types-D4p4HVx-.js";import"./TasksIcon-DDMwJ8By.js";import"./Radio-Cqt3xPS2.js";import"./ArrowLeftIcon-CCOmEJEe.js";import"./CheckIcon-3lXzcY6G.js";import"./card.module-Dvebilko.js";import"./SearchInput-CaQKKPMx.js";import"./ChevronLeftIcon-CsJ3sA3N.js";const ee=["critical","required","recommended"];function ie({progress:s}){const o=B();if(s===null)return i.jsx("span",{style:{fontSize:12,color:l.warnDot,fontWeight:600},children:o("aiRegister.not_classified","Not classified")});if(s.total===0)return i.jsx("span",{style:{fontSize:12,fontWeight:600,color:l.successDot},children:o("aiRegister.report_gap_summary_no_open","✓ All obligations documented")});const d=ee.map(a=>({band:a,count:s[a]})).filter(a=>a.count>0),g=d.map(a=>`${a.count} ${W(a.band,o)}`).join(", "),m=[];return s.tasks_total>0&&m.push({text:o("aiRegister.progress_tasks_short",":done/:total tasks").replace(":done",String(s.tasks_done)).replace(":total",String(s.tasks_total)),complete:s.tasks_done===s.tasks_total}),s.docs_total>0&&m.push({text:o("aiRegister.progress_docs_short",":done/:total docs").replace(":done",String(s.docs_done)).replace(":total",String(s.docs_total)),complete:s.docs_done===s.docs_total}),i.jsx($,{content:g,children:i.jsxs("div",{className:h.gapBar,children:[i.jsx("div",{className:h.gapTrack,children:d.map(a=>i.jsx("div",{style:{flex:a.count,background:_[a.band].dot,height:"100%"}},a.band))}),i.jsx("div",{className:h.gapLegend,children:d.map(a=>i.jsxs("span",{className:h.gapLegendItem,style:{color:a.band==="critical"?_.critical.dot:_[a.band].color},children:[i.jsx("span",{className:h.gapLegendDot,style:{background:_[a.band].dot}}),a.count]},a.band))}),m.length>0?i.jsx("div",{className:h.gapRatios,children:m.map(a=>i.jsx("span",{style:{color:a.complete?l.successText:l.subtle,fontWeight:a.complete?600:400},children:a.text},a.text))}):null]})})}const te=/<a\s[^>]*href="([^"]+)"[^>]*>(.*?)<\/a>/i;function se(s){const o=te.exec(s),d=g=>g.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim();return o===null?{text:d(s),link:null}:{text:d(s.replace(o[0],"")),link:{href:o[1],label:d(o[2])}}}const re=3,ae=[{level:"minimal",key:"aiRegister.legend_minimal",fallback:"No specific obligations under the EU AI Act. Standard governance applies."},{level:"limited",key:"aiRegister.legend_limited",fallback:"Transparency obligations: users must know they are interacting with an AI system."},{level:"high_risk",key:"aiRegister.legend_high",fallback:"Conformity assessment, risk management, human oversight, logging, and post-market monitoring required."},{level:"unacceptable",key:"aiRegister.legend_unacceptable",fallback:"Prohibited under Article 5. The system must not be deployed."}];function k(s,o=null){return{assetId:s.id,aiDetailId:o,name:s.name,systemTypes:s.systemTypes,vendorName:s.vendor?.name??null,entity:s.entity,operatedBy:s.operatedBy}}function le({systems:s,stats:o,wizardCopy:d,hasNoAiSystems:g,highlightSystemId:m,classifyAssetId:a}){const t=B(),[f,b]=u.useState("all"),[j,x]=u.useState(null),L=u.useMemo(()=>f==="unclassified"?s.filter(e=>!e.classified):f==="high_risk"?s.filter(e=>e.riskLevel==="high_risk"||e.riskLevel==="unacceptable"):f==="dpia_required"?s.filter(e=>e.dpiaStatus==="required"):s,[s,f]);u.useEffect(()=>{if(a===null)return;const e=s.find(r=>r.id===a);e&&e.canClassify&&x(k(e))},[a]),u.useEffect(()=>{if(m===null)return;let e=0,r=0;const n=()=>{const A=document.querySelector(`[data-row-key="${m}"]`);if(A!==null){A.scrollIntoView({behavior:"smooth",block:"center"});return}++r<60&&(e=requestAnimationFrame(n))};return e=requestAnimationFrame(n),()=>cancelAnimationFrame(e)},[m]);const R=u.useMemo(()=>s.find(e=>!e.classified&&e.canClassify)??null,[s]),y=u.useMemo(()=>se(t("aiRegister.empty_state","No AI-flagged systems yet. Tag a system as AI-using on the Systems page to see it here.")),[t]),D=[{key:"all",value:o.total,label:t("aiRegister.metric_total","Total AI systems")},{key:"unclassified",value:o.unclassified,label:t("aiRegister.metric_unclassified","Unclassified")},{key:"high_risk",value:o.high_risk,label:t("aiRegister.metric_high_risk","High-risk")},{key:"dpia_required",value:o.dpia_required,label:t("aiRegister.metric_dpia_required","DPIA required")}],p=u.useMemo(()=>({name:t("assets.assets","AI system"),vendor:t("aiRegister.vendor","Vendor"),role:t("aiRegister.role","Role"),risk:t("aiRegister.risk_level","Risk level"),dpia:t("aiRegister.dpia_status","DPIA status"),compliance:t("aiRegister.progress","Progress"),classified:t("aiRegister.classified_date","Classified date")}),[t]),F=u.useMemo(()=>[{id:"name",accessorFn:e=>e.name,header:p.name,size:260,cell:e=>{const r=e.row.original;return i.jsxs("div",{children:[i.jsxs(T,{href:`/systems/${r.id}`,className:c.nameCell,onClick:n=>n.stopPropagation(),style:{textDecoration:"none"},children:[i.jsx(M,{name:r.name,size:"sm",color:H(r.name),decorative:!0}),i.jsx("span",{style:{fontWeight:700,fontSize:13,color:l.primary},children:r.name})]}),r.systemTypes.length>0?i.jsx("div",{className:c.nameCellTypes,children:r.systemTypes.slice(0,re).map(n=>i.jsx("span",{className:c.typeChip,children:n},n))}):null]})}},{id:"vendor",accessorFn:e=>
1e.vendor?.name??e.entity??"",header:p.vendor,size:170,cell:e=>{const r=e.row.original;return r.vendor!==null?i.jsxs(T,{href:`/vendors/${r.vendor.id}`,onClick:n=>n.stopPropagation(),style:{display:"inline-flex",alignItems:"center",gap:6,color:l.primary,textDecoration:"none"},children:[i.jsx(K,{vendor:r.vendor,size:16}),i.jsx("span",{style:{fontSize:12},children:r.vendor.name})]}):i.jsx("span",{style:{fontSize:12,color:l.neutralText},children:r.entity??"—"})}},{id:"role",accessorFn:e=>e.operatedBy===1?t("aiRegister.role_provider","Provider"):t("aiRegister.role_deployer","Deployer"),header:p.role,size:110,cell:e=>i.jsx(E,{operatedBy:e.row.original.operatedBy})},{id:"risk",accessorFn:e=>e.riskLevel,header:p.risk,size:130,sortingFn:(e,r)=>I[e.original.riskLevel]-I[r.original.riskLevel],cell:e=>i.jsx(z,{level:e.row.original.riskLevel})},{id:"dpia",accessorFn:e=>S(e.dpiaStatus,t),header:p.dpia,size:130,cell:e=>{const r=e.row.original.dpiaStatus,n=r==="required"?{color:l.warnText,bg:l.warnBg}:r==="linked"?{color:l.infoText,bg:l.infoBg}:r==="not_required"?{color:l.successText,bg:l.successBg}:{color:l.neutralText,bg:l.neutralBg};return i.jsx(U,{color:n.color,bg:n.bg,children:S(r,t)})}},{id:"compliance",accessorFn:e=>e.progress?.total??0,header:p.compliance,size:150,enableColumnFilter:!1,cell:e=>i.jsx(ie,{progress:e.row.original.progress})},{id:"classified",accessorFn:e=>e.classifiedDate??"",header:p.classified,size:120,cell:e=>{const r=e.row.original;return r.classifiedDate!==null?i.jsx("span",{style:{fontSize:12,color:l.muted},children:r.classifiedDate}):i.jsx("span",{style:{fontSize:12,color:l.warnDot,fontWeight:600},children:t("aiRegister.not_classified","Not classified")})}},{id:"actions",header:"",size:56,enableSorting:!1,enableColumnFilter:!1,enableHiding:!1,cell:e=>{const r=e.row.original,n=[];return r.classified&&n.push({label:t("aiRegister.view_details","View details"),onClick:()=>C.visit(`/ai-register/${r.id}`)}),r.canClassify&&n.push({label:r.classified?t("aiRegister.reclassify","Reclassify"):t("aiRegister.classify","Classify"),onClick:()=>x(k(r))}),n.length>0?i.jsx(Q,{items:n}):null}}],[p,t]);return i.jsxs("div",{children:[i.jsx("div",{className:c.pageHeader,children:i.jsxs("div",{children:[i.jsxs("div",{className:c.pageTitleRow,children:[i.jsx("span",{className:c.pageTitleIcon,children:i.jsx(w,{size:17,color:l.aiAccent})}),i.jsx("h1",{style:{fontSize:20,fontWeight:700,color:l.secondary,margin:0},children:t("aiRegister.ai_register","AI Register")})]}),i.jsx("p",{style:{fontSize:13,color:l.muted,margin:0},children:t("aiRegister.ai_register_description","EU AI Act — inventory of AI systems used across the organisation")})]})}),i.jsx("div",{style:{marginBottom:18},children:i.jsx(G,{items:D,active:f,onChange:e=>b(e),resetKey:"all"})}),g?i.jsxs(N,{tone:"info",icon:i.jsx(w,{size:16,color:l.infoText}),actionPlacement:"inline",action:i.jsx(v,{href:"/systems",inertia:!0,children:t("aiRegister.go_to_
1systems","Go to Systems")}),children:[y.text,y.link!==null?i.jsxs(i.Fragment,{children:[" ",i.jsx("a",{href:y.link.href,target:"_blank",rel:"noopener noreferrer",style:{color:"inherit",fontWeight:600},children:y.link.label})]}):null]}):null,o.unclassified>0?i.jsx("div",{style:{marginBottom:18},children:i.jsx(N,{tone:"warn",role:"status",icon:i.jsx(X,{size:16,color:l.warnText}),title:`${Z(t,o.unclassified,"aiRegister.ai_system_single",":count AI system","aiRegister.ai_system_plural",":count AI systems")} ${t("aiRegister.banner_not_classified","not yet classified")}`,actionPlacement:"inline",action:R!==null?i.jsxs(v,{variant:"warning",onClick:()=>x(k(R)),children:[t("aiRegister.classify","Classify")," “",R.name,"” ",i.jsx(Y,{size:13})]}):void 0,children:t("aiRegister.banner_description","Complete the AI Act risk classification to understand your obligations.")})}):null,g?null:i.jsx(J,{data:L,columns:F,columnLabels:p,pinnedLeft:["name"],pinnedRight:["actions"],getRowId:e=>String(e.id),highlightRowKey:m,onRowClick:e=>{e.classified?C.visit(`/ai-register/${e.id}`):e.canClassify&&x(k(e))},countNoun:t("aiRegister.ai_system_single","AI system"),countNounPlural:t("aiRegister.ai_system_plural","AI systems"),searchable:!0,columnsMenu:!0,exportable:!0,exportFileName:"ai_register",exportServer:[{label:t("aiRegister.export_full_report","Full report"),href:"/ai-register/export?mode=full",newTab:!0},{label:t("aiRegister.export_executive_summary","Executive summary"),href:"/ai-register/export?mode=summary",newTab:!0}],reorderable:!0,resizable:!0,persistKey:"DataTables_ai_register_datatable",pageSize:25,maxHeight:"calc(100vh - 340px)",emptyState:({filtered:e,clearFilters:r})=>i.jsx(O,{title:t("aiRegister.no_results","No AI systems match the current filter."),action:e?i.jsx(v,{size:"sm",variant:"secondary",onClick:r,children:t("general.clear_filters","Clear filters")}):f!=="all"?i.jsx(v,{size:"sm",variant:"secondary",onClick:()=>b("all"),children:t("aiRegister.metric_total","Total AI systems")}):void 0})}),g?null:i.jsxs(V,{style:{padding:"16px 18px",marginTop:18},children:[i.jsx("div",{className:c.sectionLabel,style:{marginBottom:12},children:t("aiRegister.legend_heading","EU AI Act risk levels")}),i.jsx("dl",{className:c.legendGrid,children:ae.map(e=>i.jsxs("div",{className:c.legendItem,children:[i.jsx("dt",{children:i.jsx(z,{level:e.level})}),i.jsx("dd",{className:c.legendText,children:t(e.key,e.fallback)})]},e.level))})]}),j!==null?i.jsx(q,{target:j,copy:d,onClose:()=>x(null)},j.assetId):null]})}le.layout=s=>i.jsx(P,{children:s});export{le as default};

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.