Awesome Open Source
Awesome Open Source


Google Charts API web components.

See: Documentation

Published on NPM Published on



npm i @google-web-components/google-chart

In HTML file

    <script type="module">
      import '@google-web-components/google-chart';
    <google-chart data='[["Month", "Days"], ["Jan", 31]]'></google-chart>

In a LitElement

import {LitElement, html} from 'lit';
import {customElement} from 'lit/decorators.js';
import '@google-web-components/google-chart';

export class NewElement extends LitElement {
  render() {
    return html`
      <google-chart data='[["Month", "Days"], ["Jan", 31]]'></google-chart>

In a Polymer 3 element

import {PolymerElement, html} from '@polymer/polymer';
import '@google-web-components/google-chart';

class NewElement extends PolymerElement {
  static get template() {
    return html`
      <google-chart data='[["Month", "Days"], ["Jan", 31]]'></google-chart>
customElements.define('new-element', NewElement);

More usage examples

See examples in the demo or try this live JS bin.

Uprading from 3.x

The component has been migrated to LitElement and uses TypeScript now. This migration introduced two breaking changes.

Removed Polymer-specific selection-changed event

The Polymer-specific selection-changed event commonly used for 2-way bindings has been removed. There were previously two events for observing chart selection changes: google-chart-select and the Polymer-generated selection-changed. For consistency with other events (e.g. google-chart-ready), we keep only google-chart-select.

Polymer components using this feature must be updated to explicitly name the selection event (details). In the example below, note the addition of ::google-chart-select.

- <google-chart selection="{{chartSelection}}"></google-chart>
+ <google-chart selection="{{chartSelection::google-chart-select}}"></google-chart>

LitElement components using the selection-changed event must be updated in a similar fashion:

- <google-chart .selection="${chartSelection}" @selection-changed="${reactToChartSelection}"></google-chart>
+ <google-chart .selection="${chartSelection}" @google-chart-select="${reactToChartSelection}"></google-chart>

Removed google-chart-loader component

Its functionality can be imported from the loader.js module:

import {dataTable, load} from '@google-web-components/google-chart/loader.js';

or you may instead choose to use google.visualization.ChartWrapper directly (example).


Instructions for running the tests and demo locally:


git clone
cd google-chart
npm install

Running the demo locally

npm start

The browser will open automatically.

Running the tests

npm test

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Typescript (263,621
Api (22,718
Visualization (5,717
Google (3,317
Webcomponents (2,108
Polymer (722
Related Projects