/* global React */
// Slide-over: Nueva Institución (HU.4.3)
// Súper Admin · CGR — alta de institución reportante en el catálogo
const { useState: useStateNI } = React;
const TIPOS_INST = [
{ id: 'min', label: 'Ministerio', desc: 'Carteras del Poder Ejecutivo' },
{ id: 'sec', label: 'Secretaría Ejecutiva', desc: 'Reporta directamente a la Presidencia' },
{ id: 'ctrl', label: 'Órgano de Control', desc: 'CGR, Auditoría General, etc.' },
{ id: 'extra',label: 'Órgano Extra-Poder', desc: 'Ministerio Público, Defensoría, etc.' },
{ id: 'sub', label: 'Subsecretaría', desc: 'Dependiente de un ministerio' },
{ id: 'dir', label: 'Dirección', desc: 'Dirección Nacional autónoma' },
{ id: 'esp', label: 'Unidad Especializada', desc: 'Ej. SEPRELAD, UIF' },
{ id: 'pod', label: 'Poder del Estado', desc: 'Legislativo, Judicial' },
];
function NuevaInstitucionPanel({ open, onClose, onSave }) {
const I = window.Icons;
const FormSection = window.FormSection;
const Field = window.Field;
const [step, setStep] = useStateNI(1);
const [form, setForm] = useStateNI({
nombre: '',
sigla: '',
tipo: 'Ministerio',
descripcion: '',
dominio: '',
direccion: '',
ciudad: 'Asunción',
web: '',
admin_nombre: '',
admin_email: '',
admin_telefono: '',
admin_cargo: '',
canalAlerta: ['email', 'bandeja'],
estadoInicial: 'activo',
notas: '',
});
const update = (k, v) => setForm(f => ({ ...f, [k]: v }));
const toggleCanal = (k) => setForm(f => ({
...f, canalAlerta: f.canalAlerta.includes(k)
? f.canalAlerta.filter(x => x !== k)
: [...f.canalAlerta, k],
}));
if (!open) return null;
const steps = [
{ n: 1, label: 'Identificación' },
{ n: 2, label: 'Contacto principal' },
{ n: 3, label: 'Notificaciones y estado' },
{ n: 4, label: 'Revisión y alta' },
];
const progress = (step / steps.length) * 100;
const slugId = (form.sigla || '').toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
return (
);
}
Object.assign(window, { NuevaInstitucionPanel });