
Security News
vlt 1.5.0 Adds Agent Skills Management
vlt 1.5.0 links skills from JavaScript dependencies to coding agents, with lockfile versioning and Socket data to filter out known malicious packages.
@reportwright/angular
Advanced tools
ReportWright viewer and designer custom elements for Angular (CUSTOM_ELEMENTS_SCHEMA).
<reportwright-viewer> and <reportwright-designer> custom elements: the ReportWright report viewer and drag-and-drop designer in Angular.
Live demo: mrarun005.github.io/reportwright-demo (Embed it shows the wrapper code; the designer playground is the designer these elements mount).
Custom elements need no Angular compiler step, so they work with any Angular version.
npm i @reportwright/angular @reportwright/viewer @reportwright/fonts
Serve the fonts as static assets, e.g. in angular.json under assets:
{ "glob": "**/*", "input": "node_modules/@reportwright/fonts/public", "output": "pw" }, then pass fontsUrl: '/pw/fonts/'.
// main.ts
import { defineReportWrightElements } from '@reportwright/angular';
defineReportWrightElements();
// orders.component.ts
import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import definition from './orders.pw.json'; // the report from @reportwright/engine's README examples (resolveJsonModule)
@Component({
selector: 'app-orders',
standalone: true,
schemas: [CUSTOM_ELEMENTS_SCHEMA],
template: `<reportwright-viewer [options]="options" style="display:block;height:720px"></reportwright-viewer>`,
})
export class OrdersComponent {
options = {
definition,
data: { orders: { rows: [{ customer: 'Asha Rao', amount: 1200.5 }, { customer: 'Ben Ode', amount: 80 }] } },
fontsUrl: '/pw/fonts/',
};
}
The elements were verified against this version with Vite 7 in Chromium (created from plain JavaScript, as Angular does).
Get the handle, re-run with parameters, export:
@Component({
selector: 'app-orders',
standalone: true,
schemas: [CUSTOM_ELEMENTS_SCHEMA],
template: `
<button (click)="viewer?.setParameters({ minAmount: 100 })">Over 100</button>
<button (click)="excel()">Excel</button>
<reportwright-viewer [options]="options" (pw-ready)="viewer = $event.detail"></reportwright-viewer>`,
})
export class OrdersComponent {
viewer?: ViewerHandle; // import type { ViewerHandle } from '@reportwright/angular'
options = { definition, data: { orders }, fontsUrl: '/pw/fonts/' };
async excel() { open(URL.createObjectURL(await this.viewer!.export('xlsx'))); }
}
Edit a report and save it (without onSave in the options, the designer fires pw-save):
<reportwright-designer [options]="{ definition: def, fontsUrl: '/pw/fonts/' }" (pw-save)="save($event.detail)"></reportwright-designer>
With a self-hosted ReportWright server:
<reportwright-viewer [options]="{ server: 'https://reports.example.com', report: 'invoice', params: { id: id } }"></reportwright-viewer>
<reportwright-designer [options]="{ server: server, definition: def }" (pw-save)="save($event.detail)"></reportwright-designer>
A runnable app is in the repository's examples/angular.
| Element | Meaning | |
|---|---|---|
options property | both | the options of mountViewer / mountDesigner (full table in @reportwright/viewer) |
server, report, height, lang attributes | both | the same options as attributes |
pw-ready | both | detail: the ViewerHandle / DesignerHandle |
pw-error | both | detail: the error when the viewer's code did not load |
pw-save | designer | detail: the definition (only when options has no onSave) |
Exports: defineReportWrightElements(), and the types ReportWrightViewerElement, ReportWrightDesignerElement, ReportWrightReadyEvent, ViewerHandle, DesignerHandle.
Angular 14 or later (peer @angular/core >= 14). Browsers and limits are the viewer's: see @reportwright/viewer.
No server needed: pass definition, data (JSON by data source name) and fontsUrl (a copy of @reportwright/fonts/public/fonts). server (the self-hosted ReportWright server) is optional: see what works standalone.
@reportwright/viewer (what this wraps), @reportwright/engine, @reportwright/fonts, and the react, vue and svelte wrappers.
MIT.
FAQs
ReportWright viewer and designer custom elements for Angular (CUSTOM_ELEMENTS_SCHEMA).
The npm package @reportwright/angular receives a total of 0 weekly downloads. As such, @reportwright/angular popularity was classified as not popular.
We found that @reportwright/angular demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
vlt 1.5.0 links skills from JavaScript dependencies to coding agents, with lockfile versioning and Socket data to filter out known malicious packages.

Security News
Rust 1.100 will add opt-in dependency cooldowns to Cargo, giving security scanners and maintainers time to catch malicious crate releases.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.