nexabase-report 0.28.49 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NEXAREPORT.md +3 -3
- package/dist/{generated-BJ_UpWRr.js → generated-B0vHWjl-.js} +34 -22
- package/dist/{html2pdf-CN5Bea9j.js → html2pdf-C1nTfNyD.js} +2 -2
- package/dist/{index-CNxyint1.js → index-C7gnc9e6.js} +40080 -38450
- package/dist/{index.es-DTqgXQcB.js → index.es-DlL3_20s.js} +2 -2
- package/dist/{jspdf.es.min-Cvx4ls2L.js → jspdf.es.min-GJN6BHez.js} +1 -1
- package/dist/lib/styles/_designer.css +6 -0
- package/dist/nexabase-report.es.js +1 -1
- package/dist/nexabase-report.umd.js +327 -303
- package/dist/{pptxgen.es-B-m84vNS.js → pptxgen.es-zk0lz5Yt.js} +1 -1
- package/examples/integration/integration-jquery.html +23 -16
- package/examples/viewer.html +23 -6
- package/package.json +1 -1
package/NEXAREPORT.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- nexabase-report@0.
|
|
1
|
+
<!-- nexabase-report@0.30.0 — generado por scripts/gen-ai-context.mjs, no editar a mano -->
|
|
2
2
|
# NexaReport — referencia para agentes de IA
|
|
3
3
|
|
|
4
4
|
> Este archivo se genera desde los tipos TypeScript reales del paquete (`src/lib/types/report.ts`
|
|
@@ -281,10 +281,10 @@ El schema formal completo (todas las interfaces, no solo bandas/elementos) está
|
|
|
281
281
|
`nexabase-report/schema`, así que es accesible sin instalar nada vía:
|
|
282
282
|
|
|
283
283
|
```
|
|
284
|
-
https://unpkg.com/nexabase-report@0.
|
|
284
|
+
https://unpkg.com/nexabase-report@0.30.0/schema/nexareport.schema.json
|
|
285
285
|
```
|
|
286
286
|
|
|
287
|
-
(cambia `@0.
|
|
287
|
+
(cambia `@0.30.0` por `@latest` para la versión más reciente). Valida el JSON generado
|
|
288
288
|
contra ese schema antes de darlo por bueno — evita que un campo inventado llegue al usuario.
|
|
289
289
|
|
|
290
290
|
Más ejemplos reales (subreportes, crosstab, master-detail, códigos de barras) en `examples/*.json`
|
|
@@ -888,7 +888,7 @@ exacto.</p>
|
|
|
888
888
|
{
|
|
889
889
|
id: "integracion-cdn",
|
|
890
890
|
title: "Publicar el visor en tu web (CDN)",
|
|
891
|
-
search: `cdn, jsdelivr, unpkg, embeber, integrar, cache, navegador, produccion, actualizar, script publicar el visor en tu web (cdn) si vas a mostrar <nexa viewer en un sitio externo sin pasar por un bundler, la forma más rápida es cargarlo desde un cdn público. hay una trampa con la que se han topado varios clientes: cargarlo mal hace que dejen de ver las correcciones que publicas. el problema: el navegador cachea la copia vieja un <script apuntando siempre a la misma url —sin número de versión— se cachea en el navegador de cada visitante hasta por 7 días . publicás un fix, el cdn ya lo tiene, pero el navegador del cliente sigue sirviendo su copia local vieja hasta que expire el caché o el usuario haga un refresco forzado (ctrl+shift+r). desde el diseñador no hay forma de "empujar" esa actualización: es una limitación del navegador, no de nexareport. html <! ❌ el navegador puede quedarse con esta copia hasta 7 días <script src="https://cdn.jsdelivr.net/npm/nexabase report/dist/nexabase report.umd.js" <\/script la solución: resolver la versión antes de cargar en vez de apuntar a la url sin versión, resolvé la última versión publicada (jsdelivr cachea esa consulta solo 10 segundos) y cargá el archivo desde la url versionada resultante. cada release usa una url distinta, así que el navegador no tiene forma de servir una copia vieja aunque quiera. html <nexa viewer id="viewer" minimal </nexa viewer <script
|
|
891
|
+
search: `cdn, jsdelivr, unpkg, embeber, integrar, cache, navegador, produccion, actualizar, script publicar el visor en tu web (cdn) si vas a mostrar <nexa viewer en un sitio externo sin pasar por un bundler, la forma más rápida es cargarlo desde un cdn público. hay una trampa con la que se han topado varios clientes: cargarlo mal hace que dejen de ver las correcciones que publicas. el problema: el navegador cachea la copia vieja un <script apuntando siempre a la misma url —sin número de versión— se cachea en el navegador de cada visitante hasta por 7 días . publicás un fix, el cdn ya lo tiene, pero el navegador del cliente sigue sirviendo su copia local vieja hasta que expire el caché o el usuario haga un refresco forzado (ctrl+shift+r). desde el diseñador no hay forma de "empujar" esa actualización: es una limitación del navegador, no de nexareport. html <! ❌ el navegador puede quedarse con esta copia hasta 7 días <script src="https://cdn.jsdelivr.net/npm/nexabase report/dist/nexabase report.umd.js" <\/script la solución: resolver la versión antes de cargar en vez de apuntar a la url sin versión, resolvé la última versión publicada (jsdelivr cachea esa consulta solo 10 segundos) y cargá el archivo desde la url versionada resultante. cada release usa una url distinta, así que el navegador no tiene forma de servir una copia vieja aunque quiera. html <nexa viewer id="viewer" minimal </nexa viewer <script function loadfrom(baseurl) { const css = document.createelement('link'); css.rel = 'stylesheet'; css.href = \${baseurl}/dist/style.css ; const cssready = new promise(resolve = { css.onload = resolve; css.onerror = resolve; }); document.head.appendchild(css); const js = document.createelement('script'); js.src = \${baseurl}/dist/nexabase report.umd.js ; const jsready = new promise((resolve, reject) = { js.onload = resolve; js.onerror = reject; }); document.head.appendchild(js); // esperar los dos recursos, no solo el js: si el visor arranca a medir alturas de // página antes de que el css esté aplicado, la paginación sale mal (páginas de // menos, scroll roto) sin que salte ningún error en consola. return promise.all([cssready, jsready]); } fetch('https://data.jsdelivr.com/v1/packages/npm/nexabase report/resolved?specifier=latest') .then(r = r.json()) .then(({ version }) = loadfrom( https://cdn.jsdelivr.net/npm/nexabase report@\${version} )) // la llamada de resolución de versión vive en un dominio distinto (data.jsdelivr.com) al // del cdn mismo — un proxy corporativo, un adblocker o una regla de csp pueden bloquear // justo esa llamada aunque el cdn sí sea alcanzable. si falla, cae a la etiqueta @latest // de jsdelivr directamente en vez de dejar el visor en blanco sin ningún aviso visible. .catch(() = loadfrom('https://cdn.jsdelivr.net/npm/nexabase report@latest')) .then(() = { nexareport.registernexareport(); const viewer = document.getelementbyid('viewer'); viewer.definition = { / json del reporte / }; viewer.data = [ / datos / ]; }) .catch(err = { document.getelementbyid('viewer').outerhtml = <div style="padding:16px;color: b91c1c;font family:system ui" no se pudo cargar nexareport: \${err && err.message err}</div ; }); <\/script no hace falta fijar el número de versión a mano ni editar nada en cada release: la resolución siempre trae la última publicada, y el navegador solo se ve obligado a bajarla de nuevo cuando efectivamente cambió. importante: esperá siempre los dos recursos (css y js) antes de inicializar el visor. si solo esperás el <script y dejás que el <link cargue en paralelo sin que nadie lo espere, en redes donde el css tarda más que el js (por ejemplo, el js ya en caché de una visita anterior y el css no) el visor puede arrancar a medir alturas de página antes de que el estilo esté aplicado — un candidato plausible para un reporte que de repente muestra una sola página sin ningún error en consola. si ya integraste con la url sin versión cambiar tu propio código al patrón de arriba resuelve el problema hacia adelante. para los usuarios que ya cargaron la versión vieja antes del cambio, no hay forma de purgar su caché de forma remota: necesitan un refresco forzado una única vez.`,
|
|
892
892
|
element: "",
|
|
893
893
|
html: `<h1>Publicar el visor en tu web (CDN)</h1>
|
|
894
894
|
<p>Si vas a mostrar <code><nexa-viewer></code> en un sitio externo sin pasar por un bundler, la forma más rápida
|
|
@@ -910,30 +910,42 @@ una URL distinta, así que el navegador no tiene forma de servir una copia vieja
|
|
|
910
910
|
<pre><code class="language-html"><nexa-viewer id="viewer" minimal></nexa-viewer>
|
|
911
911
|
|
|
912
912
|
<script>
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
.
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
913
|
+
function loadFrom(baseUrl) {
|
|
914
|
+
const css = document.createElement('link');
|
|
915
|
+
css.rel = 'stylesheet';
|
|
916
|
+
css.href = \`\${baseUrl}/dist/style.css\`;
|
|
917
|
+
const cssReady = new Promise(resolve => { css.onload = resolve; css.onerror = resolve; });
|
|
918
|
+
document.head.appendChild(css);
|
|
919
|
+
|
|
920
|
+
const js = document.createElement('script');
|
|
921
|
+
js.src = \`\${baseUrl}/dist/nexabase-report.umd.js\`;
|
|
922
|
+
const jsReady = new Promise((resolve, reject) => { js.onload = resolve; js.onerror = reject; });
|
|
923
|
+
document.head.appendChild(js);
|
|
921
924
|
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
925
|
+
// Esperar los DOS recursos, no solo el JS: si el visor arranca a medir alturas de
|
|
926
|
+
// página antes de que el CSS esté aplicado, la paginación sale mal (páginas de
|
|
927
|
+
// menos, scroll roto) sin que salte ningún error en consola.
|
|
928
|
+
return Promise.all([cssReady, jsReady]);
|
|
929
|
+
}
|
|
926
930
|
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
931
|
+
fetch('https://data.jsdelivr.com/v1/packages/npm/nexabase-report/resolved?specifier=latest')
|
|
932
|
+
.then(r => r.json())
|
|
933
|
+
.then(({ version }) => loadFrom(\`https://cdn.jsdelivr.net/npm/nexabase-report@\${version}\`))
|
|
934
|
+
// La llamada de resolución de versión vive en un dominio distinto (data.jsdelivr.com) al
|
|
935
|
+
// del CDN mismo — un proxy corporativo, un adblocker o una regla de CSP pueden bloquear
|
|
936
|
+
// justo esa llamada aunque el CDN sí sea alcanzable. Si falla, cae a la etiqueta \`@latest\`
|
|
937
|
+
// de jsDelivr directamente en vez de dejar el visor en blanco sin ningún aviso visible.
|
|
938
|
+
.catch(() => loadFrom('https://cdn.jsdelivr.net/npm/nexabase-report@latest'))
|
|
939
|
+
.then(() => {
|
|
940
|
+
NexaReport.registerNexaReport();
|
|
932
941
|
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
942
|
+
const viewer = document.getElementById('viewer');
|
|
943
|
+
viewer.definition = { /* JSON del reporte */ };
|
|
944
|
+
viewer.data = [ /* datos */ ];
|
|
945
|
+
})
|
|
946
|
+
.catch(err => {
|
|
947
|
+
document.getElementById('viewer').outerHTML =
|
|
948
|
+
\`<div style="padding:16px;color:#b91c1c;font-family:system-ui">No se pudo cargar NexaReport: \${err && err.message || err}</div>\`;
|
|
937
949
|
});
|
|
938
950
|
</script>
|
|
939
951
|
</code></pre>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as Nl, c as ut, d as Vl } from "./index-
|
|
2
|
-
import { j as Xl } from "./jspdf.es.min-
|
|
1
|
+
import { g as Nl, c as ut, d as Vl } from "./index-C7gnc9e6.js";
|
|
2
|
+
import { j as Xl } from "./jspdf.es.min-GJN6BHez.js";
|
|
3
3
|
function Jl(Pe, br) {
|
|
4
4
|
for (var fe = 0; fe < br.length; fe++) {
|
|
5
5
|
const HA = br[fe];
|