npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

flexi-report

v21.0.0

Published

Flexi Report is a dynamic Angular component for creating, styling, and exporting interactive reports with drag-and-drop support, data binding, and PDF/Excel export capabilities.

Readme

Flexi Report

Flexi Report is a dynamic Angular standalone component designed to easily create, style, and manage interactive reports and export them as PDFs. It offers robust functionalities, including dynamic content management, custom styling, and comprehensive table manipulation.

Live Demo

Check out a live demo on StackBlitz.

Features

  • Dynamic Content: Easily add, rearrange, and configure report elements dynamically.
  • Interactive Styling Panel: Control fonts, colors, alignments, margins, padding, borders, and more.
  • Table Customization: Full control over headers, data binding, formatting, and dynamic footer calculations (e.g., sum, average).
  • SQL Query Execution: Directly execute SQL queries within the component to populate report tables dynamically.
  • AI Integration: Generate SQL queries using OpenAI integration for optimized database queries.
  • PDF Export and Print: Export reports as PDF files or print directly from the interface with configurable padding and layout.
  • Drag & Drop Support: Rearrange table headers and form elements using Angular CDK DragDrop.
  • Page Configuration: Customize page size (A4, A5, A6), orientation (portrait, landscape), background color, and fonts.
  • Request Forms: Define input fields like text, date, and select options to generate dynamic request forms for filtering reports.
  • Data Binding: Supports binding elements to API endpoints or manually entered SQL queries for dynamic content population.
  • Excel Export: Export report data directly to an Excel file.

Installation

Install via npm:

npm install flexi-report

Usage

Import the FlexiReportComponent directly into your standalone Angular component:

import { FlexiReportComponent } from 'flexi-report';

@Component({
  imports: [FlexiReportComponent]
})
export class YourComponent {}

Use it in your template:

<flexi-report
      [data]="data()"
      [report]="report()"
      [loading]="loading()"
      [openAPIKey]="openAPIKey()"
      [isPreview]="isPreview()"
      [sqlQueryLoading]="sqlQueryLoadingSignal()"
      [tablesData]="tablesData()"
      (onSave)="onSave($event)"
      (onEdit)="onEdit($event)"
      (onUpdate)="onUpdate($event)"
      (onDelete)="onDelete($event)"
      (onNewReport)="onNewReport()"
      (onSendRequest)="onSendRequest($event)"
/>

Inputs

| Input | Type | Description | | ----------------------- | -------------- | ------------------------------------------------ | | data | any[] | Data array for binding and displaying in reports | | language | 'en' \| 'tr' | Language selection (English or Turkish) | | report | ReportModel | Report configuration model | | isPreview | boolean | Toggle between preview and edit modes | | loading | boolean | Indicates loading state for general content | | sqlQueryLoadingSignal | boolean | Loading indicator for SQL query execution | | tablesData | any[] | Data used to populate SQL query tables | | openAPIKey | string | API key for AI-based SQL query generation |

Outputs

| Output | Event Type | Description | | ------------- | ------------------- | ---------------------------------------- | | onSave | any | Emits the report content when saved | | onEdit | any | Emits the report content when clicked edit button | | onUpdate | any | Emits the report content when updated | | onDelete | any | Emits the ID of the report to be deleted | | onNewReport | void | Initiates a new report creation process | | onSendRequest | object | Emits request parameters or SQL query when executed |

Supported Elements

  • Div (DIV)
  • Head (H1)
  • Span (SPAN)
  • Horizontal Line (DIV)
  • Vertical Line (DIV)
  • HR (HR)
  • Image (IMG)
  • Table (TABLE)

Page Configuration

  • Sizes: A4, A5, A6
  • Orientation: Portrait, Landscape
  • Background Colors: Selectable background color for reports.
  • Fonts: Customizable font families, sizes, and weights through Google Fonts.
  • Grill Display: Toggle grid visibility for alignment.

AI-Generated SQL Queries

Flexi Report allows AI-powered SQL query generation using OpenAI. Provide an API key and dynamically generate optimized queries based on provided schema.

Drag & Drop Functionality

  • Rearrange table headers and form elements dynamically using drag-and-drop.
  • Move elements within the report layout easily.
  • Dedicated drag handle for table headers to prevent accidental rearrangements.
  • Drag & drop functionality for report styling panel.

Export Features

  • PDF Export: Save reports as PDFs with formatted content.
  • Excel Export: Export report data directly to an Excel file.
  • JSON Import/Export: Load and save reports as JSON files.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

License

MIT