{"version":3,"sources":["app.js","cropper.js","modernizr.js"],"names":["ejecutarSeguro","fn","args","error","console","name","syncAdminHeaderHeight","root","document","documentElement","header","querySelector","actualizarAltura","altura","offsetHeight","style","setProperty","window","addEventListener","ResizeObserver","observe","skeletonPagina","skeleton","tiempoInicio","performance","now","cerrando","cerrarSkeleton","espera","Math","max","setTimeout","classList","add","body","remove","readyState","once","listaEventos","loginPopup","adminPartialNavigation","elegirRama","scrollFicha","busquedaMiembros","selectorCampaEspec","scrollNav","tableSearch","tableSorted","cropperImage","cropperImagePortada","sideBar","indicadorBreakpointSidebar","adminSidebarMobile","reubicarAccionesHeaderAdmin","viewAlbumFotos","viewPortadaAlbum","viewFotosAlbumPublic","seePasswordAdmin","seePasswordLogin","selectorMiembrosVinculados","campamentosPanel","calendarioPanel","integracionesPanel","nominaDropzone","permisosCalendario","importarRamaCampamentos","crearMiembroPasos","customSelectsCrearMiembro","customDatePickersCrearMiembro","restringirDniCrearMiembro","filtrosVistaMiembros","seleccionMultipleUsuarios","paseRamaPopup","ajusteRamaPage","fichaEditable","confirmarEliminarMiembro","administrarUsuariosPanel","notificacionesAdmin","volverInteligente","configuracionRifasPanel","cropperImagenPremios","consultaVentasRifasPanel","seleccionNumerosRifas","menuContextualNumerosRifas","gruposTalonarioNumerosRifas","asignarNumeroFisicoPanel","asignarCompradorNumeroPanel","confirmarEliminarReservaPanel","accesosDirectosPersonalizables","TIPOS_NOTIFICACION","exito","success","warning","info","NOTIFICACION_DURACION","NOTIFICACION_SALIDA","normalizarTipoNotificacion","tipo","iconoNotificacion","prepararContenidoNotificacion","alerta","mensaje","setAttribute","innerHTML","texto","createElement","textContent","appendChild","mostrarNotificacion","index","tipoNormalizado","className","display","opacity","bottom","requestAnimationFrame","Array","from","querySelectorAll","forEach","trim","contains","popup","obtenerContextoPopup","popupActual","form","inputNombre","titulo","confirmar","cerrarPopup","contexto","removeAttribute","value","eventosGlobales","event","boton","target","closest","preventDefault","id","dataset","miembroId","nombre","miembroNombre","tieneRama","miembroTieneRama","encodeURIComponent","toggle","key","eliminarMiembroPopupBound","fallback","volverFallback","getAttribute","referrer","referrerInterno","URL","origin","location","history","length","back","customDatePickers","inputDni","limpiarValor","valorLimpio","replace","configurarValidacionDniEdicion","validacionDniEdicion","temporizador","solicitudActual","ultimoDni","ultimoResultado","limpiarDni","limpio","mostrarEstado","async","validarDni","dni","solicitud","datos","URLSearchParams","set","respuesta","fetch","method","headers","Content-Type","toString","credentials","json","ok","Error","existe","message","insertAdjacentElement","clearTimeout","validarDniUnico","pasos","indicadores","botonAnterior","botonSiguiente","botonCrear","progresoFill","pasoActual","ultimaValidacionDni","ultimoResultadoDni","actualizarEstadoDniDuplicado","duplicado","notificarCrearMiembro","crearMiembroAlerta","obtenerAlertaCrearMiembro","validarDniAntesDeAvanzar","focus","select","cambiarPaso","paso","min","panel","activo","Number","crearPaso","indicador","pasoIndicador","crearPasoIndicador","avance","width","esTextarea","HTMLTextAreaElement","esBotonSubmit","HTMLButtonElement","HTMLInputElement","type","click","pasoDestino","inputs","meses","dias","dateFromValue","partes","split","map","some","isNaN","Date","valueFromDate","date","getFullYear","String","getMonth","padStart","getDate","labelFromValue","cerrarDatePicker","datePicker","removeProperty","limpiarPosicionPanel","input","customDate","wrapper","icono","viewDate","yearPageStart","sincronizarTextoFecha","fechaSeleccionada","renderCalendar","year","month","selected","prev","title","monthButton","yearButton","stopPropagation","spacer","grid","mes","button","renderMonthPicker","renderYearPicker","prevYears","nextYears","offset","next","weekdays","dia","item","startOffset","getDay","daysInMonth","i","empty","day","dayButton","thisDate","dispatchEvent","Event","bubbles","acciones","borrar","estabaAbierto","abierto","innerWidth","clientX","clientY","panelWidth","offsetWidth","panelHeight","maxLeft","maxTop","innerHeight","desiredLeft","desiredTop","leftIfBeforeCursor","topIfAboveCursor","fallbackTop","left","top","posicionarPanelDesdeCursor","customSelects","selectores","selector","marcarNumerosComoPago","sorteoId","entradas","nuevoPagado","numeros","entrada","numero","filter","Boolean","JSON","stringify","Numeros","pagado","catch","actualizados","omitidos","seSacoAlgunoSinFila","fueActualizado","includes","fueOmitido","fila","seleccionNumerosPersistente","delete","badge","checkbox","checked","renderizarBarraSeleccion","entradasSeleccionParaBarra","alert","recargarVistaAdmin","eliminarReservaNumeros","filas","numerosActualizados","isArray","numeroDatos","find","f","Numero","actualizarFilaNumeroFisico","Map","tabla","entries","estado","reservado","fisico","seleccionNumerosInit","seleccionarTodos","checkboxes","esVirtual","tipoNumero","sincronizarSeleccion","actualizarSeleccionGeneral","seleccionados","indeterminate","clear","has","marcar","ultimoCheckboxClickeado","shiftKey","indiceAnterior","indexOf","indiceActual","inicio","fin","popupAsignarAbierto","menuContextualAbierto","botonVaciarSeleccion","botonCopiarNumeros","botonAsignarCompradorMasivo","entradasSeleccionActual","accionMasivaDePago","filtro","pagoMasivoInit","textoOriginal","disabled","vaciarSeleccionInit","copiarNumerosInit","copiarTextoAlPortapapeles","slice","sort","a","b","join","asignarCompradorMasivoInit","CustomEvent","detail","botonMarcarPagadoMasivo","botonMarcarReservadoMasivo","botonToggleAcciones","menuAccionesLista","toggleAccionesInit","abrir","hidden","cerrarMenuAccionesMasivas","menuAccionesMasivasGlobal","chipsSeleccionArrastrables","contador","chipsContenedor","botonAsignar","botonMarcarPagado","botonMarcarReservado","unicas","lista","values","sinSeleccion","botonCopiar","botonVaciar","replaceChildren","placeholder","claseEstado","chip","quitarNumeroDeSeleccion","actualizarChipsDesplazables","disponibles","reservadosSinPagar","reservadosPagados","textoToggleAcciones","itemsVisibles","init","menu","contenedor","arrastreInit","pointerId","inicioX","scrollInicial","arrastrando","descartarClick","pointerType","scrollLeft","desplazamiento","abs","setPointerCapture","terminarArrastre","scrollWidth","clientWidth","navigator","clipboard","writeText","then","copiadoOriginal","copiadoTitle","copiadoAria","_copiadoTimeout","prompt","gruposTalonarioInit","filasTalonario","grupos","filaTalonario","numeroTalonario","talonario","filasHijas","checkboxGrupo","checkboxesHijos","marcarGrupo","grupo","expandir","ultimoGrupoClickeado","actualizarCheckboxGrupo","tildados","findIndex","g","otroGrupo","cancelable","reload","RES","Pagado","celdaComprador","celdaContacto","celdaVendedor","esFisico","nombreCompleto","Apellido","Nombre","badgeAsignado","Contacto","Vendedor","asignarFisico","menuActual","cerrarMenu","construirOpciones","soloSeleccionMultiple","opciones","puedeCambiarPago","puedeDesmarcarPagos","textoBase","seleccionadas","fisicoStr","pagadoStr","filasSeleccionadasEnTabla","filasEnMismoEstadoDePagoSeleccionadas","enSeleccionMultiple","push","accion","aplicarCambioPago","aplicarCambioPagoMasivo","seleccionadasEditar","enSeleccionMultipleEditar","puedeEliminarReservas","seleccionadasEliminar","enSeleccionMultipleEliminar","textoSingular","textoPlural","peligro","filasVirtualesDisponiblesSeleccionadas","evento","filaSeleccionada","crearMenu","x","y","op","anchoMenu","altoMenu","filaHija","representativa","opcionesTalonario","textoNumeros","n","crearBuscadorVendedor","consultaActual","el","estadoVendedor","limpiarEstado","listaVendedor","manejarInput","termino","inputVendedorDni","esDni","test","consultaId","inputSorteoId","Nombre_Apellido","validarPorDni","vendedores","vendedor","nombre_completo","inputVendedor","buscarPorNombre","filasActuales","buscadorVendedor","elementos","numerosTexto","botonSubmit","limpiarError","mostrarError","abrirPopup","prepararPopup","reset","abrirParaAsignar","abrirParaEditar","Set","vendedorActual","size","VendedorDni","entradasActuales","numeroTexto","inputApellido","inputContacto","inputPagado","sorteoIdExplicito","primeraFila","e","numerosProcesados","sorteoIdActual","detalle","datoPerdido","campoSelect","devolverCapa","campo","customSelect","nextElementSibling","marcarSeleccionActual","valorActual","li","opcionSeleccionada","options","selectedIndex","color","clase","startsWith","actualizarTexto","opcion","traerAlFrente","activarAutocompletadoRamas","buscarCampo","nombres","dispararActualizacion","origen","destino","campoOrigen","campoDestino","sincronizarDestino","valorOrigen","origenActual","autocompletadoDesde","valorAutocompletado","autocompletadoValor","destinoVacio","siguiendoMismoOrigen","cambio","limpiarSeguimientoManual","nombreOrigen","campoRelacionado","valorRelacionado","autocompleteRamaBound","autocompleteRamaEnabled","vinculadosBound","detalles","arrastrarConMouse","seArrastro","miembro","ajustarTitulosVinculados","fotosVinculadosFadeIn","vinculadosResizeBound","ajustarTituloAjusteRama","elemento","arrastreBound","moverArrastre","delta","pageX","removeEventListener","foto","complete","ajustarTitulosEnUnaLinea","titulos","minFontSize","parseFloat","getComputedStyle","fontSize","anchoDisponible","fontSizeBase","minimo","maximo","mejorAjuste","prueba","eye","newPass","oldPass","typeNew","typeOld","passwordInput","hamburguesa","navegacionResponsive","shell","content","sidebar","partialCache","partialRequests","prefijosParcialesExcluidos","normalizeAdminPath","sufijosAccionNoNavegable","navegando","obtenerRutaActualAdmin","rutaActual","adminCurrentPath","pathname","search","urlActual","permitirNavegacionParcial","url","path","sufijo","toLowerCase","endsWith","linkEsAccionNoNavegable","prefijo","rutaAdminParcialBloqueada","esVistaCacheable","leerVistaCacheada","ahora","entry","timestamp","limpiarCacheExpirada","get","obtenerHtmlParcial","usarCache","urlVisible","cache","estadoSesion","redirected","html","urlFinal","redireccionCompleta","finalPath","claveSolicitud","searchParams","X-Admin-Partial","status","text","keyMasVieja","keys","guardarVistaCacheada","programarPrefetchCalendario","mainCalendario","links","link","href","cargarVista","forzar","rutaDestino","syncAdminSidebarState","estadoPrevio","scrollY","talonariosAbiertos","numerosTildados","nuevoMain","pushState","adminPartial","hash","CSS","escape","scrollTo","behavior","preventScroll","perteneceASidebar","perteneceASubmenuSidebar","perteneceAContenido","adminNoPartial","defaultPrevented","hasAttribute","metaKey","ctrlKey","altKey","esClickNavegable","toUpperCase","action","FormData","valor","state","replaceState","actual","paneles","resumenAsignacion","campamentosResumenInit","campoMiembros","campoVerano","campoInvierno","totalMiembros","totalVerano","totalInvierno","contarIds","items","actualizarResumenAsignacion","campamentosInicializado","inputBusqueda","botonLimpiar","selectAnio","botonesTipo","resultadoTotal","badgeVerano","badgeInvierno","totalVisible","veranoVisible","inviernoVisible","estadoGlobal","bloques","vaciosPorBloque","popupTitulo","popupSubtitulo","popupLista","popupCrear","storageKey","campamentosStorageKey","filtroTipo","actualizarBotonesTipo","filtroCampamentoTipo","aplicarFiltros","busqueda","anio","visibles","coincideBusqueda","coincideAnio","coincideTipo","visible","total","totalVer","totalInv","actualizarContadores","visiblesPorTipo","verano","invierno","undefined","bloque","campamentoBloque","campamentoVacioFiltro","actualizarEstados","localStorage","setItem","warn","guardarEstado","integrantes","parse","campamentoTitulo","integrante","tieneImagen","imagen","rama","claseRama","ramaClase","renderizarIntegrantes","abrirPopupCrear","guardado","getItem","leerEstadoGuardado","botonRelaciones","autoOpen","campamentosPopupBound","campamentosCrearPopupBound","cerrarRelacionesPopup","cerrarCrearPopup","horarios","calendarioToggleBound","actualizar","required","MESES_LARGO","DIAS_LARGO","consultaPantallaChica","matchMedia","consultaDetalleFlotante","leerEvento","fechaDesdeClave","clave","abrirPopupCrearEvento","calendarioInicializado","puedeGestionar","calendarioPuedeGestionar","hoy","calendarioHoy","botonesVista","panelesVista","celdas","celdasPorDia","celda","diasAgenda","agendaVacia","itemsProximos","proximosSinResultados","tira","diasTira","diaSemana","diaTitulo","diaHoy","diaLista","diaVacio","ocultos","diaSeleccionado","calendarioDiaInicial","textoBusqueda","coincide","crearTarjetaDia","vistaClases","eventoChip","vistaEstilo","barra","horario","meta","linea","append","renderizarDia","fecha","otra","seleccionada","calendarioTiraDia","getTime","chips","mas","extra","diasAgendaVisibles","proximosVisibles","filtroEventoTipo","desplazarAgendaA","calendarioVistaActiva","agendaDia","scrollIntoView","block","centrarTira","otro","offsetParent","offsetLeft","seleccionarDia","cerrarDetalle","mostrarVista","vista","guardar","calendarioVista","vistaPanel","calendarioVistaPanel","abrirDetalle","pillTipo","tipoLabel","partesInicio","fechaInicio","inicioTexto","parseInt","fechaFin","partesFin","formatearFechaEvento","ubicacion","ramaLabel","descripcion","esSoloLectura","esGoogle","googleId","notaSoloLectura","destinoEvento","finEvento","incluyeSeleccionado","fechaVolver","matches","volver","popupCrearActual","calendarioCerrarDetalle","inputFecha","vistaInicial","checkboxTodoElDia","wrapperHorarios","actualizarHorarios","cerrarPopupCrearEvento","calendarioCrearPopupBound","integracionesInicializado","botones","secciones","tabBoton","seccion","tabPanel","mostrarTab","permisosCalendarioInicializado","buscador","botonesFiltro","botonSolo","contenedorChips","cambios","vacio","descartar","filtroRango","soloConAcceso","checkDe","conAcceso","pendientes","check","acceso","rango","tieneAcceso","cambiado","defaultChecked","esAdmin","avatar","iniciales","siempre","quitar","crearChip","permisosCalendarioFiltro","zona","nominaDropzoneInicializado","nombreArchivo","textoSinArchivo","mostrarArchivoElegido","files","archivos","dataTransfer","normalized","getAdminHrefPath","element","isAdminSectionMatch","currentPath","targetPath","contLinks","bestMatch","contLink","iconLink","directHrefPath","subLinks","matchedSubLink","subLink","score","subLinksList","arrowColl","scrollHeight","botonesAbrir","botonesCerrar","focoInicial","dialogo","loginOpenInitial","ramas","campa","miembrosCachePromise","mostrarMiembros","resultado","response","data","inicializarBuscadorMiembros","cajaBusqueda","miembros","_buscadorMiembros","refrescar","vinculo","contenedorRes","resultadoBusqueda","resultadosSeleccionados","parentElement","listaSeleccionados","estadoVacio","sincronizarSeleccionados","actualizarDesdeCampo","splice","renderSeleccionados","agregarSeleccion","idMiembro","unshift","idSeleccionado","p","indice","quitarSeleccion","quitarAcentos","coincidencias","agregarMiembro","tieneMiembro","importarRamaInit","botonAbrir","botonConfirmar","selectRama","resumen","listado","miembrosFiltrados","cargandoPopup","frameDensidad","actualizarDensidadPanel","cancelAnimationFrame","alturaPanel","getBoundingClientRect","height","alturaListado","proporcionListado","escapeHtml","div","corregirTextosPopup","textoVacio","resetearLista","cerrar","actualizarResumen","renderVacio","renderLista","ramaSeleccionada","ramaId","educadorA","educador","educadorB","apellidoA","apellido","apellidoB","nombreA","nombrePropio","nombreB","comparacionApellido","localeCompare","sensitivity","yaSeleccionado","esEducador","wrapperExistente","rehidratarSelectPopup","asegurarDatosPopup","botonSelect","botonCerrarActual","cajasBusqueda","cosas","campamentos","lista_seleccionados","selec","enlace","seccionDividida","attributes","searchBox","tableRows","row","tableData","searchData","cadena","acentos","á","é","í","ó","ú","Á","É","Í","Ó","Ú","letra","posicionarIndicadoresFiltros","raiz","instantaneo","track","transition","transform","offsetTop","configurarAccionesMiembrosResponsive","compactacionInicializada","encabezado","framePendiente","ultimoAncho","ocupaMasDeUnaFila","tolerancia","children","programarActualizacion","anchoActual","round","contentRect","fonts","ready","filtrosInicializados","limpiar","filtrosRama","filtrosTipo","botonSinRama","filtroRama","toggleSinRama","sinResultados","filtrosStorageKey","ramaActiva","tipoActivo","mostrarSinRama","actualizarDisponibilidadSinRama","actualizarFiltroActivo","normalizar","normalize","obtenerValorFiltro","atributo","tagName","coincideRama","coincideSinRama","sessionStorage","sinRama","guardarFiltros","filtrosGuardados","leerFiltrosGuardados","existeOpcionFiltro","usuariosSeleccionadosMasivo","seleccionMultipleInicializada","checkTodos","botonesAccion","checksVisibles","actualizarEstadoSeleccion","checks","marcados","paseRamaInit","ramasSiguientes","manada","unidad","caminante","rover","miembroRama","ramaNombre","miembroRamaNombre","nacimiento","miembroNacimiento","miembroImagen","miembroTipo","escaparHtml","fechaComoNumero","POSITIVE_INFINITY","hayRamaSiguiente","actualizarBotonAccion","ramaActual","ramaSiguiente","contenedorDestino","visualDestino","claseDestino","Unidad","Caminantes","Rovers","Educadores","renderDestino","comparacionFecha","procesandoPase","cantidad","popups","paginaMasiva","buscarPopup","actualizarSelect","poblarPopupAccionMasiva","nombrePopup","atributoIds","atributoResumen","ids","inputIds","contenedorMasivo","generarPasswordRapida","caracteres","password","charAt","floor","random","obtenerFilasMasivas","limpiarErrorFilaMasiva","usuarioMasivoError","nombreCampo","errores","errorCampo","control","quedanErrores","obtenerIndiceActivoMasivo","usuarioMasivoActivo","fijarIndiceActivoMasivo","indiceNormalizado","actualizarNavegacionMasiva","navegacion","editorTitulo","itemsExistentes","completa","tieneError","actualizarEstadoFilaMasiva","vinculos","contarVinculosFilaMasiva","usuarioMasivoNav","estadoTexto","filaActiva","actualizarResumenMasivo","agregarFilaUsuarioMasivo","template","token","firstElementChild","renumerarFilasMasivas","arrastreUsuarioMasivo","moverFilaUsuarioMasivo","indiceOrigen","indiceDestino","filaMovida","destinoAjustado","suprimirClickTrasArrastreMasivo","moverArrastreUsuarioMasivo","eje","puntoInicial","movioSuficiente","finalizarArrastreUsuarioMasivo","indiceInicial","puntoActual","hermanos","rect","right","capture","usuarioPopupOpen","inputId","inputPassword","inputRango","inputRama","inputVinculados","usuarioId","usuarioNombre","usuarioRango","usuarioRama","usuarioVinculados","poblarPopupEditar","poblarPopupEliminar","primerCampo","selectorNavegacion","inline","textarea","asa","flexDirection","iniciarArrastreUsuarioMasivo","botonNav","nuevoIndice","nuevoBoton","popupVisible","usuariosPopupBound","filasMasivas","primerError","primerControlInvalido","rifaInit","selectTipo","gruposNumeros","ayudaRango","inputInicial","inputFisicos","inputVirtuales","actualizarAyudaRango","fisicos","virtuales","finFisicos","inicioVirtuales","finVirtuales","actualizarCamposPorTipo","grupoNumeros","plantilla","botonAgregar","estadoOrden","botonAbrirEliminar","popupEliminar","toggleRifaActiva","textoEstadoRifa","focoAntesDeEliminar","filaArrastrada","punteroArrastre","puntoInicialArrastreY","topInicialArrastre","filasPremios","renumerarPremios","etiqueta","anunciarOrden","posicion","capturarPosiciones","posiciones","reproducirFlip","posicionesAntes","antes","diferencia","candidatas","siguiente","lastElementChild","insertBefore","reordenarSegunPuntero","naturalAhora","transformPrevio","posicionNaturalY","deseadoAhora","finalizarArrastre","activarFila","botonQuitar","direccion","moverPremioConTeclado","passive","cloneNode","cerrarPopupEliminar","activeElement","modal","listaPremios","recorteListo","modalContainer","inputArchivo","imgCropper","editor","seleccionarBtn","editarActualBtn","nombreArchivoEl","estadoEl","previewSelector","filtros","volverBtn","botonGuardar","botonCerrar","cropper","filaActual","archivoActual","previewUrl","pasoItem","pasoFotoPremio","filtroActual","valores","brightness","saturate","contrast","filtroFotoPremio","aplicarFiltro","cropperCanvas","cropperView","sampleImg","resetFiltros","actualizarBotonEditarActual","iniciarCropperDesdeSrc","src","destroy","Cropper","aspectRatio","preview","zoomable","viewMode","responsive","dragMode","[object Object]","resetSelector","revokeObjectURL","cerrarModal","seleccionarArchivo","file","listExten","extension","pop","extensionValida","createObjectURL","previewFila","nombreBase","canvas","getCroppedCanvas","imageSmoothingQuality","getContext","Image","dataOriginal","toDataURL","onload","clearRect","drawImage","toBlob","blob","genAleatoryNumeber","archivoRecortado","File","listaArchivos","DataTransfer","inputImagenFila","pagina","funciones","formaciones","label","limpiarFecha","crearOptions","valorSeleccionado","valueKey","labelKey","guardarMiembro","fotoAjuste","localidad","funcion","funcionNombre","formacion","totemN","totemY","promesaManada","investidura","promesaScout","ingresoGrupo","ingresoManada","paseManada","ingresoUnidad","paseUnidad","ingresoCaminante","paseCaminante","ingresoRover","paseRover","actualizarMiembroLocal","renderPanel","filtrarMiembros","ramaOptions","funcionOptions","formacionOptions","campos","actualizarCampo","modificado","valorOriginal","controlVisible","activarMarcadoresCambios","botonDeshacer","primerVisible","ficha","overlayGuardado","campamentosCorto","campamentosLargo","opcionesSelect","seleccionado","escapeFicha","activarEliminadoresCampamento","botonEliminar","listenerActivo","campamento","eliminado","actualizarVacioCampamentos","obtenerOrdenCampamentoDesdeFecha","match","posibleAnio","activarPopupCampamentos","listaPopup","tituloPopup","subtituloPopup","botonEspecial","contenedorBusquedaEspecial","inputBusquedaEspecial","resultadosBusquedaEspecial","botonesAgregar","obtenerAnioDesdeFecha","matchAnioCompleto","obtenerAnioIngresoGrupo","inputIngreso","campoIngreso","campamentosVisiblesIds","campamentoId","renderCampamentosEspeciales","tipoCampamento","idsVisibles","campamentosEspecialesDisponibles","lugar","agregarCampamento","botonOrigen","itemExistente","insertAdjacentHTML","campamento_id","crearCampamentoItem","fechaAElemento","fechaBElemento","fechaA","campamentoFecha","fechaB","lugarAElemento","lugarBElemento","lugarA","lugarB","ordenarListaCampamentos","anioIngreso","idCampamento","anioCampamento","campamentosDisponibles","etiquetaTipo","botonAgregarPopup","popupAgregarCampamento","campamentosVisiblesPorTipo","datosFichaEditada","controles","inputImagen","activarEdicion","editando","celdaOriginal","outerHTML","editable","ingresoName","paseName","ingresoValue","paseValue","inputType","claseFechaRama","estiloAncho","anchoTexto","ceil","desactivarEdicion","campamentosEliminados","campamentosAgregados","botonAccionesToggle","contenedorAcciones","cerrarMenuAcciones","botonMenu","editarInicial","tableHeads","head","onclick","sortTable","column","sorted_row","changeFichaPagosInfo","imgList","completarFichaPagos","imgPerfil","rama_miembro","deudas_total","deudas_pagado","afiliacion_pagado","campa_invierno","campa_verano","distrital_pagado","zonal_pagado","insignias_pagado","rifas_pagado","eventos_pagado","solidaria_pagado","fotoPerfil","cont_meses","span_valor_cuota","capitalizar","Rama","DeudaTot","DeudaPag","Afiliacion","CampIPago","CampVPagoD","Insignias","Rifas","Eventos","Solidaria","valorCuota","monto","dicKey","porc","inputFile","closedBtn","saveBtn","volverFotoBtn","contSample","inputCutImage","seleccionarFotoFicha","editarFotoActual","selectorFotoFicha","nombreArchivoFotoFicha","estadoFotoFicha","previewFotoFicha","editorFotoFicha","pasosFotoFicha","filtrosFotoFicha","esModalFicha","archivoFotoFicha","nombreFotoActual","previewUrlFotoFicha","cruzBorrar","cutImage","actualizarReferenciasFoto","panelAjuste","abrirModal","guardarFichaActual","botonGuardarAjuste","botonGuardarFicha","esFotoPorDefecto","tieneFotoActual","cambiarPasoFoto","pasoFoto","filtroFotoActual","filtroFoto","aplicarFiltroFoto","resetFiltrosFoto","seleccionarArchivoFicha","resetFotoFichaSelector","deleleInputPhoto","esFichaEditable","esAjusteRama","deleteFile","prevImg","log","decodeURIComponent","nombreDesdeSrc","extensiones","substring","lastIndexOf","imagenUrl","fileName","formData","subirFotoFicha","canva","arrow","navbar","desktopSidebar","contSelect","submenuCompacto","submenuCompactoOrigen","idAsentarSidebar","SIDEBAR_MS_TRANSICION","cerrarSubmenuCompacto","linkOrigen","obtenerPreferenciaCompacta","aplicarEstadoCompacto","comprimida","persistir","estadoAplicable","icon","actualizarControlCompacto","actualizarEtiquetasLinksCompactos","unCollapseLinks","guardarPreferenciaCompacta","actualizarAlturaSubLinks","cont","openSideBarView","responderCambioBreakpoint","inactivateAllLinks","iconLinks","subIconLinks","l","arrowCollList","normalizePath","getHrefPath","isSectionMatch","addListener","tituloPanel","linkRect","navbarRect","topMaximo","mostrarSubmenuCompacto","subLinkActive","subL","marcarVistaActual","nombreEl","pxEl","puntos","ancho","punto","cuadroPendiente","backdrop","cerrarSidebarMobile","esMobile","posicionOriginal","ubicarAcciones","pos","parentNode","padre","imagenesSeleccionadas","vistaFotos","fotosInput","getElementById","uploadButtom","mostrarImagenesSeleccionadas","mostrarImagenAlbum","agregarImagenesAlFormulario","handleDrop","this","reader","FileReader","crearImagenAlbum","result","readAsDataURL","inputImagenes","nuevoFileList","hiddenFotos","listaFotos","contFoto","allContFotos","contain","showActions","img","deleteImg","deleteImgFunction","showImg","hiddenCont","inputFotos","fotos","nuevaListafotos","removeFromInput","layout","cont_layout","cruz","foto_layout","showImgFunction","inputArchPortada","saveFile","newFile","newFileList","portada","portadaInput","inputPortada","fotosAlbum","before","ind","angulo","widthImg","closeLayout","code","str","pow","accesosInicializados","accesosUsuario","tileAgregar","tiles","selectorIntegrante","fichaIntegrante","integranteStorageKey","ocultosActuales","actualizarIntegrante","obtenerOcultos","opcionales","tile","anteriores","aplicarVisibilidad","hayOcultos","destacadoAsignado","oculto","alternarAcceso","ocultoId","guardarOcultos","iconoOrigen","textoOrigen","accesoTitulo","poblarPopup","global","factory","exports","module","define","amd","globalThis","self","ownKeys","object","enumerableOnly","Object","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread2","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","configurable","writable","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","o","minLen","call","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","IS_BROWSER","WINDOW","IS_TOUCH_DEVICE","HAS_POINTER_EVENT","CLASS_CROP","concat","CLASS_DISABLED","CLASS_HIDDEN","CLASS_HIDE","CLASS_INVISIBLE","CLASS_MODAL","CLASS_MOVE","DATA_ACTION","DATA_PREVIEW","EVENT_POINTER_DOWN","EVENT_POINTER_MOVE","EVENT_POINTER_UP","REGEXP_ACTIONS","REGEXP_DATA_URL","REGEXP_DATA_URL_JPEG","REGEXP_TAG_NAME","DEFAULTS","initialAspectRatio","NaN","restore","checkCrossOrigin","checkOrientation","guides","center","highlight","background","autoCrop","autoCropArea","movable","rotatable","scalable","zoomOnTouch","zoomOnWheel","wheelZoomRatio","cropBoxMovable","cropBoxResizable","toggleDragModeOnDblclick","minCanvasWidth","minCanvasHeight","minCropBoxWidth","minCropBoxHeight","minContainerWidth","minContainerHeight","cropstart","cropmove","cropend","crop","zoom","isNumber","isPositiveNumber","Infinity","isUndefined","isObject","hasOwnProperty","isPlainObject","_constructor","isFunction","toArray","callback","assign","_len","_key","arg","REGEXP_DECIMALS","normalizeDecimalNumber","times","REGEXP_SUFFIX","setStyle","styles","property","addClass","elem","removeClass","toggleClass","added","REGEXP_CAMEL_CASE","toParamCase","getData","setData","REGEXP_SPACES","onceSupported","supported","listener","removeListener","handler","listeners","_handler","_element$listeners","_len2","_key2","createEvent","initCustomEvent","getOffset","box","pageXOffset","clientLeft","pageYOffset","clientTop","REGEXP_ORIGINS","isCrossOriginURL","parts","protocol","hostname","port","addTimestamp","getTransforms","_ref","rotate","scaleX","scaleY","translateX","translateY","WebkitTransform","msTransform","getPointer","_ref2","endOnly","pageY","end","endX","endY","startX","startY","getAdjustedSizes","_ref4","isValidWidth","isValidHeight","adjustedWidth","getSourceCanvas","image","_ref6","_ref7","_ref8","imageAspectRatio","imageNaturalWidth","naturalWidth","imageNaturalHeight","naturalHeight","_ref6$rotate","_ref6$scaleX","_ref6$scaleY","_ref8$fillColor","fillColor","_ref8$imageSmoothingE","imageSmoothingEnabled","_ref8$imageSmoothingQ","_ref8$maxWidth","maxWidth","_ref8$maxHeight","maxHeight","_ref8$minWidth","minWidth","_ref8$minHeight","minHeight","context","maxSizes","minSizes","destMaxSizes","destMinSizes","destWidth","destHeight","params","fillStyle","fillRect","save","translate","PI","scale","param","fromCharCode","REGEXP_DATA_URL_HEAD","resetAndGetOrientation","arrayBuffer","orientation","dataView","DataView","littleEndian","app1Start","ifdStart","getUint8","byteLength","tiffOffset","start","getStringFromCharCode","endianness","getUint16","firstIFDOffset","getUint32","_offset","_length","setUint16","render","initContainer","initCanvas","initCropBox","renderCanvas","cropped","renderCropBox","container","containerData","imageData","rotated","canvasWidth","canvasHeight","canvasData","limited","limitCanvas","oldLeft","oldTop","initialCanvasData","sizeLimited","positionLimited","cropBoxData","_getAdjustedSizes","newCanvasLeft","newCanvasTop","minLeft","minTop","changed","transformed","_getRotatedSizes","_ref5","degree","arc","sinArc","sin","cosArc","cos","newWidth","newHeight","getRotatedSizes","renderImage","limitCropBox","output","initialCropBoxData","maxCropBoxWidth","maxCropBoxHeight","face","cropBox","initPreview","crossOrigin","crossOriginUrl","alt","viewBox","viewBoxImage","previews","ownerDocument","cssText","resetPreview","removeData","cropBoxWidth","cropBoxHeight","originalWidth","originalHeight","ratio","getElementsByTagName","events","bind","onCropStart","cropStart","onWheel","wheel","onDblclick","dblclick","onCropMove","cropMove","onCropEnd","cropEnd","onResize","resize","unbind","handlers","ratioX","ratioY","getCanvasData","getCropBoxData","setCanvasData","setCropBoxData","setDragMode","dragBox","_this","wheeling","deltaY","wheelDelta","buttons","pointers","changedTouches","touch","identifier","originalEvent","cropping","change","renderable","pointer","range","side","move","pointers2","maxRatio","pointer2","x1","y1","x2","y2","z1","sqrt","getMaxZoomRatio","methods","initialImageData","hasSameSize","isImg","replaced","uncreate","load","enable","disable","originalUrl","offsetX","offsetY","_this$canvasData","moveTo","_originalEvent","zoomTo","pivot","oldRatio","count","_ref3","getPointersCenter","rotateTo","_scaleX","_scaleY","rounded","getContainerData","getImageData","sized","widthChanged","heightChanged","HTMLCanvasElement","_this$getData","initialX","initialY","initialWidth","initialHeight","_options$imageSmoothi","srcWidth","srcHeight","dstX","dstY","dstWidth","dstHeight","sourceWidth","sourceHeight","srcX","srcY","setAspectRatio","mode","croppable","AnotherCropper","reloading","sizing","protoProps","staticProps","ArrayBuffer","read","base64","binary","atob","uint8","Uint8Array","charCodeAt","clone","xhr","XMLHttpRequest","onabort","onerror","ontimeout","onprogress","getResponseHeader","abort","onloadend","open","responseType","withCredentials","send","mimeType","chunks","subarray","btoa","arrayBufferToDataURL","_parseOrientation","parseOrientation","stop","nextSibling","_this2","isIOSWebKit","userAgent","done","build","sizingImage","removeChild","getElementsByClassName","unbuild","A","u","Modernizr","_config","classPrefix","c","baseVal","enableJSClass","RegExp","enableClasses","t","_trigger","s","r","_version","usePrefixes","_q","on","addTest","addAsyncTest","nodeName","_l","uri","shift","aliases"],"mappings":"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","file":"bundle.js","sourcesContent":["// Sin este helper, si cualquiera de las funciones de abajo tira una\n// excepcion (p.ej. localStorage bloqueado por privacidad del navegador),\n// TODA la lista se corta ahi mismo - las que vienen despues ni se llegan a\n// llamar (fue justamente lo que dejaba crearMiembroPasos() sin arrancar, con\n// los botones Siguiente/Anterior del asistente de \"Crear integrante\" sin su\n// listener, cuando una funcion mas arriba en la lista fallaba).\nfunction ejecutarSeguro(fn, ...args){\n try{\n fn(...args);\n }catch(error){\n console.error(`Error al inicializar ${fn.name || 'una funcion'}:`, error);\n }\n}\n\ndocument.addEventListener('DOMContentLoaded',function(){\n ejecutarSeguro(skeletonPagina);\n ejecutarSeguro(syncAdminHeaderHeight);\n ejecutarSeguro(listaEventos);\n ejecutarSeguro(loginPopup);\n ejecutarSeguro(adminPartialNavigation);\n ejecutarSeguro(elegirRama);\n ejecutarSeguro(scrollFicha);\n ejecutarSeguro(busquedaMiembros);\n ejecutarSeguro(selectorCampaEspec);\n ejecutarSeguro(scrollNav);\n ejecutarSeguro(tableSearch);\n ejecutarSeguro(tableSorted);\n ejecutarSeguro(cropperImage);\n ejecutarSeguro(cropperImagePortada);\n ejecutarSeguro(sideBar);\n ejecutarSeguro(indicadorBreakpointSidebar);\n ejecutarSeguro(adminSidebarMobile);\n ejecutarSeguro(reubicarAccionesHeaderAdmin);\n ejecutarSeguro(viewAlbumFotos);\n ejecutarSeguro(viewPortadaAlbum);\n ejecutarSeguro(viewFotosAlbumPublic);\n ejecutarSeguro(seePasswordAdmin);\n ejecutarSeguro(seePasswordLogin);\n ejecutarSeguro(selectorMiembrosVinculados);\n ejecutarSeguro(campamentosPanel);\n ejecutarSeguro(calendarioPanel);\n ejecutarSeguro(integracionesPanel);\n ejecutarSeguro(nominaDropzone);\n ejecutarSeguro(permisosCalendario);\n ejecutarSeguro(importarRamaCampamentos);\n ejecutarSeguro(crearMiembroPasos);\n ejecutarSeguro(customSelectsCrearMiembro);\n ejecutarSeguro(customDatePickersCrearMiembro);\n ejecutarSeguro(restringirDniCrearMiembro);\n ejecutarSeguro(filtrosVistaMiembros);\n ejecutarSeguro(seleccionMultipleUsuarios);\n ejecutarSeguro(paseRamaPopup);\n ejecutarSeguro(ajusteRamaPage);\n ejecutarSeguro(fichaEditable);\n ejecutarSeguro(confirmarEliminarMiembro);\n ejecutarSeguro(administrarUsuariosPanel);\n ejecutarSeguro(notificacionesAdmin);\n ejecutarSeguro(volverInteligente);\n ejecutarSeguro(configuracionRifasPanel);\n ejecutarSeguro(cropperImagenPremios);\n ejecutarSeguro(consultaVentasRifasPanel);\n ejecutarSeguro(seleccionNumerosRifas);\n ejecutarSeguro(menuContextualNumerosRifas);\n ejecutarSeguro(gruposTalonarioNumerosRifas);\n ejecutarSeguro(asignarNumeroFisicoPanel);\n ejecutarSeguro(asignarCompradorNumeroPanel);\n ejecutarSeguro(confirmarEliminarReservaPanel);\n ejecutarSeguro(accesosDirectosPersonalizables);\n})\n\nfunction syncAdminHeaderHeight(){\n const root = document.documentElement;\n const header = document.querySelector('header[data-admin-header=\"true\"]');\n\n if(!root){\n return;\n }\n\n const actualizarAltura = () => {\n const altura = header ? `${header.offsetHeight}px` : '0px';\n root.style.setProperty('--admin-header-height', altura);\n };\n\n actualizarAltura();\n window.addEventListener('load', actualizarAltura);\n window.addEventListener('resize', actualizarAltura);\n\n if(header && 'ResizeObserver' in window){\n const observer = new ResizeObserver(actualizarAltura);\n observer.observe(header);\n }\n}\n\nfunction skeletonPagina(){\n const skeleton = document.querySelector('[data-skeleton-pagina]');\n\n if(!skeleton){\n return;\n }\n\n const tiempoInicio = performance.now();\n const tiempoMinimo = 240;\n let cerrando = false;\n\n function cerrarSkeleton(){\n if(cerrando){\n return;\n }\n\n cerrando = true;\n const espera = Math.max(0, tiempoMinimo - (performance.now() - tiempoInicio));\n\n window.setTimeout(() => {\n skeleton.classList.add('skeleton_oculto');\n document.body.classList.remove('skeleton_activo');\n\n window.setTimeout(() => {\n skeleton.remove();\n }, 260);\n }, espera);\n }\n\n if(document.readyState === 'complete'){\n cerrarSkeleton();\n }else{\n window.addEventListener('load', cerrarSkeleton, { once: true });\n window.setTimeout(cerrarSkeleton, 1800);\n }\n}\n\nconst TIPOS_NOTIFICACION = {\n error: 'error',\n exito: 'success',\n success: 'success',\n warning: 'warning',\n info: 'info'\n};\n\nconst NOTIFICACION_DURACION = 3200;\nconst NOTIFICACION_SALIDA = 450;\n\nfunction normalizarTipoNotificacion(tipo){\n return TIPOS_NOTIFICACION[tipo] || 'info';\n}\n\nfunction iconoNotificacion(){\n return `\n \n \n \n `;\n}\n\nfunction prepararContenidoNotificacion(alerta, mensaje){\n alerta.setAttribute('role', 'alert');\n alerta.innerHTML = iconoNotificacion();\n\n const texto = document.createElement('p');\n texto.classList.add('alertMsg__text');\n texto.textContent = mensaje;\n alerta.appendChild(texto);\n}\n\nfunction mostrarNotificacion(alerta, tipo, mensaje, index = 0){\n const tipoNormalizado = normalizarTipoNotificacion(tipo);\n\n alerta.className = '';\n alerta.classList.add('alertMsg', 'default', tipoNormalizado);\n alerta.style.display = 'flex';\n alerta.style.opacity = '1';\n alerta.style.bottom = `${2 + (index * 6.2)}rem`;\n prepararContenidoNotificacion(alerta, mensaje);\n\n requestAnimationFrame(() => {\n alerta.classList.add('alertMsg--show');\n });\n\n window.setTimeout(() => {\n alerta.classList.remove('alertMsg--show');\n alerta.classList.add('alertMsg--hide');\n\n window.setTimeout(() => {\n alerta.style.display = 'none';\n alerta.classList.remove('alertMsg--hide');\n }, NOTIFICACION_SALIDA);\n }, NOTIFICACION_DURACION);\n}\n\nfunction notificacionesAdmin(){\n const alertas = Array.from(document.querySelectorAll('.alertMsg.pendiente, .alerta.exito, .alerta.error'));\n\n alertas.forEach((alerta, index) => {\n const mensaje = alerta.textContent.trim();\n const tipo = alerta.classList.contains('error')\n ? 'error'\n : (alerta.classList.contains('success') || alerta.classList.contains('exito') ? 'success' : 'info');\n alerta.classList.remove('pendiente');\n mostrarNotificacion(alerta, tipo, mensaje, index);\n });\n}\n\nfunction confirmarEliminarMiembro(){\n const popup = document.querySelector('[data-popup-eliminar-miembro]');\n\n if(!popup){\n return;\n }\n\n function obtenerContextoPopup(){\n const popupActual = document.querySelector('[data-popup-eliminar-miembro]');\n\n if(!popupActual){\n return null;\n }\n\n return {\n popup: popupActual,\n form: popupActual.querySelector('[data-popup-eliminar-form]'),\n inputNombre: popupActual.querySelector('[data-popup-eliminar-nombre]'),\n titulo: popupActual.querySelector('[data-popup-eliminar-titulo]'),\n texto: popupActual.querySelector('[data-popup-eliminar-texto]'),\n confirmar: popupActual.querySelector('[data-popup-eliminar-confirmar]')\n };\n }\n\n function cerrarPopup(contexto = obtenerContextoPopup()){\n if(!contexto || !contexto.popup){\n return;\n }\n\n contexto.popup.classList.remove('visible', 'eliminacion_definitiva');\n contexto.popup.setAttribute('aria-hidden', 'true');\n\n if(contexto.form){\n contexto.form.removeAttribute('action');\n }\n\n if(contexto.inputNombre){\n contexto.inputNombre.value = '';\n }\n }\n\n if(!confirmarEliminarMiembro.eventosGlobales){\n document.addEventListener('click', function(event){\n const boton = event.target.closest('[data-confirmar-eliminar-miembro]');\n\n if(!boton){\n return;\n }\n\n const contexto = obtenerContextoPopup();\n\n if(!contexto || !contexto.form || !contexto.popup){\n return;\n }\n\n event.preventDefault();\n\n const id = boton.dataset.miembroId;\n const nombre = boton.dataset.miembroNombre || 'este integrante';\n const tieneRama = boton.dataset.miembroTieneRama === 'true';\n\n contexto.form.setAttribute('action', `/admin/miembros/eliminar.php?miembro=${encodeURIComponent(id)}`);\n\n if(contexto.inputNombre){\n contexto.inputNombre.value = nombre;\n }\n\n contexto.popup.classList.toggle('eliminacion_definitiva', !tieneRama);\n\n if(contexto.texto){\n contexto.texto.classList.toggle('oculto', tieneRama);\n contexto.texto.textContent = tieneRama\n ? ''\n : `${nombre} ya esta en Sin Rama. Esta accion borra definitivamente su ficha y los datos relacionados.`;\n }\n\n if(contexto.titulo){\n contexto.titulo.textContent = tieneRama ? 'Confirmar eliminar integrante' : 'Eliminar integrante permanentemente';\n }\n\n if(contexto.confirmar){\n contexto.confirmar.textContent = tieneRama ? 'Pasar a Sin Rama' : 'Eliminar definitivo';\n }\n\n contexto.popup.classList.add('visible');\n contexto.popup.setAttribute('aria-hidden', 'false');\n });\n\n document.addEventListener('keydown', function(event){\n const contexto = obtenerContextoPopup();\n\n if(event.key === 'Escape' && contexto && contexto.popup.classList.contains('visible')){\n cerrarPopup(contexto);\n }\n });\n\n confirmarEliminarMiembro.eventosGlobales = true;\n }\n\n if(popup.dataset.eliminarMiembroPopupBound === 'true'){\n return;\n }\n\n popup.dataset.eliminarMiembroPopupBound = 'true';\n\n popup.addEventListener('click', function(event){\n if(event.target === popup || event.target.closest('[data-cerrar-eliminar-miembro]')){\n cerrarPopup();\n }\n });\n}\n\nfunction volverInteligente(){\n const botones = document.querySelectorAll('[data-volver-fallback]');\n\n botones.forEach(boton => {\n boton.addEventListener('click', event => {\n const fallback = boton.dataset.volverFallback || boton.getAttribute('href') || '/admin/';\n const referrer = document.referrer;\n let referrerInterno = false;\n\n if(referrer){\n try{\n referrerInterno = new URL(referrer).origin === window.location.origin;\n }catch(error){\n referrerInterno = false;\n }\n }\n\n if(referrerInterno && window.history.length > 1){\n event.preventDefault();\n window.history.back();\n return;\n }\n\n boton.setAttribute('href', fallback);\n });\n });\n}\n\nfunction customDatePickersCrearMiembro(){\n const form = document.querySelector('.crear_miembro_form');\n\n if(!form){\n return;\n }\n\n customDatePickers(form);\n}\n\nfunction restringirDniCrearMiembro(){\n const inputDni = document.querySelector('.crear_miembro_form input[name=\"dni\"]');\n\n if(!inputDni){\n return;\n }\n\n function limpiarValor(){\n const valorLimpio = (inputDni.value || '').replace(/\\D+/g, '');\n\n if(inputDni.value !== valorLimpio){\n inputDni.value = valorLimpio;\n }\n }\n\n inputDni.addEventListener('input', limpiarValor);\n inputDni.addEventListener('change', limpiarValor);\n inputDni.addEventListener('paste', () => {\n window.setTimeout(limpiarValor, 0);\n });\n\n limpiarValor();\n}\n\nfunction configurarValidacionDniEdicion(inputDni, miembroId){\n if(!inputDni || inputDni.dataset.validacionDniEdicion === 'true'){\n return;\n }\n\n inputDni.dataset.validacionDniEdicion = 'true';\n let temporizador = null;\n let solicitudActual = 0;\n let ultimoDni = null;\n let ultimoResultado = true;\n\n const mensaje = document.createElement('small');\n mensaje.className = 'mensaje_validacion_dni';\n mensaje.setAttribute('aria-live', 'polite');\n inputDni.insertAdjacentElement('afterend', mensaje);\n\n function limpiarDni(){\n const limpio = (inputDni.value || '').replace(/\\D+/g, '');\n if(inputDni.value !== limpio){\n inputDni.value = limpio;\n }\n return limpio;\n }\n\n function mostrarEstado(tipo, texto){\n inputDni.classList.toggle('input_error', tipo === 'error');\n inputDni.setAttribute('aria-invalid', tipo === 'error' ? 'true' : 'false');\n mensaje.className = `mensaje_validacion_dni${tipo ? ` ${tipo}` : ''}`;\n mensaje.textContent = texto || '';\n }\n\n async function validarDni(){\n const dni = limpiarDni();\n\n if(dni === ''){\n ultimoDni = dni;\n ultimoResultado = true;\n mostrarEstado('', '');\n return true;\n }\n\n if(dni === ultimoDni){\n return ultimoResultado;\n }\n\n const solicitud = ++solicitudActual;\n mostrarEstado('', 'Verificando DNI...');\n\n try{\n const datos = new URLSearchParams();\n datos.set('dni', dni);\n datos.set('miembro_id', miembroId || '');\n\n const respuesta = await fetch('/admin/miembros/validar_dni.php', {\n method: 'POST',\n headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},\n body: datos.toString(),\n credentials: 'same-origin'\n });\n const json = await respuesta.json();\n\n if(!respuesta.ok || !json.ok){\n throw new Error(json.mensaje || 'No se pudo verificar el DNI.');\n }\n\n if(solicitud !== solicitudActual){\n return false;\n }\n\n ultimoDni = dni;\n ultimoResultado = !json.existe;\n mostrarEstado(json.existe ? 'error' : 'valido', json.existe ? 'Ese DNI ya pertenece a otro integrante.' : 'DNI disponible.');\n return ultimoResultado;\n }catch(error){\n if(solicitud === solicitudActual){\n ultimoDni = null;\n ultimoResultado = false;\n mostrarEstado('error', error.message || 'No se pudo verificar el DNI.');\n }\n return false;\n }\n }\n\n inputDni.addEventListener('input', () => {\n window.clearTimeout(temporizador);\n solicitudActual++;\n limpiarDni();\n ultimoDni = null;\n ultimoResultado = false;\n mostrarEstado('', '');\n temporizador = window.setTimeout(validarDni, 450);\n });\n inputDni.addEventListener('blur', validarDni);\n inputDni.validarDniUnico = validarDni;\n}\n\nfunction crearMiembroPasos(){\n const form = document.querySelector('[data-crear-miembro-pasos]');\n\n if(!form){\n return;\n }\n\n const pasos = Array.from(form.querySelectorAll('[data-crear-paso]'));\n const indicadores = Array.from(form.querySelectorAll('[data-crear-paso-indicador]'));\n const botonAnterior = form.querySelector('[data-crear-paso-prev]');\n const botonSiguiente = form.querySelector('[data-crear-paso-next]');\n const botonCrear = form.querySelector('[data-crear-paso-submit]');\n const inputDni = form.querySelector('input[name=\"dni\"]');\n const progresoFill = form.querySelector('[data-crear-progreso-fill]');\n let pasoActual = 1;\n let ultimaValidacionDni = '';\n let ultimoResultadoDni = false;\n\n function actualizarEstadoDniDuplicado(duplicado){\n if(!inputDni){\n return;\n }\n\n inputDni.classList.toggle('input_error', duplicado);\n inputDni.setAttribute('aria-invalid', duplicado ? 'true' : 'false');\n }\n\n function obtenerAlertaCrearMiembro(){\n let alerta = document.querySelector('[data-crear-miembro-alerta]');\n\n if(alerta){\n return alerta;\n }\n\n alerta = document.createElement('div');\n alerta.dataset.crearMiembroAlerta = 'true';\n alerta.style.display = 'none';\n document.body.appendChild(alerta);\n\n return alerta;\n }\n\n function notificarCrearMiembro(tipo, mensaje){\n mostrarNotificacion(obtenerAlertaCrearMiembro(), tipo, mensaje);\n }\n\n async function validarDniAntesDeAvanzar(){\n if(!inputDni){\n return true;\n }\n\n const dni = (inputDni.value || '').replace(/\\D+/g, '');\n\n if(dni === ''){\n actualizarEstadoDniDuplicado(false);\n return true;\n }\n\n if(dni === ultimaValidacionDni){\n actualizarEstadoDniDuplicado(ultimoResultadoDni);\n return !ultimoResultadoDni;\n }\n\n ultimaValidacionDni = dni;\n\n try{\n const datos = new URLSearchParams();\n datos.set('dni', dni);\n\n const respuesta = await fetch('/admin/miembros/validar_dni.php', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n },\n body: datos.toString(),\n credentials: 'same-origin'\n });\n const json = await respuesta.json();\n\n if(!respuesta.ok || !json.ok){\n throw new Error(json.mensaje || 'No se pudo verificar el DNI.');\n }\n\n ultimoResultadoDni = !!json.existe;\n actualizarEstadoDniDuplicado(ultimoResultadoDni);\n\n if(ultimoResultadoDni){\n notificarCrearMiembro('error', json.mensaje || 'Ese integrante ya esta cargado');\n inputDni.focus();\n inputDni.select();\n return false;\n }\n\n return true;\n }catch(error){\n ultimaValidacionDni = '';\n ultimoResultadoDni = false;\n actualizarEstadoDniDuplicado(false);\n notificarCrearMiembro('warning', error.message || 'No se pudo verificar el DNI.');\n return false;\n }\n }\n\n function cambiarPaso(paso){\n pasoActual = Math.min(Math.max(paso, 1), pasos.length);\n\n pasos.forEach(panel => {\n const activo = Number(panel.dataset.crearPaso) === pasoActual;\n panel.classList.toggle('activo', activo);\n panel.setAttribute('aria-hidden', activo ? 'false' : 'true');\n });\n\n indicadores.forEach(indicador => {\n const pasoIndicador = Number(indicador.dataset.crearPasoIndicador);\n indicador.classList.toggle('activo', pasoIndicador === pasoActual);\n indicador.classList.toggle('completo', pasoIndicador < pasoActual);\n });\n\n if(botonAnterior){\n botonAnterior.classList.toggle('oculto', pasoActual === 1);\n }\n\n if(botonSiguiente){\n botonSiguiente.classList.toggle('oculto', pasoActual === pasos.length);\n }\n\n if(botonCrear){\n botonCrear.classList.toggle('visible', pasoActual === pasos.length);\n }\n\n if(progresoFill){\n const avance = pasos.length > 1 ? (pasoActual - 1) / (pasos.length - 1) : 0;\n progresoFill.style.width = (avance * 100) + '%';\n }\n }\n\n form.addEventListener('keydown', async event => {\n if(event.key !== 'Enter'){\n return;\n }\n\n const target = event.target;\n const esTextarea = target instanceof HTMLTextAreaElement;\n const esBotonSubmit = target instanceof HTMLButtonElement || target instanceof HTMLInputElement && target.type === 'submit';\n\n if(esTextarea || esBotonSubmit){\n return;\n }\n\n event.preventDefault();\n\n if(pasoActual === pasos.length){\n if(botonCrear){\n botonCrear.click();\n }\n return;\n }\n\n if(pasoActual === 1){\n const dniValido = await validarDniAntesDeAvanzar();\n\n if(!dniValido){\n return;\n }\n }\n\n cambiarPaso(pasoActual + 1);\n });\n\n indicadores.forEach(indicador => {\n indicador.addEventListener('click', async () => {\n const pasoDestino = Number(indicador.dataset.crearPasoIndicador);\n\n if(pasoDestino > pasoActual && pasoActual === 1){\n const dniValido = await validarDniAntesDeAvanzar();\n\n if(!dniValido){\n return;\n }\n }\n\n cambiarPaso(pasoDestino);\n });\n });\n\n if(botonAnterior){\n botonAnterior.addEventListener('click', () => {\n cambiarPaso(pasoActual - 1);\n });\n }\n\n if(botonSiguiente){\n botonSiguiente.addEventListener('click', async () => {\n if(pasoActual === 1){\n const dniValido = await validarDniAntesDeAvanzar();\n\n if(!dniValido){\n return;\n }\n }\n\n cambiarPaso(pasoActual + 1);\n });\n }\n\n if(inputDni){\n inputDni.addEventListener('input', () => {\n ultimaValidacionDni = '';\n ultimoResultadoDni = false;\n actualizarEstadoDniDuplicado(false);\n });\n }\n\n cambiarPaso(1);\n}\n\nfunction customDatePickers(root = document){\n const inputs = root.querySelectorAll('input[type=\"date\"]');\n const meses = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];\n const dias = ['L', 'M', 'M', 'J', 'V', 'S', 'D'];\n\n function dateFromValue(value){\n if(!value){\n return null;\n }\n\n const partes = value.split('-').map(Number);\n\n if(partes.length !== 3 || partes.some(Number.isNaN)){\n return null;\n }\n\n return new Date(partes[0], partes[1] - 1, partes[2]);\n }\n\n function valueFromDate(date){\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n\n return `${year}-${month}-${day}`;\n }\n\n function labelFromValue(value){\n const date = dateFromValue(value);\n\n if(!date){\n return 'Seleccionar fecha';\n }\n\n return `${String(date.getDate()).padStart(2, '0')}/${String(date.getMonth() + 1).padStart(2, '0')}/${date.getFullYear()}`;\n }\n\n function limpiarPosicionPanel(datePicker){\n const panel = datePicker.querySelector('.date_custom_panel');\n\n if(!panel){\n return;\n }\n\n window.setTimeout(() => {\n if(datePicker.classList.contains('abierto')){\n return;\n }\n\n panel.classList.remove('posicion_cursor');\n panel.style.removeProperty('--date-panel-left');\n panel.style.removeProperty('--date-panel-top');\n panel.style.removeProperty('--date-panel-origin-x');\n panel.style.removeProperty('--date-panel-origin-y');\n }, 190);\n }\n\n function cerrarDatePicker(datePicker){\n datePicker.classList.remove('abierto');\n limpiarPosicionPanel(datePicker);\n }\n\n inputs.forEach(input => {\n if(input.dataset.customDate === 'true'){\n return;\n }\n\n input.dataset.customDate = 'true';\n input.classList.add('date_original');\n\n const wrapper = document.createElement('div');\n wrapper.classList.add('date_custom');\n\n const boton = document.createElement('button');\n boton.type = 'button';\n boton.classList.add('date_custom_boton');\n\n const texto = document.createElement('span');\n texto.textContent = labelFromValue(input.value);\n\n const icono = document.createElement('i');\n icono.classList.add('fa-solid', 'fa-calendar-days');\n\n boton.appendChild(texto);\n boton.appendChild(icono);\n\n const panel = document.createElement('div');\n panel.classList.add('date_custom_panel');\n\n const selectedDate = dateFromValue(input.value);\n let viewDate = selectedDate || new Date();\n let yearPageStart = viewDate.getFullYear() - 7;\n\n function sincronizarTextoFecha(){\n const fechaSeleccionada = dateFromValue(input.value);\n\n texto.textContent = labelFromValue(input.value);\n\n if(fechaSeleccionada){\n viewDate = fechaSeleccionada;\n yearPageStart = viewDate.getFullYear() - 7;\n }\n }\n\n function posicionarPanelDesdeCursor(event){\n panel.classList.remove('posicion_cursor');\n panel.style.removeProperty('--date-panel-left');\n panel.style.removeProperty('--date-panel-top');\n panel.style.removeProperty('--date-panel-origin-x');\n panel.style.removeProperty('--date-panel-origin-y');\n\n if(window.innerWidth <= 370 || typeof event.clientX !== 'number' || typeof event.clientY !== 'number'){\n return;\n }\n\n panel.classList.add('posicion_cursor');\n\n requestAnimationFrame(() => {\n const margen = 12;\n const separacion = 10;\n const panelWidth = panel.offsetWidth || 240;\n const panelHeight = panel.offsetHeight || 260;\n const maxLeft = window.innerWidth - panelWidth - margen;\n const maxTop = window.innerHeight - panelHeight - margen;\n const desiredLeft = event.clientX + separacion;\n const desiredTop = event.clientY + separacion;\n const leftIfBeforeCursor = event.clientX - panelWidth - separacion;\n const topIfAboveCursor = event.clientY - panelHeight - separacion;\n const fallbackLeft = leftIfBeforeCursor > margen ? leftIfBeforeCursor : margen;\n const fallbackTop = topIfAboveCursor > margen ? topIfAboveCursor : margen;\n const left = desiredLeft > maxLeft\n ? fallbackLeft\n : Math.min(Math.max(margen, desiredLeft), Math.max(margen, maxLeft));\n const top = desiredTop > maxTop && topIfAboveCursor > margen\n ? fallbackTop\n : Math.min(Math.max(margen, desiredTop), Math.max(margen, maxTop));\n\n panel.style.setProperty('--date-panel-left', `${left}px`);\n panel.style.setProperty('--date-panel-top', `${top}px`);\n\n // El origen de la animacion queda exactamente en el punto donde se hizo clic,\n // en coordenadas relativas al panel, para que el calendario \"nazca\" desde el cursor.\n panel.style.setProperty('--date-panel-origin-x', `${event.clientX - left}px`);\n panel.style.setProperty('--date-panel-origin-y', `${event.clientY - top}px`);\n });\n }\n\n function renderCalendar(){\n panel.innerHTML = '';\n\n const year = viewDate.getFullYear();\n const month = viewDate.getMonth();\n const selected = dateFromValue(input.value);\n\n const header = document.createElement('div');\n header.classList.add('date_custom_header');\n\n const prev = document.createElement('button');\n prev.type = 'button';\n prev.innerHTML = '';\n\n const title = document.createElement('div');\n title.classList.add('date_custom_title');\n\n const monthButton = document.createElement('button');\n monthButton.type = 'button';\n monthButton.textContent = meses[month];\n\n const yearButton = document.createElement('button');\n yearButton.type = 'button';\n yearButton.textContent = year;\n\n monthButton.addEventListener('click', (event) => {\n event.stopPropagation();\n renderMonthPicker();\n });\n\n yearButton.addEventListener('click', (event) => {\n event.stopPropagation();\n yearPageStart = year - 7;\n renderYearPicker();\n });\n\n title.appendChild(monthButton);\n title.appendChild(yearButton);\n\n const next = document.createElement('button');\n next.type = 'button';\n next.innerHTML = '';\n\n prev.addEventListener('click', (event) => {\n event.stopPropagation();\n viewDate = new Date(year, month - 1, 1);\n renderCalendar();\n });\n\n next.addEventListener('click', (event) => {\n event.stopPropagation();\n viewDate = new Date(year, month + 1, 1);\n renderCalendar();\n });\n\n header.appendChild(prev);\n header.appendChild(title);\n header.appendChild(next);\n panel.appendChild(header);\n\n const weekdays = document.createElement('div');\n weekdays.classList.add('date_custom_weekdays');\n\n dias.forEach(dia => {\n const item = document.createElement('span');\n item.textContent = dia;\n weekdays.appendChild(item);\n });\n\n panel.appendChild(weekdays);\n\n const grid = document.createElement('div');\n grid.classList.add('date_custom_grid');\n\n const firstDay = new Date(year, month, 1);\n const startOffset = (firstDay.getDay() + 6) % 7;\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n\n for(let i = 0; i < startOffset; i++){\n const empty = document.createElement('span');\n empty.classList.add('date_custom_empty');\n grid.appendChild(empty);\n }\n\n for(let day = 1; day <= daysInMonth; day++){\n const dayButton = document.createElement('button');\n dayButton.type = 'button';\n dayButton.textContent = day;\n\n const thisDate = new Date(year, month, day);\n\n if(selected && valueFromDate(selected) === valueFromDate(thisDate)){\n dayButton.classList.add('seleccionado');\n }\n\n dayButton.addEventListener('click', (event) => {\n event.stopPropagation();\n input.value = valueFromDate(thisDate);\n input.dispatchEvent(new Event('change', { bubbles: true }));\n sincronizarTextoFecha();\n cerrarDatePicker(wrapper);\n renderCalendar();\n });\n\n grid.appendChild(dayButton);\n }\n\n panel.appendChild(grid);\n\n const acciones = document.createElement('div');\n acciones.classList.add('date_custom_acciones');\n\n const borrar = document.createElement('button');\n borrar.type = 'button';\n borrar.classList.add('date_custom_borrar');\n borrar.textContent = 'Borrar';\n\n borrar.addEventListener('click', (event) => {\n event.stopPropagation();\n input.value = '';\n input.dispatchEvent(new Event('change', { bubbles: true }));\n sincronizarTextoFecha();\n cerrarDatePicker(wrapper);\n renderCalendar();\n });\n\n acciones.appendChild(borrar);\n panel.appendChild(acciones);\n }\n\n function renderMonthPicker(){\n panel.innerHTML = '';\n\n const year = viewDate.getFullYear();\n\n const header = document.createElement('div');\n header.classList.add('date_custom_header');\n\n const back = document.createElement('button');\n back.type = 'button';\n back.innerHTML = '';\n\n const title = document.createElement('p');\n title.textContent = 'Elegir mes';\n\n const spacer = document.createElement('span');\n\n back.addEventListener('click', (event) => {\n event.stopPropagation();\n renderCalendar();\n });\n\n header.appendChild(back);\n header.appendChild(title);\n header.appendChild(spacer);\n panel.appendChild(header);\n\n const grid = document.createElement('div');\n grid.classList.add('date_custom_picker_grid', 'meses');\n\n meses.forEach((mes, index) => {\n const button = document.createElement('button');\n button.type = 'button';\n button.textContent = mes;\n\n if(index === viewDate.getMonth()){\n button.classList.add('seleccionado');\n }\n\n button.addEventListener('click', (event) => {\n event.stopPropagation();\n viewDate = new Date(year, index, 1);\n renderCalendar();\n });\n\n grid.appendChild(button);\n });\n\n panel.appendChild(grid);\n }\n\n function renderYearPicker(){\n panel.innerHTML = '';\n\n const header = document.createElement('div');\n header.classList.add('date_custom_header');\n\n const prevYears = document.createElement('button');\n prevYears.type = 'button';\n prevYears.innerHTML = '';\n\n const title = document.createElement('p');\n title.textContent = `${yearPageStart} - ${yearPageStart + 14}`;\n\n const nextYears = document.createElement('button');\n nextYears.type = 'button';\n nextYears.innerHTML = '';\n\n prevYears.addEventListener('click', (event) => {\n event.stopPropagation();\n yearPageStart -= 15;\n renderYearPicker();\n });\n\n nextYears.addEventListener('click', (event) => {\n event.stopPropagation();\n yearPageStart += 15;\n renderYearPicker();\n });\n\n header.appendChild(prevYears);\n header.appendChild(title);\n header.appendChild(nextYears);\n panel.appendChild(header);\n\n const grid = document.createElement('div');\n grid.classList.add('date_custom_picker_grid', 'anios');\n\n for(let offset = 0; offset < 15; offset++){\n const year = yearPageStart + offset;\n const button = document.createElement('button');\n button.type = 'button';\n button.textContent = year;\n\n if(year === viewDate.getFullYear()){\n button.classList.add('seleccionado');\n }\n\n button.addEventListener('click', (event) => {\n event.stopPropagation();\n viewDate = new Date(year, viewDate.getMonth(), 1);\n renderCalendar();\n });\n\n grid.appendChild(button);\n }\n\n panel.appendChild(grid);\n }\n\n boton.addEventListener('click', (event) => {\n event.stopPropagation();\n const estabaAbierto = wrapper.classList.contains('abierto');\n\n document.querySelectorAll('.date_custom.abierto').forEach(abierto => {\n if(abierto !== wrapper){\n cerrarDatePicker(abierto);\n }\n });\n\n if(estabaAbierto){\n cerrarDatePicker(wrapper);\n }else{\n wrapper.classList.add('abierto');\n renderCalendar();\n posicionarPanelDesdeCursor(event);\n }\n });\n\n renderCalendar();\n sincronizarTextoFecha();\n\n input.insertAdjacentElement('afterend', wrapper);\n wrapper.appendChild(boton);\n wrapper.appendChild(panel);\n\n panel.addEventListener('click', (event) => {\n event.stopPropagation();\n });\n\n input.addEventListener('input', sincronizarTextoFecha);\n input.addEventListener('change', sincronizarTextoFecha);\n });\n\n if(!customDatePickers.eventosGlobales){\n document.addEventListener('click', (event) => {\n if(!event.target.closest('.date_custom')){\n document.querySelectorAll('.date_custom.abierto').forEach(datePicker => {\n cerrarDatePicker(datePicker);\n });\n }\n });\n\n window.addEventListener('scroll', () => {\n document.querySelectorAll('.date_custom.abierto').forEach(datePicker => {\n cerrarDatePicker(datePicker);\n });\n }, true);\n\n customDatePickers.eventosGlobales = true;\n }\n\n}\n\nfunction customSelectsCrearMiembro(){\n const form = document.querySelector('.crear_miembro_form');\n\n if(!form){\n return;\n }\n\n customSelects(form);\n}\n\nfunction consultaVentasRifasPanel(){\n const selectores = document.querySelectorAll('.selector_rifa_consulta, .herramientas_numeros_rifa_select');\n\n if(!selectores.length){\n return;\n }\n\n selectores.forEach(selector => customSelects(selector));\n}\n\n// Marca como pagados (nuevoPagado=1) o revierte a reservado (nuevoPagado=0)\n// uno o varios numeros reservados (RES=1) de admin/sorteo/numeros.php -\n// unica llamada a actualizarPagoNumero.php del panel. La usan tanto los\n// botones \"Marcar como pagado\"/\"Marcar como reservado\" de la barra de\n// seleccion (seleccionNumerosRifas()) como las opciones homonimas del menu\n// contextual (menuContextualNumerosRifas()). Recibe `entradas` (`{numero,\n// fila}[]`), no directos: un numero virtual seleccionado en OTRA\n// pagina no tiene fila en el DOM actual.\n//\n// Regla pareja para toda accion masiva de este panel (misma que ya usa\n// asignarCompradorNumeroPanel()): todo numero que la respuesta del backend\n// toco -confirmado U OMITIDO- sale de la seleccion, tenga o no fila visible.\n// Un omitido significa que su estado real ya no es el que asumia la UI (por\n// ejemplo, otro admin lo toco antes), asi que dejarlo tildado invitaria a\n// reintentar sobre un supuesto desactualizado -mejor que el usuario lo\n// vuelva a buscar/tildar si todavia corresponde.\nasync function marcarNumerosComoPago(sorteoId, entradas, nuevoPagado){\n const numeros = entradas.map(entrada => entrada.numero).filter(Boolean);\n\n const respuesta = await fetch('/admin/sorteo/actualizarPagoNumero.php', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'same-origin',\n body: JSON.stringify({ sorteoId: sorteoId || '', Numeros: numeros, pagado: nuevoPagado })\n });\n\n const datos = await respuesta.json().catch(() => null);\n\n if(!respuesta.ok || !datos || !datos.ok){\n throw new Error((datos && datos.error) || 'No se pudo actualizar los numeros.');\n }\n\n const actualizados = (datos.actualizados || []).map(String);\n const omitidos = (datos.omitidos || []).map(String);\n let seSacoAlgunoSinFila = false;\n\n entradas.forEach(entrada => {\n const fueActualizado = actualizados.includes(entrada.numero);\n const fueOmitido = omitidos.includes(entrada.numero);\n\n if(!fueActualizado && !fueOmitido){\n return;\n }\n\n if(!entrada.fila){\n // Sin fila en el DOM actual (numero virtual de otra pagina): no\n // hay checkbox que dispare el 'change' que normalmente lo saca\n // solo de la seleccion, asi que se saca del Map a mano.\n if(seleccionNumerosPersistente.numeros.delete(entrada.numero)){\n seSacoAlgunoSinFila = true;\n }\n return;\n }\n\n if(fueActualizado){\n entrada.fila.dataset.pagado = String(nuevoPagado);\n\n const badge = entrada.fila.querySelector('[data-numero-estado]');\n\n if(badge){\n badge.classList.remove('pagado', 'reservado', 'disponible');\n badge.classList.add(nuevoPagado ? 'pagado' : 'reservado');\n badge.textContent = nuevoPagado ? 'Pagado' : 'Reservado';\n }\n }\n\n const checkbox = entrada.fila.querySelector('[data-numero-seleccionado]');\n\n if(checkbox && checkbox.checked){\n checkbox.checked = false;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n }\n });\n\n if(seSacoAlgunoSinFila){\n renderizarBarraSeleccion(entradasSeleccionParaBarra());\n }\n\n if(omitidos.length){\n const accion = nuevoPagado ? 'marcaron como pagados' : 'marcaron como reservados';\n alert(`Se ${accion} ${actualizados.length} numero(s). ${omitidos.length} no estaban reservados y se omitieron.`);\n }\n\n recargarVistaAdmin();\n}\n\n// Elimina (resetea a \"Disponible\") la reserva de uno o varios numeros\n// virtuales reservados de admin/sorteo/numeros.php - unica llamada a\n// eliminarReservaNumero.php del panel. La ejecuta confirmarEliminarReservaPanel()\n// ya con la confirmacion del popup resuelta (esta funcion no vuelve a\n// preguntar nada); el permiso -Jefe de Rama para arriba- lo valida el\n// propio endpoint, esto solo actualiza la UI si la respuesta vino ok. Mismo\n// patron que marcarNumerosComoPago(): destilda el checkbox de cada fila\n// afectada y dispara su 'change' para que la barra de seleccion se\n// refresque sola.\nasync function eliminarReservaNumeros(sorteoId, filas){\n const numeros = filas.map(fila => fila.dataset.numero).filter(Boolean);\n\n try{\n const respuesta = await fetch('/admin/sorteo/eliminarReservaNumero.php', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'same-origin',\n body: JSON.stringify({ sorteoId: sorteoId || '', Numeros: numeros })\n });\n\n const datos = await respuesta.json().catch(() => null);\n\n if(!respuesta.ok || !datos || !datos.ok){\n throw new Error((datos && datos.error) || 'No se pudo eliminar la reserva.');\n }\n\n const numerosActualizados = Array.isArray(datos.numeros) ? datos.numeros : [];\n\n numerosActualizados.forEach(numeroDatos => {\n const fila = filas.find(f => f.dataset.numero === String(numeroDatos.Numero));\n\n if(!fila){\n return;\n }\n\n actualizarFilaNumeroFisico(fila, numeroDatos);\n\n const checkbox = fila.querySelector('[data-numero-seleccionado]');\n\n if(checkbox && checkbox.checked){\n checkbox.checked = false;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n }\n });\n\n if(datos.omitidos && datos.omitidos.length){\n alert(`Se elimino la reserva de ${numerosActualizados.length} numero(s). ${datos.omitidos.length} ya no tenian una reserva virtual para eliminar y se omitieron.`);\n }\n\n recargarVistaAdmin();\n }catch(error){\n console.error('Error al eliminar la reserva del numero:', error);\n alert(error.message || 'No se pudo eliminar la reserva.');\n }\n}\n\n// Seleccion de numeros (virtuales y fisicos) que sobrevive al cambio de\n// pagina, a una busqueda o a un cambio de filtro en admin/sorteo/numeros.php:\n// cada una trae una tabla nueva renderizada por el servidor (navegacion\n// parcial/AJAX, ver cargarVista()), asi que el checkbox de un numero de la\n// pagina 1 no existe mas en el DOM al pasar a la pagina 4 -por eso esto vive\n// en memoria en vez de en el DOM. Antes solo cubria virtuales y buscar algo\n// en Fisicas perdia los talonarios ya tildados. Deliberadamente\n// NO usa localStorage (decision del usuario): se pierde con un F5 o al\n// cerrar la pestaña, como cualquier formulario sin guardar. Se resetea sola\n// si cambia de rifa (ver seleccionNumerosRifas()) porque \"Asignar comprador\"\n// es siempre sobre un unico sorteo.\n//\n// `numeros` es un Map (numero -> {reservado, pagado, fisico}), no un Set de solo\n// numeros: la barra de seleccion necesita saber el ESTADO de cada numero\n// para decidir que botones mostrar (Asignar comprador / Marcar como pagado /\n// Marcar como reservado), y para uno seleccionado en una pagina que ya no\n// esta en el DOM no hay forma de volver a leerlo -por eso se captura una\n// sola vez, en sincronizarSeleccion(), en el momento en que se tilda.\nconst seleccionNumerosPersistente = { sorteoId: null, numeros: new Map() };\n\n// Arma las entradas {numero, reservado, pagado, fisico, fila} de la seleccion\n// persistente, buscando `fila` en vivo en la tabla actualmente en el DOM\n// (null si ese numero quedo en otra pagina o fuera de la busqueda). Funcion\n// de modulo (no de seleccionNumerosRifas()) porque tambien la necesita\n// marcarNumerosComoPago()/asignarCompradorNumeroPanel() despues de guardar,\n// que no tienen por que correr en el mismo contexto que abrio la accion.\nfunction entradasSeleccionParaBarra(){\n const tabla = document.querySelector('[data-numeros-listado]');\n\n return Array.from(seleccionNumerosPersistente.numeros.entries()).map(([numero, estado]) => ({\n numero,\n reservado: !!(estado && estado.reservado),\n pagado: !!(estado && estado.pagado),\n fisico: !!(estado && estado.fisico),\n fila: tabla ? tabla.querySelector(`[data-numero-fila][data-numero=\"${numero}\"]`) : null,\n }));\n}\n\nfunction seleccionNumerosRifas(root = document){\n const tablas = root.querySelectorAll('[data-numeros-listado]');\n\n tablas.forEach(tabla => {\n if(tabla.dataset.seleccionNumerosInit === 'true'){\n return;\n }\n\n const seleccionarTodos = tabla.querySelector('[data-seleccionar-todos-numeros]');\n const checkboxes = Array.from(tabla.querySelectorAll('[data-numero-seleccionado]'));\n // Solo decide si existe \"Asignar comprador\" (exclusivo de virtuales);\n // la seleccion persistente cubre los dos tipos.\n const esVirtual = tabla.dataset.tipoNumero === 'virtuales';\n\n if(!seleccionarTodos || !checkboxes.length){\n return;\n }\n\n tabla.dataset.seleccionNumerosInit = 'true';\n\n // Si cambio de rifa desde la ultima vez, la seleccion anterior ya no\n // tiene sentido (toda accion masiva es sobre un unico sorteo) - se\n // descarta. Si es la misma rifa (cambio de pagina, busqueda, filtro o\n // tipo de numero), se restauran los checks de esta tabla que ya\n // estuvieran en el Map. Sin disparar 'change': corre antes que\n // gruposTalonarioNumerosRifas(), que al iniciar ya lee el estado de\n // cada checkbox para pintar el del talonario.\n if(seleccionNumerosPersistente.sorteoId !== tabla.dataset.sorteoId){\n seleccionNumerosPersistente.sorteoId = tabla.dataset.sorteoId;\n seleccionNumerosPersistente.numeros.clear();\n }\n\n checkboxes.forEach(checkbox => {\n checkbox.checked = seleccionNumerosPersistente.numeros.has(checkbox.value);\n });\n\n function sincronizarSeleccion(checkbox){\n if(checkbox.checked){\n const fila = checkbox.closest('tr');\n seleccionNumerosPersistente.numeros.set(checkbox.value, {\n reservado: fila ? fila.dataset.reservado === '1' : false,\n pagado: fila ? fila.dataset.pagado === '1' : false,\n fisico: fila ? fila.dataset.fisico === '1' : false,\n });\n }else{\n seleccionNumerosPersistente.numeros.delete(checkbox.value);\n }\n }\n\n function actualizarSeleccionGeneral(){\n const seleccionados = checkboxes.filter(checkbox => checkbox.checked).length;\n\n checkboxes.forEach(checkbox => {\n const fila = checkbox.closest('tr');\n\n if(fila){\n fila.classList.toggle('fila_numero_seleccionada', checkbox.checked);\n }\n });\n\n seleccionarTodos.checked = seleccionados === checkboxes.length;\n seleccionarTodos.indeterminate = seleccionados > 0 && seleccionados < checkboxes.length;\n\n // La barra sale siempre del Map persistente (cruza paginas y\n // busquedas, con el estado ya guardado de cada numero).\n renderizarBarraSeleccion(entradasSeleccionParaBarra());\n }\n\n seleccionarTodos.addEventListener('change', () => {\n // Ojo: no leer seleccionarTodos.checked dentro del forEach - cada\n // dispatchEvent dispara actualizarSeleccionGeneral() (mas abajo),\n // que recalcula y pisa seleccionarTodos.checked/indeterminate a\n // mitad de camino (con la seleccion todavia parcial), asi que hay\n // que fijar el valor deseado ANTES de empezar a iterar (mismo\n // problema que ya se dio con el checkbox de talonario).\n // Tampoco sirve seleccionarTodos.checked: a medias (fa-square-minus)\n // el navegador lo pasa a checked=true, y ahi tiene que\n // deseleccionar. A medias o completo -> deseleccionar; vacio ->\n // seleccionar todos.\n const marcar = !checkboxes.some(checkbox => checkbox.checked);\n\n // Dispara 'change' solo en los que realmente cambian de estado -\n // eso es lo que escucha gruposTalonarioNumerosRifas() en cada\n // numero individual para actualizar el checkbox del talonario al\n // que pertenece (marcado/indeterminado), sin acoplar las dos\n // funciones entre si.\n checkboxes.forEach(checkbox => {\n if(checkbox.checked !== marcar){\n checkbox.checked = marcar;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n }\n });\n actualizarSeleccionGeneral();\n });\n\n // Shift+clic selecciona en rango, como en un explorador de archivos:\n // desde el ultimo checkbox clickeado (sin shift) hasta el actual,\n // en el mismo orden en que aparecen en la tabla (por Numero ASC).\n let ultimoCheckboxClickeado = null;\n\n checkboxes.forEach(checkbox => {\n checkbox.addEventListener('click', event => {\n if(event.shiftKey && ultimoCheckboxClickeado && ultimoCheckboxClickeado !== checkbox){\n const indiceAnterior = checkboxes.indexOf(ultimoCheckboxClickeado);\n const indiceActual = checkboxes.indexOf(checkbox);\n\n if(indiceAnterior !== -1 && indiceActual !== -1){\n const inicio = Math.min(indiceAnterior, indiceActual);\n const fin = Math.max(indiceAnterior, indiceActual);\n const marcar = checkbox.checked;\n\n for(let i = inicio; i <= fin; i++){\n checkboxes[i].checked = marcar;\n sincronizarSeleccion(checkboxes[i]);\n }\n\n actualizarSeleccionGeneral();\n }\n }\n\n ultimoCheckboxClickeado = checkbox;\n });\n\n checkbox.addEventListener('change', () => {\n sincronizarSeleccion(checkbox);\n actualizarSeleccionGeneral();\n });\n });\n\n // Escape deselecciona todo - pero solo si no hay un popup o un menu\n // contextual de numero abiertos (esos se cierran ellos solos con el\n // mismo Escape, y no tiene sentido tocar la seleccion de fondo a la\n // vez). Este listener se registra antes que los de esos popups, asi\n // que llega a leer su estado todavia abierto en el mismo evento.\n document.addEventListener('keydown', event => {\n if(event.key !== 'Escape'){\n return;\n }\n\n const popupAsignarAbierto = document.querySelector('[data-popup-asignar-fisico].visible, [data-popup-asignar-comprador].visible, [data-popup-eliminar-reserva].visible');\n const menuContextualAbierto = document.querySelector('.menu_contextual_numero');\n\n if(popupAsignarAbierto || menuContextualAbierto){\n return;\n }\n\n if(!checkboxes.some(checkbox => checkbox.checked)){\n return;\n }\n\n checkboxes.forEach(checkbox => {\n checkbox.checked = false;\n sincronizarSeleccion(checkbox);\n });\n\n ultimoCheckboxClickeado = null;\n actualizarSeleccionGeneral();\n });\n\n // La barra de \"seleccionados\" (contador/chips/botones) es compartida\n // por ambos modos desde aca -antes era exclusiva de virtuales.\n const acciones = tabla.closest('.panel_rifas')\n ? tabla.closest('.panel_rifas').querySelector('[data-numeros-seleccion-acciones]')\n : null;\n const botonVaciarSeleccion = acciones ? acciones.querySelector('[data-vaciar-seleccion-numeros]') : null;\n const botonCopiarNumeros = acciones ? acciones.querySelector('[data-copiar-numeros-seleccionados]') : null;\n const botonAsignarCompradorMasivo = acciones ? acciones.querySelector('[data-asignar-comprador-masivo]') : null;\n\n // Guard propio (no data-*Init global de la tabla): la barra vive\n // fuera de [data-numeros-listado], asi que si dos tablas llegaran a\n // compartirla en el mismo root no se duplicarian los listeners.\n if(botonVaciarSeleccion && botonVaciarSeleccion.dataset.vaciarSeleccionInit !== 'true'){\n botonVaciarSeleccion.dataset.vaciarSeleccionInit = 'true';\n botonVaciarSeleccion.addEventListener('click', () => {\n seleccionNumerosPersistente.numeros.clear();\n\n // Disparar 'change' (no solo poner checked=false) para que,\n // en fisicas, el checkbox del talonario al que pertenece\n // cada numero recalcule su propio estado tildado/indeterminado\n // (gruposTalonarioNumerosRifas() escucha ese evento).\n checkboxes.forEach(checkbox => {\n if(checkbox.checked){\n checkbox.checked = false;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n }\n });\n\n actualizarSeleccionGeneral();\n });\n }\n\n function entradasSeleccionActual(){\n return entradasSeleccionParaBarra();\n }\n\n if(botonCopiarNumeros && botonCopiarNumeros.dataset.copiarNumerosInit !== 'true'){\n botonCopiarNumeros.dataset.copiarNumerosInit = 'true';\n botonCopiarNumeros.addEventListener('click', () => {\n const numeros = entradasSeleccionActual().map(entrada => entrada.numero);\n\n if(!numeros.length){\n return;\n }\n\n const numerosOrdenados = numeros.slice().sort((a, b) => Number(a) - Number(b));\n copiarTextoAlPortapapeles(`Numeros: ${numerosOrdenados.join(' - ')}`, botonCopiarNumeros);\n });\n }\n\n if(esVirtual && botonAsignarCompradorMasivo && botonAsignarCompradorMasivo.dataset.asignarCompradorMasivoInit !== 'true'){\n botonAsignarCompradorMasivo.dataset.asignarCompradorMasivoInit = 'true';\n botonAsignarCompradorMasivo.addEventListener('click', () => {\n // Solo los \"Disponible\" son candidatos a un comprador nuevo\n // -si la seleccion mezcla estados, los reservados/pagados\n // quedan afuera de esta accion (para eso estan los otros\n // dos botones, mas abajo).\n // Los fisicos nunca llevan comprador (solo vendedor), aunque\n // hayan quedado en la seleccion desde la vista Fisicas.\n const entradas = entradasSeleccionParaBarra().filter(entrada => !entrada.reservado && !entrada.fisico);\n\n if(!entradas.length){\n return;\n }\n\n document.dispatchEvent(new CustomEvent('numeroVirtualAsignarComprador', {\n detail: { entradas, sorteoId: tabla.dataset.sorteoId },\n }));\n });\n }\n\n // \"Marcar como pagado\"/\"Marcar como reservado\": a diferencia de\n // \"Asignar comprador\", tienen sentido en los dos modos (pagar o\n // despagar un numero reservado no depende de si es fisico o\n // virtual) - por eso van sin el `if(esVirtual)` de arriba.\n function accionMasivaDePago(boton, nuevoPagado, filtro){\n if(!boton || boton.dataset.pagoMasivoInit === 'true'){\n return;\n }\n\n boton.dataset.pagoMasivoInit = 'true';\n\n boton.addEventListener('click', async () => {\n const entradas = entradasSeleccionActual().filter(filtro);\n\n if(!entradas.length){\n return;\n }\n\n // Ojo: no restaurar el innerHTML original en un `finally` -\n // si la llamada tiene exito, marcarNumerosComoPago() ya\n // actualizo/destildo lo procesado y eso dispara (via los\n // 'change' de los checkboxes, o el repintado explicito para\n // virtuales sin fila) un renderizarBarraSeleccion() que deja\n // este mismo boton con su texto/cantidad ya correctos -pisarlo\n // con el texto viejo lo dejaria desactualizado. Solo en el\n // catch (no llego a procesar nada) tiene sentido volver atras.\n const textoOriginal = boton.innerHTML;\n boton.disabled = true;\n boton.innerHTML = ' Actualizando...';\n\n try{\n await marcarNumerosComoPago(tabla.dataset.sorteoId, entradas, nuevoPagado);\n boton.disabled = false;\n }catch(error){\n console.error('Error al actualizar el estado de pago de los numeros:', error);\n alert(error.message || 'No se pudo actualizar los numeros.');\n boton.disabled = false;\n boton.innerHTML = textoOriginal;\n }\n });\n }\n\n const botonMarcarPagadoMasivo = acciones ? acciones.querySelector('[data-marcar-pagado-masivo]') : null;\n const botonMarcarReservadoMasivo = acciones ? acciones.querySelector('[data-marcar-reservado-masivo]') : null;\n\n accionMasivaDePago(botonMarcarPagadoMasivo, 1, entrada => entrada.reservado && !entrada.pagado);\n accionMasivaDePago(botonMarcarReservadoMasivo, 0, entrada => entrada.reservado && entrada.pagado);\n\n // Menu desplegable que junta \"Asignar comprador\"/\"Marcar como\n // pagado\"/\"Marcar como reservado\" (antes 3 botones sueltos): abre/\n // cierra la lista, y se cierra sola al elegir un item, con Escape,\n // o al clickear afuera (esto ultimo via menuAccionesMasivasGlobal(),\n // registrado una sola vez para toda la pagina).\n const botonToggleAcciones = acciones ? acciones.querySelector('[data-toggle-acciones-masivas]') : null;\n const menuAccionesLista = acciones ? acciones.querySelector('[data-menu-acciones-masivas-lista]') : null;\n\n if(botonToggleAcciones && menuAccionesLista && botonToggleAcciones.dataset.toggleAccionesInit !== 'true'){\n botonToggleAcciones.dataset.toggleAccionesInit = 'true';\n\n botonToggleAcciones.addEventListener('click', event => {\n event.stopPropagation();\n const abrir = menuAccionesLista.hidden;\n menuAccionesLista.hidden = !abrir;\n botonToggleAcciones.classList.toggle('abierto', abrir);\n });\n\n menuAccionesLista.addEventListener('click', () => {\n cerrarMenuAccionesMasivas();\n });\n\n menuAccionesMasivasGlobal();\n }\n\n chipsSeleccionArrastrables(acciones ? acciones.querySelector('[data-numeros-seleccion-chips]') : null);\n\n actualizarSeleccionGeneral();\n });\n}\n\n// Barra \"N numeros seleccionados\" + chips de admin/sorteo/numeros.php\n// (Virtuales y Fisicas). Se redibuja leyendo el DOM en vivo cada vez -nunca\n// una referencia guardada- porque la puede disparar tanto\n// seleccionNumerosRifas() (la pagina activa) como marcarNumerosComoPago()/\n// asignarCompradorNumeroPanel() despues de guardar, que no tienen por que\n// correr en el mismo contexto que abrio la accion.\n//\n// Recibe `entradas` ({numero, reservado, pagado}[], persistente en\n// Virtuales, solo de la pagina actual en Fisicas) y decide sola que botones\n// de accion mostrar: la seleccion puede mezclar estados (algunos\n// \"Disponible\", otros \"Reservado sin pagar\", otros \"Pagado\"), asi que en vez\n// de un unico boton fijo se calculan 3 subgrupos y cada boton aparece solo\n// si su subgrupo no esta vacio, con la cantidad de SU subgrupo (no el total)\n// -mismo criterio que ya usa el menu contextual (construirOpciones()) para\n// una seleccion de una sola pagina.\nfunction renderizarBarraSeleccion(entradas){\n const acciones = document.querySelector('[data-numeros-seleccion-acciones]');\n\n if(!acciones){\n return;\n }\n\n const contador = acciones.querySelector('[data-numeros-seleccion-contador]');\n const chipsContenedor = acciones.querySelector('[data-numeros-seleccion-chips]');\n const botonAsignar = acciones.querySelector('[data-asignar-comprador-masivo]');\n const botonMarcarPagado = acciones.querySelector('[data-marcar-pagado-masivo]');\n const botonMarcarReservado = acciones.querySelector('[data-marcar-reservado-masivo]');\n\n const unicas = new Map();\n entradas.forEach(entrada => unicas.set(String(entrada.numero), entrada));\n const lista = Array.from(unicas.values()).sort((a, b) => Number(a.numero) - Number(b.numero));\n\n // La barra nunca se oculta (ocultarla/mostrarla empujaba la tabla):\n // sin seleccion pasa a .sin_seleccion, con texto guia en lugar de chips\n // y los botones deshabilitados, manteniendo la misma altura.\n const sinSeleccion = lista.length === 0;\n acciones.classList.toggle('sin_seleccion', sinSeleccion);\n\n const botonCopiar = acciones.querySelector('[data-copiar-numeros-seleccionados]');\n const botonVaciar = acciones.querySelector('[data-vaciar-seleccion-numeros]');\n\n if(botonCopiar){\n botonCopiar.disabled = sinSeleccion;\n }\n\n if(botonVaciar){\n botonVaciar.disabled = sinSeleccion;\n }\n\n if(contador){\n contador.textContent = lista.length;\n }\n\n if(chipsContenedor){\n chipsContenedor.replaceChildren();\n\n if(sinSeleccion){\n const placeholder = document.createElement('span');\n placeholder.className = 'chips_numeros_placeholder';\n placeholder.textContent = 'Seleccioná números de la tabla para ver las acciones';\n chipsContenedor.appendChild(placeholder);\n }\n\n lista.forEach(entrada => {\n const claseEstado = entrada.pagado\n ? 'chip_estado_pagado'\n : (entrada.reservado ? 'chip_estado_reservado' : 'chip_estado_disponible');\n const chip = document.createElement('span');\n chip.className = `chip_numero_seleccionado ${claseEstado}`;\n chip.innerHTML = `#${entrada.numero} `;\n chip.querySelector('button').addEventListener('click', () => quitarNumeroDeSeleccion(entrada.numero));\n chipsContenedor.appendChild(chip);\n });\n\n actualizarChipsDesplazables(chipsContenedor);\n }\n\n const disponibles = lista.filter(entrada => !entrada.reservado);\n const reservadosSinPagar = lista.filter(entrada => entrada.reservado && !entrada.pagado);\n const reservadosPagados = lista.filter(entrada => entrada.reservado && entrada.pagado);\n\n if(botonAsignar){\n botonAsignar.hidden = disponibles.length === 0;\n botonAsignar.innerHTML = ` Asignar comprador (${disponibles.length})`;\n }\n\n if(botonMarcarPagado){\n botonMarcarPagado.hidden = reservadosSinPagar.length === 0;\n botonMarcarPagado.innerHTML = ` Marcar como pagado (${reservadosSinPagar.length})`;\n }\n\n if(botonMarcarReservado){\n botonMarcarReservado.hidden = reservadosPagados.length === 0;\n botonMarcarReservado.innerHTML = ` Marcar como reservado (${reservadosPagados.length})`;\n }\n\n // Disparador \"Acciones (N)\": junta los 3 botones de arriba en un menu\n // desplegable en vez de mostrarlos sueltos -N es la cantidad de ESE\n // menu (1 a 3 items visibles), no la cantidad de numeros. Si ningun\n // item aplica (ej. en Fisicas, seleccion 100% \"Disponible\" -que no usa\n // este menu, tiene su propio flujo de \"Asignar\" por fila) el disparador\n // queda deshabilitado -no oculto, para que la fila no se reacomode- y se\n // fuerza cerrado el menu por si habia quedado abierto de una seleccion\n // anterior.\n const botonToggleAcciones = acciones.querySelector('[data-toggle-acciones-masivas]');\n const textoToggleAcciones = acciones.querySelector('[data-acciones-masivas-texto]');\n\n if(botonToggleAcciones){\n const itemsVisibles = [botonAsignar, botonMarcarPagado, botonMarcarReservado]\n .filter(boton => boton && !boton.hidden).length;\n\n botonToggleAcciones.disabled = itemsVisibles === 0;\n\n if(textoToggleAcciones){\n textoToggleAcciones.textContent = itemsVisibles ? `Acciones (${itemsVisibles})` : 'Acciones';\n }\n\n if(itemsVisibles === 0){\n cerrarMenuAccionesMasivas();\n }\n }\n}\n\n// Cierra el menu desplegable de acciones masivas (lo usan el click afuera,\n// Escape, y el click sobre un item para cerrarse solo despues de disparar\n// su accion). Lee el DOM en vivo, no una referencia guardada, por la misma\n// razon que renderizarBarraSeleccion().\nfunction cerrarMenuAccionesMasivas(){\n const boton = document.querySelector('[data-toggle-acciones-masivas]');\n const lista = document.querySelector('[data-menu-acciones-masivas-lista]');\n\n if(lista){\n lista.hidden = true;\n }\n\n if(boton){\n boton.classList.remove('abierto');\n }\n}\n\n// Registra (una sola vez para toda la pagina) el cierre del menu de\n// acciones masivas al clickear afuera o con Escape -separado del wiring\n// del boton disparador en seleccionNumerosRifas() porque esos listeners de\n// document no deben repetirse en cada re-init de tabla.\nfunction menuAccionesMasivasGlobal(){\n if(menuAccionesMasivasGlobal.init){\n return;\n }\n\n menuAccionesMasivasGlobal.init = true;\n\n document.addEventListener('click', event => {\n const menu = document.querySelector('[data-menu-acciones-masivas]');\n\n if(menu && !menu.contains(event.target)){\n cerrarMenuAccionesMasivas();\n }\n });\n\n document.addEventListener('keydown', event => {\n if(event.key === 'Escape'){\n cerrarMenuAccionesMasivas();\n }\n });\n}\n\n// Fila de chips de la barra de seleccion: con mouse se puede arrastrar para\n// scrollear en horizontal, como con el dedo en touch (touch ya scrollea\n// nativo, por eso solo se toma pointerType 'mouse'). Recien pasado un\n// umbral de 5px cuenta como arrastre -asi un click normal en la \"x\" de un\n// chip sigue funcionando- y, si hubo arrastre, se descarta el click que\n// dispara el navegador al soltar para no quitar un chip sin querer. El\n// contenedor es fijo (los chips se regeneran adentro), asi que alcanza con\n// inicializarlo una sola vez.\nfunction chipsSeleccionArrastrables(contenedor){\n if(!contenedor || contenedor.dataset.arrastreInit === 'true'){\n return;\n }\n\n contenedor.dataset.arrastreInit = 'true';\n\n let pointerId = null;\n let inicioX = 0;\n let scrollInicial = 0;\n let arrastrando = false;\n let descartarClick = false;\n\n contenedor.addEventListener('pointerdown', event => {\n if(event.pointerType !== 'mouse' || event.button !== 0 || !contenedor.classList.contains('desplazable')){\n return;\n }\n\n pointerId = event.pointerId;\n inicioX = event.clientX;\n scrollInicial = contenedor.scrollLeft;\n descartarClick = false;\n });\n\n contenedor.addEventListener('pointermove', event => {\n if(event.pointerId !== pointerId){\n return;\n }\n\n const desplazamiento = event.clientX - inicioX;\n\n if(!arrastrando){\n if(Math.abs(desplazamiento) < 5){\n return;\n }\n\n arrastrando = true;\n descartarClick = true;\n contenedor.setPointerCapture(pointerId);\n contenedor.classList.add('arrastrando');\n }\n\n contenedor.scrollLeft = scrollInicial - desplazamiento;\n });\n\n const terminarArrastre = event => {\n if(event.pointerId !== pointerId){\n return;\n }\n\n pointerId = null;\n arrastrando = false;\n contenedor.classList.remove('arrastrando');\n };\n\n contenedor.addEventListener('pointerup', terminarArrastre);\n contenedor.addEventListener('pointercancel', terminarArrastre);\n\n contenedor.addEventListener('click', event => {\n if(descartarClick){\n event.preventDefault();\n event.stopPropagation();\n descartarClick = false;\n }\n }, true);\n\n // El ancho cambia con la ventana (y la sidebar compacta): recalcular si\n // hay algo para scrollear. Los cambios de contenido los cubre\n // renderizarBarraSeleccion().\n if(typeof ResizeObserver !== 'undefined'){\n new ResizeObserver(() => actualizarChipsDesplazables(contenedor)).observe(contenedor);\n }\n\n actualizarChipsDesplazables(contenedor);\n}\n\n// .desplazable = hay chips fuera de vista: habilita el arrastre y el\n// cursor de \"agarrar\" (sin scroll no tiene sentido mostrarlo).\nfunction actualizarChipsDesplazables(contenedor){\n contenedor.classList.toggle('desplazable', contenedor.scrollWidth > contenedor.clientWidth + 1);\n}\n\n// Saca un numero de la seleccion (click en la \"x\" de un chip), sirve para\n// Virtuales y Fisicas. Si su checkbox esta en la pagina actualmente visible,\n// destildarlo y disparar 'change' alcanza -ese listener ya se encarga de\n// sacarlo del Map persistente (si aplica), resincronizar el checkbox del\n// talonario si pertenece a uno, y volver a pintar esta barra. Si no hay\n// checkbox (numero virtual seleccionado en otra pagina), no queda otra que\n// sacarlo del Map directo y repintar a mano.\nfunction quitarNumeroDeSeleccion(numero){\n const checkbox = document.querySelector(`[data-numeros-listado] [data-numero-seleccionado][value=\"${numero}\"]`);\n\n if(checkbox && checkbox.checked){\n checkbox.checked = false;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n return;\n }\n\n seleccionNumerosPersistente.numeros.delete(String(numero));\n renderizarBarraSeleccion(entradasSeleccionParaBarra());\n}\n\n// Copia `texto` al portapapeles y da feedback visual en `boton` (cambia su\n// texto un momento) - lo usan admin/sorteo/numeros.php (Copiar numeros) y\n// cualquier otro boton de copiar que se agregue despues. Fallback a\n// window.prompt() si el navegador no tiene Clipboard API o el contexto no es\n// seguro (http:// en vez de https://), asi el usuario igual puede copiarlo\n// a mano en vez de que el boton no haga nada.\nfunction copiarTextoAlPortapapeles(texto, boton){\n function mostrarCopiado(){\n if(!boton){\n return;\n }\n\n // Solo el icono (el boton es icon-only en la barra de seleccion); el\n // \"Copiado\" va en title/aria-label. El original se guarda una sola\n // vez para que un doble click no deje el check como \"original\".\n if(!boton.dataset.copiadoOriginal){\n boton.dataset.copiadoOriginal = boton.innerHTML;\n boton.dataset.copiadoTitle = boton.getAttribute('title') || '';\n boton.dataset.copiadoAria = boton.getAttribute('aria-label') || '';\n }\n window.clearTimeout(boton._copiadoTimeout);\n\n boton.innerHTML = '';\n boton.setAttribute('title', 'Copiado');\n boton.setAttribute('aria-label', 'Copiado');\n\n boton._copiadoTimeout = window.setTimeout(() => {\n boton.innerHTML = boton.dataset.copiadoOriginal;\n boton.setAttribute('title', boton.dataset.copiadoTitle);\n boton.setAttribute('aria-label', boton.dataset.copiadoAria);\n delete boton.dataset.copiadoOriginal;\n }, 1500);\n }\n\n if(navigator.clipboard && navigator.clipboard.writeText){\n navigator.clipboard.writeText(texto).then(mostrarCopiado).catch(() => {\n window.prompt('No se pudo copiar automaticamente. Copia el texto:', texto);\n });\n return;\n }\n\n window.prompt('Copia el texto:', texto);\n}\n\n// Vista agrupada por talonario de admin/sorteo/numeros.php: cada fila-\n// talonario () trae debajo, ocultas con \"hidden\",\n// las filas de numero individual reales (, las mismas\n// que ya maneja seleccionNumerosRifas()/menuContextualNumerosRifas() sin\n// cambios) marcadas con data-talonario-numero-de=\"{N}\". Esta funcion solo\n// agrega dos cosas: el toggle para mostrar/ocultar esas filas, y que el\n// checkbox del talonario controle (tilde/destilde + estado indeterminado)\n// los checkboxes individuales anidados - el conteo/barra de seleccion\n// masiva sigue funcionando solo porque itera TODOS los\n// [data-numero-seleccionado] de la tabla sin importar si estan ocultos.\nfunction gruposTalonarioNumerosRifas(root = document){\n const tablas = root.querySelectorAll('[data-numeros-listado]');\n\n tablas.forEach(tabla => {\n if(tabla.dataset.gruposTalonarioInit === 'true'){\n return;\n }\n\n const filasTalonario = Array.from(tabla.querySelectorAll('[data-talonario-fila]'));\n\n if(!filasTalonario.length){\n return;\n }\n\n tabla.dataset.gruposTalonarioInit = 'true';\n\n const grupos = filasTalonario.map(filaTalonario => {\n const numeroTalonario = filaTalonario.dataset.talonario;\n const filasHijas = Array.from(tabla.querySelectorAll(`[data-talonario-numero-de=\"${numeroTalonario}\"]`));\n\n return {\n toggle: filaTalonario.querySelector('[data-talonario-toggle]'),\n checkboxGrupo: filaTalonario.querySelector('[data-talonario-seleccionar-todos]'),\n filasHijas,\n checkboxesHijos: filasHijas.map(fila => fila.querySelector('[data-numero-seleccionado]')).filter(Boolean),\n };\n });\n\n grupos.forEach(({ toggle, filasHijas }) => {\n if(!toggle){\n return;\n }\n\n toggle.addEventListener('click', () => {\n const expandir = toggle.getAttribute('aria-expanded') !== 'true';\n\n filasHijas.forEach(fila => {\n fila.hidden = !expandir;\n });\n\n toggle.setAttribute('aria-expanded', expandir ? 'true' : 'false');\n });\n });\n\n // Tilda/destilda todos los numeros de un talonario sin depender de\n // volver a leer checkboxGrupo.checked (ver la nota mas abajo sobre\n // por que eso rompe con mas de un numero por talonario).\n function marcarGrupo(grupo, marcar){\n grupo.checkboxesHijos.forEach(checkbox => {\n checkbox.checked = marcar;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n });\n }\n\n // Shift+clic entre checkboxes de TALONARIO selecciona todos los\n // talonarios (y sus numeros) entre el ultimo tildado y el actual -\n // mismo patron \"como en un explorador de archivos\" que ya usan los\n // checkboxes de numero individual en seleccionNumerosRifas().\n let ultimoGrupoClickeado = null;\n\n grupos.forEach(grupo => {\n const { checkboxGrupo, checkboxesHijos } = grupo;\n\n if(!checkboxGrupo || !checkboxesHijos.length){\n return;\n }\n\n const actualizarCheckboxGrupo = () => {\n const tildados = checkboxesHijos.filter(checkbox => checkbox.checked).length;\n\n checkboxGrupo.checked = tildados === checkboxesHijos.length;\n checkboxGrupo.indeterminate = tildados > 0 && tildados < checkboxesHijos.length;\n };\n\n checkboxGrupo.addEventListener('click', event => {\n if(event.shiftKey && ultimoGrupoClickeado && ultimoGrupoClickeado !== checkboxGrupo){\n const indiceAnterior = grupos.findIndex(g => g.checkboxGrupo === ultimoGrupoClickeado);\n const indiceActual = grupos.findIndex(g => g.checkboxGrupo === checkboxGrupo);\n\n if(indiceAnterior !== -1 && indiceActual !== -1){\n const inicio = Math.min(indiceAnterior, indiceActual);\n const fin = Math.max(indiceAnterior, indiceActual);\n const marcar = checkboxGrupo.checked;\n\n for(let i = inicio; i <= fin; i++){\n const otroGrupo = grupos[i];\n\n if(!otroGrupo.checkboxGrupo || !otroGrupo.checkboxesHijos.length){\n continue;\n }\n\n otroGrupo.checkboxGrupo.checked = marcar;\n otroGrupo.checkboxGrupo.indeterminate = false;\n marcarGrupo(otroGrupo, marcar);\n }\n }\n }\n\n ultimoGrupoClickeado = checkboxGrupo;\n });\n\n // Ojo: no leer checkboxGrupo.checked dentro del forEach - cada\n // dispatchEvent dispara actualizarCheckboxGrupo() (mas abajo),\n // que recalcula y pisa checkboxGrupo.checked/indeterminate a\n // mitad de camino (con la seleccion todavia parcial), asi que\n // hay que fijar el valor deseado ANTES de empezar a iterar.\n checkboxGrupo.addEventListener('change', () => {\n marcarGrupo(grupo, checkboxGrupo.checked);\n });\n\n checkboxesHijos.forEach(checkbox => {\n checkbox.addEventListener('change', actualizarCheckboxGrupo);\n });\n\n actualizarCheckboxGrupo();\n });\n });\n}\n\n// Aplica en el DOM el resultado de asignar/editar/quitar un numero (fisico o\n// virtual) sobre su fila en admin/sorteo/numeros.php - la usan el menu\n// contextual (quitar), el popup de asignacion de fisico (asignar/editar) y\n// el popup de asignar comprador de un numero virtual (mismas columnas:\n// comprador/DNI/contacto/vendedor + badge de estado).\n// Vuelve a traer del servidor la vista actual del admin despues de un cambio\n// (ver 'admin:recargar-vista' en adminPartialNavigation()), conservando\n// scroll, talonarios abiertos y seleccion. La fila tocada ya se actualiza al\n// instante con actualizarFilaNumeroFisico(); esto trae lo que depende de\n// varios numeros a la vez y que el navegador no puede recalcular solo: el\n// estado/vendedor de cada talonario, los filtros por estado y los contadores.\n// Si la pagina no esta dentro del shell de navegacion parcial, recarga entera.\nfunction recargarVistaAdmin(){\n const atendido = !document.dispatchEvent(new CustomEvent('admin:recargar-vista', { cancelable: true }));\n\n if(!atendido){\n window.location.reload();\n }\n}\n\nfunction actualizarFilaNumeroFisico(fila, datos){\n const reservado = Number(datos.RES) === 1;\n const pagado = Number(datos.Pagado) === 1;\n\n fila.dataset.reservado = reservado ? '1' : '0';\n fila.dataset.pagado = pagado ? '1' : '0';\n\n const badge = fila.querySelector('[data-numero-estado]');\n if(badge){\n badge.classList.remove('disponible', 'reservado', 'pagado');\n badge.classList.add(pagado ? 'pagado' : (reservado ? 'reservado' : 'disponible'));\n badge.textContent = pagado ? 'Pagado' : (reservado ? 'Reservado' : 'Disponible');\n }\n\n // Por data-attribute y no por indice de columna: DNI y Contacto no\n // existen en el DOM cuando se esta viendo la pestana \"Fisicos\" (ver\n // $mostrandoFisicos en admin/sorteo/numeros.php), asi que la posicion\n // de \"Vendedor\" varia segun eso -esto sigue andando en los dos casos.\n const celdaComprador = fila.querySelector('[data-columna-comprador]');\n const celdaContacto = fila.querySelector('[data-columna-contacto]');\n const celdaVendedor = fila.querySelector('[data-columna-vendedor]');\n const esFisico = fila.dataset.fisico === '1';\n\n if(reservado){\n const nombreCompleto = [datos.Apellido, datos.Nombre].filter(Boolean).join(', ');\n\n if(celdaComprador){\n if(nombreCompleto){\n celdaComprador.textContent = nombreCompleto;\n }else if(esFisico){\n // Fisico asignado sin datos de comprador (solo se registra\n // vendedor, ver asignarNumeroFisico.php) - \"Asignado\" en vez\n // de un guion pelado, para que se note que el numero ya\n // tiene dueño aunque no haya nombre de comprador que mostrar.\n celdaComprador.replaceChildren();\n const badgeAsignado = document.createElement('span');\n badgeAsignado.className = 'badge_asignado_fisico';\n badgeAsignado.textContent = 'Asignado';\n celdaComprador.appendChild(badgeAsignado);\n }else{\n celdaComprador.textContent = '-';\n }\n }\n if(celdaContacto){\n celdaContacto.textContent = datos.Contacto || '-';\n }\n if(celdaVendedor){\n celdaVendedor.textContent = datos.Vendedor || '-';\n }\n }else{\n // El boton \"Asignar\" solo existe para numeros fisicos (RES=0 y\n // Fisico=1, ver admin/sorteo/numeros.php) - un virtual que vuelve a\n // \"Disponible\" (ej: eliminarReservaNumeros()) no tiene boton propio,\n // se gestiona desde el menu contextual como cualquier otro virtual\n // disponible.\n if(celdaComprador){\n if(esFisico){\n celdaComprador.replaceChildren();\n const boton = document.createElement('button');\n boton.type = 'button';\n boton.className = 'boton_asignar_fisico';\n boton.dataset.asignarFisico = '';\n boton.dataset.numero = fila.dataset.numero;\n boton.textContent = 'Asignar';\n celdaComprador.appendChild(boton);\n }else{\n celdaComprador.textContent = '-';\n }\n }\n if(celdaContacto){\n celdaContacto.textContent = '-';\n }\n if(celdaVendedor){\n celdaVendedor.textContent = '-';\n }\n }\n}\n\n// Clic derecho sobre un numero (admin/sorteo/numeros.php): marcar como\n// pagado a mano (numeros reservados, fisicos o virtuales) mientras no este\n// lista la integracion de cobro real por CobraScout, y para numeros\n// fisicos ademas editar o quitar la asignacion manual. Se recibe `root` por\n// consistencia con seleccionNumerosRifas() (se re-invoca desde\n// rehidratarContenidoAdmin() tras navegar por el sidebar sin recargar),\n// pero como el menu se maneja por delegacion en `document` -no por tabla-\n// solo hace falta engancharlo una vez; llamadas siguientes no hacen nada.\nfunction menuContextualNumerosRifas(root = document){\n if(menuContextualNumerosRifas.eventosGlobales){\n return;\n }\n\n let menuActual = null;\n\n function cerrarMenu(){\n if(menuActual){\n menuActual.remove();\n menuActual = null;\n }\n }\n\n async function aplicarCambioPago(fila, nuevoPagado){\n const tabla = fila.closest('[data-numeros-listado]');\n const sorteoId = tabla ? tabla.dataset.sorteoId : '';\n const numero = fila.dataset.numero;\n const badge = fila.querySelector('[data-numero-estado]');\n\n try{\n const respuesta = await fetch('/admin/sorteo/actualizarPagoNumero.php', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'same-origin',\n body: JSON.stringify({ Numero: numero, sorteoId: sorteoId, pagado: nuevoPagado })\n });\n\n const datos = await respuesta.json().catch(() => null);\n\n if(!respuesta.ok || !datos || !datos.ok){\n throw new Error((datos && datos.error) || 'No se pudo actualizar el numero.');\n }\n\n fila.dataset.pagado = String(nuevoPagado);\n\n if(badge){\n badge.classList.remove('pagado', 'reservado');\n badge.classList.add(nuevoPagado ? 'pagado' : 'reservado');\n badge.textContent = nuevoPagado ? 'Pagado' : 'Reservado';\n }\n\n recargarVistaAdmin();\n }catch(error){\n console.error('Error al actualizar el estado de pago del numero:', error);\n alert(error.message || 'No se pudo actualizar el numero.');\n }\n }\n\n // Version masiva de aplicarCambioPago() -en cualquiera de las dos\n // direcciones-, reusando la misma funcion de red que el boton \"Marcar\n // como pagado\" de la barra de seleccion (ver marcarNumerosComoPago()).\n async function aplicarCambioPagoMasivo(filas, nuevoPagado){\n if(!filas.length){\n return;\n }\n\n const tabla = filas[0].closest('[data-numeros-listado]');\n const entradas = filas.map(fila => ({ numero: fila.dataset.numero, fila }));\n\n try{\n await marcarNumerosComoPago(tabla ? tabla.dataset.sorteoId : '', entradas, nuevoPagado);\n }catch(error){\n console.error('Error al actualizar el estado de pago de los numeros:', error);\n alert(error.message || 'No se pudo actualizar los numeros.');\n }\n }\n\n // `soloSeleccionMultiple` lo usa el clic derecho sobre la fila-resumen\n // de un talonario (mas abajo): ahi no tiene sentido ofrecer una accion\n // que solo toque `fila` (el numero representante que se eligio para\n // leer el estado) - se ocultan las opciones \"individuales\" y se deja\n // unicamente la variante \"(N seleccionados)\" cuando exista.\n function construirOpciones(fila, soloSeleccionMultiple = false){\n const tabla = fila.closest('[data-numeros-listado]');\n const reservado = fila.dataset.reservado === '1';\n const esFisico = fila.dataset.fisico === '1';\n const pagado = fila.dataset.pagado === '1';\n const opciones = [];\n\n // Sacarle el pago a un numero (\"Marcar como reservado\") es solo para\n // Jefe de Rama para arriba; marcarlo como pagado, para todo el panel.\n const puedeCambiarPago = !pagado || (tabla && tabla.dataset.puedeDesmarcarPagos === '1');\n\n if(reservado && puedeCambiarPago){\n // Toggle de pago, fisico o virtual (pagado o no): opcion simple\n // de siempre, mas la variante de seleccion multiple hacia el\n // mismo estado -\"N seleccionados\" solo tiene sentido si\n // comparten tipo (fisico/virtual, no tiene sentido mezclarlos\n // en la misma operacion) y estado de pago actual.\n const nuevoPagado = pagado ? 0 : 1;\n const textoBase = pagado ? 'Marcar como reservado' : 'Marcar como pagado';\n const seleccionadas = filasEnMismoEstadoDePagoSeleccionadas(fila, esFisico, pagado);\n const enSeleccionMultiple = seleccionadas.length > 1 && seleccionadas.includes(fila);\n\n if(!soloSeleccionMultiple || !enSeleccionMultiple){\n opciones.push({\n icono: pagado ? 'fa-rotate-left' : 'fa-check',\n texto: enSeleccionMultiple ? `${textoBase} #${fila.dataset.numero}` : textoBase,\n accion: () => aplicarCambioPago(fila, nuevoPagado),\n });\n }\n\n if(enSeleccionMultiple){\n opciones.push({\n icono: pagado ? 'fa-rotate-left' : 'fa-check-double',\n texto: `${textoBase} (${seleccionadas.length} seleccionados)`,\n accion: () => aplicarCambioPagoMasivo(seleccionadas, nuevoPagado),\n });\n }\n }\n\n // \"Editar asignacion\" (reasignar vendedor) de un fisico asignado, mas\n // la variante masiva con los fisicos asignados tildados -pagados o\n // no, reasignar el vendedor no depende del estado de pago.\n if(esFisico && reservado){\n const seleccionadasEditar = filasSeleccionadasEnTabla(fila, f => f.dataset.reservado === '1' && f.dataset.fisico === '1');\n const enSeleccionMultipleEditar = seleccionadasEditar.length > 1 && seleccionadasEditar.includes(fila);\n\n if(!soloSeleccionMultiple || !enSeleccionMultipleEditar){\n opciones.push({\n icono: 'fa-pen',\n texto: enSeleccionMultipleEditar ? `Editar asignacion #${fila.dataset.numero}` : 'Editar asignacion',\n accion: () => document.dispatchEvent(new CustomEvent('numeroFisicoEditar', { detail: { filas: [fila] } })),\n });\n }\n\n if(enSeleccionMultipleEditar){\n opciones.push({\n icono: 'fa-people-arrows',\n texto: `Reasignar vendedor (${seleccionadasEditar.length} seleccionados)`,\n accion: () => document.dispatchEvent(new CustomEvent('numeroFisicoEditar', { detail: { filas: seleccionadasEditar } })),\n });\n }\n }\n\n // \"Eliminar reserva\" (virtual) / \"Quitar asignacion\" (fisico): en el\n // fondo la misma operacion (resetea RES/Pagado y borra comprador y\n // vendedor, ver eliminarReservaNumero.php), asi que comparten el\n // mismo permiso -Jefe de Rama para arriba, el backend vuelve a\n // validar esto, esto solo decide si se muestra la opcion- y el\n // mismo popup rojo de confirmacion en vez de ejecutar directo. La\n // seleccion multiple, a diferencia del toggle de pago de arriba,\n // acepta cualquier mezcla de pagados/sin pagar -eliminar no\n // depende de eso- pero no mezcla fisicos con virtuales.\n if(reservado && tabla && tabla.dataset.puedeEliminarReservas === '1'){\n const seleccionadasEliminar = filasSeleccionadasEnTabla(fila, f => f.dataset.reservado === '1' && f.dataset.fisico === fila.dataset.fisico);\n const enSeleccionMultipleEliminar = seleccionadasEliminar.length > 1 && seleccionadasEliminar.includes(fila);\n const sorteoId = tabla.dataset.sorteoId;\n const textoSingular = esFisico ? 'Quitar asignacion' : 'Eliminar reserva';\n const textoPlural = esFisico ? 'Quitar asignaciones' : 'Eliminar reservas';\n\n if(!soloSeleccionMultiple || !enSeleccionMultipleEliminar){\n opciones.push({\n icono: 'fa-trash',\n peligro: true,\n texto: enSeleccionMultipleEliminar ? `${textoSingular} #${fila.dataset.numero}` : textoSingular,\n accion: () => document.dispatchEvent(new CustomEvent('numeroPedirEliminarReserva', { detail: { filas: [fila], sorteoId, esFisico } })),\n });\n }\n\n if(enSeleccionMultipleEliminar){\n opciones.push({\n icono: 'fa-trash',\n peligro: true,\n texto: `${textoPlural} (${seleccionadasEliminar.length} seleccionados)`,\n accion: () => document.dispatchEvent(new CustomEvent('numeroPedirEliminarReserva', { detail: { filas: seleccionadasEliminar, sorteoId, esFisico } })),\n });\n }\n }\n\n // Numero \"Disponible\" (sin reservar), fisico o virtual: reserva\n // manual desde el admin, a mano. El virtual carga datos de\n // comprador (asignarCompradorNumeroPanel); el fisico por ahora solo\n // registra vendedor (asignarNumeroFisicoPanel, el mismo popup que ya\n // usa el boton \"Asignar\" de la fila y el masivo de la barra de\n // seleccion). Si la fila clickeada es parte de una seleccion de 2+\n // en el mismo estado se suma la segunda opcion masiva -el numero se\n // agrega al texto de la primera para no confundirlas.\n if(!reservado){\n const seleccionadas = esFisico\n ? filasSeleccionadasEnTabla(fila, f => f.dataset.reservado === '0' && f.dataset.fisico === '1')\n : filasVirtualesDisponiblesSeleccionadas(fila);\n const enSeleccionMultiple = seleccionadas.length > 1 && seleccionadas.includes(fila);\n const textoSingular = esFisico ? 'Asignar vendedor' : 'Asignar comprador';\n const textoPlural = esFisico ? 'Asignar vendedores' : 'Asignar compradores';\n const evento = esFisico ? 'numeroFisicoAsignarMasivo' : 'numeroVirtualAsignarComprador';\n\n if(!soloSeleccionMultiple || !enSeleccionMultiple){\n opciones.push({\n icono: 'fa-user-plus',\n texto: enSeleccionMultiple ? `${textoSingular} #${fila.dataset.numero}` : textoSingular,\n accion: () => document.dispatchEvent(new CustomEvent(evento, { detail: { filas: [fila] } })),\n });\n }\n\n if(enSeleccionMultiple){\n opciones.push({\n icono: 'fa-users',\n texto: `${textoPlural} (${seleccionadas.length} seleccionados)`,\n accion: () => document.dispatchEvent(new CustomEvent(evento, { detail: { filas: seleccionadas } })),\n });\n }\n }\n\n return opciones;\n }\n\n // Filas tildadas (checkbox) en la misma tabla que `fila`, que ademas\n // cumplen `filtro` (recibe el dataset reservado/fisico/pagado de cada\n // una) - base de las variantes de seleccion multiple del menu\n // contextual: mismo estado que la fila clickeada, para que \"todos los\n // seleccionados\" tenga sentido como una sola accion.\n function filasSeleccionadasEnTabla(fila, filtro){\n const tabla = fila.closest('[data-numeros-listado]');\n\n if(!tabla){\n return [];\n }\n\n return Array.from(tabla.querySelectorAll('[data-numero-seleccionado]:checked'))\n .map(checkbox => checkbox.closest('tr'))\n .filter(filaSeleccionada => filaSeleccionada && filtro(filaSeleccionada));\n }\n\n // Candidatas al popup de asignar comprador: numeros virtuales\n // \"Disponible\" (una reservada o fisica tildada por error se ignora en\n // vez de bloquear la opcion masiva).\n function filasVirtualesDisponiblesSeleccionadas(fila){\n return filasSeleccionadasEnTabla(fila, f => f.dataset.reservado === '0' && f.dataset.fisico === '0');\n }\n\n // Candidatas al toggle de pago masivo (hacia pagado o de vuelta a\n // reservado): numeros reservados que comparten tipo (fisico/virtual,\n // no tiene sentido mezclarlos en la misma operacion) y estado de pago\n // con `fila` -\"Marcar como pagado (N)\" no tendria sentido incluyendo\n // uno que ya esta pagado, ni viceversa.\n function filasEnMismoEstadoDePagoSeleccionadas(fila, esFisico, pagado){\n const fisicoStr = esFisico ? '1' : '0';\n const pagadoStr = pagado ? '1' : '0';\n return filasSeleccionadasEnTabla(fila, f => f.dataset.reservado === '1' && f.dataset.fisico === fisicoStr && f.dataset.pagado === pagadoStr);\n }\n\n function crearMenu(fila, x, y, opciones){\n cerrarMenu();\n\n const menu = document.createElement('div');\n menu.className = 'menu_contextual_numero';\n menu.setAttribute('role', 'menu');\n\n opciones.forEach(op => {\n const boton = document.createElement('button');\n boton.type = 'button';\n boton.className = 'menu_contextual_numero_opcion' + (op.peligro ? ' peligro' : '');\n boton.setAttribute('role', 'menuitem');\n boton.innerHTML = `${op.texto}`;\n\n boton.addEventListener('click', () => {\n op.accion();\n cerrarMenu();\n });\n\n menu.appendChild(boton);\n });\n\n document.body.appendChild(menu);\n\n const anchoMenu = menu.offsetWidth;\n const altoMenu = menu.offsetHeight;\n const left = Math.max(8, Math.min(x, window.innerWidth - anchoMenu - 8));\n const top = Math.max(8, Math.min(y, window.innerHeight - altoMenu - 8));\n\n menu.style.left = `${left}px`;\n menu.style.top = `${top}px`;\n\n menuActual = menu;\n }\n\n document.addEventListener('contextmenu', event => {\n // Clic derecho sobre la fila-resumen de un talonario (admin/sorteo/numeros.php,\n // vista agrupada): se trata como \"tildar todo el talonario y actuar\n // sobre eso\" -tilda los numeros que no estuvieran ya tildados y arma\n // el menu igual que si se hubiera hecho clic derecho sobre uno de\n // ellos con una seleccion multiple ya armada (mismas opciones\n // \"(N seleccionados)\" de construirOpciones(), sin duplicar esa\n // logica). Las filas de numero individual son hermanos de la\n // fila-talonario (no descendientes), asi que closest() nunca\n // confunde este caso con el de mas abajo.\n const filaTalonario = event.target.closest('[data-talonario-fila]');\n\n if(filaTalonario){\n const tabla = filaTalonario.closest('[data-numeros-listado]');\n\n if(!tabla){\n cerrarMenu();\n return;\n }\n\n const numeroTalonario = filaTalonario.dataset.talonario;\n const filasHijas = Array.from(tabla.querySelectorAll(`[data-talonario-numero-de=\"${numeroTalonario}\"]`));\n\n if(!filasHijas.length){\n cerrarMenu();\n return;\n }\n\n filasHijas.forEach(filaHija => {\n const checkbox = filaHija.querySelector('[data-numero-seleccionado]');\n\n if(checkbox && !checkbox.checked){\n checkbox.checked = true;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n }\n });\n\n const representativa = filasHijas[0];\n const opcionesTalonario = construirOpciones(representativa, true);\n\n if(!opcionesTalonario.length){\n cerrarMenu();\n return;\n }\n\n event.preventDefault();\n crearMenu(representativa, event.clientX, event.clientY, opcionesTalonario);\n return;\n }\n\n const fila = event.target.closest('[data-numero-fila]');\n\n if(!fila || !fila.closest('[data-numeros-listado]')){\n cerrarMenu();\n return;\n }\n\n const opciones = construirOpciones(fila);\n\n if(!opciones.length){\n // No deberia pasar -construirOpciones() siempre devuelve algo\n // para toda fila con data-numero-fila (Asignar o el toggle de\n // pago, segun el estado)-, pero si algun dia cambia la logica y\n // no hay nada que ofrecer, se deja pasar el menu nativo del\n // navegador en vez de mostrar un menu vacio.\n cerrarMenu();\n return;\n }\n\n event.preventDefault();\n crearMenu(fila, event.clientX, event.clientY, opciones);\n });\n\n document.addEventListener('click', event => {\n if(menuActual && !event.target.closest('.menu_contextual_numero')){\n cerrarMenu();\n }\n });\n\n document.addEventListener('keydown', event => {\n if(event.key === 'Escape'){\n cerrarMenu();\n }\n });\n\n window.addEventListener('scroll', () => cerrarMenu(), true);\n window.addEventListener('resize', cerrarMenu);\n\n menuContextualNumerosRifas.eventosGlobales = true;\n}\n\n// Texto \"Numero #N\" / \"N numeros seleccionados: #a, #b...\" de los popups de\n// asignacion de admin/sorteo/numeros.php - lo usan tanto\n// asignarNumeroFisicoPanel() (siempre con reales) como\n// asignarCompradorNumeroPanel(), que ademas puede recibir numeros de OTRA\n// pagina sin -por eso cada item acepta tanto un (`.dataset.numero`)\n// como una entrada plana `{numero}`.\nfunction textoNumeros(filas){\n const numeros = filas.map(item => (item && item.dataset ? item.dataset.numero : item.numero)).filter(Boolean);\n\n if(numeros.length === 1){\n return `Numero #${numeros[0]}`;\n }\n\n return `${numeros.length} numeros seleccionados: ${numeros.map(n => `#${n}`).join(', ')}`;\n}\n\n// Autocompletado/validacion de vendedor (DNI o nombre) de admin/sorteo/numeros.php\n// - lo usan tanto asignarNumeroFisicoPanel() (numeros fisicos) como\n// asignarCompradorNumeroPanel() (numeros virtuales \"Disponible\", reserva\n// manual desde el admin). Cada popup llama a esto una vez y se queda con su\n// propia instancia -temporizador y consulta en vuelo independientes por\n// popup, para que escribir en uno no cancele una busqueda del otro-, y le\n// pasa su propio `el` (los campos de *ese* popup: inputSorteoId,\n// inputVendedorDni, inputVendedor, estadoVendedor, listaVendedor).\nfunction crearBuscadorVendedor(){\n let temporizador = null;\n let consultaActual = 0;\n\n function mostrarEstado(el, tipo, texto){\n if(!el.estadoVendedor){\n return;\n }\n el.estadoVendedor.className = 'dni-vendedor-estado visible' + (tipo ? ' ' + tipo : '');\n el.estadoVendedor.textContent = texto;\n }\n\n function limpiarEstado(el){\n clearTimeout(temporizador);\n consultaActual++;\n\n if(el.estadoVendedor){\n el.estadoVendedor.className = 'dni-vendedor-estado';\n el.estadoVendedor.textContent = '';\n }\n if(el.listaVendedor){\n el.listaVendedor.hidden = true;\n el.listaVendedor.replaceChildren();\n }\n }\n\n async function validarPorDni(el, dni){\n const consultaId = ++consultaActual;\n mostrarEstado(el, 'consultando', 'Buscando vendedor...');\n\n try{\n const respuesta = await fetch('/sorteo/consulta_DNI.php', {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n credentials: 'same-origin',\n body: new URLSearchParams({ dni: dni, sorteoId: el.inputSorteoId.value }),\n });\n const datos = await respuesta.json().catch(() => null);\n\n if(consultaId !== consultaActual){\n return;\n }\n\n if(!datos || datos.error){\n el.inputVendedorDni.value = '';\n mostrarEstado(el, 'error', (datos && datos.error) || 'No se pudo verificar el DNI.');\n return;\n }\n\n el.inputVendedorDni.value = dni;\n mostrarEstado(el, 'valido', datos.Nombre_Apellido);\n }catch(error){\n if(consultaId !== consultaActual){\n return;\n }\n el.inputVendedorDni.value = '';\n mostrarEstado(el, 'error', 'No se pudo verificar el DNI.');\n }\n }\n\n async function buscarPorNombre(el, termino){\n const consultaId = ++consultaActual;\n mostrarEstado(el, 'consultando', 'Buscando...');\n\n try{\n const respuesta = await fetch(`/admin/sorteo/buscarVendedorSorteo.php?sorteoId=${encodeURIComponent(el.inputSorteoId.value)}&q=${encodeURIComponent(termino)}`, {\n credentials: 'same-origin',\n });\n const datos = await respuesta.json().catch(() => null);\n\n if(consultaId !== consultaActual || !el.listaVendedor){\n return;\n }\n\n const vendedores = (datos && datos.ok && Array.isArray(datos.vendedores)) ? datos.vendedores : [];\n el.listaVendedor.replaceChildren();\n\n if(!vendedores.length){\n el.listaVendedor.hidden = true;\n mostrarEstado(el, 'error', 'Sin resultados para esa busqueda.');\n return;\n }\n\n mostrarEstado(el, '', 'Elegi el vendedor de la lista.');\n\n vendedores.forEach(vendedor => {\n const item = document.createElement('li');\n const boton = document.createElement('button');\n boton.type = 'button';\n boton.textContent = vendedor.nombre_completo;\n boton.addEventListener('click', () => {\n el.inputVendedorDni.value = vendedor.dni;\n el.inputVendedor.value = vendedor.nombre_completo;\n mostrarEstado(el, 'valido', vendedor.nombre_completo);\n el.listaVendedor.hidden = true;\n el.listaVendedor.replaceChildren();\n });\n item.appendChild(boton);\n el.listaVendedor.appendChild(item);\n });\n\n el.listaVendedor.hidden = false;\n }catch(error){\n // Se ignora - se puede seguir escribiendo o corregir el DNI.\n }\n }\n\n // Handler unico para el \"input\" del campo vendedor: decide si lo que se\n // esta tipeando parece un DNI (valida contra consulta_DNI.php) o un\n // nombre (autocompleta contra buscarVendedorSorteo.php), con debounce.\n function manejarInput(el, termino){\n clearTimeout(temporizador);\n el.inputVendedorDni.value = '';\n\n if(termino.length < 3){\n limpiarEstado(el);\n return;\n }\n\n const esDni = /^\\d+$/.test(termino);\n\n temporizador = setTimeout(() => {\n if(esDni && termino.length >= 7){\n if(el.listaVendedor){\n el.listaVendedor.hidden = true;\n }\n validarPorDni(el, termino);\n }else{\n buscarPorNombre(el, termino);\n }\n }, 350);\n }\n\n return { mostrarEstado, limpiarEstado, manejarInput };\n}\n\n// Popup de \"Asignar numero fisico\" en admin/sorteo/numeros.php. El filtro\n// de esa pagina (rifa/estado/tipo) navega por el sistema parcial del admin\n// (manejarFormularioParcial() -> cargarVista()), que reemplaza el HTML del\n// panel completo -incluido este popup- en cada cambio de filtro. Por eso,\n// igual que menuContextualNumerosRifas(), se engancha UNA sola vez a nivel\n// `document` (guard estatico en la funcion) y cada handler vuelve a buscar\n// el popup y sus campos en el momento, en vez de guardarlos en variables\n// que quedarian apuntando a un nodo ya removido del DOM.\nfunction asignarNumeroFisicoPanel(){\n if(asignarNumeroFisicoPanel.eventosGlobales){\n return;\n }\n\n // filasActuales: las filas que el popup esta por asignar/editar -\n // un solo elemento para el boton \"Asignar\" de una fila o \"Editar\n // asignacion\" del menu contextual, varias para la seleccion masiva.\n let filasActuales = [];\n const buscadorVendedor = crearBuscadorVendedor();\n\n function elementos(){\n const popup = document.querySelector('[data-popup-asignar-fisico]');\n\n if(!popup){\n return null;\n }\n\n return {\n popup,\n form: popup.querySelector('[data-form-asignar-fisico]'),\n inputSorteoId: popup.querySelector('[data-asignar-fisico-sorteo-id]'),\n inputVendedorDni: popup.querySelector('[data-asignar-fisico-vendedor-dni]'),\n inputVendedor: popup.querySelector('[data-asignar-fisico-vendedor-input]'),\n estadoVendedor: popup.querySelector('[data-asignar-fisico-vendedor-estado]'),\n listaVendedor: popup.querySelector('[data-asignar-fisico-vendedor-resultados]'),\n numerosTexto: popup.querySelector('[data-asignar-fisico-numeros-texto]'),\n titulo: popup.querySelector('[data-asignar-fisico-titulo]'),\n botonSubmit: popup.querySelector('[data-asignar-fisico-submit]'),\n error: popup.querySelector('[data-asignar-fisico-error]'),\n };\n }\n\n function limpiarError(el){\n if(el.error){\n el.error.hidden = true;\n el.error.textContent = '';\n }\n }\n\n function mostrarError(el, mensaje){\n if(el.error){\n el.error.hidden = false;\n el.error.textContent = mensaje;\n }\n }\n\n function abrirPopup(el){\n el.popup.classList.remove('visible');\n el.popup.offsetHeight;\n el.popup.classList.add('visible');\n el.popup.setAttribute('aria-hidden', 'false');\n\n window.setTimeout(() => {\n if(el.inputVendedor){\n el.inputVendedor.focus();\n }\n }, 120);\n }\n\n function cerrarPopup(){\n const el = elementos();\n\n if(el){\n el.popup.classList.remove('visible');\n el.popup.setAttribute('aria-hidden', 'true');\n }\n\n filasActuales = [];\n }\n\n\n function prepararPopup(el, filas, tabla){\n filasActuales = filas;\n\n el.form.reset();\n buscadorVendedor.limpiarEstado(el);\n limpiarError(el);\n el.inputVendedorDni.value = '';\n el.inputSorteoId.value = tabla ? tabla.dataset.sorteoId : '';\n\n if(el.numerosTexto){\n el.numerosTexto.textContent = textoNumeros(filas);\n }\n }\n\n // Boton \"Asignar\" de una fila disponible, boton masivo \"Asignar\n // vendedor\" con la seleccion actual, o la misma opcion desde el menu\n // contextual (construirOpciones()) - todos el mismo popup en \"modo\n // alta\" (sin vendedor previo).\n function abrirParaAsignar(filas){\n const el = elementos();\n\n if(!el || !filas.length){\n return;\n }\n\n const tabla = filas[0].closest('[data-numeros-listado]');\n prepararPopup(el, filas, tabla);\n\n if(el.titulo){\n el.titulo.textContent = 'Asignar vendedor';\n }\n if(el.botonSubmit){\n el.botonSubmit.textContent = 'Asignar';\n }\n\n abrirPopup(el);\n }\n\n // \"Editar asignacion\" / \"Reasignar vendedor (N)\" del menu contextual -\n // uno o varios numeros que ya tienen vendedor; si todos comparten el\n // mismo se prellena el campo como referencia, pero se tiene que\n // reconfirmar (no se puede reconstruir el DNI a partir del nombre\n // mostrado en la tabla).\n function abrirParaEditar(filas){\n const el = elementos();\n\n if(!el || !filas.length){\n return;\n }\n\n const tabla = filas[0].closest('[data-numeros-listado]');\n const vendedores = new Set(filas.map(fila => {\n const celdaVendedor = fila.querySelector('[data-columna-vendedor]');\n return celdaVendedor ? celdaVendedor.textContent.trim() : '';\n }));\n const vendedorActual = vendedores.size === 1 ? [...vendedores][0] : '';\n\n prepararPopup(el, filas, tabla);\n\n if(vendedorActual && vendedorActual !== '-'){\n el.inputVendedor.value = vendedorActual;\n buscadorVendedor.mostrarEstado(el, '', 'Volve a confirmar el vendedor para guardar los cambios.');\n }\n\n if(el.titulo){\n el.titulo.textContent = filas.length > 1 ? 'Reasignar vendedor' : 'Editar asignacion';\n }\n if(el.botonSubmit){\n el.botonSubmit.textContent = 'Guardar cambios';\n }\n\n abrirPopup(el);\n }\n\n document.addEventListener('input', event => {\n const el = elementos();\n\n if(!el || event.target !== el.inputVendedor){\n return;\n }\n\n buscadorVendedor.manejarInput(el, el.inputVendedor.value.trim());\n });\n\n document.addEventListener('click', event => {\n const botonAsignar = event.target.closest('[data-asignar-fisico]');\n\n if(botonAsignar){\n const fila = botonAsignar.closest('tr');\n if(fila){\n abrirParaAsignar([fila]);\n }\n return;\n }\n\n const el = elementos();\n\n if(!el || !el.popup.classList.contains('visible')){\n return;\n }\n\n if(event.target.closest('[data-cerrar-asignar-fisico]') || event.target === el.popup){\n cerrarPopup();\n }\n });\n\n document.addEventListener('numeroFisicoEditar', event => {\n if(!event.detail){\n return;\n }\n\n if(Array.isArray(event.detail.filas) && event.detail.filas.length){\n abrirParaEditar(event.detail.filas);\n }else if(event.detail.fila){\n abrirParaEditar([event.detail.fila]);\n }\n });\n\n // Disparado por seleccionNumerosRifas() al clickear \"Asignar vendedor\"\n // en la barra de acciones masivas (con las filas tildadas) y por\n // construirOpciones() en menuContextualNumerosRifas() (una fila sola, o\n // la seleccion tildada, desde el menu contextual).\n document.addEventListener('numeroFisicoAsignarMasivo', event => {\n if(event.detail && Array.isArray(event.detail.filas) && event.detail.filas.length){\n abrirParaAsignar(event.detail.filas);\n }\n });\n\n document.addEventListener('keydown', event => {\n const el = elementos();\n\n if(event.key === 'Escape' && el && el.popup.classList.contains('visible')){\n cerrarPopup();\n }\n });\n\n document.addEventListener('submit', async event => {\n const form = event.target.closest('[data-form-asignar-fisico]');\n\n if(!form){\n return;\n }\n\n event.preventDefault();\n\n const el = elementos();\n\n if(!el){\n return;\n }\n\n limpiarError(el);\n\n if(!el.inputVendedorDni.value){\n mostrarError(el, 'Confirma un vendedor valido antes de guardar.');\n return;\n }\n\n if(el.botonSubmit){\n el.botonSubmit.disabled = true;\n }\n\n try{\n const numeros = filasActuales.map(fila => fila.dataset.numero).filter(Boolean);\n\n const respuesta = await fetch('/admin/sorteo/asignarNumeroFisico.php', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'same-origin',\n body: JSON.stringify({\n sorteoId: el.inputSorteoId.value,\n Numeros: numeros,\n accion: 'asignar',\n VendedorDni: el.inputVendedorDni.value,\n }),\n });\n\n const datos = await respuesta.json().catch(() => null);\n\n if(!respuesta.ok || !datos || !datos.ok){\n throw new Error((datos && datos.error) || 'No se pudo guardar la asignacion.');\n }\n\n const numerosActualizados = Array.isArray(datos.numeros) ? datos.numeros : [];\n numerosActualizados.forEach(numeroDatos => {\n const fila = filasActuales.find(f => f.dataset.numero === String(numeroDatos.Numero));\n if(fila){\n actualizarFilaNumeroFisico(fila, numeroDatos);\n\n const checkbox = fila.querySelector('[data-numero-seleccionado]');\n if(checkbox && checkbox.checked){\n checkbox.checked = false;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n }\n }\n });\n\n cerrarPopup();\n recargarVistaAdmin();\n }catch(error){\n mostrarError(el, error.message || 'No se pudo guardar la asignacion.');\n }finally{\n if(el.botonSubmit){\n el.botonSubmit.disabled = false;\n }\n }\n });\n\n asignarNumeroFisicoPanel.eventosGlobales = true;\n}\n\n// Popup de \"Asignar comprador\" en admin/sorteo/numeros.php - reserva manual\n// de uno o varios numeros virtuales \"Disponible\" desde el admin, con el\n// mismo comprador/vendedor para todos (opciones del menu contextual\n// -construirOpciones() en menuContextualNumerosRifas()-, un numero solo o\n// la seleccion tildada completa, ver data-numero-fila en\n// admin/sorteo/numeros.php), sin pasar por el flujo publico de sorteo.php.\n// Mismo patron que asignarNumeroFisicoPanel() y por la misma razon: el\n// filtro de numeros.php reemplaza el HTML del panel -incluido este popup-\n// en cada cambio, asi que se engancha una sola vez a nivel `document` y\n// cada handler vuelve a buscar el popup en el momento.\nfunction asignarCompradorNumeroPanel(){\n if(asignarCompradorNumeroPanel.eventosGlobales){\n return;\n }\n\n // entradasActuales: los numeros que el popup esta por reservar, como\n // `{numero, fila}` - un solo elemento para \"Asignar comprador #N\" del\n // menu contextual (fila siempre presente ahi), varios para \"Asignar\n // compradores (N seleccionados)\" (mismo comprador y vendedor para\n // todas). Puede venir del menu contextual (construirOpciones() en\n // menuContextualNumerosRifas(), siempre con reales de la misma\n // pagina) o de la barra de seleccion persistente de numeros virtuales\n // (seleccionNumerosRifas()), que puede incluir numeros de OTRA pagina\n // -esos llegan con `fila: null`, no hay que actualizar para ellos.\n let entradasActuales = [];\n const buscadorVendedor = crearBuscadorVendedor();\n\n function elementos(){\n const popup = document.querySelector('[data-popup-asignar-comprador]');\n\n if(!popup){\n return null;\n }\n\n return {\n popup,\n form: popup.querySelector('[data-form-asignar-comprador]'),\n inputSorteoId: popup.querySelector('[data-asignar-comprador-sorteo-id]'),\n inputVendedorDni: popup.querySelector('[data-asignar-comprador-vendedor-dni]'),\n inputVendedor: popup.querySelector('[data-asignar-comprador-vendedor-input]'),\n estadoVendedor: popup.querySelector('[data-asignar-comprador-vendedor-estado]'),\n listaVendedor: popup.querySelector('[data-asignar-comprador-vendedor-resultados]'),\n numeroTexto: popup.querySelector('[data-asignar-comprador-numero-texto]'),\n inputApellido: popup.querySelector('[data-asignar-comprador-apellido]'),\n inputNombre: popup.querySelector('[data-asignar-comprador-nombre]'),\n inputContacto: popup.querySelector('[data-asignar-comprador-contacto]'),\n inputPagado: popup.querySelector('[data-asignar-comprador-pagado]'),\n botonSubmit: popup.querySelector('[data-asignar-comprador-submit]'),\n error: popup.querySelector('[data-asignar-comprador-error]'),\n };\n }\n\n function limpiarError(el){\n if(el.error){\n el.error.hidden = true;\n el.error.textContent = '';\n }\n }\n\n function mostrarError(el, mensaje){\n if(el.error){\n el.error.hidden = false;\n el.error.textContent = mensaje;\n }\n }\n\n function abrirPopup(el){\n el.popup.classList.remove('visible');\n el.popup.offsetHeight;\n el.popup.classList.add('visible');\n el.popup.setAttribute('aria-hidden', 'false');\n\n window.setTimeout(() => {\n if(el.inputApellido){\n el.inputApellido.focus();\n }\n }, 120);\n }\n\n function cerrarPopup(){\n const el = elementos();\n\n if(el){\n el.popup.classList.remove('visible');\n el.popup.setAttribute('aria-hidden', 'true');\n }\n\n entradasActuales = [];\n }\n\n function abrirParaAsignar(entradas, sorteoIdExplicito){\n const el = elementos();\n\n if(!el || !entradas.length){\n return;\n }\n\n const primeraFila = entradas.map(entrada => entrada.fila).find(Boolean);\n const tabla = primeraFila ? primeraFila.closest('[data-numeros-listado]') : null;\n entradasActuales = entradas;\n\n el.form.reset();\n buscadorVendedor.limpiarEstado(el);\n limpiarError(el);\n el.inputVendedorDni.value = '';\n el.inputSorteoId.value = sorteoIdExplicito || (tabla ? tabla.dataset.sorteoId : '');\n\n if(el.numeroTexto){\n el.numeroTexto.textContent = textoNumeros(entradas);\n }\n\n abrirPopup(el);\n }\n\n document.addEventListener('input', event => {\n const el = elementos();\n\n if(!el || event.target !== el.inputVendedor){\n return;\n }\n\n buscadorVendedor.manejarInput(el, el.inputVendedor.value.trim());\n });\n\n document.addEventListener('click', event => {\n const el = elementos();\n\n if(!el || !el.popup.classList.contains('visible')){\n return;\n }\n\n if(event.target.closest('[data-cerrar-asignar-comprador]') || event.target === el.popup){\n cerrarPopup();\n }\n });\n\n document.addEventListener('numeroVirtualAsignarComprador', event => {\n if(!event.detail){\n return;\n }\n\n // Dos origenes posibles: el menu contextual manda `filas` (\n // reales de la pagina actual, ver construirOpciones()); la barra de\n // seleccion persistente manda `entradas` ya armadas (puede incluir\n // numeros sin , de otra pagina) mas el sorteoId explicito.\n if(Array.isArray(event.detail.entradas) && event.detail.entradas.length){\n abrirParaAsignar(event.detail.entradas, event.detail.sorteoId);\n return;\n }\n\n if(Array.isArray(event.detail.filas) && event.detail.filas.length){\n const entradas = event.detail.filas.map(fila => ({ numero: fila.dataset.numero, fila }));\n abrirParaAsignar(entradas);\n }\n });\n\n document.addEventListener('keydown', event => {\n const el = elementos();\n\n if(event.key === 'Escape' && el && el.popup.classList.contains('visible')){\n cerrarPopup();\n }\n });\n\n document.addEventListener('submit', async event => {\n const form = event.target.closest('[data-form-asignar-comprador]');\n\n if(!form){\n return;\n }\n\n event.preventDefault();\n\n const el = elementos();\n\n if(!el || !entradasActuales.length){\n return;\n }\n\n limpiarError(el);\n\n if(!el.inputVendedorDni.value){\n mostrarError(el, 'Confirma un vendedor valido antes de guardar.');\n return;\n }\n\n if(el.botonSubmit){\n el.botonSubmit.disabled = true;\n }\n\n try{\n const numeros = entradasActuales.map(entrada => entrada.numero).filter(Boolean);\n\n const respuesta = await fetch('/admin/sorteo/asignarCompradorNumero.php', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'same-origin',\n body: JSON.stringify({\n sorteoId: el.inputSorteoId.value,\n Numeros: numeros,\n Apellido: el.inputApellido.value,\n Nombre: el.inputNombre.value,\n Contacto: el.inputContacto.value,\n Pagado: (el.inputPagado && el.inputPagado.checked) ? 1 : 0,\n VendedorDni: el.inputVendedorDni.value,\n }),\n });\n\n const datos = await respuesta.json().catch(() => null);\n\n if(!respuesta.ok || !datos || !datos.ok){\n throw new Error((datos && datos.error) || 'No se pudo guardar el comprador.');\n }\n\n const numerosActualizados = Array.isArray(datos.numeros) ? datos.numeros : [];\n numerosActualizados.forEach(numeroDatos => {\n const entrada = entradasActuales.find(e => e.numero === String(numeroDatos.Numero));\n if(entrada && entrada.fila){\n // Misma forma de fila (celdas de comprador/DNI/contacto/vendedor\n // y badge de estado) que la que arma actualizarFilaNumeroFisico();\n // se reusa tal cual en vez de duplicar la logica de render.\n actualizarFilaNumeroFisico(entrada.fila, numeroDatos);\n\n const checkbox = entrada.fila.querySelector('[data-numero-seleccionado]');\n if(checkbox && checkbox.checked){\n checkbox.checked = false;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n }\n }\n });\n\n // Confirmados u omitidos: en ambos casos ya no tiene sentido\n // seguir mostrandolos en la barra de seleccion persistente\n // (los omitidos ya no estaban disponibles, per el aviso de abajo).\n const numerosProcesados = new Set([\n ...numerosActualizados.map(n => String(n.Numero)),\n ...(datos.omitidos || []).map(String),\n ]);\n entradasActuales.forEach(entrada => {\n if(numerosProcesados.has(entrada.numero)){\n seleccionNumerosPersistente.numeros.delete(entrada.numero);\n }\n });\n renderizarBarraSeleccion(entradasSeleccionParaBarra());\n\n if(datos.omitidos && datos.omitidos.length){\n alert(`Se asigno el comprador a ${numerosActualizados.length} numero(s). ${datos.omitidos.length} ya no estaban disponibles y se omitieron.`);\n }\n\n cerrarPopup();\n recargarVistaAdmin();\n }catch(error){\n mostrarError(el, error.message || 'No se pudo guardar el comprador.');\n }finally{\n if(el.botonSubmit){\n el.botonSubmit.disabled = false;\n }\n }\n });\n\n asignarCompradorNumeroPanel.eventosGlobales = true;\n}\n\n// Popup de confirmacion de \"Eliminar reserva\" (virtual) / \"Quitar\n// asignacion\" (fisico) en admin/sorteo/numeros.php - reemplaza el confirm()\n// nativo del navegador por un popup propio (mismas clases que\n// popup_asignar_fisico, ver _panelRifas.scss) para la unica accion\n// realmente destructiva del panel: resetear la reserva de uno o varios\n// numeros reservados, fisicos o virtuales (opcion en rojo del menu\n// contextual, solo visible para Jefe de Rama para arriba -\n// construirOpciones() en menuContextualNumerosRifas()-). Mismo patron que\n// los otros popups del panel: se engancha una sola vez a nivel `document` y\n// cada handler vuelve a buscar el popup en el momento, porque el filtro de\n// numeros.php reemplaza el HTML del panel -incluido este popup- en cada\n// cambio. Al confirmar, ejecuta eliminarReservaNumeros() (funcion de nivel\n// de modulo, no un closure de este panel) con las filas que vinieron en el\n// evento.\nfunction confirmarEliminarReservaPanel(){\n if(confirmarEliminarReservaPanel.eventosGlobales){\n return;\n }\n\n let filasActuales = [];\n let sorteoIdActual = '';\n\n function elementos(){\n const popup = document.querySelector('[data-popup-eliminar-reserva]');\n\n if(!popup){\n return null;\n }\n\n return {\n popup,\n titulo: popup.querySelector('[data-eliminar-reserva-titulo]'),\n texto: popup.querySelector('[data-eliminar-reserva-texto]'),\n confirmar: popup.querySelector('[data-eliminar-reserva-confirmar]'),\n };\n }\n\n function abrirPopup(el){\n el.popup.classList.remove('visible');\n el.popup.offsetHeight;\n el.popup.classList.add('visible');\n el.popup.setAttribute('aria-hidden', 'false');\n\n window.setTimeout(() => {\n if(el.confirmar){\n el.confirmar.focus();\n }\n }, 120);\n }\n\n function cerrarPopup(){\n const el = elementos();\n\n if(el){\n el.popup.classList.remove('visible');\n el.popup.setAttribute('aria-hidden', 'true');\n }\n\n filasActuales = [];\n sorteoIdActual = '';\n }\n\n document.addEventListener('numeroPedirEliminarReserva', event => {\n const el = elementos();\n const detalle = event.detail || {};\n\n if(!el || !Array.isArray(detalle.filas) || !detalle.filas.length){\n return;\n }\n\n filasActuales = detalle.filas;\n sorteoIdActual = detalle.sorteoId || '';\n\n const numeros = filasActuales.map(fila => fila.dataset.numero).filter(Boolean);\n // El fisico no tiene datos de comprador (solo vendedor) - el texto\n // de advertencia y el titulo/boton se adaptan segun de que tipo es\n // la seleccion (ver esFisico en construirOpciones(), no se mezclan\n // fisicos con virtuales en una misma seleccion masiva).\n const esFisico = !!detalle.esFisico;\n const textoSingular = esFisico ? 'Quitar asignacion' : 'Eliminar reserva';\n const textoPlural = esFisico ? 'Quitar asignaciones' : 'Eliminar reservas';\n const datoPerdido = esFisico ? 'el vendedor asignado' : 'los datos del comprador cargados';\n\n if(el.titulo){\n el.titulo.textContent = numeros.length === 1 ? textoSingular : textoPlural;\n }\n\n if(el.texto){\n el.texto.textContent = numeros.length === 1\n ? `El numero #${numeros[0]} va a quedar Disponible de nuevo y se va a perder ${datoPerdido}.`\n : `${numeros.length} numeros (${numeros.map(n => `#${n}`).join(', ')}) van a quedar Disponibles de nuevo y se va a perder ${datoPerdido}.`;\n }\n\n if(el.confirmar){\n el.confirmar.textContent = numeros.length === 1 ? textoSingular : textoPlural;\n }\n\n abrirPopup(el);\n });\n\n document.addEventListener('click', event => {\n const el = elementos();\n\n if(!el || !el.popup.classList.contains('visible')){\n return;\n }\n\n if(event.target.closest('[data-cerrar-eliminar-reserva]') || event.target === el.popup){\n cerrarPopup();\n return;\n }\n\n if(event.target.closest('[data-eliminar-reserva-confirmar]')){\n const filas = filasActuales;\n const sorteoId = sorteoIdActual;\n cerrarPopup();\n eliminarReservaNumeros(sorteoId, filas);\n }\n });\n\n document.addEventListener('keydown', event => {\n const el = elementos();\n\n if(event.key === 'Escape' && el && el.popup.classList.contains('visible')){\n cerrarPopup();\n }\n });\n\n confirmarEliminarReservaPanel.eventosGlobales = true;\n}\n\nfunction customSelects(root = document){\n const selects = root.querySelectorAll('select');\n\n function campoSelect(wrapper){\n return wrapper.closest('.campo_usuario, .filtros_anio_campamentos, .filtro_select_usuario, .popup_importar_rama_filtro, .popup_pase_rama_filtro');\n }\n\n function traerAlFrente(wrapper){\n const campo = campoSelect(wrapper);\n\n if(campo){\n campo.classList.add('select_en_frente');\n }\n }\n\n function devolverCapa(wrapper){\n const campo = campoSelect(wrapper);\n\n if(campo){\n campo.classList.remove('select_en_frente');\n }\n }\n\n selects.forEach(select => {\n if(select.dataset.customSelect === 'true' && select.nextElementSibling && select.nextElementSibling.classList.contains('select_custom')){\n return;\n }\n\n if(select.dataset.customSelect === 'true'){\n select.dataset.customSelect = 'false';\n }\n\n select.dataset.customSelect = 'true';\n select.classList.add('select_original');\n\n const wrapper = document.createElement('div');\n wrapper.classList.add('select_custom');\n wrapper.classList.toggle('select_custom_rama', select.classList.contains('ramas'));\n\n const boton = document.createElement('button');\n boton.type = 'button';\n boton.classList.add('select_custom_boton');\n\n const texto = document.createElement('span');\n texto.classList.add('select_custom_texto');\n\n const icono = document.createElement('i');\n icono.classList.add('fa-solid', 'fa-chevron-down');\n\n boton.appendChild(texto);\n boton.appendChild(icono);\n\n const lista = document.createElement('ul');\n lista.classList.add('select_custom_lista');\n\n const opciones = Array.from(select.options);\n\n function actualizarTexto(){\n const opcionSeleccionada = select.options[select.selectedIndex];\n texto.textContent = opcionSeleccionada ? opcionSeleccionada.textContent : 'Seleccione';\n // Opciones con color propio (etiquetas de Google del calendario).\n texto.style.setProperty('--opcion-color', (opcionSeleccionada && opcionSeleccionada.dataset.color) || '');\n\n wrapper.classList.remove('opcion_0', 'opcion_1', 'opcion_2', 'opcion_3', 'opcion_4');\n\n if(opcionSeleccionada){\n if(select.classList.contains('ramas')){\n wrapper.classList.add(`opcion_${opcionSeleccionada.value}`);\n }\n\n opcionSeleccionada.classList.forEach(clase => {\n if(clase.startsWith('opcion_')){\n wrapper.classList.add(clase);\n }\n });\n }\n }\n\n function marcarSeleccionActual(){\n const valorActual = select.value;\n\n lista.querySelectorAll('li').forEach(li => {\n li.classList.toggle('seleccionada', li.dataset.value === valorActual);\n });\n\n actualizarTexto();\n }\n\n opciones.forEach(opcion => {\n const item = document.createElement('li');\n item.textContent = opcion.textContent;\n item.dataset.value = opcion.value;\n item.className = opcion.className;\n\n if(opcion.dataset.color){\n item.style.setProperty('--opcion-color', opcion.dataset.color);\n }\n\n if(select.classList.contains('ramas')){\n item.classList.add(`opcion_${opcion.value}`);\n }\n\n item.classList.toggle('deshabilitada', opcion.disabled);\n item.classList.toggle('seleccionada', opcion.selected);\n\n if(!opcion.disabled){\n item.addEventListener('click', () => {\n select.value = opcion.value;\n select.dispatchEvent(new Event('change', { bubbles: true }));\n marcarSeleccionActual();\n\n wrapper.classList.remove('abierto');\n devolverCapa(wrapper);\n });\n }\n\n lista.appendChild(item);\n });\n\n boton.addEventListener('click', () => {\n document.querySelectorAll('.select_custom.abierto').forEach(abierto => {\n if(abierto !== wrapper){\n abierto.classList.remove('abierto');\n devolverCapa(abierto);\n }\n });\n\n wrapper.classList.toggle('abierto');\n\n if(wrapper.classList.contains('abierto')){\n traerAlFrente(wrapper);\n }else{\n devolverCapa(wrapper);\n }\n });\n\n select.addEventListener('change', marcarSeleccionActual);\n\n marcarSeleccionActual();\n\n select.insertAdjacentElement('afterend', wrapper);\n wrapper.appendChild(boton);\n wrapper.appendChild(lista);\n });\n\n if(!customSelects.eventosGlobales){\n document.addEventListener('click', (event) => {\n if(!event.target.closest('.select_custom')){\n document.querySelectorAll('.select_custom.abierto').forEach(select => {\n select.classList.remove('abierto');\n devolverCapa(select);\n });\n }\n });\n\n customSelects.eventosGlobales = true;\n }\n}\n\nfunction activarAutocompletadoRamas(root = document){\n if(!root){\n return;\n }\n\n const relaciones = [\n {\n origen: ['fechaManadaPase'],\n destino: ['fechaUnidadIngreso']\n },\n {\n origen: ['fechaUnidadPase'],\n destino: ['fechaCaminanteIngreso', 'fechaCaminantesIngreso']\n },\n {\n origen: ['fechaCaminantePase', 'fechaCaminantesPase'],\n destino: ['fechaRoverIngreso', 'fechaRoversIngreso']\n }\n ];\n\n function buscarCampo(nombres){\n for(const nombre of nombres){\n const campo = root.querySelector(`[name=\"${nombre}\"]`);\n\n if(campo){\n return campo;\n }\n }\n\n return null;\n }\n\n function dispararActualizacion(campo){\n campo.dispatchEvent(new Event('input', { bubbles: true }));\n campo.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n relaciones.forEach(({ origen, destino }) => {\n const campoOrigen = buscarCampo(origen);\n const campoDestino = buscarCampo(destino);\n\n if(!campoOrigen || !campoDestino || campoOrigen.dataset.autocompleteRamaBound === 'true'){\n return;\n }\n\n function sincronizarDestino(){\n const valorOrigen = campoOrigen.value || '';\n const origenActual = campoDestino.dataset.autocompletadoDesde || '';\n const valorAutocompletado = campoDestino.dataset.autocompletadoValor || '';\n const destinoVacio = (campoDestino.value || '') === '';\n const siguiendoMismoOrigen = origenActual === campoOrigen.name;\n\n if(valorOrigen === ''){\n if(siguiendoMismoOrigen && (campoDestino.value || '') === valorAutocompletado){\n campoDestino.value = '';\n dispararActualizacion(campoDestino);\n }\n\n delete campoDestino.dataset.autocompletadoDesde;\n delete campoDestino.dataset.autocompletadoValor;\n return;\n }\n\n if(destinoVacio || siguiendoMismoOrigen){\n const cambio = campoDestino.value !== valorOrigen;\n campoDestino.value = valorOrigen;\n campoDestino.dataset.autocompletadoDesde = campoOrigen.name;\n campoDestino.dataset.autocompletadoValor = valorOrigen;\n\n if(cambio){\n dispararActualizacion(campoDestino);\n }\n }\n }\n\n function limpiarSeguimientoManual(){\n const nombreOrigen = campoDestino.dataset.autocompletadoDesde;\n\n if(!nombreOrigen){\n return;\n }\n\n const campoRelacionado = buscarCampo([nombreOrigen]);\n const valorRelacionado = campoRelacionado ? (campoRelacionado.value || '') : '';\n\n if((campoDestino.value || '') !== valorRelacionado){\n delete campoDestino.dataset.autocompletadoDesde;\n delete campoDestino.dataset.autocompletadoValor;\n }\n }\n\n campoOrigen.addEventListener('input', sincronizarDestino);\n campoOrigen.addEventListener('change', sincronizarDestino);\n campoDestino.addEventListener('input', limpiarSeguimientoManual);\n campoDestino.addEventListener('change', limpiarSeguimientoManual);\n campoOrigen.dataset.autocompleteRamaBound = 'true';\n campoDestino.dataset.autocompleteRamaEnabled = 'true';\n\n sincronizarDestino();\n });\n}\n\nfunction selectorMiembrosVinculados(){\n const selector = document.querySelector('.selector_vinculados');\n\n if(!selector || selector.dataset.vinculadosBound === 'true'){\n return;\n }\n\n selector.dataset.vinculadosBound = 'true';\n\n const opciones = selector.querySelectorAll('.opcion_vinculado');\n const detalles = document.querySelectorAll('.detalle_vinculado');\n\n arrastrarConMouse(selector);\n\n opciones.forEach(opcion => {\n opcion.addEventListener('click', (event) => {\n if(selector.dataset.seArrastro === 'true'){\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const miembroId = opcion.dataset.miembro;\n\n opciones.forEach(item => {\n item.classList.remove('activo');\n item.setAttribute('aria-selected', 'false');\n });\n\n detalles.forEach(detalle => {\n detalle.classList.toggle('activo', detalle.dataset.miembro === miembroId);\n });\n\n opcion.classList.add('activo');\n opcion.setAttribute('aria-selected', 'true');\n ajustarTitulosVinculados();\n });\n });\n\n fotosVinculadosFadeIn();\n ajustarTitulosVinculados();\n\n if(selector.dataset.vinculadosResizeBound !== 'true'){\n window.addEventListener('resize', () => {\n ajustarTitulosVinculados();\n ajustarTituloAjusteRama();\n });\n selector.dataset.vinculadosResizeBound = 'true';\n }\n}\n\n// Permite arrastrar con el mouse un contenedor con overflow-x, sin perder el\n// scroll nativo (rueda/touch/teclado). Marca dataset.seArrastro='true' mientras\n// dura el gesto para que un click en un elemento de adentro (ej. una tarjeta\n// seleccionable) no dispare su accion si el usuario solo estaba arrastrando.\nfunction arrastrarConMouse(elemento){\n if(!elemento || elemento.dataset.arrastreBound === 'true'){\n return;\n }\n\n elemento.dataset.arrastreBound = 'true';\n elemento.dataset.seArrastro = 'false';\n\n let arrastrando = false;\n let inicioX = 0;\n let scrollInicial = 0;\n\n function moverArrastre(event){\n const delta = event.pageX - inicioX;\n\n if(Math.abs(delta) > 5){\n elemento.dataset.seArrastro = 'true';\n }\n\n elemento.scrollLeft = scrollInicial - delta;\n }\n\n function terminarArrastre(){\n if(!arrastrando){\n return;\n }\n\n arrastrando = false;\n elemento.classList.remove('arrastrando');\n window.removeEventListener('mousemove', moverArrastre);\n window.removeEventListener('mouseup', terminarArrastre);\n window.removeEventListener('blur', terminarArrastre);\n\n // El click posterior al mouseup necesita ver \"se arrastro\" primero.\n setTimeout(() => { elemento.dataset.seArrastro = 'false'; }, 0);\n }\n\n elemento.addEventListener('mousedown', (event) => {\n if(event.button !== 0 || elemento.scrollWidth <= elemento.clientWidth){\n return;\n }\n\n arrastrando = true;\n elemento.dataset.seArrastro = 'false';\n inicioX = event.pageX;\n scrollInicial = elemento.scrollLeft;\n elemento.classList.add('arrastrando');\n\n window.addEventListener('mousemove', moverArrastre);\n window.addEventListener('mouseup', terminarArrastre);\n window.addEventListener('blur', terminarArrastre);\n\n event.preventDefault();\n });\n}\n\nfunction fotosVinculadosFadeIn(){\n const fotos = document.querySelectorAll('.avatar_selector img, .foto_detalle_vinculado img');\n\n fotos.forEach(foto => {\n if(foto.complete){\n foto.classList.add('imagen_cargada');\n }else{\n foto.addEventListener('load', () => foto.classList.add('imagen_cargada'));\n }\n });\n}\n\nfunction ajustarTitulosEnUnaLinea(titulos){\n const rootFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize) || 10;\n const minFontSize = rootFontSize * 1.45;\n\n titulos.forEach(titulo => {\n const anchoDisponible = titulo.clientWidth;\n\n if(!anchoDisponible){\n return;\n }\n\n const fontSizeBase = parseFloat(titulo.dataset.fontSizeBase || getComputedStyle(titulo).fontSize);\n titulo.dataset.fontSizeBase = fontSizeBase;\n titulo.style.fontSize = `${fontSizeBase}px`;\n\n if(titulo.scrollWidth <= anchoDisponible){\n return;\n }\n\n let minimo = minFontSize;\n let maximo = fontSizeBase;\n let mejorAjuste = minFontSize;\n\n while((maximo - minimo) > 0.25){\n const prueba = (minimo + maximo) / 2;\n titulo.style.fontSize = `${prueba}px`;\n\n if(titulo.scrollWidth <= anchoDisponible){\n mejorAjuste = prueba;\n minimo = prueba;\n }else{\n maximo = prueba;\n }\n }\n\n titulo.style.fontSize = `${mejorAjuste}px`;\n });\n}\n\nfunction ajustarTitulosVinculados(){\n const titulos = document.querySelectorAll('.detalle_vinculado.activo .info_detalle_vinculado h2');\n\n if(!titulos.length){\n return;\n }\n\n ajustarTitulosEnUnaLinea(titulos);\n}\n\nfunction ajustarTituloAjusteRama(){\n const titulos = document.querySelectorAll('[data-ajuste-rama] .panel_miembro_identidad h2');\n\n if(!titulos.length){\n return;\n }\n\n ajustarTitulosEnUnaLinea(titulos);\n}\n\nfunction seePasswordAdmin(){\n const eye = document.querySelector('.seePass');\n if(eye){\n const newPass = document.querySelector('#newPassword');\n const oldPass = document.querySelector('#oldPassword');\n\n eye.addEventListener('click',()=>{\n const typeNew = newPass.getAttribute('type') === 'password' ? 'text' : 'password';\n newPass.setAttribute('type', typeNew);\n const typeOld = oldPass.getAttribute('type') === 'password' ? 'text' : 'password';\n oldPass.setAttribute('type', typeOld);\n\n if(eye.classList.contains('fa-eye-slash')){\n eye.classList.add('fa-eye');\n eye.classList.remove('fa-eye-slash');\n }else{\n eye.classList.remove('fa-eye');\n eye.classList.add('fa-eye-slash');\n }\n })\n }\n\n}\n\nfunction seePasswordLogin(){\n const eyes = document.querySelectorAll('.seePassLogin');\n\n eyes.forEach(eye => {\n const contenedor = eye.closest('.contra');\n const passwordInput = contenedor ? contenedor.querySelector('input[type=\"password\"], input[type=\"text\"]') : null;\n\n if(!passwordInput){\n return;\n }\n\n eye.addEventListener('click',()=>{\n const typeNew = passwordInput.getAttribute('type') === 'password' ? 'text' : 'password';\n passwordInput.setAttribute('type', typeNew);\n\n if(eye.classList.contains('fa-eye-slash')){\n eye.classList.add('fa-eye');\n eye.classList.remove('fa-eye-slash');\n }else{\n eye.classList.remove('fa-eye');\n eye.classList.add('fa-eye-slash');\n }\n });\n });\n}\n\nfunction listaEventos(){\n const hamburguesa = document.querySelector('.mobile_menu');\n if(hamburguesa){\n hamburguesa.addEventListener('click',navegacionResponsive);\n }\n\n}\n\nfunction navegacionResponsive(){\n\n const barra = document.querySelector('.contenedor_header .barra');\n\n barra.classList.toggle('mostrar');\n}\n\nfunction adminPartialNavigation(){\n const shell = document.querySelector('[data-admin-shell]');\n const content = document.querySelector('[data-admin-shell-content]');\n const sidebar = document.querySelector('[data-admin-sidebar]');\n const partialCache = new Map();\n const partialRequests = new Map();\n const PARTIAL_CACHE_TTL = 120000;\n const PARTIAL_CACHE_MAX = 6;\n\n if(!shell || !content || !sidebar){\n return;\n }\n\n // Subárboles completos que nunca se navegan por AJAX (tienen su propio ciclo de vida JS).\n const prefijosParcialesExcluidos = [\n normalizeAdminPath('/admin/drive'),\n normalizeAdminPath('/admin/recortador')\n ];\n // Única fuente de verdad para los endpoints de acción (guardar/eliminar/sync): nunca son\n // vistas navegables, son destinos de formularios/JS que deben ejecutarse como request normal.\n // Si se agrega un endpoint de acción nuevo, alcanza con sumarlo acá.\n const sufijosAccionNoNavegable = [\n '/eliminarrecortado.php',\n '/guardarrecortado.php',\n '/guardarficha.php',\n '/guardar_ajuste.php',\n '/pase_rama.php',\n '/validar_dni.php',\n '/functionsalbumes.php',\n '/drivefunctiones.php'\n ];\n let navegando = false;\n\n function rutaAdminParcialBloqueada(path){\n return prefijosParcialesExcluidos.some((prefijo) => path === prefijo || path.startsWith(`${prefijo}/`));\n }\n\n function obtenerRutaActualAdmin(){\n const rutaActual = content.dataset.adminCurrentPath || `${window.location.pathname}${window.location.search}`;\n\n try{\n const urlActual = new URL(rutaActual, window.location.origin);\n return `${normalizeAdminPath(urlActual.pathname)}${urlActual.search}`;\n }catch(error){\n return `${normalizeAdminPath(window.location.pathname)}${window.location.search}`;\n }\n }\n\n function permitirNavegacionParcial(url){\n if(url.origin !== window.location.origin){\n return false;\n }\n\n const path = normalizeAdminPath(url.pathname);\n\n if(!path.startsWith('/admin') || linkEsAccionNoNavegable(path) || rutaAdminParcialBloqueada(path)){\n return false;\n }\n\n return true;\n }\n\n function esVistaCacheable(url){\n return normalizeAdminPath(url.pathname) === '/admin/calendario';\n }\n\n function limpiarCacheExpirada(){\n const ahora = Date.now();\n\n partialCache.forEach((entry, key) => {\n const timestamp = entry && entry.timestamp ? entry.timestamp : 0;\n\n if(timestamp < (ahora - PARTIAL_CACHE_TTL)){\n partialCache.delete(key);\n }\n });\n }\n\n function leerVistaCacheada(url){\n limpiarCacheExpirada();\n\n if(!esVistaCacheable(url)){\n return null;\n }\n\n const key = `${normalizeAdminPath(url.pathname)}${url.search}`;\n const entry = partialCache.get(key);\n\n if(!entry){\n return null;\n }\n\n partialCache.delete(key);\n partialCache.set(key, entry);\n\n return entry;\n }\n\n function guardarVistaCacheada(urlFinal, html){\n if(!esVistaCacheable(urlFinal) || !html){\n return;\n }\n\n const key = `${normalizeAdminPath(urlFinal.pathname)}${urlFinal.search}`;\n partialCache.set(key, {\n html,\n finalPath: `${urlFinal.pathname}${urlFinal.search}`,\n timestamp: Date.now()\n });\n\n while(partialCache.size > PARTIAL_CACHE_MAX){\n const keyMasVieja = partialCache.keys().next().value;\n\n if(!keyMasVieja){\n break;\n }\n\n partialCache.delete(keyMasVieja);\n }\n }\n\n async function obtenerHtmlParcial(url, { usarCache = true } = {}){\n const urlVisible = new URL(url, window.location.origin);\n const cache = usarCache ? leerVistaCacheada(urlVisible) : null;\n\n if(cache){\n // Una vista guardada solo puede reutilizarse si la sesion sigue activa.\n const estadoSesion = await fetch('/secure/sessionStatus.php', {\n credentials: 'same-origin',\n cache: 'no-store'\n });\n\n if(!estadoSesion.ok || estadoSesion.redirected){\n partialCache.clear();\n return {\n html: '',\n urlFinal: estadoSesion.redirected\n ? new URL(estadoSesion.url, window.location.origin)\n : new URL('/login.php', window.location.origin),\n redireccionCompleta: true\n };\n }\n\n return {\n html: cache.html,\n urlFinal: new URL(cache.finalPath, window.location.origin)\n };\n }\n\n const claveSolicitud = esVistaCacheable(urlVisible)\n ? `${normalizeAdminPath(urlVisible.pathname)}${urlVisible.search}`\n : '';\n\n // Si el usuario pulsa el mes vecino mientras sigue el prefetch, ambos\n // caminos comparten el mismo request en vez de pedir/renderizar dos veces.\n if(claveSolicitud && partialRequests.has(claveSolicitud)){\n return partialRequests.get(claveSolicitud);\n }\n\n const solicitud = (async () => {\n const destino = new URL(urlVisible.toString());\n let urlFinal = new URL(urlVisible.toString());\n destino.searchParams.set('_admin_partial', '1');\n\n const respuesta = await fetch(destino.toString(), {\n headers: {\n 'X-Admin-Partial': '1'\n },\n credentials: 'same-origin'\n });\n\n if(respuesta.redirected){\n urlFinal = new URL(respuesta.url, window.location.origin);\n\n if(!permitirNavegacionParcial(urlFinal)){\n partialCache.clear();\n return {\n html: '',\n urlFinal,\n redireccionCompleta: true\n };\n }\n }\n\n if(!respuesta.ok){\n if(respuesta.status === 401){\n partialCache.clear();\n return {\n html: '',\n urlFinal: new URL('/login.php', window.location.origin),\n redireccionCompleta: true\n };\n }\n throw new Error(`No se pudo cargar la vista (${respuesta.status})`);\n }\n\n const html = await respuesta.text();\n guardarVistaCacheada(urlFinal, html);\n\n return {\n html,\n urlFinal\n };\n })();\n\n if(!claveSolicitud){\n return solicitud;\n }\n\n partialRequests.set(claveSolicitud, solicitud);\n\n try{\n return await solicitud;\n }finally{\n partialRequests.delete(claveSolicitud);\n }\n }\n\n function programarPrefetchCalendario(){\n const mainCalendario = content.querySelector('main[data-calendario-page=\"true\"]');\n\n if(!mainCalendario){\n return;\n }\n\n const links = Array.from(mainCalendario.querySelectorAll('a[data-calendario-mes-link]'));\n\n if(!links.length){\n return;\n }\n\n const hacerPrefetch = () => {\n links.forEach((link) => {\n const url = new URL(link.href, window.location.origin);\n\n if(leerVistaCacheada(url)){\n return;\n }\n\n obtenerHtmlParcial(url.toString(), { usarCache: false }).catch(() => {\n // El prefetch es oportunista: si falla, la navegacion normal\n // del link sigue funcionando y vuelve a pedir la vista.\n });\n });\n };\n\n // La vista actual ya termino de renderizarse: iniciar ahora evita que\n // un clic rapido al mes vecino alcance al prefetch antes de empezar.\n hacerPrefetch();\n }\n\n function linkEsAccionNoNavegable(path){\n return sufijosAccionNoNavegable.some((sufijo) => path.toLowerCase().endsWith(sufijo));\n }\n\n function esClickNavegable(event, link){\n return !event.defaultPrevented\n && event.button === 0\n && link.target !== '_blank'\n && !link.hasAttribute('download')\n && !event.metaKey\n && !event.ctrlKey\n && !event.shiftKey\n && !event.altKey;\n }\n\n function mostrarCarga(){\n shell.classList.add('admin_shell--loading');\n content.setAttribute('aria-busy', 'true');\n content.setAttribute('inert', '');\n }\n\n function ocultarCarga(){\n shell.classList.remove('admin_shell--loading');\n content.removeAttribute('aria-busy');\n content.removeAttribute('inert');\n }\n\n function rehidratarContenidoAdmin(){\n // Mismo motivo que en el DOMContentLoaded principal: sin\n // ejecutarSeguro(), una excepcion en cualquiera de estas corta el\n // resto (crearMiembroPasos() incluida) despues de cada navegacion\n // parcial del admin.\n ejecutarSeguro(customDatePickers, content);\n ejecutarSeguro(customSelects, content);\n ejecutarSeguro(activarAutocompletadoRamas, content);\n ejecutarSeguro(ajusteRamaPage);\n ejecutarSeguro(cropperImage);\n ejecutarSeguro(selectorMiembrosVinculados);\n ejecutarSeguro(selectorCampaEspec);\n ejecutarSeguro(campamentosPanel, content);\n ejecutarSeguro(calendarioPanel, content);\n ejecutarSeguro(integracionesPanel, content);\n ejecutarSeguro(nominaDropzone, content);\n ejecutarSeguro(permisosCalendario, content);\n ejecutarSeguro(importarRamaCampamentos);\n ejecutarSeguro(crearMiembroPasos);\n ejecutarSeguro(restringirDniCrearMiembro);\n ejecutarSeguro(notificacionesAdmin);\n ejecutarSeguro(volverInteligente);\n ejecutarSeguro(filtrosVistaMiembros);\n ejecutarSeguro(seleccionMultipleUsuarios);\n ejecutarSeguro(paseRamaPopup);\n ejecutarSeguro(administrarUsuariosPanel);\n ejecutarSeguro(busquedaMiembros, content);\n ejecutarSeguro(fichaEditable);\n ejecutarSeguro(configuracionRifasPanel);\n ejecutarSeguro(cropperImagenPremios);\n ejecutarSeguro(seleccionNumerosRifas, content);\n ejecutarSeguro(menuContextualNumerosRifas, content);\n ejecutarSeguro(gruposTalonarioNumerosRifas, content);\n ejecutarSeguro(asignarNumeroFisicoPanel, content);\n ejecutarSeguro(asignarCompradorNumeroPanel, content);\n ejecutarSeguro(confirmarEliminarReservaPanel, content);\n ejecutarSeguro(accesosDirectosPersonalizables);\n }\n\n // Estado de la vista que se pierde al reemplazar el
(scroll,\n // talonarios abiertos, numeros tildados) - para la recarga forzada de\n // abajo, que vuelve a pedir la MISMA pagina despues de un cambio.\n function capturarEstadoVista(){\n return {\n scrollY: window.scrollY,\n talonariosAbiertos: Array.from(content.querySelectorAll('[data-talonario-toggle][aria-expanded=\"true\"]'))\n .map(toggle => toggle.closest('[data-talonario-fila]'))\n .filter(Boolean)\n .map(fila => fila.dataset.talonario),\n numerosTildados: Array.from(content.querySelectorAll('[data-numero-seleccionado]:checked'))\n .map(checkbox => checkbox.closest('[data-numero]'))\n .filter(Boolean)\n .map(fila => fila.dataset.numero),\n };\n }\n\n function restaurarEstadoVista(estado){\n estado.talonariosAbiertos.forEach(talonario => {\n const toggle = content.querySelector(`[data-talonario-fila][data-talonario=\"${CSS.escape(talonario)}\"] [data-talonario-toggle]`);\n if(toggle && toggle.getAttribute('aria-expanded') !== 'true'){\n toggle.click();\n }\n });\n\n estado.numerosTildados.forEach(numero => {\n const checkbox = content.querySelector(`[data-numero=\"${CSS.escape(numero)}\"] [data-numero-seleccionado]`);\n if(checkbox && !checkbox.checked){\n checkbox.checked = true;\n checkbox.dispatchEvent(new Event('change', { bubbles: true }));\n }\n });\n\n window.scrollTo({ top: estado.scrollY, behavior: 'auto' });\n }\n\n async function cargarVista(url, { push = true, forzar = false } = {}){\n if(navegando){\n return;\n }\n\n const urlVisible = new URL(url, window.location.origin);\n const rutaDestino = `${normalizeAdminPath(urlVisible.pathname)}${urlVisible.search}`;\n\n // Pedir la pagina en la que ya se esta no hace nada (clic repetido en\n // el sidebar), salvo en una recarga forzada: sin esa excepcion, el\n // refresco despues de un cambio (ej: \"Administrar numeros\") nunca\n // ocurria y habia que apretar F5.\n if(push && !forzar && rutaDestino === obtenerRutaActualAdmin()){\n syncAdminSidebarState();\n return;\n }\n\n const estadoPrevio = forzar ? capturarEstadoVista() : null;\n navegando = true;\n mostrarCarga();\n\n try{\n const { html, urlFinal, redireccionCompleta = false } = await obtenerHtmlParcial(urlVisible.toString());\n\n if(redireccionCompleta){\n window.location.href = urlFinal.toString();\n return;\n }\n\n const wrapper = document.createElement('div');\n wrapper.innerHTML = html.trim();\n const nuevoMain = wrapper.querySelector('main');\n\n if(!nuevoMain){\n window.location.href = url;\n return;\n }\n\n content.innerHTML = '';\n content.appendChild(nuevoMain);\n content.dataset.adminCurrentPath = `${urlFinal.pathname}${urlFinal.search}`;\n\n if(push){\n window.history.pushState(\n { adminPartial: true, path: `${urlFinal.pathname}${urlFinal.search}` },\n '',\n `${urlFinal.pathname}${urlFinal.search}${urlFinal.hash}`\n );\n }\n\n syncAdminSidebarState();\n rehidratarContenidoAdmin();\n programarPrefetchCalendario();\n\n if(estadoPrevio){\n // Recarga de la misma vista: el usuario sigue donde estaba.\n restaurarEstadoVista(estadoPrevio);\n }else{\n window.scrollTo({ top: 0, behavior: push ? 'smooth' : 'auto' });\n\n // Mueve el foco al contenido nuevo: sin esto, con teclado/lector de pantalla\n // el foco queda anclado a un link del sidebar que ya no corresponde a la vista actual.\n content.setAttribute('tabindex', '-1');\n content.focus({ preventScroll: true });\n }\n }catch(error){\n console.error('Error al navegar parcialmente en admin:', error);\n window.location.href = url;\n }finally{\n navegando = false;\n ocultarCarga();\n }\n }\n\n function manejarClickNavegacion(event){\n const link = event.target.closest('a[href]');\n\n if(link && new URL(link.href, window.location.origin).pathname === '/cerrar_sesion.php'){\n partialCache.clear();\n }\n\n const perteneceASidebar = sidebar.contains(link);\n const perteneceASubmenuSidebar = link && !!link.closest('[data-admin-sidebar-submenu]');\n const perteneceAContenido = content.contains(link);\n\n if(!link || (!perteneceASidebar && !perteneceASubmenuSidebar && !perteneceAContenido) || link.dataset.adminNoPartial === 'true'){\n return;\n }\n\n if(!esClickNavegable(event, link)){\n return;\n }\n\n const url = new URL(link.href, window.location.origin);\n\n if(!permitirNavegacionParcial(url)){\n return;\n }\n\n event.preventDefault();\n cargarVista(url.toString());\n }\n\n function manejarFormularioParcial(event){\n const form = event.target.closest('form[data-admin-partial-form]');\n\n if(!form || !content.contains(form) || form.method.toUpperCase() !== 'GET'){\n return;\n }\n\n event.preventDefault();\n\n const action = form.getAttribute('action') || window.location.pathname;\n const url = new URL(action, window.location.origin);\n const datos = new FormData(form);\n\n datos.forEach((valor, nombre) => {\n url.searchParams.set(nombre, valor);\n });\n\n cargarVista(url.toString());\n }\n\n // Delegacion unica: tambien cubre submenus flotantes creados\n // dinamicamente fuera del nodo fisico de la sidebar.\n document.addEventListener('click', manejarClickNavegacion);\n content.addEventListener('submit', manejarFormularioParcial);\n\n // Pedido de \"volver a traer esta misma vista\" (ver recargarVistaAdmin()).\n // preventDefault() le avisa a quien lo pidio que se atendio aca, sin\n // recargar la pagina entera.\n document.addEventListener('admin:recargar-vista', (event) => {\n event.preventDefault();\n cargarVista(`${window.location.pathname}${window.location.search}`, { push: false, forzar: true });\n });\n\n if(!window.history.state || window.history.state.adminPartial !== true){\n window.history.replaceState(\n { adminPartial: true, path: obtenerRutaActualAdmin() },\n '',\n window.location.href\n );\n }\n\n window.addEventListener('popstate', () => {\n const actual = new URL(window.location.href);\n\n if(!permitirNavegacionParcial(actual)){\n window.location.reload();\n return;\n }\n\n cargarVista(actual.toString(), { push: false });\n });\n\n programarPrefetchCalendario();\n}\n\nfunction campamentosPanel(root = document){\n const paneles = root.querySelectorAll('[data-campamentos-panel]');\n const resumenAsignacion = root.querySelector('[data-campamentos-asignacion-resumen]');\n\n if(resumenAsignacion && resumenAsignacion.dataset.campamentosResumenInit !== 'true'){\n resumenAsignacion.dataset.campamentosResumenInit = 'true';\n\n const campoMiembros = root.querySelector('textarea[name=\"miembros_seleccionados\"]');\n const campoVerano = root.querySelector('.camver_seleccionadas');\n const campoInvierno = root.querySelector('.caminv_seleccionadas');\n const totalMiembros = resumenAsignacion.querySelector('[data-campamentos-resumen-miembros]');\n const totalVerano = resumenAsignacion.querySelector('[data-campamentos-resumen-verano]');\n const totalInvierno = resumenAsignacion.querySelector('[data-campamentos-resumen-invierno]');\n\n const contarIds = (campo) => {\n if(!campo){\n return 0;\n }\n\n const items = (campo.value || campo.textContent || '')\n .split(',')\n .map(item => item.trim())\n .filter(Boolean);\n\n return new Set(items).size;\n };\n\n const actualizarResumenAsignacion = () => {\n if(totalMiembros){\n totalMiembros.textContent = contarIds(campoMiembros);\n }\n\n if(totalVerano){\n totalVerano.textContent = contarIds(campoVerano);\n }\n\n if(totalInvierno){\n totalInvierno.textContent = contarIds(campoInvierno);\n }\n };\n\n [campoMiembros, campoVerano, campoInvierno].forEach((campo) => {\n if(!campo){\n return;\n }\n\n campo.addEventListener('change', actualizarResumenAsignacion);\n campo.addEventListener('input', actualizarResumenAsignacion);\n });\n\n actualizarResumenAsignacion();\n }\n\n if(!paneles.length){\n return;\n }\n\n paneles.forEach((panel) => {\n if(panel.dataset.campamentosInicializado === 'true'){\n return;\n }\n\n panel.dataset.campamentosInicializado = 'true';\n\n const inputBusqueda = panel.querySelector('[data-busqueda-campamentos]');\n const botonLimpiar = panel.querySelector('[data-limpiar-campamentos]');\n const selectAnio = panel.querySelector('[data-filtro-campamento-anio]');\n const botonesTipo = panel.querySelectorAll('[data-filtro-campamento-tipo]');\n const filas = Array.from(panel.querySelectorAll('[data-campamento-item]'));\n const resultadoTotal = panel.querySelector('[data-resultados-campamentos]');\n const badgeVerano = panel.querySelector('[data-campamento-badge=\"verano\"]');\n const badgeInvierno = panel.querySelector('[data-campamento-badge=\"invierno\"]');\n const totalVisible = panel.querySelector('[data-campamentos-total-visible]');\n const veranoVisible = panel.querySelector('[data-campamentos-verano-visible]');\n const inviernoVisible = panel.querySelector('[data-campamentos-invierno-visible]');\n const estadoGlobal = panel.querySelector('[data-campamentos-sin-resultados]');\n const bloques = panel.querySelectorAll('[data-campamento-bloque]');\n const vaciosPorBloque = panel.querySelectorAll('[data-campamento-vacio-filtro]');\n const popup = document.querySelector('[data-popup-relaciones-campamento]');\n const popupTitulo = popup ? popup.querySelector('[data-popup-relaciones-campamento-titulo]') : null;\n const popupSubtitulo = popup ? popup.querySelector('[data-popup-relaciones-campamento-subtitulo]') : null;\n const popupLista = popup ? popup.querySelector('[data-popup-relaciones-campamento-lista]') : null;\n const popupCrear = document.querySelector('[data-popup-crear-campamento]');\n const storageKey = panel.dataset.campamentosStorageKey || '';\n let filtroTipo = 'todos';\n\n if(selectAnio){\n customSelects(selectAnio.closest('.filtros_anio_campamentos') || panel);\n }\n\n function leerEstadoGuardado(){\n if(!storageKey){\n return;\n }\n\n try{\n const guardado = window.localStorage.getItem(storageKey);\n\n if(!guardado){\n return;\n }\n\n const estado = JSON.parse(guardado);\n\n if(inputBusqueda && typeof estado.busqueda === 'string'){\n inputBusqueda.value = estado.busqueda;\n }\n\n if(selectAnio && typeof estado.anio === 'string'){\n selectAnio.value = estado.anio;\n }\n\n if(typeof estado.tipo === 'string'){\n filtroTipo = estado.tipo;\n }\n }catch(error){\n console.warn('No se pudo recuperar el filtro de campamentos', error);\n }\n }\n\n function guardarEstado(){\n if(!storageKey){\n return;\n }\n\n try{\n window.localStorage.setItem(storageKey, JSON.stringify({\n busqueda: inputBusqueda ? inputBusqueda.value : '',\n anio: selectAnio ? selectAnio.value : 'todos',\n tipo: filtroTipo\n }));\n }catch(error){\n console.warn('No se pudo guardar el filtro de campamentos', error);\n }\n }\n\n function actualizarBotonesTipo(){\n botonesTipo.forEach((boton) => {\n const activo = boton.dataset.filtroCampamentoTipo === filtroTipo;\n boton.classList.toggle('activo', activo);\n });\n }\n\n function actualizarContadores(visibles){\n const total = visibles.length;\n const totalVer = visibles.filter((fila) => fila.dataset.tipo === 'verano').length;\n const totalInv = visibles.filter((fila) => fila.dataset.tipo === 'invierno').length;\n\n if(resultadoTotal){\n resultadoTotal.textContent = total;\n }\n\n if(totalVisible){\n totalVisible.textContent = total;\n }\n\n if(veranoVisible){\n veranoVisible.textContent = totalVer;\n }\n\n if(inviernoVisible){\n inviernoVisible.textContent = totalInv;\n }\n\n if(badgeVerano){\n badgeVerano.textContent = totalVer;\n }\n\n if(badgeInvierno){\n badgeInvierno.textContent = totalInv;\n }\n }\n\n function actualizarEstados(visibles){\n const visiblesPorTipo = {\n verano: 0,\n invierno: 0\n };\n\n visibles.forEach((fila) => {\n const tipo = fila.dataset.tipo;\n\n if(visiblesPorTipo[tipo] !== undefined){\n visiblesPorTipo[tipo] += 1;\n }\n });\n\n bloques.forEach((bloque) => {\n const tipo = bloque.dataset.campamentoBloque;\n bloque.classList.toggle('sin_resultados', visiblesPorTipo[tipo] === 0);\n });\n\n vaciosPorBloque.forEach((estado) => {\n const tipo = estado.dataset.campamentoVacioFiltro;\n estado.classList.toggle('visible', visiblesPorTipo[tipo] === 0);\n });\n\n if(estadoGlobal){\n estadoGlobal.classList.toggle('visible', visibles.length === 0);\n }\n }\n\n function aplicarFiltros(){\n const busqueda = ((inputBusqueda ? inputBusqueda.value : '') || '').trim().toLowerCase();\n const anio = selectAnio ? selectAnio.value : 'todos';\n const visibles = [];\n\n filas.forEach((fila) => {\n const texto = (fila.dataset.busqueda || '').toLowerCase();\n const coincideBusqueda = busqueda === '' || texto.includes(busqueda);\n const coincideAnio = anio === 'todos' || fila.dataset.anio === anio;\n const coincideTipo = filtroTipo === 'todos' || fila.dataset.tipo === filtroTipo;\n const visible = coincideBusqueda && coincideAnio && coincideTipo;\n\n fila.classList.toggle('oculta', !visible);\n\n if(visible){\n visibles.push(fila);\n }\n });\n\n if(botonLimpiar){\n botonLimpiar.classList.toggle('visible', Boolean(inputBusqueda && inputBusqueda.value));\n }\n actualizarBotonesTipo();\n actualizarContadores(visibles);\n actualizarEstados(visibles);\n guardarEstado();\n }\n\n function ramaClase(rama = ''){\n const valor = rama.toLowerCase();\n\n if(valor.includes('manada')){\n return 'manada';\n }\n\n if(valor.includes('unidad')){\n return 'unidad';\n }\n\n if(valor.includes('caminante')){\n return 'caminante';\n }\n\n if(valor.includes('rover')){\n return 'rover';\n }\n\n return 'sin-rama';\n }\n\n function renderizarIntegrantes(fila){\n if(!popup || !popupLista || !popupTitulo || !popupSubtitulo){\n return;\n }\n\n let integrantes = [];\n\n try{\n integrantes = JSON.parse(fila.dataset.integrantes || '[]');\n }catch(error){\n integrantes = [];\n }\n\n popupTitulo.textContent = fila.dataset.campamentoTitulo || 'Campamento';\n popupSubtitulo.textContent = `${integrantes.length} integrante${integrantes.length === 1 ? '' : 's'} registrado${integrantes.length === 1 ? '' : 's'}`;\n\n if(!integrantes.length){\n popupLista.innerHTML = `\n
\n \n

Este campamento todavia no tiene integrantes vinculados.

\n
\n `;\n return;\n }\n\n popupLista.innerHTML = integrantes.map((integrante) => {\n const tieneImagen = typeof integrante.imagen === 'string' && integrante.imagen.trim() !== '';\n const nombre = integrante.nombre || 'Integrante';\n const rama = integrante.rama || 'Sin rama';\n const claseRama = ramaClase(rama);\n\n return `\n
\n
\n ${tieneImagen\n ? `\"${nombre}\"`\n : ''}\n
\n
\n ${nombre}\n ${rama}\n
\n
\n `;\n }).join('');\n }\n\n function abrirPopup(fila){\n if(!popup){\n return;\n }\n\n renderizarIntegrantes(fila);\n popup.classList.add('visible');\n popup.setAttribute('aria-hidden', 'false');\n document.body.classList.add('modal_abierta');\n }\n\n function abrirPopupCrear(){\n if(!popupCrear){\n return;\n }\n\n popupCrear.classList.add('visible');\n popupCrear.setAttribute('aria-hidden', 'false');\n document.body.classList.add('modal_abierta');\n\n try{\n const url = new URL(window.location.href);\n url.searchParams.set('crear', '1');\n window.history.replaceState({}, '', `${url.pathname}${url.search}${url.hash}`);\n }catch(error){\n console.warn('No se pudo actualizar la URL del popup de crear campamento', error);\n }\n }\n\n leerEstadoGuardado();\n actualizarBotonesTipo();\n aplicarFiltros();\n\n if(inputBusqueda){\n inputBusqueda.addEventListener('input', aplicarFiltros);\n }\n\n if(selectAnio){\n selectAnio.addEventListener('change', aplicarFiltros);\n }\n\n if(botonLimpiar){\n botonLimpiar.addEventListener('click', () => {\n if(inputBusqueda){\n inputBusqueda.value = '';\n }\n\n aplicarFiltros();\n if(inputBusqueda){\n inputBusqueda.focus();\n }\n });\n }\n\n botonesTipo.forEach((boton) => {\n boton.addEventListener('click', () => {\n filtroTipo = boton.dataset.filtroCampamentoTipo || 'todos';\n aplicarFiltros();\n });\n });\n\n filas.forEach((fila) => {\n const botonRelaciones = fila.querySelector('[data-ver-integrantes-campamento]');\n\n if(botonRelaciones){\n botonRelaciones.addEventListener('click', () => {\n abrirPopup(fila);\n });\n }\n });\n\n panel.querySelectorAll('[data-abrir-crear-campamento]').forEach((boton) => {\n boton.addEventListener('click', (evento) => {\n if(!popupCrear){\n return;\n }\n\n evento.preventDefault();\n abrirPopupCrear();\n });\n });\n\n if(popupCrear && popupCrear.dataset.autoOpen === 'true'){\n abrirPopupCrear();\n }\n });\n\n const popup = document.querySelector('[data-popup-relaciones-campamento]');\n const popupCrear = document.querySelector('[data-popup-crear-campamento]');\n\n if(!popup || popup.dataset.campamentosPopupBound === 'true'){\n if(!popupCrear || popupCrear.dataset.campamentosCrearPopupBound === 'true'){\n return;\n }\n }\n\n const cerrarRelacionesPopup = () => {\n if(popup){\n popup.classList.remove('visible');\n popup.setAttribute('aria-hidden', 'true');\n }\n\n if(!popupCrear || !popupCrear.classList.contains('visible')){\n document.body.classList.remove('modal_abierta');\n }\n };\n\n const cerrarCrearPopup = () => {\n if(popupCrear){\n popupCrear.classList.remove('visible');\n popupCrear.setAttribute('aria-hidden', 'true');\n }\n\n try{\n const url = new URL(window.location.href);\n url.searchParams.delete('crear');\n window.history.replaceState({}, '', `${url.pathname}${url.search}${url.hash}`);\n }catch(error){\n console.warn('No se pudo limpiar la URL del popup de crear campamento', error);\n }\n\n if(!popup || !popup.classList.contains('visible')){\n document.body.classList.remove('modal_abierta');\n }\n };\n\n if(popup && popup.dataset.campamentosPopupBound !== 'true'){\n popup.dataset.campamentosPopupBound = 'true';\n\n popup.querySelectorAll('[data-cerrar-relaciones-campamento]').forEach((boton) => {\n boton.addEventListener('click', cerrarRelacionesPopup);\n });\n\n popup.addEventListener('click', (evento) => {\n if(evento.target === popup){\n cerrarRelacionesPopup();\n }\n });\n }\n\n if(popupCrear && popupCrear.dataset.campamentosCrearPopupBound !== 'true'){\n popupCrear.dataset.campamentosCrearPopupBound = 'true';\n\n popupCrear.querySelectorAll('[data-cerrar-crear-campamento]').forEach((boton) => {\n boton.addEventListener('click', cerrarCrearPopup);\n });\n\n popupCrear.addEventListener('click', (evento) => {\n if(evento.target === popupCrear){\n cerrarCrearPopup();\n }\n });\n }\n\n if(campamentosPanel.eventosGlobales){\n return;\n }\n\n document.addEventListener('keydown', (evento) => {\n if(evento.key !== 'Escape'){\n return;\n }\n\n if(popup && popup.classList.contains('visible')){\n cerrarRelacionesPopup();\n }\n\n if(popupCrear && popupCrear.classList.contains('visible')){\n cerrarCrearPopup();\n }\n });\n\n campamentosPanel.eventosGlobales = true;\n}\n\n// Panel de Calendario (admin/calendario/). Mismo esqueleto que\n// campamentosPanel(): filtros client-side + dos popups (crear / detalle),\n// con los mismos guards de doble-init e idempotencia entre carga completa y\n// navegacion parcial.\nfunction calendarioPanel(root = document){\n root.querySelectorAll('.calendario_formulario').forEach((form) => {\n customSelects(form);\n // Sin esto, los input[type=\"date\"] de este formulario (popup de\n // \"Crear evento\" y el form de \"Guardar cambios\" en actualizar.php)\n // quedaban con el date picker nativo del navegador en vez del\n // custom: calendarioPanel() se llama en la carga completa (linea 42\n // del DOMContentLoaded) pero ahi nunca se invocaba customDatePickers()\n // -solo pasaba a tenerlo despues de una navegacion parcial por el\n // sidebar, via rehidratarContenidoAdmin(). Idempotente por su propio\n // guard (input.dataset.customDate).\n customDatePickers(form);\n const checkbox = form.querySelector('[data-evento-todo-el-dia]');\n const horarios = form.querySelector('[data-evento-horarios-wrap]');\n if(checkbox && horarios && checkbox.dataset.calendarioToggleBound !== 'true'){\n checkbox.dataset.calendarioToggleBound = 'true';\n const actualizar = () => {\n horarios.hidden = checkbox.checked;\n horarios.querySelectorAll('input[type=\"time\"]').forEach((input) => {\n input.required = !checkbox.checked;\n input.disabled = checkbox.checked;\n });\n };\n checkbox.addEventListener('change', actualizar);\n actualizar();\n }\n });\n const paneles = root.querySelectorAll('[data-calendario-panel]');\n\n if(!paneles.length){\n return;\n }\n\n const MESES_LARGO = ['enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'];\n const DIAS_LARGO = ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'];\n // Chips visibles por celda de la grilla; el resto se resume en \"+N más\"\n // (el panel del dia siempre muestra todos).\n const MAX_CHIPS_DIA = 3;\n // Celular: arranca en Agenda. Por debajo de $desktopGrande el panel\n // lateral queda abajo de la grilla, asi que el detalle se abre como\n // hoja flotante (ver _calendario_panel.scss) en vez de en el lateral.\n const consultaPantallaChica = window.matchMedia('(max-width: 767px)');\n const consultaDetalleFlotante = window.matchMedia('(max-width: 1199px)');\n\n function formatearFechaEvento(evento){\n const partesInicio = (evento.fechaInicio || '').split('-');\n\n if(partesInicio.length !== 3){\n return '';\n }\n\n const inicioTexto = `${parseInt(partesInicio[2], 10)} de ${MESES_LARGO[parseInt(partesInicio[1], 10) - 1]} de ${partesInicio[0]}`;\n\n if(!evento.fechaFin || evento.fechaFin === evento.fechaInicio){\n return inicioTexto;\n }\n\n const partesFin = evento.fechaFin.split('-');\n\n if(partesFin.length !== 3){\n return inicioTexto;\n }\n\n return `${inicioTexto} al ${parseInt(partesFin[2], 10)} de ${MESES_LARGO[parseInt(partesFin[1], 10) - 1]} de ${partesFin[0]}`;\n }\n\n function leerEvento(elemento){\n try{\n return JSON.parse(elemento.dataset.evento || '{}');\n }catch(error){\n return {};\n }\n }\n\n function fechaDesdeClave(clave){\n const partes = (clave || '').split('-').map(Number);\n return new Date(partes[0], partes[1] - 1, partes[2]);\n }\n\n function abrirPopupCrearEvento(){\n const popupCrear = document.querySelector('[data-popup-crear-evento]');\n\n if(!popupCrear){\n return;\n }\n\n popupCrear.classList.add('visible');\n popupCrear.setAttribute('aria-hidden', 'false');\n document.body.classList.add('modal_abierta');\n\n try{\n const url = new URL(window.location.href);\n url.searchParams.set('crear', '1');\n window.history.replaceState({}, '', `${url.pathname}${url.search}${url.hash}`);\n }catch(error){\n console.warn('No se pudo actualizar la URL del popup de crear evento', error);\n }\n }\n\n paneles.forEach((panel) => {\n if(panel.dataset.calendarioInicializado === 'true'){\n return;\n }\n\n panel.dataset.calendarioInicializado = 'true';\n\n const puedeGestionar = panel.dataset.calendarioPuedeGestionar === '1';\n const hoy = panel.dataset.calendarioHoy || '';\n const inputBusqueda = panel.querySelector('[data-busqueda-eventos]');\n const botonesTipo = Array.from(panel.querySelectorAll('[data-filtro-evento-tipo]'));\n const botonesVista = panel.querySelectorAll('[data-calendario-vista]');\n const panelesVista = panel.querySelectorAll('[data-calendario-vista-panel]');\n const celdas = Array.from(panel.querySelectorAll('.cal_dia[data-dia]'));\n const celdasPorDia = new Map(celdas.map((celda) => [celda.dataset.dia, celda]));\n const diasAgenda = Array.from(panel.querySelectorAll('[data-agenda-dia]'));\n const agendaVacia = panel.querySelector('[data-calendario-agenda-vacia]');\n const itemsProximos = Array.from(panel.querySelectorAll('[data-evento-item]'));\n const proximosSinResultados = panel.querySelector('[data-calendario-proximos-sin-resultados]');\n const tira = panel.querySelector('[data-calendario-tira]');\n const diasTira = Array.from(panel.querySelectorAll('[data-calendario-tira-dia]'));\n const diaSemana = panel.querySelector('[data-calendario-dia-semana]');\n const diaTitulo = panel.querySelector('[data-calendario-dia-titulo]');\n const diaHoy = panel.querySelector('[data-calendario-dia-hoy]');\n const diaLista = panel.querySelector('[data-calendario-dia-lista]');\n const diaVacio = panel.querySelector('[data-calendario-dia-vacio]');\n const detalle = panel.querySelector('[data-popup-detalle-evento]');\n const popupCrear = document.querySelector('[data-popup-crear-evento]');\n const ocultos = new Set();\n let diaSeleccionado = panel.dataset.calendarioDiaInicial || hoy;\n\n if(popupCrear && popupCrear.querySelector('.calendario_select_rama')){\n customSelects(popupCrear);\n }\n\n const textoBusqueda = () => ((inputBusqueda && inputBusqueda.value) || '').trim().toLowerCase();\n\n function coincide(elemento, busqueda){\n return !ocultos.has(elemento.dataset.tipo)\n && (busqueda === '' || (elemento.dataset.busqueda || '').includes(busqueda));\n }\n\n function crearTarjetaDia(chip){\n const datos = leerEvento(chip);\n const boton = document.createElement('button');\n boton.type = 'button';\n boton.className = `cal_evento_dia ${datos.vistaClases || ''}`;\n boton.dataset.eventoChip = '';\n boton.dataset.evento = chip.dataset.evento || '{}';\n\n // Solo variables de color ya validadas en el servidor\n // (calendarioEstiloColorGoogle(): #rrggbb o vacio).\n if(datos.vistaEstilo){\n boton.setAttribute('style', datos.vistaEstilo);\n }\n\n const barra = document.createElement('span');\n barra.className = 'cal_evento_barra';\n barra.setAttribute('aria-hidden', 'true');\n\n const info = document.createElement('span');\n info.className = 'cal_evento_info';\n\n [['cal_evento_horario', datos.horario || 'Todo el día'], ['cal_evento_titulo', datos.titulo || 'Evento'], ['cal_evento_meta', datos.meta || '']].forEach(([clase, texto]) => {\n if(!texto){\n return;\n }\n\n const linea = document.createElement('span');\n linea.className = clase;\n linea.textContent = texto;\n info.appendChild(linea);\n });\n\n boton.append(barra, info);\n\n return boton;\n }\n\n function renderizarDia(){\n const fecha = fechaDesdeClave(diaSeleccionado);\n const celda = celdasPorDia.get(diaSeleccionado);\n const busqueda = textoBusqueda();\n\n celdas.forEach((otra) => {\n const seleccionada = otra === celda;\n otra.classList.toggle('seleccionado', seleccionada);\n otra.setAttribute('aria-pressed', seleccionada ? 'true' : 'false');\n });\n\n diasTira.forEach((boton) => {\n boton.classList.toggle('seleccionado', boton.dataset.calendarioTiraDia === diaSeleccionado);\n });\n\n if(!diaLista || Number.isNaN(fecha.getTime())){\n return;\n }\n\n diaSemana.textContent = DIAS_LARGO[fecha.getDay()];\n diaTitulo.textContent = `${fecha.getDate()} de ${MESES_LARGO[fecha.getMonth()]}`;\n diaHoy.hidden = diaSeleccionado !== hoy;\n\n const chips = celda ? Array.from(celda.querySelectorAll('[data-evento-dia]')).filter((chip) => coincide(chip, busqueda)) : [];\n diaLista.replaceChildren(...chips.map(crearTarjetaDia));\n diaVacio.hidden = chips.length > 0;\n }\n\n function aplicarFiltros(){\n const busqueda = textoBusqueda();\n\n celdas.forEach((celda) => {\n let visibles = 0;\n\n celda.querySelectorAll('[data-evento-dia]').forEach((chip) => {\n const visible = coincide(chip, busqueda);\n chip.classList.toggle('oculta_por_filtro', !visible);\n\n if(visible){\n visibles += 1;\n }\n\n chip.classList.toggle('desborda', visible && visibles > MAX_CHIPS_DIA);\n });\n\n const mas = celda.querySelector('[data-calendario-mas]');\n const extra = visibles - MAX_CHIPS_DIA;\n\n if(mas){\n mas.hidden = extra <= 0;\n mas.textContent = extra > 0 ? `+${extra} más` : '';\n }\n\n celda.classList.toggle('tiene_eventos', visibles > 0);\n });\n\n let diasAgendaVisibles = 0;\n\n diasAgenda.forEach((dia) => {\n let visibles = 0;\n\n dia.querySelectorAll('.cal_agenda_evento').forEach((evento) => {\n const visible = coincide(evento, busqueda);\n evento.hidden = !visible;\n visibles += visible ? 1 : 0;\n });\n\n dia.hidden = visibles === 0;\n diasAgendaVisibles += visibles ? 1 : 0;\n });\n\n if(agendaVacia){\n agendaVacia.hidden = diasAgendaVisibles > 0;\n }\n\n let proximosVisibles = 0;\n\n itemsProximos.forEach((item) => {\n const visible = coincide(item, busqueda);\n item.hidden = !visible;\n proximosVisibles += visible ? 1 : 0;\n });\n\n if(proximosSinResultados){\n proximosSinResultados.hidden = itemsProximos.length === 0 || proximosVisibles > 0;\n }\n\n diasTira.forEach((boton) => {\n const celda = celdasPorDia.get(boton.dataset.calendarioTiraDia);\n boton.classList.toggle('tiene_eventos', Boolean(celda && celda.classList.contains('tiene_eventos')));\n });\n\n botonesTipo.forEach((boton) => {\n const activo = !ocultos.has(boton.dataset.filtroEventoTipo);\n boton.classList.toggle('activo', activo);\n boton.setAttribute(boton.getAttribute('role') === 'checkbox' ? 'aria-checked' : 'aria-pressed', activo ? 'true' : 'false');\n });\n\n renderizarDia();\n }\n\n function desplazarAgendaA(clave){\n if(panel.dataset.calendarioVistaActiva !== 'agenda'){\n return;\n }\n\n const destino = diasAgenda.find((dia) => dia.dataset.agendaDia >= clave && !dia.hidden);\n\n if(destino){\n destino.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }\n\n function centrarTira(){\n const boton = diasTira.find((otro) => otro.dataset.calendarioTiraDia === diaSeleccionado);\n\n if(tira && boton && tira.offsetParent !== null){\n tira.scrollLeft = boton.offsetLeft - (tira.clientWidth - boton.offsetWidth) / 2;\n }\n }\n\n function seleccionarDia(clave){\n diaSeleccionado = clave;\n cerrarDetalle();\n renderizarDia();\n }\n\n function mostrarVista(vista, guardar){\n botonesVista.forEach((boton) => {\n const activo = boton.dataset.calendarioVista === vista;\n boton.classList.toggle('activo', activo);\n boton.setAttribute('aria-pressed', activo ? 'true' : 'false');\n });\n\n panelesVista.forEach((vistaPanel) => {\n vistaPanel.hidden = vistaPanel.dataset.calendarioVistaPanel !== vista;\n });\n\n panel.dataset.calendarioVistaActiva = vista;\n\n if(guardar){\n try{\n localStorage.setItem('calendarioVista', vista);\n }catch(error){\n // Sin localStorage (modo privado): la vista no se recuerda.\n }\n }\n }\n\n function abrirDetalle(evento){\n if(!detalle){\n return;\n }\n\n const campo = (selector) => detalle.querySelector(selector);\n const pillTipo = campo('[data-detalle-evento-tipo]');\n\n if(pillTipo){\n pillTipo.className = `cal_pill ${evento.vistaClases || ''}`;\n pillTipo.setAttribute('style', evento.vistaEstilo || '');\n campo('[data-detalle-evento-tipo-texto]').textContent = evento.tipoLabel || 'Evento';\n }\n\n campo('[data-detalle-evento-titulo]').textContent = evento.titulo || 'Evento';\n campo('[data-detalle-evento-fecha]').textContent = formatearFechaEvento(evento);\n campo('[data-detalle-evento-horario]').textContent = evento.horario || 'Todo el día';\n\n campo('[data-detalle-evento-ubicacion-wrap]').hidden = !evento.ubicacion;\n campo('[data-detalle-evento-ubicacion]').textContent = evento.ubicacion || '';\n campo('[data-detalle-evento-rama-wrap]').hidden = !evento.ramaLabel;\n campo('[data-detalle-evento-rama]').textContent = evento.ramaLabel || '';\n\n const descripcion = campo('[data-detalle-evento-descripcion]');\n descripcion.textContent = evento.descripcion || '';\n descripcion.hidden = !evento.descripcion;\n\n const esSoloLectura = Boolean(evento.esSoloLectura || (evento.esGoogle && !evento.googleId));\n campo('[data-detalle-evento-nota-solo-lectura]').hidden = !esSoloLectura;\n campo('[data-detalle-evento-nota-icon]').className = evento.esGoogle ? 'fa-brands fa-google' : 'fa-solid fa-cake-candles';\n campo('[data-detalle-evento-nota-texto]').textContent = evento.notaSoloLectura || 'Este evento viene de Google Calendar y no se puede editar ni eliminar desde acá.';\n\n const destinoEvento = evento.googleId ? `google=${encodeURIComponent(evento.googleId)}` : `id=${encodeURIComponent(evento.id)}`;\n const acciones = campo('.cal_detalle_acciones');\n\n if(acciones){\n acciones.hidden = esSoloLectura || !puedeGestionar;\n campo('[data-detalle-evento-editar]').href = `/admin/calendario/actualizar.php?${destinoEvento}`;\n campo('[data-detalle-evento-eliminar]').href = `/admin/calendario/eliminar.php?${destinoEvento}`;\n }\n\n // Abierto desde \"Proximos\" o la agenda: si el evento no cae en el\n // dia seleccionado, se pasa a su dia (cuando esta en la grilla),\n // asi \"Volver\" lleva a donde esta el evento.\n const finEvento = evento.fechaFin || evento.fechaInicio;\n const incluyeSeleccionado = evento.fechaInicio && diaSeleccionado >= evento.fechaInicio && diaSeleccionado <= finEvento;\n\n if(evento.fechaInicio && !incluyeSeleccionado && celdasPorDia.has(evento.fechaInicio)){\n diaSeleccionado = evento.fechaInicio;\n renderizarDia();\n }\n\n const fechaVolver = fechaDesdeClave(diaSeleccionado);\n campo('[data-detalle-evento-volver]').textContent = Number.isNaN(fechaVolver.getTime())\n ? 'Volver'\n : `Volver al ${DIAS_LARGO[fechaVolver.getDay()].toLowerCase()} ${fechaVolver.getDate()}`;\n\n detalle.hidden = false;\n detalle.setAttribute('aria-hidden', 'false');\n panel.classList.add('detalle_abierto');\n\n if(consultaDetalleFlotante.matches){\n document.body.classList.add('modal_abierta');\n }\n\n const volver = campo('.cal_detalle_volver');\n\n if(volver){\n volver.focus({ preventScroll: consultaDetalleFlotante.matches });\n }\n }\n\n function cerrarDetalle(){\n if(!detalle || detalle.hidden){\n return;\n }\n\n detalle.hidden = true;\n detalle.setAttribute('aria-hidden', 'true');\n panel.classList.remove('detalle_abierto');\n\n const popupCrearActual = document.querySelector('[data-popup-crear-evento]');\n\n if(!popupCrearActual || !popupCrearActual.classList.contains('visible')){\n document.body.classList.remove('modal_abierta');\n }\n }\n\n panel.calendarioCerrarDetalle = cerrarDetalle;\n\n celdas.forEach((celda) => {\n celda.addEventListener('click', () => seleccionarDia(celda.dataset.dia));\n });\n\n diasTira.forEach((boton) => {\n boton.addEventListener('click', () => {\n seleccionarDia(boton.dataset.calendarioTiraDia);\n desplazarAgendaA(boton.dataset.calendarioTiraDia);\n });\n });\n\n botonesVista.forEach((boton) => {\n boton.addEventListener('click', () => {\n mostrarVista(boton.dataset.calendarioVista, true);\n centrarTira();\n });\n });\n\n botonesTipo.forEach((boton) => {\n boton.addEventListener('click', () => {\n const tipo = boton.dataset.filtroEventoTipo;\n\n if(ocultos.has(tipo)){\n ocultos.delete(tipo);\n }else{\n ocultos.add(tipo);\n }\n\n aplicarFiltros();\n });\n });\n\n if(inputBusqueda){\n inputBusqueda.addEventListener('input', aplicarFiltros);\n }\n\n panel.querySelectorAll('[data-calendario-ir-hoy]').forEach((boton) => {\n boton.addEventListener('click', () => {\n seleccionarDia(hoy);\n centrarTira();\n desplazarAgendaA(hoy);\n });\n });\n\n panel.addEventListener('click', (evento) => {\n const chip = evento.target.closest('[data-evento-chip]');\n\n if(chip){\n abrirDetalle(leerEvento(chip));\n return;\n }\n\n if(evento.target.closest('[data-cerrar-detalle-evento]')){\n cerrarDetalle();\n }\n });\n\n if(puedeGestionar){\n panel.querySelectorAll('[data-abrir-crear-evento]').forEach((boton) => {\n boton.addEventListener('click', (evento) => {\n if(!popupCrear){\n return;\n }\n\n evento.preventDefault();\n\n // \"Crear evento este dia\": precarga la fecha elegida.\n if(boton.hasAttribute('data-calendario-crear-dia')){\n const inputFecha = popupCrear.querySelector('input[name=\"fecha_inicio\"]');\n\n if(inputFecha){\n inputFecha.value = diaSeleccionado;\n inputFecha.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }\n\n abrirPopupCrearEvento();\n });\n });\n }\n\n let vistaInicial = consultaPantallaChica.matches ? 'agenda' : 'mes';\n\n try{\n vistaInicial = localStorage.getItem('calendarioVista') || vistaInicial;\n }catch(error){\n // Sin localStorage: se usa la vista por defecto segun el ancho.\n }\n\n mostrarVista(vistaInicial === 'agenda' ? 'agenda' : 'mes', false);\n aplicarFiltros();\n centrarTira();\n\n if(popupCrear && popupCrear.dataset.autoOpen === 'true'){\n abrirPopupCrearEvento();\n }\n });\n\n // Toggle \"Dura todo el dia\": oculta/muestra los inputs de horario. Se\n // bindea una sola vez por popup (dataset flag), igual que el resto de\n // los listeners globales de este modulo.\n const popupCrear = document.querySelector('[data-popup-crear-evento]');\n const checkboxTodoElDia = popupCrear ? popupCrear.querySelector('[data-evento-todo-el-dia]') : null;\n const wrapperHorarios = popupCrear ? popupCrear.querySelector('[data-evento-horarios-wrap]') : null;\n\n if(checkboxTodoElDia && wrapperHorarios && checkboxTodoElDia.dataset.calendarioToggleBound !== 'true'){\n checkboxTodoElDia.dataset.calendarioToggleBound = 'true';\n\n const actualizarHorarios = () => {\n wrapperHorarios.hidden = checkboxTodoElDia.checked;\n wrapperHorarios.querySelectorAll('input[type=\"time\"]').forEach((input) => {\n input.required = !checkboxTodoElDia.checked;\n input.disabled = checkboxTodoElDia.checked;\n });\n };\n checkboxTodoElDia.addEventListener('change', actualizarHorarios);\n actualizarHorarios();\n }\n\n const cerrarPopupCrearEvento = () => {\n const popupCrearActual = document.querySelector('[data-popup-crear-evento]');\n\n if(popupCrearActual){\n popupCrearActual.classList.remove('visible');\n popupCrearActual.setAttribute('aria-hidden', 'true');\n }\n\n try{\n const url = new URL(window.location.href);\n url.searchParams.delete('crear');\n window.history.replaceState({}, '', `${url.pathname}${url.search}${url.hash}`);\n }catch(error){\n console.warn('No se pudo limpiar la URL del popup de crear evento', error);\n }\n\n if(!document.querySelector('.cal_panel.detalle_abierto') || !consultaDetalleFlotante.matches){\n document.body.classList.remove('modal_abierta');\n }\n };\n\n if(popupCrear && popupCrear.dataset.calendarioCrearPopupBound !== 'true'){\n popupCrear.dataset.calendarioCrearPopupBound = 'true';\n\n popupCrear.querySelectorAll('[data-cerrar-crear-evento]').forEach((boton) => {\n boton.addEventListener('click', cerrarPopupCrearEvento);\n });\n\n popupCrear.addEventListener('click', (evento) => {\n if(evento.target === popupCrear){\n cerrarPopupCrearEvento();\n }\n });\n }\n\n if(calendarioPanel.eventosGlobales){\n return;\n }\n\n document.addEventListener('keydown', (evento) => {\n if(evento.key !== 'Escape'){\n return;\n }\n\n const popupCrearActual = document.querySelector('[data-popup-crear-evento]');\n\n if(popupCrearActual && popupCrearActual.classList.contains('visible')){\n cerrarPopupCrearEvento();\n return;\n }\n\n document.querySelectorAll('[data-calendario-panel]').forEach((panel) => {\n if(typeof panel.calendarioCerrarDetalle === 'function'){\n panel.calendarioCerrarDetalle();\n }\n });\n });\n\n calendarioPanel.eventosGlobales = true;\n}\n\n// Panel de Integraciones (admin/settings/integraciones.php): tabs client-side\n// (Drive/Calendario/Rifas) sin recargar ni depender de la navegacion parcial\n// -las 3 secciones ya estan en el DOM, esto solo muestra/oculta. Arranca en\n// la pestaña que haya puesto el servidor (data-tab-activa, calculada segun\n// ?tab= o el ultimo formulario guardado) y no pisa la URL salvo que el\n// usuario clickee otra pestaña.\nfunction integracionesPanel(root = document){\n const paneles = root.querySelectorAll('[data-integraciones-panel]');\n\n paneles.forEach((panel) => {\n if(panel.dataset.integracionesInicializado === 'true'){\n return;\n }\n\n panel.dataset.integracionesInicializado = 'true';\n\n const botones = panel.querySelectorAll('[data-tab-boton]');\n const secciones = panel.querySelectorAll('[data-tab-panel]');\n\n function mostrarTab(clave){\n botones.forEach((boton) => {\n boton.classList.toggle('activo', boton.dataset.tabBoton === clave);\n });\n\n secciones.forEach((seccion) => {\n seccion.hidden = seccion.dataset.tabPanel !== clave;\n });\n\n try{\n const url = new URL(window.location.href);\n url.searchParams.set('tab', clave);\n window.history.replaceState({}, '', `${url.pathname}${url.search}${url.hash}`);\n }catch(error){\n console.warn('No se pudo actualizar la URL de la pestaña activa', error);\n }\n }\n\n botones.forEach((boton) => {\n boton.addEventListener('click', () => {\n mostrarTab(boton.dataset.tabBoton);\n });\n });\n });\n}\n\n// \"Quien puede gestionar eventos\" (Integraciones -> Calendario). Los switches\n// son checkbox reales del formulario; esto solo suma el buscador, los filtros\n// por rango / \"Solo con acceso\", los chips de \"Con acceso ahora\" y el aviso\n// de cambios sin guardar (comparando contra defaultChecked, el valor con el\n// que vino la pagina). Filtrar solo oculta filas: los checkbox ocultos se\n// siguen enviando.\nfunction permisosCalendario(root = document){\n root.querySelectorAll('[data-permisos-calendario]').forEach((form) => {\n if(form.dataset.permisosCalendarioInicializado === 'true'){\n return;\n }\n\n const buscador = form.querySelector('[data-permisos-calendario-buscar]');\n\n if(!buscador){\n return;\n }\n\n form.dataset.permisosCalendarioInicializado = 'true';\n\n const filas = Array.from(form.querySelectorAll('[data-permisos-calendario-item]'));\n const botonesFiltro = form.querySelectorAll('[data-permisos-calendario-filtro]');\n const botonSolo = form.querySelector('[data-permisos-calendario-solo]');\n const contenedorChips = form.querySelector('[data-permisos-calendario-chips]');\n const total = form.querySelector('[data-permisos-calendario-total]');\n const cambios = form.querySelector('[data-permisos-calendario-cambios]');\n const vacio = form.querySelector('[data-permisos-calendario-vacio]');\n const descartar = form.querySelector('[data-permisos-calendario-descartar]');\n\n let filtroRango = 'todos';\n let soloConAcceso = false;\n\n const checkDe = (fila) => fila.querySelector('input[type=\"checkbox\"]');\n const tieneAcceso = (fila) => fila.dataset.rango === 'admin' || (checkDe(fila) && checkDe(fila).checked);\n\n function crearChip(fila){\n const esAdmin = fila.dataset.rango === 'admin';\n const nombre = fila.querySelector('[data-permisos-calendario-nombre]').textContent;\n const chip = document.createElement('span');\n chip.className = 'permisos_cal_chip';\n\n const avatar = document.createElement('span');\n avatar.className = `permisos_cal_avatar ${esAdmin ? 'es_admin' : 'con_acceso'}`;\n avatar.textContent = fila.dataset.iniciales || '';\n\n const texto = document.createElement('span');\n texto.textContent = nombre;\n\n chip.append(avatar, texto);\n\n if(esAdmin){\n const siempre = document.createElement('span');\n siempre.className = 'permisos_cal_siempre';\n siempre.innerHTML = 'siempre';\n chip.append(siempre);\n }else{\n const quitar = document.createElement('button');\n quitar.type = 'button';\n quitar.className = 'permisos_cal_quitar';\n quitar.setAttribute('aria-label', `Quitar acceso a ${nombre}`);\n quitar.innerHTML = '';\n quitar.addEventListener('click', () => {\n checkDe(fila).checked = false;\n actualizar();\n });\n chip.append(quitar);\n }\n\n return chip;\n }\n\n function actualizar(){\n const texto = buscador.value.trim().toLowerCase();\n let visibles = 0;\n let conAcceso = 0;\n let pendientes = 0;\n const chips = [];\n\n filas.forEach((fila) => {\n const check = checkDe(fila);\n const acceso = tieneAcceso(fila);\n const cambiado = !!check && check.checked !== check.defaultChecked;\n\n if(check){\n fila.querySelector('[data-permisos-calendario-estado]').textContent = acceso ? 'Puede' : 'Solo ver';\n fila.querySelector('[data-permisos-calendario-avatar]').classList.toggle('con_acceso', acceso);\n }\n\n fila.classList.toggle('cambiado', cambiado);\n pendientes += cambiado ? 1 : 0;\n\n if(acceso){\n conAcceso++;\n chips.push(crearChip(fila));\n }\n\n const visible = (!texto || (fila.dataset.nombre || '').includes(texto))\n && (filtroRango === 'todos' || fila.dataset.rango === filtroRango)\n && (!soloConAcceso || acceso);\n\n fila.hidden = !visible;\n visibles += visible ? 1 : 0;\n });\n\n if(contenedorChips){\n contenedorChips.replaceChildren(...chips);\n }\n\n if(total){\n total.textContent = conAcceso;\n }\n\n if(cambios){\n cambios.textContent = pendientes\n ? `${pendientes} ${pendientes === 1 ? 'cambio sin guardar' : 'cambios sin guardar'}`\n : 'Todo guardado';\n cambios.classList.toggle('pendiente', pendientes > 0);\n }\n\n if(vacio){\n vacio.hidden = visibles > 0;\n }\n }\n\n buscador.addEventListener('input', actualizar);\n\n // Enter en el buscador no tiene que mandar el formulario.\n buscador.addEventListener('keydown', (e) => {\n if(e.key === 'Enter'){\n e.preventDefault();\n }\n });\n\n botonesFiltro.forEach((boton) => {\n boton.addEventListener('click', () => {\n filtroRango = boton.dataset.permisosCalendarioFiltro;\n botonesFiltro.forEach((otro) => {\n const activo = otro === boton;\n otro.classList.toggle('activo', activo);\n otro.setAttribute('aria-pressed', activo ? 'true' : 'false');\n });\n actualizar();\n });\n });\n\n if(botonSolo){\n botonSolo.addEventListener('click', () => {\n soloConAcceso = !soloConAcceso;\n botonSolo.classList.toggle('activo', soloConAcceso);\n botonSolo.setAttribute('aria-pressed', soloConAcceso ? 'true' : 'false');\n actualizar();\n });\n }\n\n form.addEventListener('change', (e) => {\n if(e.target.matches('input[type=\"checkbox\"]')){\n actualizar();\n }\n });\n\n if(descartar){\n descartar.addEventListener('click', () => {\n filas.forEach((fila) => {\n const check = checkDe(fila);\n\n if(check){\n check.checked = check.defaultChecked;\n }\n });\n actualizar();\n });\n }\n\n actualizar();\n });\n}\n\n// Dropzone de la pestaña \"Nomina\" (Integraciones): el click ya lo resuelve\n// el