Skip to content

chartjs/chartjs-adapter-luxon

Repository files navigation

chartjs-adapter-luxon

release travis awesome

Overview

This adapter allows the use of Luxon with Chart.js. Luxon provides built-in support for time zones and internationalization.

Requires Chart.js 2.8.0 or later and Luxon 1.0.0 or later.

Note: once loaded, this adapter overrides the default date-adapter provided in Chart.js (as a side-effect).

Installation

npm

npm install luxon chartjs-adapter-luxon --save
import {Chart} from 'chart.js';
import 'chartjs-adapter-luxon';

CDN

By default, https://cdn.jsdelivr.net/npm/chartjs-adapter-luxon returns the latest (minified) version, however it's highly recommended to always specify a version in order to avoid breaking changes. This can be achieved by appending @{version} to the URL:

<script src="https://cdn.jsdelivr.net/npm/chart.js@^3"></script>
<script src="https://cdn.jsdelivr.net/npm/luxon@^2"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-luxon@^1"></script>

Read more about jsDelivr versioning on their website.

Configuration

Any date adapter options in the chart configuration will be passed through to Luxon's factory functions.

The following table describes the supported options that these functions accept.

Namespace: options.scales[scaleId].adapters.date

Name Type Default Description
locale string undefined Set a locale to use on the resulting DateTime instance. If not set, the adapter will use the locale, defined at chart options level. By default, Luxon uses the system's locale. See Intl locale.
numberingSystem string undefined Set the numbering system to set on the resulting DateTime instance. See Luxon and Intl numberingSystem documentation.
outputCalendar string undefined Set the output calendar to set on the resulting DateTime instance. See Luxon and Intl calendar documentation.
setZone boolean undefined Override the zone with a zone specified in the string itself, if it specifies one. By default, Luxon uses options.setZone=false.
zone string|Zone undefined Set the zone to place the DateTime into. By default, Luxon uses options.zone='local'. See Luxon and Intl timeZone documentation.

Read the Chart.js documention for other possible date/time related options. For example, the time scale time.* options can be overridden using the Luxon formats.

Development

You first need to install node dependencies (requires Node.js):

> npm install

The following commands will then be available from the repository root:

> npm run build         // build dist files
> npm test              // perfom code testing
> npm run lint          // perform code linting

License

chartjs-adapter-luxon is available under the MIT license.