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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@pebula/ngrid

v5.0.0

Published

Angular Grid

Downloads

686

Readme

N-GRID

npm (scoped) npm (scoped) npm (scoped)

GitHub GitHub GitHub GitHub

An angular based grid based on @angular/cdk.

With all the buzzwords you want:

  • 👌   Enterprise grade
  • 🧩   Highly extensible
  • ✨   UI Agnostic
  • 🏷️   Feature loaded

For full documentation, walk-through's and examples 📜   visit the official site


Need help? Want to talk about a feature? Or just a casual chat...

Support Server

Join to the discord channel and lets create a community together!

⚡  Quick Start / Setup

Use the built-in schematics:

ng add @pebula/ngrid
  • @pebula/ngrid include secondary packages / plugins (e.g: @pebula/ngrid/detail-row)
  • Use the schematics wizard to install additional plugins (e.g: @pebula/ngrid-material / @pebula/ngrid-bootstrap)

For how-to's, concepts, recipes and more, visit the documentation site

🧅  Versions

| nGrid Version | Angular Version | Documentation | Starters
|------------------|-----------------|---------------|--------- | 5.x.x (Current) | 14.x.x | Documentation | Starter @ GitHub / StackBlitz) | | 4.x.x (Current) | 12.x.x | Documentation | Starter @ GitHub / StackBlitz / CodeSandbox | | 3.x.x | 11.x.x | Documentation | Starter @ GitHub / StackBlitz / CodeSandbox | | 2.x.x | 9.x.x - 10.x.x | Documentation | Starter @ GitHub / StackBlitz | | 1.x.x | 6.x.x - 8.x.x | Documentation | Starter @ GitHub / StackBlitz |

  • Documentation site contains live examples including source code.
  • Live code demos (StackBlitz/CodeSandbox) might experience issues with some feature especially when IVY enabled, if you find it hard to use them please run your code locally.

🏄‍♀️  Quick Feature Overview

@pebula/ngrid comes with building blocks and features tied to the core of the grid.

Some of the feature are:

  • Easy to use column and datasource integration
  • Virtual Scrolling (Vertical)
  • Column: Resize / Reorder / Edit / Hide
  • Smart column / cell size management
  • Group headers and logical groups.
  • Rich and powerful theming system (SCSS)

In addition, there are several secondary packages that extend the functionality when opted-in:

  • @pebula/ngrid/target-events - Support for input device events (click, keyboard, selection)
  • @pebula/ngrid/clipboard - Copy cell selection to the clipboard
  • @pebula/ngrid/state - Saving and restoring state from and to the grid
  • @pebula/ngrid/detail-row - Support for master / detail row structure
  • @pebula/ngrid/drag - Support for drag and drop (using @angular/cdk/drag)
  • @pebula/ngrid/sticky - Support for sticky rows / columns
  • @pebula/ngrid/transpose - Support for live transpose (switch between rows & columns)
  • @pebula/ngrid/overlay-panel - A plugin for grid overlay (popups) similar to the overlay tools in @angular/cdk but with cell orientation (set position based on cell location)
  • And more...

To top that, a UI extension that make use of @angular/material components called @pebula/ngrid-material, with things like:

  • Automatic cell tooltip (Only when text is truncated)
  • Selection Column (with mat-checkbox)
  • Sorting Header (with matSort)
  • Pagination (with material pagination tools)
  • Context Menu (using MatMenu)

A similar extension also exists for bootstrap at @pebula/ngrid-bootstrap


If you like this product and want to help, WELCOME

Please see the TODO section at the bottom, help is much appreciated. The documentation is the KEY


🏗️ Structure

N-Grid is built on top of building block taken from @angular/cdk. The most obvious is the CdkTable but other constructs are used as well (e.g. selection, drag & drop, etc...)

The grid is highly extensible. The design aims to support plugins and extensions, especially for the UI layer.

To support this structure there are several packages, some having secondary packages inside them:

🥅 Design goals

  • Developer ergonomics
  • Performance
  • Extensibility (features via plugins)

In other words: Easy to use, fast and with loads of features.

We try to cut down complexity by splitting features into plugins and having a default option at all times so integration is seamless.

Daily, mundane and repetitive routines like setting up a datasource or creating a column definition are packed into factories that make it easy to use.

Templates should be shared and reused, define a template once and use it multiple times.