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

ng2googlecharts

v0.2.0

Published

Angular2 Google Charts module

Downloads

9

Readme

ng2-google-charts

Google Charts module for Angular 2

Please see this page for a live demo.

NPM Version Downloads

Install

npm i --save ng2-google-charts

Usage

Import the Ng2GoogleChartsModule in your app.module.ts:

import { Ng2GoogleChartsModule } from 'ng2-google-charts';

@NgModule({
  ...
  imports: [
    ...
    Ng2GoogleChartsModule,
  ],
})
export class AppModule { }

In your templates, use the google-chart component like this:

<google-chart [data]="pieChartData"></google-chart>

and in the corresponding .ts file:

pieChartData =  {
  chartType: 'PieChart',
  dataTable: [
    ['Task', 'Hours per Day'],
    ['Work',     11],
    ['Eat',      2],
    ['Commute',  2],
    ['Watch TV', 2],
    ['Sleep',    7]
  ],
  options: {'title': 'Tasks'},
};

Formatters

You can specify an array of multiple formatter types and configurations like this:

public tableChartData =  {
  chartType: 'Table',
  dataTable: [
    ['Department', 'Revenues', 'Another column'],
    ['Shoes', 10700, -100],
    ['Sports', -15400, 25],
    ['Toys', 12500, 40],
    ['Electronics', -2100, 889],
    ['Food', 22600, 78],
    ['Art', 1100, 42]
  ],
  formatters: [
    {
      columns: [1, 2],
      type: 'NumberFormat',
      options: {
        prefix: '&euro;', negativeColor: '#FF0000', negativeParens: true
      }
    }
  ],
  options: {title: 'Countries', allowHtml: true}
};

Please refer to the Google Chart documentation for formatter types and options.

Please see this page for a demo with more examples.

Events

chartReady

The chartReady event is fired when a chart is completely loaded.

Bind the chartReady event in the google-chart component like this:

<google-chart [data]='pieChartData' (chartReady)='ready($event)'></google-chart>

Your ready() function is passed an event whose interface looks like this:

interface ChartReadyEvent {
  message: string;
}

You can import the ChartReadyEvent interface in your .ts file:

import { ChartReadyEvent } from 'ng2-google-charts';

and then use it like:

public ready(event: ChartReadyEvent) {
  // your logic
}

chartError

The chartError event is fired if there are some errors with a chart.

Bind the chartError event in the google-chart component, like this:

<google-chart [data]='pieChartData' (chartError)='error($event)'></google-chart>

Your error() function is passed an event whose interface looks like this:

interface ChartErrorEvent {
  id: string;
  message: string;
  detailedMessage: string;
  options: Object;
}

You can import the ChartErrorEvent interface in your .ts file:

import { ChartErrorEvent } from 'ng2-google-charts';

and then use it like:

public error(event: ChartErrorEvent) {
  // your logic
}

See more details about returned values for error event.

chartSelect

The chartSelect event is fired when a chart is selected/clicked.

Bind the chartSelect event in the google-chart component, like this:

<google-chart [data]='pieChartData' (chartSelect)='select($event)'></google-chart>

Your select() function is passed an event whose interface looks like this:

interface ChartSelectEvent {
  message: string;
  row: number | null;
  column: number | null;
  selectedRowValues: any[];
}

You can import the ChartSelectEvent interface in your .ts file:

import { ChartSelectEvent } from 'ng2-google-charts';

and then use it like:

public select(event: ChartSelectEvent) {
  // your logic
}

mouseOver

The mouseOver event is fired when the user moves the mouse over some chart item.

Bind the MouseOver event in the google-chart component like this:

<google-chart [data]="comboChartData" (mouseOver)="mouseOver($event)"></google-chart>

Your mouseOver() function is passed an event whose class looks like this:

class ChartMouseOverEvent {
  position: DataPointPosition;
  boundingBox: BoundingBox;
  value: any;
  tooltip: ChartHTMLTooltip | null;
  columnType: string;
  columnLabel: string;
}

You can import the ChartMouseOverEvent class in your .ts file:

import { ChartMouseOverEvent } from 'ng2-google-charts';

and then use it like:

public mouseOver(event: ChartMouseOverEvent) {
  // your logic
}

mouseOut

The mouseOut event is fired when the user moves the mouse out of some chart item.

Bind the MouseOut event in the google-chart component like this:

<google-chart [data]="comboChartData" (mouseOut)="mouseOut($event)"></google-chart>

Your mouseOut() function is passed an event whose class looks like this:

class ChartMouseOutEvent {
  position: DataPointPosition;
  boundingBox: BoundingBox;
  value: any;
  columnType: string;
  columnLabel: string;
}

You can import the ChartMouseOutEvent class in your .ts file:

import { ChartMouseOutEvent } from 'ng2-google-charts';

and then use it like:

public mouseOut(event: ChartMouseOutEvent) {
  // your logic
}

Advanced usage

You can access Google Chart's underlying ChartWrapper through the wrapper property of the component object:

<google-chart #cchart [data]="columnChartData"></google-chart>
import {ViewChild} from '@angular/core';

export class AppComponent {

  @ViewChild('cchart') cchart;

  myfunction() {
    let googleChartWrapper = this.cchart.wrapper;

    //force a redraw
    this.cchart.redraw();
  }

}

License

MIT