Skip to content

rslawik/google-chart

This branch is 1 commit ahead of, 3 commits behind GoogleWebComponents/google-chart:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bfe16a7 · Jul 21, 2024
Oct 20, 2021
Jul 21, 2024
Jul 21, 2024
Oct 19, 2021
Dec 19, 2018
May 12, 2020
Oct 20, 2021
Jul 21, 2024
Jul 20, 2023
May 6, 2024
May 6, 2024
Oct 18, 2021
Oct 19, 2021

Repository files navigation

google-chart

Google Charts API web components.

See: Documentation

Published on NPM Published on webcomponents.org

Usage

Installation

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

In HTML file

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

In a LitElement

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

@customElement('new-element')
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).

Contributing

Instructions for running the tests and demo locally:

Installation

git clone https://github.com/GoogleWebComponents/google-chart.git
cd google-chart
npm install

Running the demo locally

npm start

The browser will open automatically.

Running the tests

npm test

Packages

No packages published

Languages

  • TypeScript 97.7%
  • HTML 1.6%
  • JavaScript 0.7%