marineusde / larapex-charts

A Laravel wrapper for apex charts
https://github.com/marineusde/larapex-charts
MIT License
1 stars 2 forks source link

Larapex Charts

A Laravel wrapper for apex charts library.

Why should I use a fork?

Installation

Use composer.

composer require marineusde/larapex-charts

Usage

Basic example

In your controller add:

$chart = (new LarapexChart)->setTitle('Posts')
                   ->setDataset([150, 120])
                   ->setLabels(['Published', 'No Published']);

Remember to import the Facade to your controller with

use marineusde\LarapexCharts\Facades\LarapexChart;

Or importing the LarapexChart class:

use marineusde\LarapexCharts\LarapexChart;

Then in your view (Blade file) add:

 <!doctype html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta name="viewport"
           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <title>Chart Sample</title>
 </head>
 <body>

     {!! $chart->container() !!}

     <script src="https://github.com/marineusde/larapex-charts/raw/master/{{ $chart->cdn() }}"></script>

     {{ $chart->script() }}
 </body>
 </html>

The $chart must be an object of LarapexChart, not the controller or class that create it.

More complex example

$chart = (new AreaChart)
        ->setTitle('Total Users Monthly')
        ->setSubtitle('From January to March')
        ->setXAxisOptions(new XAxisOption([
            'Jan', 'Feb', 'Mar'
        ]))
        ->setDataset([
            [
                'name'  =>  'Active Users',
                'data'  =>  [250, 700, 1200]
            ]
        ]);

You can create a variety of charts including: Line, Area, Bar, Horizontal Bar, Heatmap, pie, donut and Radialbar.

Better using with vite

Its better to use vite (or other plugins of this kind) for your projects, cause you cant get problems with version conflicts of apex charts:

export default defineConfig({ plugins: [ viteStaticCopy({ targets: [ { src: 'node_modules/apexcharts/dist/apexcharts.js', dest: 'js' } ] }) ] });

run: npm run build

now you can use the js file in your blade files:


## Contributing

The author is Henning Zimmermann.

## License
[MIT](./LICENSE.md)