'use client' import React from 'react' const NORMS = [ { value: 'ISO12100', label: 'ISO 12100 (Maschinensicherheit)' }, { value: 'ENISO13849', label: 'EN ISO 13849 (Sicherheitsfunktionen)' }, { value: 'IEC61508', label: 'IEC 61508 (Funktionale Sicherheit)' }, { value: 'IEC62443', label: 'IEC 62443 (Industrielle Cybersecurity)' }, { value: 'ISO27001', label: 'ISO 27001 (Informationssicherheit)' }, { value: 'ISO27002', label: 'ISO 27002 (Security Controls)' }, { value: 'EN61326', label: 'EN 61326 (EMV)' }, { value: 'EN62368', label: 'EN 62368 (Audio/Video/IT-Sicherheit)' }, { value: 'IEC60204', label: 'IEC 60204 (Elektrische Ausruestung)' }, { value: 'ISO13485', label: 'ISO 13485 (Medizinprodukte QM)' }, { value: 'ISO14971', label: 'ISO 14971 (Risikomanagement Medizin)' }, { value: 'IEC62304', label: 'IEC 62304 (Medizin-Software Lifecycle)' }, { value: 'ISO9001', label: 'ISO 9001 (Qualitaetsmanagement)' }, { value: 'ISO22301', label: 'ISO 22301 (Business Continuity)' }, { value: 'PCIDSS', label: 'PCI DSS (Zahlungssicherheit)' }, { value: 'EN50581', label: 'EN 50581 (RoHS/REACH)' }, { value: 'ASPICE', label: 'ASPICE (Automotive Software)' }, ] interface IstData { applied_norms: string[] has_risk_assessment: boolean has_technical_file: boolean has_operating_manual: boolean has_sbom: boolean has_vuln_management: boolean has_update_mechanism: boolean has_incident_response: boolean has_supply_chain_mgmt: boolean ce_marking_since: string product_age: string } interface Props { data: IstData onChange: (data: IstData) => void } export function IstAssessment({ data, onChange }: Props) { const update = (field: string, value: unknown) => { onChange({ ...data, [field]: value }) } const toggleNorm = (norm: string) => { const norms = data.applied_norms.includes(norm) ? data.applied_norms.filter(n => n !== norm) : [...data.applied_norms, norm] update('applied_norms', norms) } return (

Geben Sie an was Sie bereits haben. Je mehr wir wissen, desto praeziser ist die Gap-Analyse. Controls die bereits erfuellt sind werden automatisch als "erledigt" markiert.

{/* CE-Kennzeichnung */}

CE-Kennzeichnung

update('ce_marking_since', e.target.value)} placeholder="z.B. 2016" className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm" />
{/* Angewandte Normen */}

Angewandte Normen

{NORMS.map(n => ( ))}
{/* Bestehende Dokumentation */}

Bestehende Dokumentation

{[ { field: 'has_risk_assessment', label: 'Risikobeurteilung vorhanden' }, { field: 'has_technical_file', label: 'Technische Dokumentation vorhanden' }, { field: 'has_operating_manual', label: 'Betriebsanleitung vorhanden' }, { field: 'has_sbom', label: 'SBOM (Software Bill of Materials)' }, ].map(item => ( ))}
{/* Bestehende Prozesse */}

Bestehende Prozesse

{[ { field: 'has_vuln_management', label: 'Schwachstellenmanagement' }, { field: 'has_update_mechanism', label: 'Software-Update-Mechanismus' }, { field: 'has_incident_response', label: 'Incident Response Prozess' }, { field: 'has_supply_chain_mgmt', label: 'Lieferketten-Management' }, ].map(item => ( ))}
) }