Cada pantalla de documento del menú abre primero la lista de los últimos
documentos; desde ahí se crea uno (/nuevo) o se abre uno (/:docEntry).
- sbo-list-view: título, botón de alta, barra de filtros, tabla y paginación
(50 por página, más recientes primero).
- sbo-filter-bar (como el FilterBar del mini-erp): búsqueda por la columna
activa + filtros declarativos text / select (con valor por defecto) /
multi (chips + lista de valores) / date (siempre rango [desde – hasta]),
con Ir y Limpiar. Ir aplica búsqueda y filtros en una sola consulta.
- Búsqueda numérica por igualdad (DocNum eq 314) con aviso si no es número;
una columna con texto calculado (format) ya no es buscable por defecto.
- Piezas compartidas con sbo-value-help, que se refactoriza sobre ellas:
createSlList (estado de búsqueda/paginación), sbo-data-table, sbo-pager,
sbo-search-bar. Insignias de estado (tone) y estilos de botón globales.
- DOCUMENT_SCREENS: columnas y filtros de 17 documentos (ventas, compras,
inventario) según los campos verificados en el Service Layer real
(PurchaseRequests no tiene CardCode; StockTransfers no tiene estado).
- Rutas generadas desde el registro: lista, nuevo y :docEntry bajo el
permiso de la ruta de menú. El formulario es un marcador (paso 9).
- Presupuesto: el aviso del bundle inicial sube a 300 kB; httpResource
aporta ~18 kB al chunk compartido (278 kB, 78 kB comprimido).
- Verificado en Chrome contra SAP real: 49 órdenes abiertas, 314 en total,
rango de fechas, chips de monedas, búsqueda por número, navegación y
botón atrás, tema oscuro; ofertas (4391), transferencias y entradas.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- apps/web: Angular 22 standalone, zoneless, OnPush, vitest; proxy /api
hacia el backend; presupuesto de bundle (aviso 260 kB, error 400 kB).
- libs/sap-types: tipos de auth/permisos/Service Layer y el evaluador de
patrones de menú, compartidos por api y web (se compila en postinstall).
El backend deja de tener su propia copia del evaluador.
- Temas por variables CSS: claro por defecto con la paleta del mockup de
Oferta de ventas, oscuro incluido; ThemeService + selector, con el tema
guardado aplicado antes del primer pintado. Agregar un tema = 1 css +
1 import + 1 entrada.
- Criterios de interfaz ligera en CLAUDE.md y README.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>