├── .editorconfig ├── .gitattributes ├── .github └── workflows │ └── tests.yml ├── .gitignore ├── .styleci.yml ├── LICENSE.md ├── README.md ├── SECURITY.md ├── composer.json ├── phpunit.xml ├── src ├── Chart.php ├── Config │ └── apexcharts.php ├── Facade.php ├── Options │ ├── Annotations.php │ ├── Chart.php │ ├── DataLabels.php │ ├── Fill.php │ ├── ForecastDataPoints.php │ ├── Grid.php │ ├── Legend.php │ ├── Markers.php │ ├── NoData.php │ ├── PlotOptions.php │ ├── Responsive.php │ ├── States.php │ ├── Stroke.php │ ├── Subtitle.php │ ├── Theme.php │ ├── Title.php │ ├── Tooltip.php │ ├── Xaxis.php │ └── Yaxis.php ├── Provider.php ├── Public │ ├── apexcharts.js │ └── locales │ │ ├── ar.json │ │ ├── ca.json │ │ ├── cs.json │ │ ├── de.json │ │ ├── el.json │ │ ├── en.json │ │ ├── es.json │ │ ├── et.json │ │ ├── fa.json │ │ ├── fi.json │ │ ├── fr.json │ │ ├── he.json │ │ ├── hi.json │ │ ├── hr.json │ │ ├── hu.json │ │ ├── hy.json │ │ ├── id.json │ │ ├── it.json │ │ ├── ja.json │ │ ├── ka.json │ │ ├── ko.json │ │ ├── lt.json │ │ ├── lv.json │ │ ├── nb.json │ │ ├── nl.json │ │ ├── pl.json │ │ ├── pt-br.json │ │ ├── pt.json │ │ ├── rs.json │ │ ├── ru.json │ │ ├── se.json │ │ ├── sk.json │ │ ├── sl.json │ │ ├── sq.json │ │ ├── th.json │ │ ├── tr.json │ │ ├── ua.json │ │ ├── zh-cn.json │ │ └── zh-tw.json ├── Support │ └── DatasetClass.php ├── Traits │ ├── Formatter.php │ └── Types.php ├── Types │ ├── Area.php │ ├── Bar.php │ ├── Donut.php │ ├── HeatMap.php │ ├── HorizontalBar.php │ ├── Line.php │ ├── Pie.php │ ├── PolarArea.php │ ├── Radar.php │ └── Radial.php └── Views │ ├── container.blade.php │ └── script.blade.php └── tests ├── Feature └── ChartsTest.php └── TestCase.php /.editorconfig: -------------------------------------------------------------------------------- 1 | ; This file is for unifying the coding style for different editors and IDEs. 2 | ; More information at https://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | indent_size = 4 9 | indent_style = space 10 | end_of_line = lf 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false 16 | 17 | [*.yml] 18 | indent_size = 2 -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text eol=lf 3 | 4 | # Explicitly declare text files you want to always be normalized and converted 5 | # to native line endings on checkout. 6 | *.c text 7 | *.h text 8 | 9 | # Declare files that will always have CRLF line endings on checkout. 10 | *.sln text eol=crlf 11 | 12 | # Denote all files that are truly binary and should not be modified. 13 | *.png binary 14 | *.jpg binary 15 | *.otf binary 16 | *.eot binary 17 | *.svg binary 18 | *.ttf binary 19 | *.woff binary 20 | *.woff2 binary 21 | 22 | *.css linguist-vendored 23 | *.scss linguist-vendored 24 | *.js linguist-vendored 25 | CHANGELOG.md export-ignore 26 | -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- 1 | name: Tests 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | tests: 7 | name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - ${{ matrix.stability }} 8 | 9 | runs-on: ubuntu-latest 10 | 11 | strategy: 12 | matrix: 13 | php: ['8.0', '8.1', '8.2', '8.3'] 14 | laravel: [9.*, 10.*, 11.*, 12.*] 15 | stability: [prefer-lowest, prefer-stable] 16 | include: 17 | - laravel: 9.* 18 | testbench: 7.* 19 | - laravel: 10.* 20 | testbench: 8.* 21 | - laravel: 11.* 22 | testbench: 9.* 23 | - laravel: 12.* 24 | testbench: 10.* 25 | exclude: 26 | - laravel: 9.* 27 | php: 8.3 28 | - laravel: 10.* 29 | php: 8.0 30 | - laravel: 11.* 31 | php: 8.0 32 | - laravel: 11.* 33 | php: 8.1 34 | - laravel: 12.* 35 | php: 8.0 36 | - laravel: 12.* 37 | php: 8.1 38 | steps: 39 | - name: Checkout code 40 | uses: actions/checkout@v3 41 | 42 | - name: Setup PHP 43 | uses: shivammathur/setup-php@v2 44 | with: 45 | php-version: ${{ matrix.php }} 46 | extensions: bcmath, ctype, dom, fileinfo, intl, gd, json, mbstring, pdo, pdo_sqlite, openssl, sqlite, xml, zip 47 | coverage: xdebug 48 | 49 | - name: Install dependencies 50 | run: | 51 | composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update 52 | composer update --${{ matrix.stability }} --prefer-dist --no-interaction 53 | - name: Execute tests 54 | run: vendor/bin/phpunit 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /.history 3 | /.vscode 4 | /tests/databases 5 | /vendor 6 | .DS_Store 7 | .phpunit.result.cache 8 | composer.phar 9 | composer.lock 10 | -------------------------------------------------------------------------------- /.styleci.yml: -------------------------------------------------------------------------------- 1 | preset: psr2 2 | 3 | enabled: 4 | - concat_with_spaces -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2022 Akaunting 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ApexCharts package for Laravel 2 | 3 | ![Downloads](https://img.shields.io/packagist/dt/akaunting/laravel-apexcharts) 4 | ![Tests](https://img.shields.io/github/actions/workflow/status/akaunting/laravel-apexcharts/tests.yml?label=tests) 5 | [![StyleCI](https://github.styleci.io/repos/452221855/shield?style=flat&branch=master)](https://styleci.io/repos/452221855) 6 | [![License](https://img.shields.io/github/license/akaunting/laravel-apexcharts)](LICENSE.md) 7 | 8 | This package allows you to generate modern and interactive charts using the [ApexCharts](https://apexcharts.com) library directly from `Laravel` without interacting with JavaScript, CSS, etc. 9 | 10 | It covers all of the chart [types](https://apexcharts.com/docs/chart-types/line-chart) and [options](https://apexcharts.com/docs/options/annotations) available within the `ApexCharts` library. 11 | 12 | Check out the [Akaunting](https://github.com/akaunting/akaunting) project to see it live. 13 | 14 | ## Getting Started 15 | 16 | ### 1. Install 17 | 18 | Run the following command: 19 | 20 | ```bash 21 | composer require akaunting/laravel-apexcharts 22 | ``` 23 | 24 | ### 2. Publish 25 | 26 | Publish configuration 27 | 28 | ```bash 29 | php artisan vendor:publish --tag=apexcharts 30 | ``` 31 | 32 | ### 3. Configure 33 | 34 | You can change the chart settings of your app from `config/apexcharts.php` file 35 | 36 | ## Usage 37 | 38 | ### Blade 39 | 40 | Create an instance of the `Chart` class and set the data and options according to your needs. 41 | 42 | ```php 43 | use Akaunting\Apexcharts\Chart; 44 | 45 | // ... 46 | 47 | $chart = (new Chart)->setType('donut') 48 | ->setWidth('100%') 49 | ->setHeight(300) 50 | ->setLabels(['Sales', 'Deposit']) 51 | ->setDataset('Income by Category', 'donut', [1907, 1923]); 52 | ``` 53 | 54 | Then, include the JavaScript (on every page using charts). 55 | 56 | ```blade 57 | 58 | 59 | 60 | 61 | 62 | @apexchartsScripts 63 | 64 | ``` 65 | 66 | Finally, call the `container` and `script` method wherever you want to display the chart. 67 | 68 | ```blade 69 | 70 | 71 | {!! $chart->container() !!} 72 | 73 | {!! $chart->script() !!} 74 | ``` 75 | 76 | ### Vue 77 | 78 | If you're using Vue and Inertia, install Apexcharts and their Vue 3 adapter: 79 | 80 | ```bash 81 | npm install --save apexcharts 82 | npm install --save vue3-apexcharts 83 | ``` 84 | 85 | ```js 86 | // resources/js/app.js 87 | 88 | import VueApexCharts from 'vue3-apexcharts'; 89 | 90 | createInertiaApp({ 91 | // ... 92 | setup({el, App, props, plugin}) { 93 | return createApp({ render: () => h(App, props) }) 94 | .use(VueApexCharts) 95 | .mount(el); 96 | }, 97 | }); 98 | ``` 99 | 100 | Then, create a simple `chart.vue` component: 101 | 102 | ```vue 103 | 104 | 105 | 116 | 117 | 122 | ``` 123 | 124 | Create an instance of `Chart` and call `toVue()` before passing it to your page: 125 | 126 | ```php 127 | Route::get('dashboard', function () { 128 | $chart = (new Chart)->setType('...'); 129 | 130 | return inertia('dashboard', [ 131 | 'chart' => $chart->toVue(), 132 | ]); 133 | }); 134 | ``` 135 | 136 | Finally, render the chart: 137 | 138 | ```vue 139 | 140 | 141 | 144 | 145 | 152 | ``` 153 | 154 | ## Testing 155 | 156 | ```bash 157 | composer test 158 | ``` 159 | 160 | ## Changelog 161 | 162 | Please see [Releases](../../releases) for more information what has changed recently. 163 | 164 | ## Contributing 165 | 166 | Pull requests are more than welcome. You must follow the PSR coding standards. 167 | 168 | ## Security 169 | 170 | Please review [our security policy](https://github.com/akaunting/laravel-apexcharts/security/policy) on how to report security vulnerabilities. 171 | 172 | ## Credits 173 | 174 | - [Cüneyt Şentürk](https://github.com/cuneytsenturk) 175 | - [All Contributors](../../contributors) 176 | 177 | ## License 178 | 179 | The MIT License (MIT). Please see [LICENSE](LICENSE.md) for more information. 180 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | **PLEASE DON'T DISCLOSE SECURITY-RELATED ISSUES PUBLICLY, [SEE BELOW](#reporting-a-vulnerability).** 4 | 5 | ## Reporting a Vulnerability 6 | 7 | If you discover any security related issues, please email security@akaunting.com instead of using the issue tracker. 8 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "akaunting/laravel-apexcharts", 3 | "description": "ApexCharts package for Laravel", 4 | "keywords": [ 5 | "laravel", 6 | "line", 7 | "bar", 8 | "pie", 9 | "donut", 10 | "charts", 11 | "apexcharts" 12 | ], 13 | "license": "MIT", 14 | "authors": [ 15 | { 16 | "name": "Cüneyt Şentürk", 17 | "email": "info@akaunting.com", 18 | "homepage": "https://akaunting.com", 19 | "role": "Developer" 20 | } 21 | ], 22 | "require": { 23 | "php": "^8.0", 24 | "ext-json": "*", 25 | "balping/json-raw-encoder": "^1.0", 26 | "illuminate/support": "^9.0|^10.0|^11.0|^12.0" 27 | }, 28 | "require-dev": { 29 | "mockery/mockery": "^1.5", 30 | "phpunit/phpunit": "^9.5|^10.0|^11.0|^12.0", 31 | "orchestra/testbench": "^7.4|^8.0|^9.0|^10.0" 32 | }, 33 | "autoload": { 34 | "psr-4": { 35 | "Akaunting\\Apexcharts\\": "src" 36 | } 37 | }, 38 | "autoload-dev": { 39 | "psr-4": { 40 | "Akaunting\\Apexcharts\\Tests\\": "tests" 41 | } 42 | }, 43 | "scripts": { 44 | "test": "vendor/bin/phpunit" 45 | }, 46 | "extra": { 47 | "laravel": { 48 | "providers": [ 49 | "Akaunting\\Apexcharts\\Provider" 50 | ], 51 | "aliases": { 52 | "Apexcharts": "Akaunting\\Apexcharts\\Facade" 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | ./src 13 | 14 | 15 | 16 | 17 | tests 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/Chart.php: -------------------------------------------------------------------------------- 1 | id = substr(str_shuffle(str_repeat($x = $this->chartLetters, ceil(25 / strlen($x)))), 1, 25); 59 | 60 | $this->options = config('apexcharts.options'); 61 | } 62 | 63 | public function getId(): string 64 | { 65 | return $this->id; 66 | } 67 | 68 | public function setType(string|null $type = null): Chart 69 | { 70 | $this->type = $type; 71 | 72 | $this->setOption([ 73 | 'chart' => [ 74 | 'type' => $type, 75 | ], 76 | ]); 77 | 78 | return $this; 79 | } 80 | 81 | public function getType(): string 82 | { 83 | return $this->type ? $this->type : $this->datasets[0]->type; 84 | } 85 | 86 | public function setColor(string $color): Chart 87 | { 88 | $colors = $this->colors; 89 | 90 | $colors[] = $color; 91 | 92 | return $this->setColors($colors); 93 | } 94 | 95 | public function setColors(array $colors): Chart 96 | { 97 | $this->colors = $colors; 98 | 99 | $this->setOption([ 100 | 'colors' => $colors, 101 | ]); 102 | 103 | return $this; 104 | } 105 | 106 | public function getColors(): array 107 | { 108 | return $this->colors; 109 | } 110 | 111 | public function setLabels(array $labels): Chart 112 | { 113 | $this->labels = $labels; 114 | 115 | $this->setOption([ 116 | 'labels' => $labels, 117 | ]); 118 | 119 | return $this; 120 | } 121 | 122 | public function getLabels(): array 123 | { 124 | return $this->labels; 125 | } 126 | 127 | public function setSeries(array $series): Chart 128 | { 129 | $this->series = $series; 130 | 131 | $this->setOption([ 132 | 'series' => $series, 133 | ]); 134 | 135 | return $this; 136 | } 137 | 138 | public function getSeries(): array 139 | { 140 | return $this->series; 141 | } 142 | 143 | public function setDataset(string $name, string $type, array|Collection $data): Chart 144 | { 145 | if ($data instanceof Collection) { 146 | $data = $data->toArray(); 147 | } 148 | 149 | if ($type == 'donut') { 150 | return $this->setSeries($data); 151 | } 152 | 153 | $dataset = new $this->dataset($name, $type, $data); 154 | 155 | array_push($this->datasets, $dataset); 156 | 157 | return $this->setSeries($this->datasets); 158 | } 159 | 160 | public function setOption(array|Collection $options = []): Chart 161 | { 162 | if ($options instanceof Collection) { 163 | $options = $options->toArray(); 164 | } 165 | 166 | $this->options = array_replace_recursive($this->options, $options); 167 | 168 | return $this; 169 | } 170 | 171 | public function setOptions(array|Collection $options = [], bool $overwrite = false): Chart 172 | { 173 | if ($options instanceof Collection) { 174 | $options = $options->toArray(); 175 | } 176 | 177 | if ($overwrite) { 178 | $this->options = $options; 179 | } else { 180 | $this->options = array_replace_recursive($this->options, $options); 181 | } 182 | 183 | return $this; 184 | } 185 | 186 | public function getOptions(): string 187 | { 188 | return Encoder::encode($this->options); 189 | } 190 | 191 | public function container(string $container = null): Chart|View 192 | { 193 | if (! $container) { 194 | return ViewFacade::make($this->container, ['chart' => $this]); 195 | } 196 | 197 | $this->container = $container; 198 | 199 | return $this; 200 | } 201 | 202 | public function script(): View 203 | { 204 | return ViewFacade::make('apexcharts::script', ['chart' => $this]); 205 | } 206 | 207 | public static function loadScript(): string 208 | { 209 | $path = 'https://cdn.jsdelivr.net/npm/apexcharts'; 210 | 211 | if (is_file('public/vendor/apexcharts/apexcharts.js')) { 212 | $path = asset('public/vendor/apexcharts/apexcharts.js'); 213 | } 214 | 215 | return ''; 216 | } 217 | } 218 | -------------------------------------------------------------------------------- /src/Config/apexcharts.php: -------------------------------------------------------------------------------- 1 | [ 19 | 'chart' => [ 20 | 'type' => 'line', 21 | 'height' => 500, 22 | 'width' => null, 23 | 'toolbar' => [ 24 | 'show' => false, 25 | ], 26 | 'stacked' => false, 27 | 'zoom' => [ 28 | 'enabled' => true, 29 | ], 30 | 'fontFamily' => 'inherit', 31 | 'foreColor' => '#373d3f', 32 | ], 33 | 34 | 'plotOptions' => [ 35 | 'bar' => [ 36 | 'horizontal' => false, 37 | ], 38 | ], 39 | 40 | 'colors' => [ 41 | '#008FFB', '#00E396', '#feb019', '#ff455f', '#775dd0', '#80effe', 42 | '#0077B5', '#ff6384', '#c9cbcf', '#0057ff', '#00a9f4', '#2ccdc9', '#5e72e4' 43 | ], 44 | 45 | 'series' => [], 46 | 47 | 'dataLabels' => [ 48 | 'enabled' => false 49 | ], 50 | 51 | 'labels' => [], 52 | 53 | 'title' => [ 54 | 'text' => [] 55 | ], 56 | 57 | 'subtitle' => [ 58 | 'text' => 'undefined', 59 | 'align' => 'left', 60 | ], 61 | 62 | 'xaxis' => [ 63 | 'categories' => [], 64 | ], 65 | 66 | 'grid' => [ 67 | 'show' => true 68 | ], 69 | 70 | 'markers' => [ 71 | 'size' => 4, 72 | 'colors' => [ 73 | '#008FFB', '#00E396', '#feb019', '#ff455f', '#775dd0', '#80effe', 74 | '#0077B5', '#ff6384', '#c9cbcf', '#0057ff', '#00a9f4', '#2ccdc9', '#5e72e4' 75 | ], 76 | 'strokeColors' => "#fff", 77 | 'strokeWidth' => 2, 78 | 'hover' => [ 79 | 'size' => 7, 80 | ], 81 | ], 82 | 83 | 'stroke' => [ 84 | 'show' => true, 85 | 'width' => 4, 86 | 'colors' => [ 87 | '#008FFB', '#00E396', '#feb019', '#ff455f', '#775dd0', '#80effe', 88 | '#0077B5', '#ff6384', '#c9cbcf', '#0057ff', '#00a9f4', '#2ccdc9', '#5e72e4' 89 | ] 90 | ], 91 | ], 92 | 93 | ]; 94 | -------------------------------------------------------------------------------- /src/Facade.php: -------------------------------------------------------------------------------- 1 | annotationsPosition = $annotationsPosition; 24 | 25 | $this->setOption([ 26 | 'annotations' => [ 27 | 'position' => $annotationsPosition, 28 | ], 29 | ]); 30 | 31 | return $this; 32 | } 33 | 34 | public function getAnnotationsPosition(): string 35 | { 36 | return $this->annotationsPosition; 37 | } 38 | 39 | public function setAnnotationsYaxis(array $annotationsYaxis): Chart 40 | { 41 | $this->annotationsYaxis = $annotationsYaxis; 42 | 43 | $this->setOption([ 44 | 'annotations' => [ 45 | 'yaxis' => $annotationsYaxis, 46 | ], 47 | ]); 48 | 49 | return $this; 50 | } 51 | 52 | public function getAnnotationsYaxis(): array 53 | { 54 | return $this->annotationsYaxis; 55 | } 56 | 57 | public function setAnnotationsXaxis(array $annotationsXaxis): Chart 58 | { 59 | $this->annotationsXaxis = $annotationsXaxis; 60 | 61 | $this->setOption([ 62 | 'annotations' => [ 63 | 'xaxis' => $annotationsXaxis, 64 | ], 65 | ]); 66 | 67 | return $this; 68 | } 69 | 70 | public function getAnnotationsXaxis(): array 71 | { 72 | return $this->annotationsXaxis; 73 | } 74 | 75 | public function setAnnotationsPoints(array $annotationsPoints): Chart 76 | { 77 | $this->annotationsPoints = $annotationsPoints; 78 | 79 | $this->setOption([ 80 | 'annotations' => [ 81 | 'points' => $annotationsPoints, 82 | ], 83 | ]); 84 | 85 | return $this; 86 | } 87 | 88 | public function getAnnotationsPoints(): array 89 | { 90 | return $this->annotationsPoints; 91 | } 92 | 93 | public function setAnnotationsTexts(array $annotationsTexts): Chart 94 | { 95 | $this->annotationsTexts = $annotationsTexts; 96 | 97 | $this->setOption([ 98 | 'annotations' => [ 99 | 'texts' => $annotationsTexts, 100 | ], 101 | ]); 102 | 103 | return $this; 104 | } 105 | 106 | public function getAnnotationsTexts(): array 107 | { 108 | return $this->annotationsTexts; 109 | } 110 | 111 | public function setAnnotationsImages(array $annotationsImages): Chart 112 | { 113 | $this->annotationsImages = $annotationsImages; 114 | 115 | $this->setOption([ 116 | 'annotations' => [ 117 | 'images' => $annotationsImages, 118 | ], 119 | ]); 120 | 121 | return $this; 122 | } 123 | 124 | public function getAnnotationsImages(): array 125 | { 126 | return $this->annotationsImages; 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /src/Options/Chart.php: -------------------------------------------------------------------------------- 1 | animations = $animations; 58 | 59 | $this->setOption([ 60 | 'chart' => [ 61 | 'animations' => $animations, 62 | ], 63 | ]); 64 | 65 | return $this; 66 | } 67 | 68 | public function getAnimations(): array 69 | { 70 | return $this->animations; 71 | } 72 | 73 | public function setBackground(string $background): MainChart 74 | { 75 | $this->background = $background; 76 | 77 | $this->setOption([ 78 | 'chart' => [ 79 | 'background' => $background, 80 | ], 81 | ]); 82 | 83 | return $this; 84 | } 85 | 86 | public function getBackground(): string 87 | { 88 | return $this->background; 89 | } 90 | 91 | public function setBrush(array $brush): MainChart 92 | { 93 | $this->brush = $brush; 94 | 95 | $this->setOption([ 96 | 'chart' => [ 97 | 'brush' => $brush, 98 | ], 99 | ]); 100 | 101 | return $this; 102 | } 103 | 104 | public function getBrush(): array 105 | { 106 | return $this->brush; 107 | } 108 | 109 | public function setDefaultLocale(string $defaultLocale): MainChart 110 | { 111 | $this->defaultLocale = $defaultLocale; 112 | 113 | $this->setOption([ 114 | 'chart' => [ 115 | 'defaultLocale' => $defaultLocale, 116 | ], 117 | ]); 118 | 119 | return $this; 120 | } 121 | 122 | public function getDefaultLocale(): string 123 | { 124 | return $this->defaultLocale; 125 | } 126 | 127 | public function setDropShadow(array $dropShadow): MainChart 128 | { 129 | $this->dropShadow = $dropShadow; 130 | 131 | $this->setOption([ 132 | 'chart' => [ 133 | 'dropShadow' => $dropShadow, 134 | ], 135 | ]); 136 | 137 | return $this; 138 | } 139 | 140 | public function getDropShadow(): array 141 | { 142 | return $this->dropShadow; 143 | } 144 | 145 | public function setFontFamily(string $fontFamily): MainChart 146 | { 147 | $this->fontFamily = $fontFamily; 148 | 149 | $this->setOption([ 150 | 'chart' => [ 151 | 'fontFamily' => $fontFamily, 152 | ], 153 | ]); 154 | 155 | return $this; 156 | } 157 | 158 | public function getFontFamily(): string 159 | { 160 | return $this->fontFamily; 161 | } 162 | 163 | public function setForeColor(string $foreColor): MainChart 164 | { 165 | $this->foreColor = $foreColor; 166 | 167 | $this->setOption([ 168 | 'chart' => [ 169 | 'foreColor' => $foreColor, 170 | ], 171 | ]); 172 | 173 | return $this; 174 | } 175 | 176 | public function getForeColor(): string 177 | { 178 | return $this->foreColor; 179 | } 180 | 181 | public function setGroup(string $group): MainChart 182 | { 183 | $this->group = $group; 184 | 185 | $this->setOption([ 186 | 'chart' => [ 187 | 'group' => $group, 188 | ], 189 | ]); 190 | 191 | return $this; 192 | } 193 | 194 | public function getGroup(): string 195 | { 196 | return $this->group; 197 | } 198 | 199 | public function setEvents(array $events): MainChart 200 | { 201 | $this->events = $events; 202 | 203 | $this->setOption([ 204 | 'chart' => [ 205 | 'events' => $events, 206 | ], 207 | ]); 208 | 209 | return $this; 210 | } 211 | 212 | public function getEvents(): array 213 | { 214 | return $this->events; 215 | } 216 | 217 | public function setHeight(int|string|null $height): MainChart 218 | { 219 | $this->height = $height; 220 | 221 | $this->setOption([ 222 | 'chart' => [ 223 | 'height' => $height, 224 | ], 225 | ]); 226 | 227 | return $this; 228 | } 229 | 230 | public function getHeight(): int|string|null 231 | { 232 | return $this->height; 233 | } 234 | 235 | public function setLocales(array $locales): MainChart 236 | { 237 | $this->locales = $locales; 238 | 239 | $this->setOption([ 240 | 'chart' => [ 241 | 'locales' => $locales, 242 | ], 243 | ]); 244 | 245 | return $this; 246 | } 247 | 248 | public function getLocales(): array 249 | { 250 | return $this->locales; 251 | } 252 | 253 | public function setOffsetX(int $offsetX): MainChart 254 | { 255 | $this->offsetX = $offsetX; 256 | 257 | $this->setOption([ 258 | 'chart' => [ 259 | 'offsetX' => $offsetX, 260 | ], 261 | ]); 262 | 263 | return $this; 264 | } 265 | 266 | public function getOffsetX(): int 267 | { 268 | return $this->offsetX; 269 | } 270 | 271 | public function setOffsetY(int $offsetY): MainChart 272 | { 273 | $this->offsetY = $offsetY; 274 | 275 | $this->setOption([ 276 | 'chart' => [ 277 | 'offsetY' => $offsetY, 278 | ], 279 | ]); 280 | 281 | return $this; 282 | } 283 | 284 | public function getOffsetY(): int 285 | { 286 | return $this->offsetY; 287 | } 288 | 289 | public function setParentHeightOffset(int $parentHeightOffset): MainChart 290 | { 291 | $this->parentHeightOffset = $parentHeightOffset; 292 | 293 | $this->setOption([ 294 | 'chart' => [ 295 | 'parentHeightOffset' => $parentHeightOffset, 296 | ], 297 | ]); 298 | 299 | return $this; 300 | } 301 | 302 | public function getParentHeightOffset(): int 303 | { 304 | return $this->parentHeightOffset; 305 | } 306 | 307 | public function setRedrawOnParentResize(bool $redrawOnParentResize): MainChart 308 | { 309 | $this->redrawOnParentResize = $redrawOnParentResize; 310 | 311 | $this->setOption([ 312 | 'chart' => [ 313 | 'redrawOnParentResize' => $redrawOnParentResize, 314 | ], 315 | ]); 316 | 317 | return $this; 318 | } 319 | 320 | public function getRedrawOnParentResize(): bool 321 | { 322 | return $this->redrawOnParentResize; 323 | } 324 | 325 | public function setRedrawOnWindowResize(bool $redrawOnWindowResize): MainChart 326 | { 327 | $this->redrawOnWindowResize = $redrawOnWindowResize; 328 | 329 | $this->setOption([ 330 | 'chart' => [ 331 | 'redrawOnWindowResize' => $redrawOnWindowResize, 332 | ], 333 | ]); 334 | 335 | return $this; 336 | } 337 | 338 | public function getRedrawOnWindowResize(): bool 339 | { 340 | return $this->redrawOnWindowResize; 341 | } 342 | 343 | public function setSelection(array $selection): MainChart 344 | { 345 | $this->selection = $selection; 346 | 347 | $this->setOption([ 348 | 'chart' => [ 349 | 'selection' => $selection, 350 | ], 351 | ]); 352 | 353 | return $this; 354 | } 355 | 356 | public function getSelection(): array 357 | { 358 | return $this->selection; 359 | } 360 | 361 | public function setSparkline(array $sparkline): MainChart 362 | { 363 | $this->sparkline = $sparkline; 364 | 365 | $this->setOption([ 366 | 'chart' => [ 367 | 'sparkline' => $sparkline, 368 | ], 369 | ]); 370 | 371 | return $this; 372 | } 373 | 374 | public function getSparkline(): array 375 | { 376 | return $this->sparkline; 377 | } 378 | 379 | public function setStacked(bool $stacked): MainChart 380 | { 381 | $this->stacked = $stacked; 382 | 383 | $this->setOption([ 384 | 'chart' => [ 385 | 'stacked' => $stacked, 386 | ], 387 | ]); 388 | 389 | return $this; 390 | } 391 | 392 | public function getStacked(): bool 393 | { 394 | return $this->stacked; 395 | } 396 | 397 | public function setStackType(string $stackType): MainChart 398 | { 399 | $this->stackType = $stackType; 400 | 401 | $this->setOption([ 402 | 'chart' => [ 403 | 'stackType' => $stackType, 404 | ], 405 | ]); 406 | 407 | return $this; 408 | } 409 | 410 | public function getStackType(): string 411 | { 412 | return $this->stackType; 413 | } 414 | 415 | public function setToolbar(array $toolbar): MainChart 416 | { 417 | $this->toolbar = $toolbar; 418 | 419 | $this->setOption([ 420 | 'chart' => [ 421 | 'toolbar' => $toolbar, 422 | ], 423 | ]); 424 | 425 | return $this; 426 | } 427 | 428 | public function getToolbar(): array 429 | { 430 | return $this->toolbar; 431 | } 432 | 433 | public function setWidth(int|string|null $width): MainChart 434 | { 435 | $this->width = $width; 436 | 437 | $this->setOption([ 438 | 'chart' => [ 439 | 'width' => $width, 440 | ], 441 | ]); 442 | 443 | return $this; 444 | } 445 | 446 | public function getWidth(): int|string|null 447 | { 448 | return $this->width; 449 | } 450 | 451 | public function setZoom(array $zoom): MainChart 452 | { 453 | $this->zoom = $zoom; 454 | 455 | $this->setOption([ 456 | 'chart' => [ 457 | 'zoom' => $zoom, 458 | ], 459 | ]); 460 | 461 | return $this; 462 | } 463 | 464 | public function getZoom(): array 465 | { 466 | return $this->zoom; 467 | } 468 | } 469 | -------------------------------------------------------------------------------- /src/Options/DataLabels.php: -------------------------------------------------------------------------------- 1 | dataLabelsEnabled = $dataLabelsEnabled; 32 | 33 | $this->setOption([ 34 | 'dataLabels' => [ 35 | 'enabled' => $dataLabelsEnabled, 36 | ], 37 | ]); 38 | 39 | return $this; 40 | } 41 | 42 | public function getDataLabelsEnabled(): bool 43 | { 44 | return $this->dataLabelsEnabled; 45 | } 46 | 47 | public function setDataLabelsEnabledOnSeries(array $dataLabelsEnabledOnSeries): Chart 48 | { 49 | $this->dataLabelsEnabledOnSeries = $dataLabelsEnabledOnSeries; 50 | 51 | $this->setOption([ 52 | 'dataLabels' => [ 53 | 'enabledOnSeries' => $dataLabelsEnabledOnSeries, 54 | ], 55 | ]); 56 | 57 | return $this; 58 | } 59 | 60 | public function getDataLabelsEnabledOnSeries(): array 61 | { 62 | return $this->dataLabelsEnabledOnSeries; 63 | } 64 | 65 | public function setDataLabelsFormatter(mixed $dataLabelsFormatter): Chart 66 | { 67 | $this->dataLabelsFormatter = $dataLabelsFormatter; 68 | 69 | $this->setOption([ 70 | 'dataLabels' => [ 71 | 'formatter' => $dataLabelsFormatter, 72 | ], 73 | ]); 74 | 75 | return $this; 76 | } 77 | 78 | public function getDataLabelsFormatter(): mixed 79 | { 80 | return $this->dataLabelsFormatter; 81 | } 82 | 83 | public function setDataLabelsTextAnchor(string $dataLabelsTextAnchor): Chart 84 | { 85 | $this->dataLabelsTextAnchor = $dataLabelsTextAnchor; 86 | 87 | $this->setOption([ 88 | 'dataLabels' => [ 89 | 'textAnchor' => $dataLabelsTextAnchor, 90 | ], 91 | ]); 92 | 93 | return $this; 94 | } 95 | 96 | public function getDataLabelsTextAnchor(): string 97 | { 98 | return $this->dataLabelsTextAnchor; 99 | } 100 | 101 | public function setDataLabelsDistributed(bool $dataLabelsDistributed): Chart 102 | { 103 | $this->dataLabelsDistributed = $dataLabelsDistributed; 104 | 105 | $this->setOption([ 106 | 'dataLabels' => [ 107 | 'distributed' => $dataLabelsDistributed, 108 | ], 109 | ]); 110 | 111 | return $this; 112 | } 113 | 114 | public function getDataLabelsDistributed(): bool 115 | { 116 | return $this->dataLabelsDistributed; 117 | } 118 | 119 | public function setDataLabelsOffsetX(int $dataLabelsOffsetX): Chart 120 | { 121 | $this->dataLabelsOffsetX = $dataLabelsOffsetX; 122 | 123 | $this->setOption([ 124 | 'dataLabels' => [ 125 | 'offsetX' => $dataLabelsOffsetX, 126 | ], 127 | ]); 128 | 129 | return $this; 130 | } 131 | 132 | public function getDataLabelsOffsetX(): int 133 | { 134 | return $this->dataLabelsOffsetX; 135 | } 136 | 137 | public function setDataLabelsOffsetY(int $dataLabelsOffsetY): Chart 138 | { 139 | $this->dataLabelsOffsetY = $dataLabelsOffsetY; 140 | 141 | $this->setOption([ 142 | 'dataLabels' => [ 143 | 'offsetY' => $dataLabelsOffsetY, 144 | ], 145 | ]); 146 | 147 | return $this; 148 | } 149 | 150 | public function getDataLabelsOffsetY(): int 151 | { 152 | return $this->dataLabelsOffsetY; 153 | } 154 | 155 | public function setDataLabelsStyle(array $dataLabelsStyle): Chart 156 | { 157 | $this->dataLabelsStyle = $dataLabelsStyle; 158 | 159 | $this->setOption([ 160 | 'dataLabels' => [ 161 | 'style' => $dataLabelsStyle, 162 | ], 163 | ]); 164 | 165 | return $this; 166 | } 167 | 168 | public function getDataLabelsStyle(): array 169 | { 170 | return $this->dataLabelsStyle; 171 | } 172 | 173 | public function setDataLabelsBackground(array $dataLabelsBackground): Chart 174 | { 175 | $this->dataLabelsBackground = $dataLabelsBackground; 176 | 177 | $this->setOption([ 178 | 'dataLabels' => [ 179 | 'enabled' => $dataLabelsBackground, 180 | ], 181 | ]); 182 | 183 | return $this; 184 | } 185 | 186 | public function getDataLabelsBackground(): array 187 | { 188 | return $this->dataLabelsBackground; 189 | } 190 | 191 | public function setDataLabelsDropShadow(array $dataLabelsDropShadow): Chart 192 | { 193 | $this->dataLabelsDropShadow = $dataLabelsDropShadow; 194 | 195 | $this->setOption([ 196 | 'dataLabels' => [ 197 | 'dropShadow' => $dataLabelsDropShadow, 198 | ], 199 | ]); 200 | 201 | return $this; 202 | } 203 | 204 | public function getDataLabelsDropShadow(): array 205 | { 206 | return $this->dataLabelsDropShadow; 207 | } 208 | } 209 | -------------------------------------------------------------------------------- /src/Options/Fill.php: -------------------------------------------------------------------------------- 1 | fillColors = $fillColors; 24 | 25 | $this->setOption([ 26 | 'fill' => [ 27 | 'colors' => $fillColors, 28 | ], 29 | ]); 30 | 31 | return $this; 32 | } 33 | 34 | public function getFillColors(): array 35 | { 36 | return $this->fillColors; 37 | } 38 | 39 | public function setFillOpacity(int|float $fillOpacity): Chart 40 | { 41 | $this->fillOpacity = $fillOpacity; 42 | 43 | $this->setOption([ 44 | 'fill' => [ 45 | 'opacity' => $fillOpacity, 46 | ], 47 | ]); 48 | 49 | return $this; 50 | } 51 | 52 | public function getFillOpacity(): int|float 53 | { 54 | return $this->fillOpacity; 55 | } 56 | 57 | public function setFillType(string $fillType): Chart 58 | { 59 | $this->fillType = $fillType; 60 | 61 | $this->setOption([ 62 | 'fill' => [ 63 | 'type' => $fillType, 64 | ], 65 | ]); 66 | 67 | return $this; 68 | } 69 | 70 | public function getFillType(): string 71 | { 72 | return $this->fillType; 73 | } 74 | 75 | public function setFillGradient(array $fillGradient): Chart 76 | { 77 | $this->fillGradient = $fillGradient; 78 | 79 | $this->setOption([ 80 | 'fill' => [ 81 | 'gradient' => $fillGradient, 82 | ], 83 | ]); 84 | 85 | return $this; 86 | } 87 | 88 | public function getFillGradient(): array 89 | { 90 | return $this->fillGradient; 91 | } 92 | 93 | public function setFillImage(array $fillImage): Chart 94 | { 95 | $this->fillImage = $fillImage; 96 | 97 | $this->setOption([ 98 | 'fill' => [ 99 | 'image' => $fillImage, 100 | ], 101 | ]); 102 | 103 | return $this; 104 | } 105 | 106 | public function getFillImage(): array 107 | { 108 | return $this->fillImage; 109 | } 110 | 111 | public function setFillPattern(array $fillPattern): Chart 112 | { 113 | $this->fillPattern = $fillPattern; 114 | 115 | $this->setOption([ 116 | 'fill' => [ 117 | 'pattern' => $fillPattern, 118 | ], 119 | ]); 120 | 121 | return $this; 122 | } 123 | 124 | public function getFillPattern(): array 125 | { 126 | return $this->fillPattern; 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /src/Options/ForecastDataPoints.php: -------------------------------------------------------------------------------- 1 | forecastDataPointsCount = $forecastDataPointsCount; 20 | 21 | $this->setOption([ 22 | 'forecastDataPoints' => [ 23 | 'count' => $forecastDataPointsCount, 24 | ], 25 | ]); 26 | 27 | return $this; 28 | } 29 | 30 | public function getForecastDataPointsCount(): int 31 | { 32 | return $this->forecastDataPointsCount; 33 | } 34 | 35 | public function setForecastDataPointsFillOpacity(int|float $forecastDataPointsFillOpacity): Chart 36 | { 37 | $this->forecastDataPointsFillOpacity = $forecastDataPointsFillOpacity; 38 | 39 | $this->setOption([ 40 | 'forecastDataPoints' => [ 41 | 'fillOpacity' => $forecastDataPointsFillOpacity, 42 | ], 43 | ]); 44 | 45 | return $this; 46 | } 47 | 48 | public function getForecastDataPointsFillOpacity(): int|float 49 | { 50 | return $this->forecastDataPointsFillOpacity; 51 | } 52 | 53 | public function setForecastDataPointsStrokeWidth(int $forecastDataPointsStrokeWidth): Chart 54 | { 55 | $this->forecastDataPointsStrokeWidth = $forecastDataPointsStrokeWidth; 56 | 57 | $this->setOption([ 58 | 'forecastDataPoints' => [ 59 | 'strokeWidth' => $forecastDataPointsStrokeWidth, 60 | ], 61 | ]); 62 | 63 | return $this; 64 | } 65 | 66 | public function getForecastDataPointsStrokeWidth(): int 67 | { 68 | return $this->forecastDataPointsStrokeWidth; 69 | } 70 | 71 | public function setForecastDataPointsDashArray(int $forecastDataPointsDashArray): Chart 72 | { 73 | $this->forecastDataPointsDashArray = $forecastDataPointsDashArray; 74 | 75 | $this->setOption([ 76 | 'forecastDataPoints' => [ 77 | 'dashArray' => $forecastDataPointsDashArray, 78 | ], 79 | ]); 80 | 81 | return $this; 82 | } 83 | 84 | public function getForecastDataPointsDashArray(): int 85 | { 86 | return $this->forecastDataPointsDashArray; 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/Options/Grid.php: -------------------------------------------------------------------------------- 1 | gridShow = $gridShow; 30 | 31 | $this->setOption([ 32 | 'grid' => [ 33 | 'show' => $gridShow, 34 | ], 35 | ]); 36 | 37 | return $this; 38 | } 39 | 40 | public function getGridShow(): bool 41 | { 42 | return $this->gridShow; 43 | } 44 | 45 | public function setGridBorderColor(string $gridBorderColor): Chart 46 | { 47 | $this->gridBorderColor = $gridBorderColor; 48 | 49 | $this->setOption([ 50 | 'grid' => [ 51 | 'borderColor' => $gridBorderColor, 52 | ], 53 | ]); 54 | 55 | return $this; 56 | } 57 | 58 | public function getGridBorderColor(): string 59 | { 60 | return $this->gridBorderColor; 61 | } 62 | 63 | public function setGridStrokeDashArray(int $gridStrokeDashArray): Chart 64 | { 65 | $this->gridStrokeDashArray = $gridStrokeDashArray; 66 | 67 | $this->setOption([ 68 | 'grid' => [ 69 | 'strokeDashArray' => $gridStrokeDashArray, 70 | ], 71 | ]); 72 | 73 | return $this; 74 | } 75 | 76 | public function getGridStrokeDashArray(): int 77 | { 78 | return $this->gridStrokeDashArray; 79 | } 80 | 81 | public function setGridPosition(string $gridPosition): Chart 82 | { 83 | $this->gridPosition = $gridPosition; 84 | 85 | $this->setOption([ 86 | 'grid' => [ 87 | 'position' => $gridPosition, 88 | ], 89 | ]); 90 | 91 | return $this; 92 | } 93 | 94 | public function getGridPosition(): string 95 | { 96 | return $this->gridPosition; 97 | } 98 | 99 | public function setGridXaxis(array $gridXaxis): Chart 100 | { 101 | $this->gridXaxis = $gridXaxis; 102 | 103 | $this->setOption([ 104 | 'grid' => [ 105 | 'xaxis' => $gridXaxis, 106 | ], 107 | ]); 108 | 109 | return $this; 110 | } 111 | 112 | public function getGridXaxis(): array 113 | { 114 | return $this->gridXaxis; 115 | } 116 | 117 | public function setGridYaxis(array $gridYaxis): Chart 118 | { 119 | $this->gridYaxis = $gridYaxis; 120 | 121 | $this->setOption([ 122 | 'grid' => [ 123 | 'yaxis' => $gridYaxis, 124 | ], 125 | ]); 126 | 127 | return $this; 128 | } 129 | 130 | public function getGridYaxis(): array 131 | { 132 | return $this->gridYaxis; 133 | } 134 | 135 | public function setGridRow(array $gridRow): Chart 136 | { 137 | $this->gridRow = $gridRow; 138 | 139 | $this->setOption([ 140 | 'grid' => [ 141 | 'row' => $gridRow, 142 | ], 143 | ]); 144 | 145 | return $this; 146 | } 147 | 148 | public function getGridRow():array 149 | { 150 | return $this->gridRow; 151 | } 152 | 153 | public function setGridColumn(array $gridColumn): Chart 154 | { 155 | $this->gridColumn = $gridColumn; 156 | 157 | $this->setOption([ 158 | 'grid' => [ 159 | 'column' => $gridColumn, 160 | ], 161 | ]); 162 | 163 | return $this; 164 | } 165 | 166 | public function getGridColumn(): array 167 | { 168 | return $this->gridColumn; 169 | } 170 | 171 | public function setGridPadding(array $gridPadding): Chart 172 | { 173 | $this->gridPadding = $gridPadding; 174 | 175 | $this->setOption([ 176 | 'grid' => [ 177 | 'padding' => $gridPadding, 178 | ], 179 | ]); 180 | 181 | return $this; 182 | } 183 | 184 | public function getGridPadding(): array 185 | { 186 | return $this->gridPadding; 187 | } 188 | } 189 | -------------------------------------------------------------------------------- /src/Options/Legend.php: -------------------------------------------------------------------------------- 1 | legendShow = $legendShow; 58 | 59 | $this->setOption([ 60 | 'legend' => [ 61 | 'show' => $legendShow, 62 | ], 63 | ]); 64 | 65 | return $this; 66 | } 67 | 68 | public function getLegendShow(): bool 69 | { 70 | return $this->legendShow; 71 | } 72 | 73 | public function setLegendShowForSingleSeries(bool $legendShowForSingleSeries): Chart 74 | { 75 | $this->legendShowForSingleSeries = $legendShowForSingleSeries; 76 | 77 | $this->setOption([ 78 | 'legend' => [ 79 | 'showForSingleSeries' => $legendShowForSingleSeries, 80 | ], 81 | ]); 82 | 83 | return $this; 84 | } 85 | 86 | public function getLegendShowForSingleSeries(): bool 87 | { 88 | return $this->legendShowForSingleSeries; 89 | } 90 | 91 | public function setLegendShowForNullSeries(bool $legendShowForNullSeries): Chart 92 | { 93 | $this->legendShowForNullSeries = $legendShowForNullSeries; 94 | 95 | $this->setOption([ 96 | 'legend' => [ 97 | 'showForNullSeries' => $legendShowForNullSeries, 98 | ], 99 | ]); 100 | 101 | return $this; 102 | } 103 | 104 | public function getLegendShowForNullSeries(): bool 105 | { 106 | return $this->legendShowForNullSeries; 107 | } 108 | 109 | public function setLegendShowForZeroSeries(bool $legendShowForZeroSeries): Chart 110 | { 111 | $this->legendShowForZeroSeries = $legendShowForZeroSeries; 112 | 113 | $this->setOption([ 114 | 'legend' => [ 115 | 'showForZeroSeries' => $legendShowForZeroSeries, 116 | ], 117 | ]); 118 | 119 | return $this; 120 | } 121 | 122 | public function getLegendShowForZeroSeries(): bool 123 | { 124 | return $this->legendShowForZeroSeries; 125 | } 126 | 127 | public function setLegendPosition(string $legendPosition): Chart 128 | { 129 | $this->legendPosition = $legendPosition; 130 | 131 | $this->setOption([ 132 | 'legend' => [ 133 | 'position' => $legendPosition, 134 | ], 135 | ]); 136 | 137 | return $this; 138 | } 139 | 140 | public function getLegendPosition(): string 141 | { 142 | return $this->legendPosition; 143 | } 144 | 145 | public function setLegendHorizontalAlign(string $legendHorizontalAlign): Chart 146 | { 147 | $this->legendHorizontalAlign = $legendHorizontalAlign; 148 | 149 | $this->setOption([ 150 | 'legend' => [ 151 | 'horizontalAlign' => $legendHorizontalAlign, 152 | ], 153 | ]); 154 | 155 | return $this; 156 | } 157 | 158 | public function getLegendHorizontalAlign(): string 159 | { 160 | return $this->legendHorizontalAlign; 161 | } 162 | 163 | public function setLegendFloating(bool $legendFloating): Chart 164 | { 165 | $this->legendFloating = $legendFloating; 166 | 167 | $this->setOption([ 168 | 'legend' => [ 169 | 'floating' => $legendFloating, 170 | ], 171 | ]); 172 | 173 | return $this; 174 | } 175 | 176 | public function getLegendFloating(): bool 177 | { 178 | return $this->legendFloating; 179 | } 180 | 181 | public function setLegendFontSize(string $legendFontSize): Chart 182 | { 183 | $this->legendFontSize = $legendFontSize; 184 | 185 | $this->setOption([ 186 | 'legend' => [ 187 | 'fontSize' => $legendFontSize, 188 | ], 189 | ]); 190 | 191 | return $this; 192 | } 193 | 194 | public function getLegendFontSize(): string 195 | { 196 | return $this->legendFontSize; 197 | } 198 | 199 | public function setLegendFontFamily(string $legendFontFamily): Chart 200 | { 201 | $this->legendFontFamily = $legendFontFamily; 202 | 203 | $this->setOption([ 204 | 'legend' => [ 205 | 'fontFamily' => $legendFontFamily, 206 | ], 207 | ]); 208 | 209 | return $this; 210 | } 211 | 212 | public function getLegendFontFamily(): string 213 | { 214 | return $this->legendFontFamily; 215 | } 216 | 217 | public function setLegendFontWeight(int|string $legendFontWeight): Chart 218 | { 219 | $this->legendFontWeight = $legendFontWeight; 220 | 221 | $this->setOption([ 222 | 'legend' => [ 223 | 'fontWeight' => $legendFontWeight, 224 | ], 225 | ]); 226 | 227 | return $this; 228 | } 229 | 230 | public function getLegendFontWeight(): int|string 231 | { 232 | return $this->legendFontWeight; 233 | } 234 | 235 | public function setLegendFormatter(mixed $legendFormatter): Chart 236 | { 237 | $this->legendFormatter = $legendFormatter; 238 | 239 | $this->setOption([ 240 | 'legend' => [ 241 | 'formatter' => $legendFormatter, 242 | ], 243 | ]); 244 | 245 | return $this; 246 | } 247 | 248 | public function getLegendFormatter(): mixed 249 | { 250 | return $this->legendFormatter; 251 | } 252 | 253 | public function setLegendInverseOrder(string $legendInverseOrder): Chart 254 | { 255 | $this->legendInverseOrder = $legendInverseOrder; 256 | 257 | $this->setOption([ 258 | 'legend' => [ 259 | 'inverseOrder' => $legendInverseOrder, 260 | ], 261 | ]); 262 | 263 | return $this; 264 | } 265 | 266 | public function getLegendInverseOrder(): string 267 | { 268 | return $this->legendInverseOrder; 269 | } 270 | 271 | public function setLegendWidth(int $legendWidth): Chart 272 | { 273 | $this->legendWidth = $legendWidth; 274 | 275 | $this->setOption([ 276 | 'legend' => [ 277 | 'width' => $legendWidth, 278 | ], 279 | ]); 280 | 281 | return $this; 282 | } 283 | 284 | public function getLegendWidth(): int 285 | { 286 | return $this->legendWidth; 287 | } 288 | 289 | public function setLegendHeight(int $legendHeight): Chart 290 | { 291 | $this->legendHeight = $legendHeight; 292 | 293 | $this->setOption([ 294 | 'legend' => [ 295 | 'height' => $legendHeight, 296 | ], 297 | ]); 298 | 299 | return $this; 300 | } 301 | 302 | public function getLegendHeight(): int 303 | { 304 | return $this->legendHeight; 305 | } 306 | 307 | public function setLegendTooltipHoverFormatter(mixed $legendTooltipHoverFormatter): Chart 308 | { 309 | $this->legendTooltipHoverFormatter = $legendTooltipHoverFormatter; 310 | 311 | $this->setOption([ 312 | 'legend' => [ 313 | 'tooltipHoverFormatter' => $legendTooltipHoverFormatter, 314 | ], 315 | ]); 316 | 317 | return $this; 318 | } 319 | 320 | public function getLegendTooltipHoverFormatter(): mixed 321 | { 322 | return $this->legendTooltipHoverFormatter; 323 | } 324 | 325 | public function setLegendCustomLegendItems(array $legendCustomLegendItems): Chart 326 | { 327 | $this->legendCustomLegendItems = $legendCustomLegendItems; 328 | 329 | $this->setOption([ 330 | 'legend' => [ 331 | 'customLegendItems' => $legendCustomLegendItems, 332 | ], 333 | ]); 334 | 335 | return $this; 336 | } 337 | 338 | public function getLegendCustomLegendItems(): array 339 | { 340 | return $this->legendCustomLegendItems; 341 | } 342 | 343 | public function setLegendOffsetX(int $legendOffsetX): Chart 344 | { 345 | $this->legendOffsetX = $legendOffsetX; 346 | 347 | $this->setOption([ 348 | 'legend' => [ 349 | 'offsetX' => $legendOffsetX, 350 | ], 351 | ]); 352 | 353 | return $this; 354 | } 355 | 356 | public function getLegendOffsetX(): int 357 | { 358 | return $this->legendOffsetX; 359 | } 360 | 361 | public function setLegendOffsetY(int $legendOffsetY): Chart 362 | { 363 | $this->legendOffsetY = $legendOffsetY; 364 | 365 | $this->setOption([ 366 | 'legend' => [ 367 | 'offsetY' => $legendOffsetY, 368 | ], 369 | ]); 370 | 371 | return $this; 372 | } 373 | 374 | public function getLegendOffsetY():int 375 | { 376 | return $this->legendOffsetY; 377 | } 378 | 379 | public function setLegendLabels(array $legendLabels): Chart 380 | { 381 | $this->legendLabels = $legendLabels; 382 | 383 | $this->setOption([ 384 | 'legend' => [ 385 | 'labels' => $legendLabels, 386 | ], 387 | ]); 388 | 389 | return $this; 390 | } 391 | 392 | public function getLegendLabels(): array 393 | { 394 | return $this->legendLabels; 395 | } 396 | 397 | public function setLegendMarkers(array $legendMarkers): Chart 398 | { 399 | $this->legendMarkers = $legendMarkers; 400 | 401 | $this->setOption([ 402 | 'legend' => [ 403 | 'markers' => $legendMarkers, 404 | ], 405 | ]); 406 | 407 | return $this; 408 | } 409 | 410 | public function getLegendMarkers(): array 411 | { 412 | return $this->legendMarkers; 413 | } 414 | 415 | public function setLegendItemMargin(array $legendItemMargin): Chart 416 | { 417 | $this->legendItemMargin = $legendItemMargin; 418 | 419 | $this->setOption([ 420 | 'legend' => [ 421 | 'itemMargin' => $legendItemMargin, 422 | ], 423 | ]); 424 | 425 | return $this; 426 | } 427 | 428 | public function getLegendItemMargin(): array 429 | { 430 | return $this->legendItemMargin; 431 | } 432 | 433 | public function setLegendOnItemClick(array $legendOnItemClick): Chart 434 | { 435 | $this->legendOnItemClick = $legendOnItemClick; 436 | 437 | $this->setOption([ 438 | 'legend' => [ 439 | 'onItemClick' => $legendOnItemClick, 440 | ], 441 | ]); 442 | 443 | return $this; 444 | } 445 | 446 | public function getLegendOnItemClick(): array 447 | { 448 | return $this->legendOnItemClick; 449 | } 450 | 451 | public function setLegendOnItemHover(array $legendOnItemHover): Chart 452 | { 453 | $this->legendOnItemHover = $legendOnItemHover; 454 | 455 | $this->setOption([ 456 | 'legend' => [ 457 | 'onItemHover' => $legendOnItemHover, 458 | ], 459 | ]); 460 | 461 | return $this; 462 | } 463 | 464 | public function getLegendOnItemHover(): array 465 | { 466 | return $this->legendOnItemHover; 467 | } 468 | } 469 | -------------------------------------------------------------------------------- /src/Options/Markers.php: -------------------------------------------------------------------------------- 1 | '', 41 | 'sizeOffset' => 3, 42 | ]; 43 | 44 | public function setMarkersSize(int $markersSize): Chart 45 | { 46 | $this->markersSize = $markersSize; 47 | 48 | $this->setOption([ 49 | 'markers' => [ 50 | 'size' => $markersSize, 51 | ], 52 | ]); 53 | 54 | return $this; 55 | } 56 | 57 | public function getMarkersSize(): int 58 | { 59 | return $this->markersSize; 60 | } 61 | 62 | public function setMarkersColors(array $markersColors): Chart 63 | { 64 | $this->markersColors = $markersColors; 65 | 66 | $this->setOption([ 67 | 'markers' => [ 68 | 'colors' => $markersColors, 69 | ], 70 | ]); 71 | 72 | return $this; 73 | } 74 | 75 | public function getMarkersColors(): array 76 | { 77 | return $this->markersColors; 78 | } 79 | 80 | public function setMarkersStrokeColors(string|array $markersStrokeColors): Chart 81 | { 82 | $this->markersStrokeColors = $markersStrokeColors; 83 | 84 | $this->setOption([ 85 | 'markers' => [ 86 | 'strokeColors' => $markersStrokeColors, 87 | ], 88 | ]); 89 | 90 | return $this; 91 | } 92 | 93 | public function getMarkersStrokeColors(): string|array 94 | { 95 | return $this->markersStrokeColors; 96 | } 97 | 98 | public function setMarkersStrokeWidth(int|array $markersStrokeWidth): Chart 99 | { 100 | $this->markersStrokeWidth = $markersStrokeWidth; 101 | 102 | $this->setOption([ 103 | 'markers' => [ 104 | 'strokeWidth' => $markersStrokeWidth, 105 | ], 106 | ]); 107 | 108 | return $this; 109 | } 110 | 111 | public function getMarkersStrokeWidth(): int|array 112 | { 113 | return $this->markersStrokeWidth; 114 | } 115 | 116 | public function setMarkersStrokeOpacity(int|float|array $markersStrokeOpacity): Chart 117 | { 118 | $this->markersStrokeOpacity = $markersStrokeOpacity; 119 | 120 | $this->setOption([ 121 | 'markers' => [ 122 | 'strokeOpacity' => $markersStrokeOpacity, 123 | ], 124 | ]); 125 | 126 | return $this; 127 | } 128 | 129 | public function getMarkersStrokeOpacity(): int|float|array 130 | { 131 | return $this->markersStrokeOpacity; 132 | } 133 | 134 | public function setMarkersStrokeDashArray(int|array $markersStrokeDashArray): Chart 135 | { 136 | $this->markersStrokeDashArray = $markersStrokeDashArray; 137 | 138 | $this->setOption([ 139 | 'markers' => [ 140 | 'strokeDashArray' => $markersStrokeDashArray, 141 | ], 142 | ]); 143 | 144 | return $this; 145 | } 146 | 147 | public function getMarkersStrokeDashArray(): int|array 148 | { 149 | return $this->markersStrokeDashArray; 150 | } 151 | 152 | public function setMarkersFillOpacity(int|float|array $markersFillOpacity): Chart 153 | { 154 | $this->markersFillOpacity = $markersFillOpacity; 155 | 156 | $this->setOption([ 157 | 'markers' => [ 158 | 'fillOpacity' => $markersFillOpacity, 159 | ], 160 | ]); 161 | 162 | return $this; 163 | } 164 | 165 | public function getMarkersFillOpacity(): int|float|array 166 | { 167 | return $this->markersFillOpacity; 168 | } 169 | 170 | public function setMarkersDiscrete(array $markersDiscrete): Chart 171 | { 172 | $this->markersDiscrete = $markersDiscrete; 173 | 174 | $this->setOption([ 175 | 'markers' => [ 176 | 'discrete' => $markersDiscrete, 177 | ], 178 | ]); 179 | 180 | return $this; 181 | } 182 | 183 | public function getMarkersDiscrete(): array 184 | { 185 | return $this->markersDiscrete; 186 | } 187 | 188 | public function setMarkersShape(string $markersShape): Chart 189 | { 190 | $this->markersShape = $markersShape; 191 | 192 | $this->setOption([ 193 | 'markers' => [ 194 | 'shape' => $markersShape, 195 | ], 196 | ]); 197 | 198 | return $this; 199 | } 200 | 201 | public function getMarkersShape(): string 202 | { 203 | return $this->markersShape; 204 | } 205 | 206 | public function setMarkersRadius(int $markersRadius): Chart 207 | { 208 | $this->markersRadius = $markersRadius; 209 | 210 | $this->setOption([ 211 | 'markers' => [ 212 | 'radius' => $markersRadius, 213 | ], 214 | ]); 215 | 216 | return $this; 217 | } 218 | 219 | public function getMarkersRadius(): int 220 | { 221 | return $this->markersRadius; 222 | } 223 | 224 | public function setMarkersOffsetX(int $markersOffsetX): Chart 225 | { 226 | $this->markersOffsetX = $markersOffsetX; 227 | 228 | $this->setOption([ 229 | 'markers' => [ 230 | 'offsetX' => $markersOffsetX, 231 | ], 232 | ]); 233 | 234 | return $this; 235 | } 236 | 237 | public function getMarkersOffsetX(): int 238 | { 239 | return $this->markersOffsetX; 240 | } 241 | 242 | public function setMarkersOffsetY(int $markersOffsetY): Chart 243 | { 244 | $this->markersOffsetY = $markersOffsetY; 245 | 246 | $this->setOption([ 247 | 'markers' => [ 248 | 'offsetY' => $markersOffsetY, 249 | ], 250 | ]); 251 | 252 | return $this; 253 | } 254 | 255 | public function getMarkersOffsetY(): int 256 | { 257 | return $this->markersOffsetY; 258 | } 259 | 260 | public function setMarkersOnClick(mixed $markersOnClick): Chart 261 | { 262 | $this->markersOnClick = $markersOnClick; 263 | 264 | $this->setOption([ 265 | 'markers' => [ 266 | 'onClick' => $markersOnClick, 267 | ], 268 | ]); 269 | 270 | return $this; 271 | } 272 | 273 | public function getMarkersOnClick(): mixed 274 | { 275 | return $this->markersOnClick; 276 | } 277 | 278 | public function setMarkersOnDblClick(mixed $markersOnDblClick): Chart 279 | { 280 | $this->markersOnDblClick = $markersOnDblClick; 281 | 282 | $this->setOption([ 283 | 'markers' => [ 284 | 'onDblClick' => $markersOnDblClick, 285 | ], 286 | ]); 287 | 288 | return $this; 289 | } 290 | 291 | public function getMarkersOnDblClick(): mixed 292 | { 293 | return $this->markersOnDblClick; 294 | } 295 | 296 | public function setMarkersShowNullDataPoints(bool $markersShowNullDataPoints): Chart 297 | { 298 | $this->markersShowNullDataPoints = $markersShowNullDataPoints; 299 | 300 | $this->setOption([ 301 | 'markers' => [ 302 | 'showNullDataPoints' => $markersShowNullDataPoints, 303 | ], 304 | ]); 305 | 306 | return $this; 307 | } 308 | 309 | public function getMarkersShowNullDataPoints(): bool 310 | { 311 | return $this->markersShowNullDataPoints; 312 | } 313 | 314 | public function setMarkersHover(array $markersHover): Chart 315 | { 316 | $this->markersHover = $markersHover; 317 | 318 | $this->setOption([ 319 | 'markers' => [ 320 | 'hover' => $markersHover, 321 | ], 322 | ]); 323 | 324 | return $this; 325 | } 326 | 327 | public function getMarkersHover(): array 328 | { 329 | return $this->markersHover; 330 | } 331 | } 332 | -------------------------------------------------------------------------------- /src/Options/NoData.php: -------------------------------------------------------------------------------- 1 | noDataText = $noDataText; 24 | 25 | $this->setOption([ 26 | 'noData' => [ 27 | 'text' => $noDataText, 28 | ], 29 | ]); 30 | 31 | return $this; 32 | } 33 | 34 | public function getNoDataText(): string 35 | { 36 | return $this->noDataText; 37 | } 38 | 39 | public function setNoDataAlign(string $noDataAlign): Chart 40 | { 41 | $this->noDataAlign = $noDataAlign; 42 | 43 | $this->setOption([ 44 | 'noData' => [ 45 | 'align' => $noDataAlign, 46 | ], 47 | ]); 48 | 49 | return $this; 50 | } 51 | 52 | public function getNoDataAlign(): string 53 | { 54 | return $this->noDataAlign; 55 | } 56 | 57 | public function setNoDataVerticalAlign(string $noDataVerticalAlign): Chart 58 | { 59 | $this->noDataVerticalAlign = $noDataVerticalAlign; 60 | 61 | $this->setOption([ 62 | 'noData' => [ 63 | 'verticalAlign' => $noDataVerticalAlign, 64 | ], 65 | ]); 66 | 67 | return $this; 68 | } 69 | 70 | public function getNoDataVerticalAlign(): string 71 | { 72 | return $this->noDataVerticalAlign; 73 | } 74 | 75 | public function setNoDataOffsetX(int $noDataOffsetX): Chart 76 | { 77 | $this->noDataOffsetX = $noDataOffsetX; 78 | 79 | $this->setOption([ 80 | 'noData' => [ 81 | 'offsetX' => $noDataOffsetX, 82 | ], 83 | ]); 84 | 85 | return $this; 86 | } 87 | 88 | public function getNoDataOffsetX(): int 89 | { 90 | return $this->noDataOffsetX; 91 | } 92 | 93 | public function setNoDataOffsetY(int $noDataOffsetY): Chart 94 | { 95 | $this->noDataOffsetY = $noDataOffsetY; 96 | 97 | $this->setOption([ 98 | 'noData' => [ 99 | 'offsetY' => $noDataOffsetY, 100 | ], 101 | ]); 102 | 103 | return $this; 104 | } 105 | 106 | public function getNoDataOffsetY(): int 107 | { 108 | return $this->noDataOffsetY; 109 | } 110 | 111 | public function setNoDataStyle(array $noDataStyle): Chart 112 | { 113 | $this->noDataStyle = $noDataStyle; 114 | 115 | $this->setOption([ 116 | 'noData' => [ 117 | 'style' => $noDataStyle, 118 | ], 119 | ]); 120 | 121 | return $this; 122 | } 123 | 124 | public function getNoDataStyle(): array 125 | { 126 | return $this->noDataStyle; 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /src/Options/PlotOptions.php: -------------------------------------------------------------------------------- 1 | false, 13 | ]; 14 | 15 | public array $bubble = []; 16 | 17 | public array $candlestick = []; 18 | 19 | public array $boxPlot = []; 20 | 21 | public array $heatmap = []; 22 | 23 | public array $treemap = []; 24 | 25 | public array $pie = []; 26 | 27 | public array $polarArea = []; 28 | 29 | public array $radar = []; 30 | 31 | public array $radialBar = []; 32 | 33 | public function setArea(string $area): Chart 34 | { 35 | $this->area = $area; 36 | 37 | $this->setOption([ 38 | 'plotOptions' => [ 39 | 'area' => $area, 40 | ], 41 | ]); 42 | 43 | return $this; 44 | } 45 | 46 | public function getArea(): string 47 | { 48 | return $this->area; 49 | } 50 | 51 | public function setBar(array $bar): Chart 52 | { 53 | $this->bar = $bar; 54 | 55 | $this->setOption([ 56 | 'plotOptions' => [ 57 | 'bar' => $bar, 58 | ], 59 | ]); 60 | 61 | return $this; 62 | } 63 | 64 | public function getBar(): array 65 | { 66 | return $this->bar; 67 | } 68 | 69 | public function setBubble(array $bubble): Chart 70 | { 71 | $this->bubble = $bubble; 72 | 73 | $this->setOption([ 74 | 'plotOptions' => [ 75 | 'bubble' => $bubble, 76 | ], 77 | ]); 78 | 79 | return $this; 80 | } 81 | 82 | public function getBubble(): array 83 | { 84 | return $this->bubble; 85 | } 86 | 87 | public function setCandlestick(array $candlestick): Chart 88 | { 89 | $this->candlestick = $candlestick; 90 | 91 | $this->setOption([ 92 | 'plotOptions' => [ 93 | 'candlestick' => $candlestick, 94 | ], 95 | ]); 96 | 97 | return $this; 98 | } 99 | 100 | public function getCandlestick(): array 101 | { 102 | return $this->candlestick; 103 | } 104 | 105 | public function setBoxPlot(array $boxPlot): Chart 106 | { 107 | $this->boxPlot = $boxPlot; 108 | 109 | $this->setOption([ 110 | 'plotOptions' => [ 111 | 'boxPlot' => $boxPlot, 112 | ], 113 | ]); 114 | 115 | return $this; 116 | } 117 | 118 | public function getBoxPlot(): array 119 | { 120 | return $this->boxPlot; 121 | } 122 | 123 | public function setHeatmap(array $heatmap): Chart 124 | { 125 | $this->heatmap = $heatmap; 126 | 127 | $this->setOption([ 128 | 'plotOptions' => [ 129 | 'heatmap' => $heatmap, 130 | ], 131 | ]); 132 | 133 | return $this; 134 | } 135 | 136 | public function getHeatmap(): array 137 | { 138 | return $this->heatmap; 139 | } 140 | 141 | public function setTreemap(array $treemap): Chart 142 | { 143 | $this->treemap = $treemap; 144 | 145 | $this->setOption([ 146 | 'plotOptions' => [ 147 | 'treemap' => $treemap, 148 | ], 149 | ]); 150 | 151 | return $this; 152 | } 153 | 154 | public function getTreemap(): array 155 | { 156 | return $this->treemap; 157 | } 158 | 159 | public function setPie(array $pie): Chart 160 | { 161 | $this->pie = $pie; 162 | 163 | $this->setOption([ 164 | 'plotOptions' => [ 165 | 'pie' => $pie, 166 | ], 167 | ]); 168 | 169 | return $this; 170 | } 171 | 172 | public function getPie(): array 173 | { 174 | return $this->pie; 175 | } 176 | 177 | public function setPolarArea(array $polarArea): Chart 178 | { 179 | $this->polarArea = $polarArea; 180 | 181 | $this->setOption([ 182 | 'plotOptions' => [ 183 | 'polarArea' => $polarArea, 184 | ], 185 | ]); 186 | 187 | return $this; 188 | } 189 | 190 | public function getPolarArea(): array 191 | { 192 | return $this->polarArea; 193 | } 194 | 195 | public function setRadar(array $radar): Chart 196 | { 197 | $this->radar = $radar; 198 | 199 | $this->setOption([ 200 | 'plotOptions' => [ 201 | 'radar' => $radar, 202 | ], 203 | ]); 204 | 205 | return $this; 206 | } 207 | 208 | public function getRadar(): array 209 | { 210 | return $this->radar; 211 | } 212 | 213 | public function setRadialBar(array $radialBar): Chart 214 | { 215 | $this->radialBar = $radialBar; 216 | 217 | $this->setOption([ 218 | 'plotOptions' => [ 219 | 'radialBar' => $radialBar, 220 | ], 221 | ]); 222 | 223 | return $this; 224 | } 225 | 226 | public function getRadialBar(): array 227 | { 228 | return $this->radialBar; 229 | } 230 | 231 | public function setHorizontal(bool $horizontal): Chart 232 | { 233 | $this->setBar([ 234 | 'horizontal' => $horizontal, 235 | ]); 236 | 237 | return $this; 238 | } 239 | 240 | public function getHorizontal(): bool 241 | { 242 | return $this->getBar()['horizontal']; 243 | } 244 | } 245 | -------------------------------------------------------------------------------- /src/Options/Responsive.php: -------------------------------------------------------------------------------- 1 | responsiveBreakpoint = $responsiveBreakpoint; 16 | 17 | $this->setOption([ 18 | 'responsive' => [ 19 | 'breakpoint' => $responsiveBreakpoint, 20 | ], 21 | ]); 22 | 23 | return $this; 24 | } 25 | 26 | public function getResponsiveBreakpoint(): int 27 | { 28 | return $this->responsiveBreakpoint; 29 | } 30 | 31 | public function setResponsiveOptions(object $responsiveOptions): Chart 32 | { 33 | $this->responsiveOptions = $responsiveOptions; 34 | 35 | $this->setOption([ 36 | 'responsive' => [ 37 | 'options' => $responsiveOptions, 38 | ], 39 | ]); 40 | 41 | return $this; 42 | } 43 | 44 | public function getResponsiveOptions(): object 45 | { 46 | return $this->responsiveOptions; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/Options/States.php: -------------------------------------------------------------------------------- 1 | statesNormal = $statesNormal; 18 | 19 | $this->setOption([ 20 | 'states' => [ 21 | 'normal' => $statesNormal, 22 | ], 23 | ]); 24 | 25 | return $this; 26 | } 27 | 28 | public function getStatesNormal(): array 29 | { 30 | return $this->statesNormal; 31 | } 32 | 33 | public function setStatesHover(array $statesHover): Chart 34 | { 35 | $this->statesHover = $statesHover; 36 | 37 | $this->setOption([ 38 | 'states' => [ 39 | 'hover' => $statesHover, 40 | ], 41 | ]); 42 | 43 | return $this; 44 | } 45 | 46 | public function getStatesHover(): array 47 | { 48 | return $this->statesHover; 49 | } 50 | 51 | public function setStatesActive(array $statesActive): Chart 52 | { 53 | $this->statesActive = $statesActive; 54 | 55 | $this->setOption([ 56 | 'states' => [ 57 | 'active' => $statesActive, 58 | ], 59 | ]); 60 | 61 | return $this; 62 | } 63 | 64 | public function getStatesActive(): array 65 | { 66 | return $this->statesActive; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/Options/Stroke.php: -------------------------------------------------------------------------------- 1 | strokeShow = $strokeShow; 24 | 25 | $this->setOption([ 26 | 'stroke' => [ 27 | 'show' => $strokeShow, 28 | ], 29 | ]); 30 | 31 | return $this; 32 | } 33 | 34 | public function getStrokeShow(): bool 35 | { 36 | return $this->strokeShow; 37 | } 38 | 39 | public function setStrokeCurve(string|array $strokeCurve): Chart 40 | { 41 | $this->strokeCurve = $strokeCurve; 42 | 43 | $this->setOption([ 44 | 'stroke' => [ 45 | 'curve' => $strokeCurve, 46 | ], 47 | ]); 48 | 49 | return $this; 50 | } 51 | 52 | public function getStrokeCurve(): string|array 53 | { 54 | return $this->strokeCurve; 55 | } 56 | 57 | public function setStrokeLineCap(string $strokeLineCap): Chart 58 | { 59 | $this->strokeLineCap = $strokeLineCap; 60 | 61 | $this->setOption([ 62 | 'stroke' => [ 63 | 'lineCap' => $strokeLineCap, 64 | ], 65 | ]); 66 | 67 | return $this; 68 | } 69 | 70 | public function getStrokeLineCap(): string 71 | { 72 | return $this->strokeLineCap; 73 | } 74 | 75 | public function setStrokeColors(array $strokeColors): Chart 76 | { 77 | $this->strokeColors = $strokeColors; 78 | 79 | $this->setOption([ 80 | 'stroke' => [ 81 | 'colors' => $strokeColors, 82 | ], 83 | ]); 84 | 85 | return $this; 86 | } 87 | 88 | public function getStrokeColors(): array 89 | { 90 | return $this->strokeColors; 91 | } 92 | 93 | public function setStrokeWidth(int|array $strokeWidth): Chart 94 | { 95 | $this->strokeWidth = $strokeWidth; 96 | 97 | $this->setOption([ 98 | 'stroke' => [ 99 | 'width' => $strokeWidth, 100 | ], 101 | ]); 102 | 103 | return $this; 104 | } 105 | 106 | public function getStrokeWidth(): int|array 107 | { 108 | return $this->strokeWidth; 109 | } 110 | 111 | public function setStrokeDashArray(int|array $strokeDashArray): Chart 112 | { 113 | $this->strokeDashArray = $strokeDashArray; 114 | 115 | $this->setOption([ 116 | 'stroke' => [ 117 | 'dashArray' => $strokeDashArray, 118 | ], 119 | ]); 120 | 121 | return $this; 122 | } 123 | 124 | public function getStrokeDashArray(): int|array 125 | { 126 | return $this->strokeDashArray; 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /src/Options/Subtitle.php: -------------------------------------------------------------------------------- 1 | subtitle = $subtitle; 26 | 27 | $this->setOption([ 28 | 'subtitle' => [ 29 | 'text' => $subtitle, 30 | ], 31 | ]); 32 | 33 | return $this; 34 | } 35 | 36 | public function getSubtitle(): string 37 | { 38 | return $this->subtitle; 39 | } 40 | 41 | public function setSubtitlePosition(string $subtitlePosition): Chart 42 | { 43 | $this->setSubtitleAlign($subtitlePosition); 44 | 45 | return $this; 46 | } 47 | 48 | public function getSubtitlePosition(): string 49 | { 50 | return $this->getSubtitleAlign(); 51 | } 52 | 53 | public function setSubtitleAlign(string $subtitleAlign): Chart 54 | { 55 | $this->subtitleAlign = $subtitleAlign; 56 | 57 | $this->setOption([ 58 | 'subtitle' => [ 59 | 'align' => $subtitleAlign, 60 | ], 61 | ]); 62 | 63 | return $this; 64 | } 65 | 66 | public function getSubtitleAlign(): string 67 | { 68 | return $this->subtitleAlign; 69 | } 70 | 71 | public function setSubtitleMargin(int $subtitleMargin): Chart 72 | { 73 | $this->subtitleMargin = $subtitleMargin; 74 | 75 | $this->setOption([ 76 | 'subtitle' => [ 77 | 'margin' => $subtitleMargin, 78 | ], 79 | ]); 80 | 81 | return $this; 82 | } 83 | 84 | public function getSubtitleMargin(): int 85 | { 86 | return $this->subtitleMargin; 87 | } 88 | 89 | public function setSubtitleOffsetX(int $subtitleOffsetX): Chart 90 | { 91 | $this->subtitleOffsetX = $subtitleOffsetX; 92 | 93 | $this->setOption([ 94 | 'subtitle' => [ 95 | 'offsetX' => $subtitleOffsetX, 96 | ], 97 | ]); 98 | 99 | return $this; 100 | } 101 | 102 | public function getSubtitleOffsetX(): int 103 | { 104 | return $this->subtitleOffsetX; 105 | } 106 | 107 | public function setSubtitleOffsetY(int $subtitleOffsetY): Chart 108 | { 109 | $this->subtitleOffsetY = $subtitleOffsetY; 110 | 111 | $this->setOption([ 112 | 'subtitle' => [ 113 | 'offsetY' => $subtitleOffsetY, 114 | ], 115 | ]); 116 | 117 | return $this; 118 | } 119 | 120 | public function getSubtitleOffsetY(): int 121 | { 122 | return $this->subtitleOffsetY; 123 | } 124 | 125 | public function setSubtitleFloating(bool $subtitleFloating): Chart 126 | { 127 | $this->fontFamily = $subtitleFloating; 128 | 129 | $this->setOption([ 130 | 'subtitle' => [ 131 | 'floating' => $subtitleFloating, 132 | ], 133 | ]); 134 | 135 | return $this; 136 | } 137 | 138 | public function getSubtitleFloating(): bool 139 | { 140 | return $this->subtitleFloating; 141 | } 142 | 143 | public function setSubtitleStyle(array $subtitleStyle): Chart 144 | { 145 | $this->subtitleStyle = $subtitleStyle; 146 | 147 | $this->setOption([ 148 | 'subtitle' => [ 149 | 'style' => $subtitleStyle, 150 | ], 151 | ]); 152 | 153 | return $this; 154 | } 155 | 156 | public function getSubtitleStyle(): array 157 | { 158 | return $this->subtitleStyle; 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /src/Options/Theme.php: -------------------------------------------------------------------------------- 1 | themeMode = $themeMode; 18 | 19 | $this->setOption([ 20 | 'theme' => [ 21 | 'mode' => $themeMode, 22 | ], 23 | ]); 24 | 25 | return $this; 26 | } 27 | 28 | public function getThemeMode(): string 29 | { 30 | return $this->themeMode; 31 | } 32 | 33 | public function setThemePalette(string $themePalette): Chart 34 | { 35 | $this->themePalette = $themePalette; 36 | 37 | $this->setOption([ 38 | 'theme' => [ 39 | 'palette' => $themePalette, 40 | ], 41 | ]); 42 | 43 | return $this; 44 | } 45 | 46 | public function getThemePalette(): string 47 | { 48 | return $this->themePalette; 49 | } 50 | 51 | public function setThemeMonochrome(array $themeMonochrome): Chart 52 | { 53 | $this->themeMonochrome = $themeMonochrome; 54 | 55 | $this->setOption([ 56 | 'theme' => [ 57 | 'monochrome' => $themeMonochrome, 58 | ], 59 | ]); 60 | 61 | return $this; 62 | } 63 | 64 | public function getThemeMonochrome(): array 65 | { 66 | return $this->themeMonochrome; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/Options/Title.php: -------------------------------------------------------------------------------- 1 | title = $title; 26 | 27 | $this->setOption([ 28 | 'title' => [ 29 | 'text' => $title, 30 | ], 31 | ]); 32 | 33 | return $this; 34 | } 35 | 36 | public function getTitle(): string 37 | { 38 | return $this->title; 39 | } 40 | 41 | public function setTitlePosition(string $titlePosition): Chart 42 | { 43 | $this->setTitleAlign($titlePosition); 44 | 45 | return $this; 46 | } 47 | 48 | public function getTitlePosition(): string 49 | { 50 | return $this->getTitleAlign(); 51 | } 52 | 53 | public function setTitleAlign(string $titleAlign): Chart 54 | { 55 | $this->titleAlign = $titleAlign; 56 | 57 | $this->setOption([ 58 | 'title' => [ 59 | 'align' => $titleAlign, 60 | ], 61 | ]); 62 | 63 | return $this; 64 | } 65 | 66 | public function getTitleAlign(): string 67 | { 68 | return $this->titleAlign; 69 | } 70 | 71 | public function setTitleMargin(int $titleMargin): Chart 72 | { 73 | $this->titleMargin = $titleMargin; 74 | 75 | $this->setOption([ 76 | 'title' => [ 77 | 'margin' => $titleMargin, 78 | ], 79 | ]); 80 | 81 | return $this; 82 | } 83 | 84 | public function getTitleMargin(): int 85 | { 86 | return $this->titleMargin; 87 | } 88 | 89 | public function setTitleOffsetX(int $titleOffsetX): Chart 90 | { 91 | $this->titleOffsetX = $titleOffsetX; 92 | 93 | $this->setOption([ 94 | 'title' => [ 95 | 'offsetX' => $titleOffsetX, 96 | ], 97 | ]); 98 | 99 | return $this; 100 | } 101 | 102 | public function getTitleOffsetX(): int 103 | { 104 | return $this->titleOffsetX; 105 | } 106 | 107 | public function setTitleOffsetY(int $titleOffsetY): Chart 108 | { 109 | $this->titleOffsetY = $titleOffsetY; 110 | 111 | $this->setOption([ 112 | 'title' => [ 113 | 'offsetY' => $titleOffsetY, 114 | ], 115 | ]); 116 | 117 | return $this; 118 | } 119 | 120 | public function getTitleOffsetY(): int 121 | { 122 | return $this->titleOffsetY; 123 | } 124 | 125 | public function setTitleFloating(bool $titleFloating): Chart 126 | { 127 | $this->titleFloating = $titleFloating; 128 | 129 | $this->setOption([ 130 | 'title' => [ 131 | 'floating' => $titleFloating, 132 | ], 133 | ]); 134 | 135 | return $this; 136 | } 137 | 138 | public function getTitleFloating(): bool 139 | { 140 | return $this->titleFloating; 141 | } 142 | 143 | public function setTitleStyle(array $titleStyle): Chart 144 | { 145 | $this->titleStyle = $titleStyle; 146 | 147 | $this->setOption([ 148 | 'title' => [ 149 | 'style' => $titleStyle, 150 | ], 151 | ]); 152 | 153 | return $this; 154 | } 155 | 156 | public function getTitleStyle(): array 157 | { 158 | return $this->titleStyle; 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /src/Options/Tooltip.php: -------------------------------------------------------------------------------- 1 | tooltipEnabled = $tooltipEnabled; 46 | 47 | $this->setOption([ 48 | 'tooltip' => [ 49 | 'enabled' => $tooltipEnabled, 50 | ], 51 | ]); 52 | 53 | return $this; 54 | } 55 | 56 | public function getTooltipEnabled(): bool 57 | { 58 | return $this->tooltipEnabled; 59 | } 60 | 61 | public function setTooltipEnabledOnSeries(array $tooltipEnabledOnSeries): Chart 62 | { 63 | $this->tooltipEnabledOnSeries = $tooltipEnabledOnSeries; 64 | 65 | $this->setOption([ 66 | 'tooltip' => [ 67 | 'enabledOnSeries' => $tooltipEnabledOnSeries, 68 | ], 69 | ]); 70 | 71 | return $this; 72 | } 73 | 74 | public function getTooltipEnabledOnSeries(): array 75 | { 76 | return $this->tooltipEnabledOnSeries; 77 | } 78 | 79 | public function setTooltipShared(bool $tooltipShared): Chart 80 | { 81 | $this->tooltipShared = $tooltipShared; 82 | 83 | $this->setOption([ 84 | 'tooltip' => [ 85 | 'shared' => $tooltipShared, 86 | ], 87 | ]); 88 | 89 | return $this; 90 | } 91 | 92 | public function getTooltipShared(): bool 93 | { 94 | return $this->tooltipShared; 95 | } 96 | 97 | public function setTooltipFollowCursor(bool $tooltipFollowCursor): Chart 98 | { 99 | $this->tooltipFollowCursor = $tooltipFollowCursor; 100 | 101 | $this->setOption([ 102 | 'tooltip' => [ 103 | 'followCursor' => $tooltipFollowCursor, 104 | ], 105 | ]); 106 | 107 | return $this; 108 | } 109 | 110 | public function getTooltipFollowCursor(): bool 111 | { 112 | return $this->tooltipFollowCursor; 113 | } 114 | 115 | public function setTooltipIntersect(bool $tooltipIntersect): Chart 116 | { 117 | $this->tooltipIntersect = $tooltipIntersect; 118 | 119 | $this->setOption([ 120 | 'tooltip' => [ 121 | 'intersect' => $tooltipIntersect, 122 | ], 123 | ]); 124 | 125 | return $this; 126 | } 127 | 128 | public function getTooltipIntersect(): bool 129 | { 130 | return $this->tooltipIntersect; 131 | } 132 | 133 | public function setTooltipInverseOrder(bool $tooltipInverseOrder): Chart 134 | { 135 | $this->tooltipInverseOrder = $tooltipInverseOrder; 136 | 137 | $this->setOption([ 138 | 'tooltip' => [ 139 | 'inverseOrder' => $tooltipInverseOrder, 140 | ], 141 | ]); 142 | 143 | return $this; 144 | } 145 | 146 | public function getTooltipInverseOrder(): bool 147 | { 148 | return $this->tooltipInverseOrder; 149 | } 150 | 151 | public function setTooltipCustom(mixed $tooltipCustom): Chart 152 | { 153 | $this->tooltipCustom = $tooltipCustom; 154 | 155 | $this->setOption([ 156 | 'tooltip' => [ 157 | 'custom' => $tooltipCustom, 158 | ], 159 | ]); 160 | 161 | return $this; 162 | } 163 | 164 | public function getTooltipCustom(): mixed 165 | { 166 | return $this->tooltipCustom; 167 | } 168 | 169 | public function setTooltipFillSeriesColor(bool $tooltipFillSeriesColor): Chart 170 | { 171 | $this->tooltipFillSeriesColor = $tooltipFillSeriesColor; 172 | 173 | $this->setOption([ 174 | 'tooltip' => [ 175 | 'fillSeriesColor' => $tooltipFillSeriesColor, 176 | ], 177 | ]); 178 | 179 | return $this; 180 | } 181 | 182 | public function getTooltipFillSeriesColor(): bool 183 | { 184 | return $this->tooltipFillSeriesColor; 185 | } 186 | 187 | public function setTooltipTheme(bool $tooltipTheme): Chart 188 | { 189 | $this->tooltipTheme = $tooltipTheme; 190 | 191 | $this->setOption([ 192 | 'tooltip' => [ 193 | 'theme' => $tooltipTheme, 194 | ], 195 | ]); 196 | 197 | return $this; 198 | } 199 | 200 | public function getTooltipTheme(): bool 201 | { 202 | return $this->tooltipTheme; 203 | } 204 | 205 | public function setTooltipStyle(array $tooltipStyle): Chart 206 | { 207 | $this->tooltipStyle = $tooltipStyle; 208 | 209 | $this->setOption([ 210 | 'tooltip' => [ 211 | 'style' => $tooltipStyle, 212 | ], 213 | ]); 214 | 215 | return $this; 216 | } 217 | 218 | public function getTooltipStyle(): array 219 | { 220 | return $this->tooltipStyle; 221 | } 222 | 223 | public function setTooltipOnDatasetHover(array $tooltipOnDatasetHover): Chart 224 | { 225 | $this->tooltipOnDatasetHover = $tooltipOnDatasetHover; 226 | 227 | $this->setOption([ 228 | 'tooltip' => [ 229 | 'onDatasetHover' => $tooltipOnDatasetHover, 230 | ], 231 | ]); 232 | 233 | return $this; 234 | } 235 | 236 | public function getTooltipOnDatasetHover(): array 237 | { 238 | return $this->tooltipOnDatasetHover; 239 | } 240 | 241 | public function setTooltipX(array $tooltipX): Chart 242 | { 243 | $this->tooltipX = $tooltipX; 244 | 245 | $this->setOption([ 246 | 'tooltip' => [ 247 | 'x' => $tooltipX, 248 | ], 249 | ]); 250 | 251 | return $this; 252 | } 253 | 254 | public function getTooltipX(): array 255 | { 256 | return $this->tooltipX; 257 | } 258 | 259 | public function setTooltipY(array $tooltipY): Chart 260 | { 261 | $this->tooltipY = $tooltipY; 262 | 263 | $this->setOption([ 264 | 'tooltip' => [ 265 | 'y' => $tooltipY, 266 | ], 267 | ]); 268 | 269 | return $this; 270 | } 271 | 272 | public function getTooltipY(): array 273 | { 274 | return $this->tooltipY; 275 | } 276 | 277 | public function setTooltipZ(array $tooltipZ): Chart 278 | { 279 | $this->tooltipZ = $tooltipZ; 280 | 281 | $this->setOption([ 282 | 'tooltip' => [ 283 | 'z' => $tooltipZ, 284 | ], 285 | ]); 286 | 287 | return $this; 288 | } 289 | 290 | public function getTooltipZ(): array 291 | { 292 | return $this->tooltipZ; 293 | } 294 | 295 | public function setTooltipMarker(array $tooltipMarker): Chart 296 | { 297 | $this->tooltipMarker = $tooltipMarker; 298 | 299 | $this->setOption([ 300 | 'tooltip' => [ 301 | 'marker' => $tooltipMarker, 302 | ], 303 | ]); 304 | 305 | return $this; 306 | } 307 | 308 | public function getTooltipMarker(): array 309 | { 310 | return $this->tooltipMarker; 311 | } 312 | 313 | /** 314 | * Set the items tooltip. 315 | * 316 | * @param string $tooltipItems 317 | * 318 | * @return this 319 | */ 320 | public function setTooltipItems(array $tooltipItems): Chart 321 | { 322 | $this->tooltipItems = $tooltipItems; 323 | 324 | $this->setOption([ 325 | 'tooltip' => [ 326 | 'items' => $tooltipItems, 327 | ], 328 | ]); 329 | 330 | return $this; 331 | } 332 | 333 | public function getTooltipItems(): array 334 | { 335 | return $this->tooltipItems; 336 | } 337 | 338 | public function setTooltipFixed(array $tooltipFixed): Chart 339 | { 340 | $this->tooltipFixed = $tooltipFixed; 341 | 342 | $this->setOption([ 343 | 'tooltip' => [ 344 | 'fixed' => $tooltipFixed, 345 | ], 346 | ]); 347 | 348 | return $this; 349 | } 350 | 351 | public function getTooltipFixed(): array 352 | { 353 | return $this->tooltipFixed; 354 | } 355 | } 356 | -------------------------------------------------------------------------------- /src/Options/Xaxis.php: -------------------------------------------------------------------------------- 1 | xaxisType = $xaxisType; 46 | 47 | $this->setOption([ 48 | 'xaxis' => [ 49 | 'type' => $xaxisType, 50 | ], 51 | ]); 52 | 53 | return $this; 54 | } 55 | 56 | public function getXaxisType(): string 57 | { 58 | return $this->xaxisType; 59 | } 60 | 61 | public function setXaxisCategories(array $xaxisCategories): Chart 62 | { 63 | $this->xaxisCategories = $xaxisCategories; 64 | 65 | $this->setOption([ 66 | 'xaxis' => [ 67 | 'categories' => $xaxisCategories, 68 | ], 69 | ]); 70 | 71 | return $this; 72 | } 73 | 74 | public function getXaxisCategories(): array 75 | { 76 | return $this->xaxisCategories; 77 | } 78 | 79 | public function setXaxisTickAmount(int $xaxisTickAmount): Chart 80 | { 81 | $this->xaxisTickAmount = $xaxisTickAmount; 82 | 83 | $this->setOption([ 84 | 'xaxis' => [ 85 | 'tickAmount' => $xaxisTickAmount, 86 | ], 87 | ]); 88 | 89 | return $this; 90 | } 91 | 92 | public function getXaxisTickAmount(): int 93 | { 94 | return $this->xaxisTickAmount; 95 | } 96 | 97 | public function setXaxisTickPlacement(string $xaxisTickPlacement): Chart 98 | { 99 | $this->xaxisTickPlacement = $xaxisTickPlacement; 100 | 101 | $this->setOption([ 102 | 'xaxis' => [ 103 | 'tickPlacement' => $xaxisTickPlacement, 104 | ], 105 | ]); 106 | 107 | return $this; 108 | } 109 | 110 | public function getXaxisTickPlacement(): string 111 | { 112 | return $this->xaxisTickPlacement; 113 | } 114 | 115 | public function setXaxisMin(int $xaxisMin): Chart 116 | { 117 | $this->xaxisMin = $xaxisMin; 118 | 119 | $this->setOption([ 120 | 'xaxis' => [ 121 | 'min' => $xaxisMin, 122 | ], 123 | ]); 124 | 125 | return $this; 126 | } 127 | 128 | public function getXaxisMin(): int 129 | { 130 | return $this->xaxisMin; 131 | } 132 | 133 | public function setXaxisMax(int $xaxisMax): Chart 134 | { 135 | $this->xaxisMax = $xaxisMax; 136 | 137 | $this->setOption([ 138 | 'xaxis' => [ 139 | 'max' => $xaxisMax, 140 | ], 141 | ]); 142 | 143 | return $this; 144 | } 145 | 146 | public function getXaxisMax(): int 147 | { 148 | return $this->xaxisMax; 149 | } 150 | 151 | public function setXaxisRange(int $xaxisRange): Chart 152 | { 153 | $this->xaxisRange = $xaxisRange; 154 | 155 | $this->setOption([ 156 | 'xaxis' => [ 157 | 'range' => $xaxisRange, 158 | ], 159 | ]); 160 | 161 | return $this; 162 | } 163 | 164 | public function getXaxisRange(): int 165 | { 166 | return $this->xaxisRange; 167 | } 168 | 169 | public function setXaxisFloating(bool $xaxisFloating): Chart 170 | { 171 | $this->xaxisFloating = $xaxisFloating; 172 | 173 | $this->setOption([ 174 | 'xaxis' => [ 175 | 'floating' => $xaxisFloating, 176 | ], 177 | ]); 178 | 179 | return $this; 180 | } 181 | 182 | public function getXaxisFloating(): bool 183 | { 184 | return $this->xaxisFloating; 185 | } 186 | 187 | public function setXaxisDecimalsInFloat(int $xaxisDecimalsInFloat): Chart 188 | { 189 | $this->xaxisDecimalsInFloat = $xaxisDecimalsInFloat; 190 | 191 | $this->setOption([ 192 | 'xaxis' => [ 193 | 'decimalsInFloat' => $xaxisDecimalsInFloat, 194 | ], 195 | ]); 196 | 197 | return $this; 198 | } 199 | 200 | public function getXaxisDecimalsInFloat(): int 201 | { 202 | return $this->xaxisDecimalsInFloat; 203 | } 204 | 205 | public function setXaxisOverwriteCategories(array $xaxisOverwriteCategories): Chart 206 | { 207 | $this->xaxisOverwriteCategories = $xaxisOverwriteCategories; 208 | 209 | $this->setOption([ 210 | 'xaxis' => [ 211 | 'overwriteCategories' => $xaxisOverwriteCategories, 212 | ], 213 | ]); 214 | 215 | return $this; 216 | } 217 | 218 | public function getXaxisOverwriteCategories(): array 219 | { 220 | return $this->xaxisOverwriteCategories; 221 | } 222 | 223 | public function setXaxisPosition(string $xaxisPosition): Chart 224 | { 225 | $this->xaxisPosition = $xaxisPosition; 226 | 227 | $this->setOption([ 228 | 'xaxis' => [ 229 | 'position' => $xaxisPosition, 230 | ], 231 | ]); 232 | 233 | return $this; 234 | } 235 | 236 | public function getXaxisPosition(): string 237 | { 238 | return $this->xaxisPosition; 239 | } 240 | 241 | public function setXaxisLabels(array $xaxisLabels): Chart 242 | { 243 | $this->xaxisLabels = $xaxisLabels; 244 | 245 | $this->setOption([ 246 | 'xaxis' => [ 247 | 'labels' => $xaxisLabels, 248 | ], 249 | ]); 250 | 251 | return $this; 252 | } 253 | 254 | public function getXaxisLabels(): array 255 | { 256 | return $this->xaxisLabels; 257 | } 258 | 259 | public function setXaxisAxisBorder(array $xaxisAxisBorder): Chart 260 | { 261 | $this->xaxisAxisBorder = $xaxisAxisBorder; 262 | 263 | $this->setOption([ 264 | 'xaxis' => [ 265 | 'axisBorder' => $xaxisAxisBorder, 266 | ], 267 | ]); 268 | 269 | return $this; 270 | } 271 | 272 | public function getXaxisAxisBorder(): array 273 | { 274 | return $this->xaxisAxisBorder; 275 | } 276 | 277 | public function setXaxisAxisTicks(array $xaxisAxisTicks): Chart 278 | { 279 | $this->xaxisAxisTicks = $xaxisAxisTicks; 280 | 281 | $this->setOption([ 282 | 'xaxis' => [ 283 | 'axisTicks' => $xaxisAxisTicks, 284 | ], 285 | ]); 286 | 287 | return $this; 288 | } 289 | 290 | public function getXaxisAxisTicks(): array 291 | { 292 | return $this->xaxisAxisTicks; 293 | } 294 | 295 | public function setXaxisTitle(array $xaxisTitle): Chart 296 | { 297 | $this->xaxisTitle = $xaxisTitle; 298 | 299 | $this->setOption([ 300 | 'xaxis' => [ 301 | 'title' => $xaxisTitle, 302 | ], 303 | ]); 304 | 305 | return $this; 306 | } 307 | 308 | public function getXaxisTitle(): array 309 | { 310 | return $this->xaxisTitle; 311 | } 312 | 313 | public function setXaxisCrosshairs(array $xaxisCrosshairs): Chart 314 | { 315 | $this->xaxisCrosshairs = $xaxisCrosshairs; 316 | 317 | $this->setOption([ 318 | 'xaxis' => [ 319 | 'crosshairs' => $xaxisCrosshairs, 320 | ], 321 | ]); 322 | 323 | return $this; 324 | } 325 | 326 | public function getXaxisCrosshairs(): array 327 | { 328 | return $this->xaxisCrosshairs; 329 | } 330 | 331 | public function setXaxisTooltip(array $xaxisTooltip): Chart 332 | { 333 | $this->xaxisTooltip = $xaxisTooltip; 334 | 335 | $this->setOption([ 336 | 'xaxis' => [ 337 | 'tooltip' => $xaxisTooltip, 338 | ], 339 | ]); 340 | 341 | return $this; 342 | } 343 | 344 | public function getXaxisTooltip(): array 345 | { 346 | return $this->xaxisTooltip; 347 | } 348 | } 349 | -------------------------------------------------------------------------------- /src/Options/Yaxis.php: -------------------------------------------------------------------------------- 1 | yaxisShow = $yaxisShow; 52 | 53 | $this->setOption([ 54 | 'yaxis' => [ 55 | 'show' => $yaxisShow, 56 | ], 57 | ]); 58 | 59 | return $this; 60 | } 61 | 62 | public function getYaxisShow(): bool 63 | { 64 | return $this->yaxisShow; 65 | } 66 | 67 | public function setYaxisShowAlways(bool $yaxisShowAlways): Chart 68 | { 69 | $this->yaxisShowAlways = $yaxisShowAlways; 70 | 71 | $this->setOption([ 72 | 'yaxis' => [ 73 | 'showAlways' => $yaxisShowAlways, 74 | ], 75 | ]); 76 | 77 | return $this; 78 | } 79 | 80 | public function getYaxisShowAlways(): bool 81 | { 82 | return $this->yaxisShowAlways; 83 | } 84 | 85 | public function setYaxisShowForNullSeries(bool $yaxisShowForNullSeries): Chart 86 | { 87 | $this->yaxisShowForNullSeries = $yaxisShowForNullSeries; 88 | 89 | $this->setOption([ 90 | 'yaxis' => [ 91 | 'showForNullSeries' => $yaxisShowForNullSeries, 92 | ], 93 | ]); 94 | 95 | return $this; 96 | } 97 | 98 | public function getYaxisShowForNullSeries(): bool 99 | { 100 | return $this->yaxisShowForNullSeries; 101 | } 102 | 103 | public function setYaxisSeriesName(string $yaxisSeriesName): Chart 104 | { 105 | $this->yaxisSeriesName = $yaxisSeriesName; 106 | 107 | $this->setOption([ 108 | 'yaxis' => [ 109 | 'seriesName' => $yaxisSeriesName, 110 | ], 111 | ]); 112 | 113 | return $this; 114 | } 115 | 116 | public function getYaxisSeriesName(): string 117 | { 118 | return $this->yaxisSeriesName; 119 | } 120 | 121 | public function setYaxisOpposite(bool $yaxisOpposite): Chart 122 | { 123 | $this->yaxisOpposite = $yaxisOpposite; 124 | 125 | $this->setOption([ 126 | 'yaxis' => [ 127 | 'opposite' => $yaxisOpposite, 128 | ], 129 | ]); 130 | 131 | return $this; 132 | } 133 | 134 | public function getYaxisOpposite(): bool 135 | { 136 | return $this->yaxisOpposite; 137 | } 138 | 139 | public function setYaxisReversed(bool $yaxisReversed): Chart 140 | { 141 | $this->yaxisReversed = $yaxisReversed; 142 | 143 | $this->setOption([ 144 | 'yaxis' => [ 145 | 'reversed' => $yaxisReversed, 146 | ], 147 | ]); 148 | 149 | return $this; 150 | } 151 | 152 | public function getYaxisReversed(): bool 153 | { 154 | return $this->yaxisReversed; 155 | } 156 | 157 | public function setYaxisLogarithmic(bool $yaxisLogarithmic): Chart 158 | { 159 | $this->yaxisLogarithmic = $yaxisLogarithmic; 160 | 161 | $this->setOption([ 162 | 'yaxis' => [ 163 | 'logarithmic' => $yaxisLogarithmic, 164 | ], 165 | ]); 166 | 167 | return $this; 168 | } 169 | 170 | public function getYaxisLogarithmic(): bool 171 | { 172 | return $this->yaxisLogarithmic; 173 | } 174 | 175 | public function setYaxisLogBase(int $yaxisLogBase): Chart 176 | { 177 | $this->yaxisLogBase = $yaxisLogBase; 178 | 179 | $this->setOption([ 180 | 'yaxis' => [ 181 | 'logBase' => $yaxisLogBase, 182 | ], 183 | ]); 184 | 185 | return $this; 186 | } 187 | 188 | public function getYaxisLogBase(): int 189 | { 190 | return $this->yaxisLogBase; 191 | } 192 | 193 | public function setYaxisTickAmount(int $yaxisTickAmount): Chart 194 | { 195 | $this->yaxisTickAmount = $yaxisTickAmount; 196 | 197 | $this->setOption([ 198 | 'yaxis' => [ 199 | 'tickAmount' => $yaxisTickAmount, 200 | ], 201 | ]); 202 | 203 | return $this; 204 | } 205 | 206 | public function getYaxisTickAmount(): int 207 | { 208 | return $this->yaxisTickAmount; 209 | } 210 | 211 | public function setYaxisMin(int $yaxisMin): Chart 212 | { 213 | $this->yaxisMin = $yaxisMin; 214 | 215 | $this->setOption([ 216 | 'yaxis' => [ 217 | 'min' => $yaxisMin, 218 | ], 219 | ]); 220 | 221 | return $this; 222 | } 223 | 224 | public function getYaxisMin(): int 225 | { 226 | return $this->yaxisMin; 227 | } 228 | 229 | public function setYaxisMax(int $yaxisMax): Chart 230 | { 231 | $this->yaxisMax = $yaxisMax; 232 | 233 | $this->setOption([ 234 | 'yaxis' => [ 235 | 'max' => $yaxisMax, 236 | ], 237 | ]); 238 | 239 | return $this; 240 | } 241 | 242 | public function getYaxisMax(): int 243 | { 244 | return $this->yaxisMax; 245 | } 246 | 247 | public function setYaxisForceNiceScale(bool $yaxisForceNiceScale): Chart 248 | { 249 | $this->yaxisForceNiceScale = $yaxisForceNiceScale; 250 | 251 | $this->setOption([ 252 | 'yaxis' => [ 253 | 'forceNiceScale' => $yaxisForceNiceScale, 254 | ], 255 | ]); 256 | 257 | return $this; 258 | } 259 | 260 | public function getYaxisForceNiceScale(): bool 261 | { 262 | return $this->yaxisForceNiceScale; 263 | } 264 | 265 | public function setYaxisFloating(bool $yaxisFloating): Chart 266 | { 267 | $this->yaxisFloating = $yaxisFloating; 268 | 269 | $this->setOption([ 270 | 'yaxis' => [ 271 | 'floating' => $yaxisFloating, 272 | ], 273 | ]); 274 | 275 | return $this; 276 | } 277 | 278 | public function getYaxisFloating(): bool 279 | { 280 | return $this->yaxisFloating; 281 | } 282 | 283 | public function setYaxisDecimalsInFloat(int $yaxisDecimalsInFloat): Chart 284 | { 285 | $this->yaxisDecimalsInFloat = $yaxisDecimalsInFloat; 286 | 287 | $this->setOption([ 288 | 'yaxis' => [ 289 | 'decimalsInFloat' => $yaxisDecimalsInFloat, 290 | ], 291 | ]); 292 | 293 | return $this; 294 | } 295 | 296 | public function getYaxisDecimalsInFloat(): int 297 | { 298 | return $this->yaxisDecimalsInFloat; 299 | } 300 | 301 | public function setYaxisLabels(array $yaxisLabels): Chart 302 | { 303 | $this->yaxisLabels = $yaxisLabels; 304 | 305 | $this->setOption([ 306 | 'yaxis' => [ 307 | 'labels' => $yaxisLabels, 308 | ], 309 | ]); 310 | 311 | return $this; 312 | } 313 | 314 | public function getYaxisLabels(): array 315 | { 316 | return $this->yaxisLabels; 317 | } 318 | 319 | public function setYaxisAxisBorder(array $yaxisAxisBorder): Chart 320 | { 321 | $this->yaxisAxisBorder = $yaxisAxisBorder; 322 | 323 | $this->setOption([ 324 | 'yaxis' => [ 325 | 'axisBorder' => $yaxisAxisBorder, 326 | ], 327 | ]); 328 | 329 | return $this; 330 | } 331 | 332 | public function getYaxisAxisBorder(): array 333 | { 334 | return $this->yaxisAxisBorder; 335 | } 336 | 337 | public function setYaxisAxisTicks(array $yaxisAxisTicks): Chart 338 | { 339 | $this->yaxisAxisTicks = $yaxisAxisTicks; 340 | 341 | $this->setOption([ 342 | 'yaxis' => [ 343 | 'axisTicks' => $yaxisAxisTicks, 344 | ], 345 | ]); 346 | 347 | return $this; 348 | } 349 | 350 | public function getYaxisAxisTicks(): array 351 | { 352 | return $this->yaxisAxisTicks; 353 | } 354 | 355 | public function setYaxisTitle(array $yaxisTitle): Chart 356 | { 357 | $this->yaxisTitle = $yaxisTitle; 358 | 359 | $this->setOption([ 360 | 'yaxis' => [ 361 | 'title' => $yaxisTitle, 362 | ], 363 | ]); 364 | 365 | return $this; 366 | } 367 | 368 | public function getYaxisTitle(): array 369 | { 370 | return $this->yaxisTitle; 371 | } 372 | 373 | public function setYaxisCrosshairs(array $yaxisCrosshairs): Chart 374 | { 375 | $this->yaxisCrosshairs = $yaxisCrosshairs; 376 | 377 | $this->setOption([ 378 | 'yaxis' => [ 379 | 'crosshairs' => $yaxisCrosshairs, 380 | ], 381 | ]); 382 | 383 | return $this; 384 | } 385 | 386 | public function getYaxisCrosshairs(): array 387 | { 388 | return $this->yaxisCrosshairs; 389 | } 390 | 391 | public function setYaxisTooltip(array $yaxisTooltip): Chart 392 | { 393 | $this->yaxisTooltip = $yaxisTooltip; 394 | 395 | $this->setOption([ 396 | 'yaxis' => [ 397 | 'tooltip' => $yaxisTooltip, 398 | ], 399 | ]); 400 | 401 | return $this; 402 | } 403 | 404 | public function getYaxisTooltip(): array 405 | { 406 | return $this->yaxisTooltip; 407 | } 408 | } 409 | -------------------------------------------------------------------------------- /src/Provider.php: -------------------------------------------------------------------------------- 1 | app->alias(Chart::class, 'apexcharts'); 17 | 18 | $this->mergeConfigFrom(__DIR__ . '/Config/apexcharts.php', 'apexcharts'); 19 | } 20 | 21 | /** 22 | * When this method is apply we have all laravel providers and methods available 23 | */ 24 | public function boot(): void 25 | { 26 | $this->loadViewsFrom(__DIR__ . '/Views', 'apexcharts'); 27 | 28 | $this->publishes([ 29 | __DIR__ . '/Config/apexcharts.php' => config_path('apexcharts.php'), 30 | __DIR__ . '/Public' => public_path('vendor/apexcharts'), 31 | __DIR__ . '/Views' => resource_path('views/vendor/apexcharts'), 32 | ], 'apexcharts'); 33 | 34 | $this->registerBladeDirectives(); 35 | } 36 | 37 | public function registerBladeDirectives(): void 38 | { 39 | $this->callAfterResolving('blade.compiler', function (BladeCompiler $bladeCompiler) { 40 | $bladeCompiler->directive('apexchartsScripts', function ($expression) { 41 | return '{!! \Akaunting\Apexcharts\Chart::loadScript(' . $expression . ') !!}'; 42 | }); 43 | }); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/Public/locales/ar.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ar", 3 | "options": { 4 | "months": [ 5 | "يناير", 6 | "فبراير", 7 | "مارس", 8 | "أبريل", 9 | "مايو", 10 | "يونيو", 11 | "يوليو", 12 | "أغسطس", 13 | "سبتمبر", 14 | "أكتوبر", 15 | "نوفمبر", 16 | "ديسمبر" 17 | ], 18 | "shortMonths": [ 19 | "يناير", 20 | "فبراير", 21 | "مارس", 22 | "أبريل", 23 | "مايو", 24 | "يونيو", 25 | "يوليو", 26 | "أغسطس", 27 | "سبتمبر", 28 | "أكتوبر", 29 | "نوفمبر", 30 | "ديسمبر" 31 | ], 32 | "days": [ 33 | "الأحد", 34 | "الإثنين", 35 | "الثلاثاء", 36 | "الأربعاء", 37 | "الخميس", 38 | "الجمعة", 39 | "السبت" 40 | ], 41 | "shortDays": [ 42 | "أحد", 43 | "إثنين", 44 | "ثلاثاء", 45 | "أربعاء", 46 | "خميس", 47 | "جمعة", 48 | "سبت" 49 | ], 50 | "toolbar": { 51 | "exportToSVG": "تحميل بصيغة SVG", 52 | "exportToPNG": "تحميل بصيغة PNG", 53 | "exportToCSV": "تحميل بصيغة CSV", 54 | "menu": "القائمة", 55 | "selection": "تحديد", 56 | "selectionZoom": "تكبير التحديد", 57 | "zoomIn": "تكبير", 58 | "zoomOut": "تصغير", 59 | "pan": "تحريك", 60 | "reset": "إعادة التعيين" 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/Public/locales/ca.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ca", 3 | "options": { 4 | "months": [ 5 | "Gener", 6 | "Febrer", 7 | "Març", 8 | "Abril", 9 | "Maig", 10 | "Juny", 11 | "Juliol", 12 | "Agost", 13 | "Setembre", 14 | "Octubre", 15 | "Novembre", 16 | "Desembre" 17 | ], 18 | "shortMonths": [ 19 | "Gen.", 20 | "Febr.", 21 | "Març", 22 | "Abr.", 23 | "Maig", 24 | "Juny", 25 | "Jul.", 26 | "Ag.", 27 | "Set.", 28 | "Oct.", 29 | "Nov.", 30 | "Des." 31 | ], 32 | "days": [ 33 | "Diumenge", 34 | "Dilluns", 35 | "Dimarts", 36 | "Dimecres", 37 | "Dijous", 38 | "Divendres", 39 | "Dissabte" 40 | ], 41 | "shortDays": ["Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"], 42 | "toolbar": { 43 | "exportToSVG": "Descarregar SVG", 44 | "exportToPNG": "Descarregar PNG", 45 | "exportToCSV": "Descarregar CSV", 46 | "menu": "Menú", 47 | "selection": "Seleccionar", 48 | "selectionZoom": "Seleccionar Zoom", 49 | "zoomIn": "Augmentar", 50 | "zoomOut": "Disminuir", 51 | "pan": "Navegació", 52 | "reset": "Reiniciar Zoom" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/cs.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cs", 3 | "options": { 4 | "months": [ 5 | "Leden", 6 | "Únor", 7 | "Březen", 8 | "Duben", 9 | "Květen", 10 | "Červen", 11 | "Červenec", 12 | "Srpen", 13 | "Září", 14 | "Říjen", 15 | "Listopad", 16 | "Prosinec" 17 | ], 18 | "shortMonths": [ 19 | "Led", 20 | "Úno", 21 | "Bře", 22 | "Dub", 23 | "Kvě", 24 | "Čvn", 25 | "Čvc", 26 | "Srp", 27 | "Zář", 28 | "Říj", 29 | "Lis", 30 | "Pro" 31 | ], 32 | "days": [ 33 | "Neděle", 34 | "Pondělí", 35 | "Úterý", 36 | "Středa", 37 | "Čtvrtek", 38 | "Pátek", 39 | "Sobota" 40 | ], 41 | "shortDays": ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"], 42 | "toolbar": { 43 | "exportToSVG": "Stáhnout SVG", 44 | "exportToPNG": "Stáhnout PNG", 45 | "exportToCSV": "Stáhnout CSV", 46 | "menu": "Menu", 47 | "selection": "Vybrat", 48 | "selectionZoom": "Zoom: Vybrat", 49 | "zoomIn": "Zoom: Přiblížit", 50 | "zoomOut": "Zoom: Oddálit", 51 | "pan": "Přesouvat", 52 | "reset": "Resetovat" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/de.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "de", 3 | "options": { 4 | "months": [ 5 | "Januar", 6 | "Februar", 7 | "März", 8 | "April", 9 | "Mai", 10 | "Juni", 11 | "Juli", 12 | "August", 13 | "September", 14 | "Oktober", 15 | "November", 16 | "Dezember" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Feb", 21 | "Mär", 22 | "Apr", 23 | "Mai", 24 | "Jun", 25 | "Jul", 26 | "Aug", 27 | "Sep", 28 | "Okt", 29 | "Nov", 30 | "Dez" 31 | ], 32 | "days": [ 33 | "Sonntag", 34 | "Montag", 35 | "Dienstag", 36 | "Mittwoch", 37 | "Donnerstag", 38 | "Freitag", 39 | "Samstag" 40 | ], 41 | "shortDays": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], 42 | "toolbar": { 43 | "exportToSVG": "SVG speichern", 44 | "exportToPNG": "PNG speichern", 45 | "exportToCSV": "CSV speichern", 46 | "menu": "Menü", 47 | "selection": "Auswahl", 48 | "selectionZoom": "Auswahl vergrößern", 49 | "zoomIn": "Vergrößern", 50 | "zoomOut": "Verkleinern", 51 | "pan": "Verschieben", 52 | "reset": "Zoom zurücksetzen" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/el.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "el", 3 | "options": { 4 | "months": [ 5 | "Ιανουάριος", 6 | "Φεβρουάριος", 7 | "Μάρτιος", 8 | "Απρίλιος", 9 | "Μάιος", 10 | "Ιούνιος", 11 | "Ιούλιος", 12 | "Αύγουστος", 13 | "Σεπτέμβριος", 14 | "Οκτώβριος", 15 | "Νοέμβριος", 16 | "Δεκέμβριος" 17 | ], 18 | "shortMonths": [ 19 | "Ιαν", 20 | "Φευ", 21 | "Μαρ", 22 | "Απρ", 23 | "Μάι", 24 | "Ιουν", 25 | "Ιουλ", 26 | "Αυγ", 27 | "Σεπ", 28 | "Οκτ", 29 | "Νοε", 30 | "Δεκ" 31 | ], 32 | "days": [ 33 | "Κυριακή", 34 | "Δευτέρα", 35 | "Τρίτη", 36 | "Τετάρτη", 37 | "Πέμπτη", 38 | "Παρασκευή", 39 | "Σάββατο" 40 | ], 41 | "shortDays": ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"], 42 | "toolbar": { 43 | "exportToSVG": "Λήψη SVG", 44 | "exportToPNG": "Λήψη PNG", 45 | "exportToCSV": "Λήψη CSV", 46 | "menu": "Menu", 47 | "selection": "Επιλογή", 48 | "selectionZoom": "Μεγένθυση βάση επιλογής", 49 | "zoomIn": "Μεγένθυνση", 50 | "zoomOut": "Σμίκρυνση", 51 | "pan": "Μετατόπιση", 52 | "reset": "Επαναφορά μεγένθυνσης" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "en", 3 | "options": { 4 | "months": [ 5 | "January", 6 | "February", 7 | "March", 8 | "April", 9 | "May", 10 | "June", 11 | "July", 12 | "August", 13 | "September", 14 | "October", 15 | "November", 16 | "December" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Feb", 21 | "Mar", 22 | "Apr", 23 | "May", 24 | "Jun", 25 | "Jul", 26 | "Aug", 27 | "Sep", 28 | "Oct", 29 | "Nov", 30 | "Dec" 31 | ], 32 | "days": [ 33 | "Sunday", 34 | "Monday", 35 | "Tuesday", 36 | "Wednesday", 37 | "Thursday", 38 | "Friday", 39 | "Saturday" 40 | ], 41 | "shortDays": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 42 | "toolbar": { 43 | "exportToSVG": "Download SVG", 44 | "exportToPNG": "Download PNG", 45 | "exportToCSV": "Download CSV", 46 | "menu": "Menu", 47 | "selection": "Selection", 48 | "selectionZoom": "Selection Zoom", 49 | "zoomIn": "Zoom In", 50 | "zoomOut": "Zoom Out", 51 | "pan": "Panning", 52 | "reset": "Reset Zoom" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/es.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "es", 3 | "options": { 4 | "months": [ 5 | "Enero", 6 | "Febrero", 7 | "Marzo", 8 | "Abril", 9 | "Mayo", 10 | "Junio", 11 | "Julio", 12 | "Agosto", 13 | "Septiembre", 14 | "Octubre", 15 | "Noviembre", 16 | "Diciembre" 17 | ], 18 | "shortMonths": [ 19 | "Ene", 20 | "Feb", 21 | "Mar", 22 | "Abr", 23 | "May", 24 | "Jun", 25 | "Jul", 26 | "Ago", 27 | "Sep", 28 | "Oct", 29 | "Nov", 30 | "Dic" 31 | ], 32 | "days": [ 33 | "Domingo", 34 | "Lunes", 35 | "Martes", 36 | "Miércoles", 37 | "Jueves", 38 | "Viernes", 39 | "Sábado" 40 | ], 41 | "shortDays": ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"], 42 | "toolbar": { 43 | "exportToSVG": "Descargar SVG", 44 | "exportToPNG": "Descargar PNG", 45 | "exportToCSV": "Descargar CSV", 46 | "menu": "Menu", 47 | "selection": "Seleccionar", 48 | "selectionZoom": "Seleccionar Zoom", 49 | "zoomIn": "Aumentar", 50 | "zoomOut": "Disminuir", 51 | "pan": "Navegación", 52 | "reset": "Reiniciar Zoom" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/et.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "et", 3 | "options": { 4 | "months": [ 5 | "jaanuar", 6 | "veebruar", 7 | "märts", 8 | "aprill", 9 | "mai", 10 | "juuni", 11 | "juuli", 12 | "august", 13 | "september", 14 | "oktoober", 15 | "november", 16 | "detsember" 17 | ], 18 | "shortMonths": [ 19 | "jaan", 20 | "veebr", 21 | "märts", 22 | "apr", 23 | "mai", 24 | "juuni", 25 | "juuli", 26 | "aug", 27 | "sept", 28 | "okt", 29 | "nov", 30 | "dets" 31 | ], 32 | "days": [ 33 | "pühapäev", 34 | "esmaspäev", 35 | "teisipäev", 36 | "kolmapäev", 37 | "neljapäev", 38 | "reede", 39 | "laupäev" 40 | ], 41 | "shortDays": [ 42 | "P", 43 | "E", 44 | "T", 45 | "K", 46 | "N", 47 | "R", 48 | "L" 49 | ], 50 | "toolbar": { 51 | "exportToSVG": "Lae alla SVG", 52 | "exportToPNG": "Lae alla PNG", 53 | "exportToCSV": "Lae alla CSV", 54 | "menu": "Menüü", 55 | "selection": "Valik", 56 | "selectionZoom": "Valiku suum", 57 | "zoomIn": "Suurenda", 58 | "zoomOut": "Vähenda", 59 | "pan": "Panoraamimine", 60 | "reset": "Lähtesta suum" 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/Public/locales/fa.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fa", 3 | "options": { 4 | "months": [ 5 | "فروردین", 6 | "اردیبهشت", 7 | "خرداد", 8 | "تیر", 9 | "مرداد", 10 | "شهریور", 11 | "مهر", 12 | "آبان", 13 | "آذر", 14 | "دی", 15 | "بهمن", 16 | "اسفند" 17 | ], 18 | "shortMonths": [ 19 | "فرو", 20 | "ارد", 21 | "خرد", 22 | "تیر", 23 | "مرد", 24 | "شهر", 25 | "مهر", 26 | "آبا", 27 | "آذر", 28 | "دی", 29 | "بهمـ", 30 | "اسفـ" 31 | ], 32 | "days": [ 33 | "یکشنبه", 34 | "دوشنبه", 35 | "سه شنبه", 36 | "چهارشنبه", 37 | "پنجشنبه", 38 | "جمعه", 39 | "شنبه" 40 | ], 41 | "shortDays": ["ی", "د", "س", "چ", "پ", "ج", "ش"], 42 | "toolbar": { 43 | "exportToSVG": "دانلود SVG", 44 | "exportToPNG": "دانلود PNG", 45 | "exportToCSV": "دانلود CSV", 46 | "menu": "منو", 47 | "selection": "انتخاب", 48 | "selectionZoom": "بزرگنمایی انتخابی", 49 | "zoomIn": "بزرگنمایی", 50 | "zoomOut": "کوچکنمایی", 51 | "pan": "پیمایش", 52 | "reset": "بازنشانی بزرگنمایی" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/fi.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fi", 3 | "options": { 4 | "months": [ 5 | "Tammikuu", 6 | "Helmikuu", 7 | "Maaliskuu", 8 | "Huhtikuu", 9 | "Toukokuu", 10 | "Kesäkuu", 11 | "Heinäkuu", 12 | "Elokuu", 13 | "Syyskuu", 14 | "Lokakuu", 15 | "Marraskuu", 16 | "Joulukuu" 17 | ], 18 | "shortMonths": [ 19 | "Tammi", 20 | "Helmi", 21 | "Maalis", 22 | "Huhti", 23 | "Touko", 24 | "Kesä", 25 | "Heinä", 26 | "Elo", 27 | "Syys", 28 | "Loka", 29 | "Marras", 30 | "Joulu" 31 | ], 32 | "days": [ 33 | "Sunnuntai", 34 | "Maanantai", 35 | "Tiistai", 36 | "Keskiviikko", 37 | "Torstai", 38 | "Perjantai", 39 | "Lauantai" 40 | ], 41 | "shortDays": ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"], 42 | "toolbar": { 43 | "exportToSVG": "Lataa SVG", 44 | "exportToPNG": "Lataa PNG", 45 | "exportToCSV": "Lataa CSV", 46 | "menu": "Valikko", 47 | "selection": "Valinta", 48 | "selectionZoom": "Valinnan zoomaus", 49 | "zoomIn": "Lähennä", 50 | "zoomOut": "Loitonna", 51 | "pan": "Panoroi", 52 | "reset": "Nollaa zoomaus" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fr", 3 | "options": { 4 | "months": [ 5 | "janvier", 6 | "février", 7 | "mars", 8 | "avril", 9 | "mai", 10 | "juin", 11 | "juillet", 12 | "août", 13 | "septembre", 14 | "octobre", 15 | "novembre", 16 | "décembre" 17 | ], 18 | "shortMonths": [ 19 | "janv.", 20 | "févr.", 21 | "mars", 22 | "avr.", 23 | "mai", 24 | "juin", 25 | "juill.", 26 | "août", 27 | "sept.", 28 | "oct.", 29 | "nov.", 30 | "déc." 31 | ], 32 | "days": [ 33 | "dimanche", 34 | "lundi", 35 | "mardi", 36 | "mercredi", 37 | "jeudi", 38 | "vendredi", 39 | "samedi" 40 | ], 41 | "shortDays": ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], 42 | "toolbar": { 43 | "exportToSVG": "Télécharger au format SVG", 44 | "exportToPNG": "Télécharger au format PNG", 45 | "exportToCSV": "Télécharger au format CSV", 46 | "menu": "Menu", 47 | "selection": "Sélection", 48 | "selectionZoom": "Sélection et zoom", 49 | "zoomIn": "Zoomer", 50 | "zoomOut": "Dézoomer", 51 | "pan": "Navigation", 52 | "reset": "Réinitialiser le zoom" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/he.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "he", 3 | "options": { 4 | "months": [ 5 | "ינואר", 6 | "פברואר", 7 | "מרץ", 8 | "אפריל", 9 | "מאי", 10 | "יוני", 11 | "יולי", 12 | "אוגוסט", 13 | "ספטמבר", 14 | "אוקטובר", 15 | "נובמבר", 16 | "דצמבר" 17 | ], 18 | "shortMonths": [ 19 | "ינו׳", 20 | "פבר׳", 21 | "מרץ", 22 | "אפר׳", 23 | "מאי", 24 | "יוני", 25 | "יולי", 26 | "אוג׳", 27 | "ספט׳", 28 | "אוק׳", 29 | "נוב׳", 30 | "דצמ׳" 31 | ], 32 | "days": [ 33 | "ראשון", 34 | "שני", 35 | "שלישי", 36 | "רביעי", 37 | "חמישי", 38 | "שישי", 39 | "שבת" 40 | ], 41 | "shortDays": ["א׳", "ב׳", "ג׳", "ד׳", "ה׳", "ו׳", "ש׳"], 42 | "toolbar": { 43 | "exportToSVG": "הורד SVG", 44 | "exportToPNG": "הורד PNG", 45 | "exportToCSV": "הורד CSV", 46 | "menu": "תפריט", 47 | "selection": "בחירה", 48 | "selectionZoom": "זום בחירה", 49 | "zoomIn": "הגדלה", 50 | "zoomOut": "הקטנה", 51 | "pan": "הזזה", 52 | "reset": "איפוס תצוגה" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/hi.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hi", 3 | "options": { 4 | "months": [ 5 | "जनवरी", 6 | "फ़रवरी", 7 | "मार्च", 8 | "अप्रैल", 9 | "मई", 10 | "जून", 11 | "जुलाई", 12 | "अगस्त", 13 | "सितंबर", 14 | "अक्टूबर", 15 | "नवंबर", 16 | "दिसंबर" 17 | ], 18 | "shortMonths": [ 19 | "जनवरी", 20 | "फ़रवरी", 21 | "मार्च", 22 | "अप्रैल", 23 | "मई", 24 | "जून", 25 | "जुलाई", 26 | "अगस्त", 27 | "सितंबर", 28 | "अक्टूबर", 29 | "नवंबर", 30 | "दिसंबर" 31 | ], 32 | "days": [ 33 | "रविवार", 34 | "सोमवार", 35 | "मंगलवार", 36 | "बुधवार", 37 | "गुरुवार", 38 | "शुक्रवार", 39 | "शनिवार" 40 | ], 41 | "shortDays": ["रवि", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"], 42 | "toolbar": { 43 | "exportToSVG": "निर्यात SVG", 44 | "exportToPNG": "निर्यात PNG", 45 | "exportToCSV": "निर्यात CSV", 46 | "menu": "सूची", 47 | "selection": "चयन", 48 | "selectionZoom": "ज़ूम करना", 49 | "zoomIn": "ज़ूम इन", 50 | "zoomOut": "ज़ूम आउट", 51 | "pan": "पैनिंग", 52 | "reset": "फिर से कायम करना" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/hr.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hr", 3 | "options": { 4 | "months": [ 5 | "Siječanj", 6 | "Veljača", 7 | "Ožujak", 8 | "Travanj", 9 | "Svibanj", 10 | "Lipanj", 11 | "Srpanj", 12 | "Kolovoz", 13 | "Rujan", 14 | "Listopad", 15 | "Studeni", 16 | "Prosinac" 17 | ], 18 | "shortMonths": [ 19 | "Sij", 20 | "Velj", 21 | "Ožu", 22 | "Tra", 23 | "Svi", 24 | "Lip", 25 | "Srp", 26 | "Kol", 27 | "Ruj", 28 | "Lis", 29 | "Stu", 30 | "Pro" 31 | ], 32 | "days": [ 33 | "Nedjelja", 34 | "Ponedjeljak", 35 | "Utorak", 36 | "Srijeda", 37 | "Četvrtak", 38 | "Petak", 39 | "Subota" 40 | ], 41 | "shortDays": ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"], 42 | "toolbar": { 43 | "exportToSVG": "Preuzmi SVG", 44 | "exportToPNG": "Preuzmi PNG", 45 | "exportToCSV": "Preuzmi CSV", 46 | "menu": "Izbornik", 47 | "selection": "Odabir", 48 | "selectionZoom": "Odabirno povećanje", 49 | "zoomIn": "Uvećajte prikaz", 50 | "zoomOut": "Umanjite prikaz", 51 | "pan": "Pomicanje", 52 | "reset": "Povratak na zadani prikaz" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/hu.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hu", 3 | "options": { 4 | "months": [ 5 | "január", 6 | "február", 7 | "március", 8 | "április", 9 | "május", 10 | "június", 11 | "július", 12 | "augusztus", 13 | "szeptember", 14 | "október", 15 | "november", 16 | "december" 17 | ], 18 | "shortMonths": [ 19 | "jan", 20 | "feb", 21 | "mar", 22 | "ápr", 23 | "máj", 24 | "jún", 25 | "júl", 26 | "aug", 27 | "szept", 28 | "okt", 29 | "nov", 30 | "dec" 31 | ], 32 | "days": [ 33 | "hétfő", 34 | "kedd", 35 | "szerda", 36 | "csütörtök", 37 | "péntek", 38 | "szombat", 39 | "vasárnap" 40 | ], 41 | "shortDays": [ 42 | "H", 43 | "K", 44 | "Sze", 45 | "Cs", 46 | "P", 47 | "Szo", 48 | "V" 49 | ], 50 | "toolbar": { 51 | "exportToSVG": "Exportálás SVG-be", 52 | "exportToPNG": "Exportálás PNG-be", 53 | "exportToCSV": "Exportálás CSV-be", 54 | "menu": "Fő ajánlat", 55 | "download": "SVG letöltése", 56 | "selection": "Kiválasztás", 57 | "selectionZoom": "Nagyító kiválasztása", 58 | "zoomIn": "Nagyítás", 59 | "zoomOut": "Kicsinyítés", 60 | "pan": "Képcsúsztatás", 61 | "reset": "Nagyító visszaállítása" 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/Public/locales/hy.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hy", 3 | "options": { 4 | "months": [ 5 | "Հունվար", 6 | "Փետրվար", 7 | "Մարտ", 8 | "Ապրիլ", 9 | "Մայիս", 10 | "Հունիս", 11 | "Հուլիս", 12 | "Օգոստոս", 13 | "Սեպտեմբեր", 14 | "Հոկտեմբեր", 15 | "Նոյեմբեր", 16 | "Դեկտեմբեր" 17 | ], 18 | "shortMonths": [ 19 | "Հնվ", 20 | "Փտվ", 21 | "Մրտ", 22 | "Ապր", 23 | "Մյս", 24 | "Հնս", 25 | "Հլիս", 26 | "Օգս", 27 | "Սեպ", 28 | "Հոկ", 29 | "Նոյ", 30 | "Դեկ" 31 | ], 32 | "days": [ 33 | "Կիրակի", 34 | "Երկուշաբթի", 35 | "Երեքշաբթի", 36 | "Չորեքշաբթի", 37 | "Հինգշաբթի", 38 | "Ուրբաթ", 39 | "Շաբաթ" 40 | ], 41 | "shortDays": ["Կիր", "Երկ", "Երք", "Չրք", "Հնգ", "Ուրբ", "Շբթ"], 42 | "toolbar": { 43 | "exportToSVG": "Բեռնել SVG", 44 | "exportToPNG": "Բեռնել PNG", 45 | "exportToCSV": "Բեռնել CSV", 46 | "menu": "Մենյու", 47 | "selection": "Ընտրված", 48 | "selectionZoom": "Ընտրված հատվածի խոշորացում", 49 | "zoomIn": "Խոշորացնել", 50 | "zoomOut": "Մանրացնել", 51 | "pan": "Տեղափոխում", 52 | "reset": "Բերել սկզբնական վիճակի" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/id.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "id", 3 | "options": { 4 | "months": [ 5 | "Januari", 6 | "Februari", 7 | "Maret", 8 | "April", 9 | "Mei", 10 | "Juni", 11 | "Juli", 12 | "Agustus", 13 | "September", 14 | "Oktober", 15 | "November", 16 | "Desember" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Feb", 21 | "Mar", 22 | "Apr", 23 | "Mei", 24 | "Jun", 25 | "Jul", 26 | "Agu", 27 | "Sep", 28 | "Okt", 29 | "Nov", 30 | "Des" 31 | ], 32 | "days": ["Minggu", "Senin", "Selasa", "Rabu", "kamis", "Jumat", "Sabtu"], 33 | "shortDays": ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"], 34 | "toolbar": { 35 | "exportToSVG": "Unduh SVG", 36 | "exportToPNG": "Unduh PNG", 37 | "exportToCSV": "Unduh CSV", 38 | "menu": "Menu", 39 | "selection": "Pilihan", 40 | "selectionZoom": "Perbesar Pilihan", 41 | "zoomIn": "Perbesar", 42 | "zoomOut": "Perkecil", 43 | "pan": "Geser", 44 | "reset": "Atur Ulang Zoom" 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/Public/locales/it.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "it", 3 | "options": { 4 | "months": [ 5 | "Gennaio", 6 | "Febbraio", 7 | "Marzo", 8 | "Aprile", 9 | "Maggio", 10 | "Giugno", 11 | "Luglio", 12 | "Agosto", 13 | "Settembre", 14 | "Ottobre", 15 | "Novembre", 16 | "Dicembre" 17 | ], 18 | "shortMonths": [ 19 | "Gen", 20 | "Feb", 21 | "Mar", 22 | "Apr", 23 | "Mag", 24 | "Giu", 25 | "Lug", 26 | "Ago", 27 | "Set", 28 | "Ott", 29 | "Nov", 30 | "Dic" 31 | ], 32 | "days": [ 33 | "Domenica", 34 | "Lunedì", 35 | "Martedì", 36 | "Mercoledì", 37 | "Giovedì", 38 | "Venerdì", 39 | "Sabato" 40 | ], 41 | "shortDays": ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"], 42 | "toolbar": { 43 | "exportToSVG": "Scarica SVG", 44 | "exportToPNG": "Scarica PNG", 45 | "exportToCSV": "Scarica CSV", 46 | "menu": "Menu", 47 | "selection": "Selezione", 48 | "selectionZoom": "Seleziona Zoom", 49 | "zoomIn": "Zoom In", 50 | "zoomOut": "Zoom Out", 51 | "pan": "Sposta", 52 | "reset": "Reimposta Zoom" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/ja.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ja", 3 | "options": { 4 | "months": [ 5 | "1月", 6 | "2月", 7 | "3月", 8 | "4月", 9 | "5月", 10 | "6月", 11 | "7月", 12 | "8月", 13 | "9月", 14 | "10月", 15 | "11月", 16 | "12月" 17 | ], 18 | "shortMonths": [ 19 | "1月", 20 | "2月", 21 | "3月", 22 | "4月", 23 | "5月", 24 | "6月", 25 | "7月", 26 | "8月", 27 | "9月", 28 | "10月", 29 | "11月", 30 | "12月" 31 | ], 32 | "days": [ 33 | "日曜日", 34 | "月曜日", 35 | "火曜日", 36 | "水曜日", 37 | "木曜日", 38 | "金曜日", 39 | "土曜日" 40 | ], 41 | "shortDays": ["日", "月", "火", "水", "木", "金", "土"], 42 | "toolbar": { 43 | "exportToSVG": "SVGダウンロード", 44 | "exportToPNG": "PNGダウンロード", 45 | "exportToCSV": "CSVダウンロード", 46 | "menu": "メニュー", 47 | "selection": "選択", 48 | "selectionZoom": "選択ズーム", 49 | "zoomIn": "拡大", 50 | "zoomOut": "縮小", 51 | "pan": "パン", 52 | "reset": "ズームリセット" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/ka.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ka", 3 | "options": { 4 | "months": [ 5 | "იანვარი", 6 | "თებერვალი", 7 | "მარტი", 8 | "აპრილი", 9 | "მაისი", 10 | "ივნისი", 11 | "ივლისი", 12 | "აგვისტო", 13 | "სექტემბერი", 14 | "ოქტომბერი", 15 | "ნოემბერი", 16 | "დეკემბერი" 17 | ], 18 | "shortMonths": [ 19 | "იან", 20 | "თებ", 21 | "მარ", 22 | "აპრ", 23 | "მაი", 24 | "ივნ", 25 | "ივლ", 26 | "აგვ", 27 | "სექ", 28 | "ოქტ", 29 | "ნოე", 30 | "დეკ" 31 | ], 32 | "days": [ 33 | "კვირა", 34 | "ორშაბათი", 35 | "სამშაბათი", 36 | "ოთხშაბათი", 37 | "ხუთშაბათი", 38 | "პარასკევი", 39 | "შაბათი" 40 | ], 41 | "shortDays": ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ"], 42 | "toolbar": { 43 | "exportToSVG": "გადმოქაჩე SVG", 44 | "exportToPNG": "გადმოქაჩე PNG", 45 | "exportToCSV": "გადმოქაჩე CSV", 46 | "menu": "მენიუ", 47 | "selection": "არჩევა", 48 | "selectionZoom": "არჩეულის გადიდება", 49 | "zoomIn": "გადიდება", 50 | "zoomOut": "დაპატარაება", 51 | "pan": "გადაჩოჩება", 52 | "reset": "გადიდების გაუქმება" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/ko.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ko", 3 | "options": { 4 | "months": [ 5 | "1월", 6 | "2월", 7 | "3월", 8 | "4월", 9 | "5월", 10 | "6월", 11 | "7월", 12 | "8월", 13 | "9월", 14 | "10월", 15 | "11월", 16 | "12월" 17 | ], 18 | "shortMonths": [ 19 | "1월", 20 | "2월", 21 | "3월", 22 | "4월", 23 | "5월", 24 | "6월", 25 | "7월", 26 | "8월", 27 | "9월", 28 | "10월", 29 | "11월", 30 | "12월" 31 | ], 32 | "days": [ 33 | "일요일", 34 | "월요일", 35 | "화요일", 36 | "수요일", 37 | "목요일", 38 | "금요일", 39 | "토요일" 40 | ], 41 | "shortDays": ["일", "월", "화", "수", "목", "금", "토"], 42 | "toolbar": { 43 | "exportToSVG": "SVG 다운로드", 44 | "exportToPNG": "PNG 다운로드", 45 | "exportToCSV": "CSV 다운로드", 46 | "menu": "메뉴", 47 | "selection": "선택", 48 | "selectionZoom": "선택영역 확대", 49 | "zoomIn": "확대", 50 | "zoomOut": "축소", 51 | "pan": "패닝", 52 | "reset": "원래대로" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/lt.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lt", 3 | "options": { 4 | "months": [ 5 | "Sausis", 6 | "Vasaris", 7 | "Kovas", 8 | "Balandis", 9 | "Gegužė", 10 | "Birželis", 11 | "Liepa", 12 | "Rugpjūtis", 13 | "Rugsėjis", 14 | "Spalis", 15 | "Lapkritis", 16 | "Gruodis" 17 | ], 18 | "shortMonths": [ 19 | "Sau", 20 | "Vas", 21 | "Kov", 22 | "Bal", 23 | "Geg", 24 | "Bir", 25 | "Lie", 26 | "Rgp", 27 | "Rgs", 28 | "Spl", 29 | "Lap", 30 | "Grd" 31 | ], 32 | "days": [ 33 | "Sekmadienis", 34 | "Pirmadienis", 35 | "Antradienis", 36 | "Trečiadienis", 37 | "Ketvirtadienis", 38 | "Penktadienis", 39 | "Šeštadienis" 40 | ], 41 | "shortDays": ["Sk", "Per", "An", "Tr", "Kt", "Pn", "Št"], 42 | "toolbar": { 43 | "exportToSVG": "Atsisiųsti SVG", 44 | "exportToPNG": "Atsisiųsti PNG", 45 | "exportToCSV": "Atsisiųsti CSV", 46 | "menu": "Menu", 47 | "selection": "Pasirinkimas", 48 | "selectionZoom": "Zoom: Pasirinkimas", 49 | "zoomIn": "Zoom: Priartinti", 50 | "zoomOut": "Zoom: Atitolinti", 51 | "pan": "Perkėlimas", 52 | "reset": "Atstatyti" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/lv.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lv", 3 | "options": { 4 | "months": [ 5 | "janvāris", 6 | "februāris", 7 | "marts", 8 | "aprīlis", 9 | "maijs", 10 | "jūnijs", 11 | "jūlijs", 12 | "augusts", 13 | "septembris", 14 | "oktobris", 15 | "novembris", 16 | "decembris" 17 | ], 18 | "shortMonths": [ 19 | "janv", 20 | "febr", 21 | "marts", 22 | "apr", 23 | "maijs", 24 | "jūn", 25 | "jūl", 26 | "aug", 27 | "sept", 28 | "okt", 29 | "nov", 30 | "dec" 31 | ], 32 | "days": [ 33 | "svētdiena", 34 | "pirmdiena", 35 | "otrdiena", 36 | "trešdiena", 37 | "ceturtdiena", 38 | "piektdiena", 39 | "sestdiena" 40 | ], 41 | "shortDays": [ 42 | "Sv", 43 | "P", 44 | "O", 45 | "T", 46 | "C", 47 | "P", 48 | "S" 49 | ], 50 | "toolbar": { 51 | "exportToSVG": "Lejuplādēt SVG", 52 | "exportToPNG": "Lejuplādēt PNG", 53 | "exportToCSV": "Lejuplādēt CSV", 54 | "menu": "Izvēlne", 55 | "selection": "Atlase", 56 | "selectionZoom": "Pietuvināt atlasi", 57 | "zoomIn": "Pietuvināt", 58 | "zoomOut": "Attālināt", 59 | "pan": "Pārvietoties diagrammā", 60 | "reset": "Atiestatīt pietuvinājumu" 61 | } 62 | } 63 | } 64 | 65 | -------------------------------------------------------------------------------- /src/Public/locales/nb.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nb", 3 | "options": { 4 | "months": [ 5 | "Januar", 6 | "Februar", 7 | "Mars", 8 | "April", 9 | "Mai", 10 | "Juni", 11 | "Juli", 12 | "August", 13 | "September", 14 | "Oktober", 15 | "November", 16 | "Desember" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Feb", 21 | "Mar", 22 | "Apr", 23 | "Mai", 24 | "Jun", 25 | "Jul", 26 | "Aug", 27 | "Sep", 28 | "Okt", 29 | "Nov", 30 | "Des" 31 | ], 32 | "days": [ 33 | "Søndag", 34 | "Mandag", 35 | "Tirsdag", 36 | "Onsdag", 37 | "Torsdag", 38 | "Fredag", 39 | "Lørdag" 40 | ], 41 | "shortDays": ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"], 42 | "toolbar": { 43 | "exportToSVG": "Last ned SVG", 44 | "exportToPNG": "Last ned PNG", 45 | "exportToCSV": "Last ned CSV", 46 | "menu": "Menu", 47 | "selection": "Velg", 48 | "selectionZoom": "Zoom: Velg", 49 | "zoomIn": "Zoome inn", 50 | "zoomOut": "Zoome ut", 51 | "pan": "Skyving", 52 | "reset": "Start på nytt" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/nl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nl", 3 | "options": { 4 | "months": [ 5 | "Januari", 6 | "Februari", 7 | "Maart", 8 | "April", 9 | "Mei", 10 | "Juni", 11 | "Juli", 12 | "Augustus", 13 | "September", 14 | "Oktober", 15 | "November", 16 | "December" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Feb", 21 | "Mrt", 22 | "Apr", 23 | "Mei", 24 | "Jun", 25 | "Jul", 26 | "Aug", 27 | "Sep", 28 | "Okt", 29 | "Nov", 30 | "Dec" 31 | ], 32 | "days": [ 33 | "Zondag", 34 | "Maandag", 35 | "Dinsdag", 36 | "Woensdag", 37 | "Donderdag", 38 | "Vrijdag", 39 | "Zaterdag" 40 | ], 41 | "shortDays": ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"], 42 | "toolbar": { 43 | "exportToSVG": "Download SVG", 44 | "exportToPNG": "Download PNG", 45 | "exportToCSV": "Download CSV", 46 | "menu": "Menu", 47 | "selection": "Selectie", 48 | "selectionZoom": "Zoom selectie", 49 | "zoomIn": "Zoom in", 50 | "zoomOut": "Zoom out", 51 | "pan": "Verplaatsen", 52 | "reset": "Standaardwaarden" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pl", 3 | "options": { 4 | "months": [ 5 | "Styczeń", 6 | "Luty", 7 | "Marzec", 8 | "Kwiecień", 9 | "Maj", 10 | "Czerwiec", 11 | "Lipiec", 12 | "Sierpień", 13 | "Wrzesień", 14 | "Październik", 15 | "Listopad", 16 | "Grudzień" 17 | ], 18 | "shortMonths": [ 19 | "Sty", 20 | "Lut", 21 | "Mar", 22 | "Kwi", 23 | "Maj", 24 | "Cze", 25 | "Lip", 26 | "Sie", 27 | "Wrz", 28 | "Paź", 29 | "Lis", 30 | "Gru" 31 | ], 32 | "days": [ 33 | "Niedziela", 34 | "Poniedziałek", 35 | "Wtorek", 36 | "Środa", 37 | "Czwartek", 38 | "Piątek", 39 | "Sobota" 40 | ], 41 | "shortDays": ["Nd", "Pn", "Wt", "Śr", "Cz", "Pt", "Sb"], 42 | "toolbar": { 43 | "exportToSVG": "Pobierz SVG", 44 | "exportToPNG": "Pobierz PNG", 45 | "exportToCSV": "Pobierz CSV", 46 | "menu": "Menu", 47 | "selection": "Wybieranie", 48 | "selectionZoom": "Zoom: Wybieranie", 49 | "zoomIn": "Zoom: Przybliż", 50 | "zoomOut": "Zoom: Oddal", 51 | "pan": "Przesuwanie", 52 | "reset": "Resetuj" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/pt-br.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pt-br", 3 | "options": { 4 | "months": [ 5 | "Janeiro", 6 | "Fevereiro", 7 | "Março", 8 | "Abril", 9 | "Maio", 10 | "Junho", 11 | "Julho", 12 | "Agosto", 13 | "Setembro", 14 | "Outubro", 15 | "Novembro", 16 | "Dezembro" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Fev", 21 | "Mar", 22 | "Abr", 23 | "Mai", 24 | "Jun", 25 | "Jul", 26 | "Ago", 27 | "Set", 28 | "Out", 29 | "Nov", 30 | "Dez" 31 | ], 32 | "days": [ 33 | "Domingo", 34 | "Segunda", 35 | "Terça", 36 | "Quarta", 37 | "Quinta", 38 | "Sexta", 39 | "Sábado" 40 | ], 41 | "shortDays": ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"], 42 | "toolbar": { 43 | "exportToSVG": "Baixar SVG", 44 | "exportToPNG": "Baixar PNG", 45 | "exportToCSV": "Baixar CSV", 46 | "menu": "Menu", 47 | "selection": "Selecionar", 48 | "selectionZoom": "Selecionar Zoom", 49 | "zoomIn": "Aumentar", 50 | "zoomOut": "Diminuir", 51 | "pan": "Navegação", 52 | "reset": "Reiniciar Zoom" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/pt.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pt", 3 | "options": { 4 | "months": [ 5 | "Janeiro", 6 | "Fevereiro", 7 | "Março", 8 | "Abril", 9 | "Maio", 10 | "Junho", 11 | "Julho", 12 | "Agosto", 13 | "Setembro", 14 | "Outubro", 15 | "Novembro", 16 | "Dezembro" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Fev", 21 | "Mar", 22 | "Abr", 23 | "Mai", 24 | "Jun", 25 | "Jul", 26 | "Ag", 27 | "Set", 28 | "Out", 29 | "Nov", 30 | "Dez" 31 | ], 32 | "days": [ 33 | "Domingo", 34 | "Segunda-feira", 35 | "Terça-feira", 36 | "Quarta-feira", 37 | "Quinta-feira", 38 | "Sexta-feira", 39 | "Sábado" 40 | ], 41 | "shortDays": ["Do", "Se", "Te", "Qa", "Qi", "Sx", "Sa"], 42 | "toolbar": { 43 | "exportToSVG": "Baixar SVG", 44 | "exportToPNG": "Baixar PNG", 45 | "exportToCSV": "Baixar CSV", 46 | "menu": "Menu", 47 | "selection": "Selecionar", 48 | "selectionZoom": "Zoom: Selecionar", 49 | "zoomIn": "Zoom: Aumentar", 50 | "zoomOut": "Zoom: Diminuir", 51 | "pan": "Deslocamento", 52 | "reset": "Redefinir" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/rs.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rs", 3 | "options": { 4 | "months": [ 5 | "Januar", 6 | "Februar", 7 | "Mart", 8 | "April", 9 | "Maj", 10 | "Jun", 11 | "Jul", 12 | "Avgust", 13 | "Septembar", 14 | "Oktobar", 15 | "Novembar", 16 | "Decembar" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Feb", 21 | "Mar", 22 | "Apr", 23 | "Maj", 24 | "Jun", 25 | "Jul", 26 | "Avg", 27 | "Sep", 28 | "Okt", 29 | "Nov", 30 | "Dec" 31 | ], 32 | "days": [ 33 | "Nedelja", 34 | "Ponedeljak", 35 | "Utorak", 36 | "Sreda", 37 | "Četvrtak", 38 | "Petak", 39 | "Subota" 40 | ], 41 | "shortDays": ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"], 42 | "toolbar": { 43 | "exportToSVG": "Preuzmi SVG", 44 | "exportToPNG": "Preuzmi PNG", 45 | "exportToCSV": "Preuzmi CSV", 46 | "menu": "Meni", 47 | "selection": "Odabir", 48 | "selectionZoom": "Odabirno povećanje", 49 | "zoomIn": "Uvećajte prikaz", 50 | "zoomOut": "Umanjite prikaz", 51 | "pan": "Pomeranje", 52 | "reset": "Resetuj prikaz" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ru", 3 | "options": { 4 | "months": [ 5 | "Январь", 6 | "Февраль", 7 | "Март", 8 | "Апрель", 9 | "Май", 10 | "Июнь", 11 | "Июль", 12 | "Август", 13 | "Сентябрь", 14 | "Октябрь", 15 | "Ноябрь", 16 | "Декабрь" 17 | ], 18 | "shortMonths": [ 19 | "Янв", 20 | "Фев", 21 | "Мар", 22 | "Апр", 23 | "Май", 24 | "Июн", 25 | "Июл", 26 | "Авг", 27 | "Сен", 28 | "Окт", 29 | "Ноя", 30 | "Дек" 31 | ], 32 | "days": [ 33 | "Воскресенье", 34 | "Понедельник", 35 | "Вторник", 36 | "Среда", 37 | "Четверг", 38 | "Пятница", 39 | "Суббота" 40 | ], 41 | "shortDays": ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], 42 | "toolbar": { 43 | "exportToSVG": "Сохранить SVG", 44 | "exportToPNG": "Сохранить PNG", 45 | "exportToCSV": "Сохранить CSV", 46 | "menu": "Меню", 47 | "selection": "Выбор", 48 | "selectionZoom": "Выбор с увеличением", 49 | "zoomIn": "Увеличить", 50 | "zoomOut": "Уменьшить", 51 | "pan": "Перемещение", 52 | "reset": "Сбросить увеличение" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/se.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "se", 3 | "options": { 4 | "months": [ 5 | "Januari", 6 | "Februari", 7 | "Mars", 8 | "April", 9 | "Maj", 10 | "Juni", 11 | "Juli", 12 | "Augusti", 13 | "September", 14 | "Oktober", 15 | "November", 16 | "December" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Feb", 21 | "Mar", 22 | "Apr", 23 | "Maj", 24 | "Juni", 25 | "Juli", 26 | "Aug", 27 | "Sep", 28 | "Okt", 29 | "Nov", 30 | "Dec" 31 | ], 32 | "days": [ 33 | "Söndag", 34 | "Måndag", 35 | "Tisdag", 36 | "Onsdag", 37 | "Torsdag", 38 | "Fredag", 39 | "Lördag" 40 | ], 41 | "shortDays": ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"], 42 | "toolbar": { 43 | "exportToSVG": "Ladda SVG", 44 | "exportToPNG": "Ladda PNG", 45 | "exportToCSV": "Ladda CSV", 46 | "menu": "Meny", 47 | "selection": "Selektion", 48 | "selectionZoom": "Val av zoom", 49 | "zoomIn": "Zooma in", 50 | "zoomOut": "Zooma ut", 51 | "pan": "Panorering", 52 | "reset": "Återställ zoomning" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/sk.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sk", 3 | "options": { 4 | "months": [ 5 | "Január", 6 | "Február", 7 | "Marec", 8 | "Apríl", 9 | "Máj", 10 | "Jún", 11 | "Júl", 12 | "August", 13 | "September", 14 | "Október", 15 | "November", 16 | "December" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Feb", 21 | "Mar", 22 | "Apr", 23 | "Máj", 24 | "Jún", 25 | "Júl", 26 | "Aug", 27 | "Sep", 28 | "Okt", 29 | "Nov", 30 | "Dec" 31 | ], 32 | "days": [ 33 | "Nedeľa", 34 | "Pondelok", 35 | "Utorok", 36 | "Streda", 37 | "Štvrtok", 38 | "Piatok", 39 | "Sobota" 40 | ], 41 | "shortDays": ["Ne", "Po", "Ut", "St", "Št", "Pi", "So"], 42 | "toolbar": { 43 | "exportToSVG": "Stiahnuť SVG", 44 | "exportToPNG": "Stiahnuť PNG", 45 | "exportToCSV": "Stiahnuť CSV", 46 | "menu": "Menu", 47 | "selection": "Vyberanie", 48 | "selectionZoom": "Zoom: Vyberanie", 49 | "zoomIn": "Zoom: Priblížiť", 50 | "zoomOut": "Zoom: Vzdialiť", 51 | "pan": "Presúvanie", 52 | "reset": "Resetovať" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/sl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sl", 3 | "options": { 4 | "months": [ 5 | "Januar", 6 | "Februar", 7 | "Marec", 8 | "April", 9 | "Maj", 10 | "Junij", 11 | "Julij", 12 | "Avgust", 13 | "Septemer", 14 | "Oktober", 15 | "November", 16 | "December" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Feb", 21 | "Mar", 22 | "Apr", 23 | "Maj", 24 | "Jun", 25 | "Jul", 26 | "Avg", 27 | "Sep", 28 | "Okt", 29 | "Nov", 30 | "Dec" 31 | ], 32 | "days": [ 33 | "Nedelja", 34 | "Ponedeljek", 35 | "Torek", 36 | "Sreda", 37 | "Četrtek", 38 | "Petek", 39 | "Sobota" 40 | ], 41 | "shortDays": ["Ne", "Po", "To", "Sr", "Če", "Pe", "So"], 42 | "toolbar": { 43 | "exportToSVG": "Prenesi SVG", 44 | "exportToPNG": "Prenesi PNG", 45 | "exportToCSV": "Prenesi CSV", 46 | "menu": "Menu", 47 | "selection": "Izbiranje", 48 | "selectionZoom": "Zoom: Izbira", 49 | "zoomIn": "Zoom: Približaj", 50 | "zoomOut": "Zoom: Oddalji", 51 | "pan": "Pomikanje", 52 | "reset": "Resetiraj" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/sq.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sq", 3 | "options": { 4 | "months": [ 5 | "Janar", 6 | "Shkurt", 7 | "Mars", 8 | "Prill", 9 | "Maj", 10 | "Qershor", 11 | "Korrik", 12 | "Gusht", 13 | "Shtator", 14 | "Tetor", 15 | "Nëntor", 16 | "Dhjetor" 17 | ], 18 | "shortMonths": [ 19 | "Jan", 20 | "Shk", 21 | "Mar", 22 | "Pr", 23 | "Maj", 24 | "Qer", 25 | "Korr", 26 | "Gush", 27 | "Sht", 28 | "Tet", 29 | "Nën", 30 | "Dhj" 31 | ], 32 | "days": [ 33 | "e Dielë", 34 | "e Hënë", 35 | "e Martë", 36 | "e Mërkurë", 37 | "e Enjte", 38 | "e Premte", 39 | "e Shtunë" 40 | ], 41 | "shortDays": ["Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht"], 42 | "toolbar": { 43 | "exportToSVG": "Shkarko SVG", 44 | "exportToPNG": "Shkarko PNG", 45 | "exportToCSV": "Shkarko CSV", 46 | "menu": "Menu", 47 | "selection": "Seleksiono", 48 | "selectionZoom": "Seleksiono Zmadhim", 49 | "zoomIn": "Zmadho", 50 | "zoomOut": "Zvogëlo", 51 | "pan": "Spostoje", 52 | "reset": "Rikthe dimensionin" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/th.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "th", 3 | "options": { 4 | "months": [ 5 | "มกราคม", 6 | "กุมภาพันธ์", 7 | "มีนาคม", 8 | "เมษายน", 9 | "พฤษภาคม", 10 | "มิถุนายน", 11 | "กรกฎาคม", 12 | "สิงหาคม", 13 | "กันยายน", 14 | "ตุลาคม", 15 | "พฤศจิกายน", 16 | "ธันวาคม" 17 | ], 18 | "shortMonths": [ 19 | "ม.ค.", 20 | "ก.พ.", 21 | "มี.ค.", 22 | "เม.ย.", 23 | "พ.ค.", 24 | "มิ.ย.", 25 | "ก.ค.", 26 | "ส.ค.", 27 | "ก.ย.", 28 | "ต.ค.", 29 | "พ.ย.", 30 | "ธ.ค." 31 | ], 32 | "days": [ 33 | "อาทิตย์", 34 | "จันทร์", 35 | "อังคาร", 36 | "พุธ", 37 | "พฤหัสบดี", 38 | "ศุกร์", 39 | "เสาร์" 40 | ], 41 | "shortDays": ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส"], 42 | "toolbar": { 43 | "exportToSVG": "ดาวน์โหลด SVG", 44 | "exportToPNG": "ดาวน์โหลด PNG", 45 | "exportToCSV": "ดาวน์โหลด CSV", 46 | "menu": "เมนู", 47 | "selection": "เลือก", 48 | "selectionZoom": "เลือกจุดที่จะซูม", 49 | "zoomIn": "ซูมเข้า", 50 | "zoomOut": "ซูมออก", 51 | "pan": "ปรากฎว่า", 52 | "reset": "รีเซ็ตการซูม" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/tr.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tr", 3 | "options": { 4 | "months": [ 5 | "Ocak", 6 | "Şubat", 7 | "Mart", 8 | "Nisan", 9 | "Mayıs", 10 | "Haziran", 11 | "Temmuz", 12 | "Ağustos", 13 | "Eylül", 14 | "Ekim", 15 | "Kasım", 16 | "Aralık" 17 | ], 18 | "shortMonths": [ 19 | "Oca", 20 | "Şub", 21 | "Mar", 22 | "Nis", 23 | "May", 24 | "Haz", 25 | "Tem", 26 | "Ağu", 27 | "Eyl", 28 | "Eki", 29 | "Kas", 30 | "Ara" 31 | ], 32 | "days": [ 33 | "Pazar", 34 | "Pazartesi", 35 | "Salı", 36 | "Çarşamba", 37 | "Perşembe", 38 | "Cuma", 39 | "Cumartesi" 40 | ], 41 | "shortDays": ["Paz", "Pzt", "Sal", "Çar", "Per", "Cum", "Cmt"], 42 | "toolbar": { 43 | "exportToSVG": "SVG İndir", 44 | "exportToPNG": "PNG İndir", 45 | "exportToCSV": "CSV İndir", 46 | "menu": "Menü", 47 | "selection": "Seçim", 48 | "selectionZoom": "Seçim Yakınlaştır", 49 | "zoomIn": "Yakınlaştır", 50 | "zoomOut": "Uzaklaştır", 51 | "pan": "Kaydır", 52 | "reset": "Yakınlaştırmayı Sıfırla" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/ua.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ua", 3 | "options": { 4 | "months": [ 5 | "Січень", 6 | "Лютий", 7 | "Березень", 8 | "Квітень", 9 | "Травень", 10 | "Червень", 11 | "Липень", 12 | "Серпень", 13 | "Вересень", 14 | "Жовтень", 15 | "Листопад", 16 | "Грудень" 17 | ], 18 | "shortMonths": [ 19 | "Січ", 20 | "Лют", 21 | "Бер", 22 | "Кві", 23 | "Тра", 24 | "Чер", 25 | "Лип", 26 | "Сер", 27 | "Вер", 28 | "Жов", 29 | "Лис", 30 | "Гру" 31 | ], 32 | "days": [ 33 | "Неділя", 34 | "Понеділок", 35 | "Вівторок", 36 | "Середа", 37 | "Четвер", 38 | "П'ятниця", 39 | "Субота" 40 | ], 41 | "shortDays": ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], 42 | "toolbar": { 43 | "exportToSVG": "Зберегти SVG", 44 | "exportToPNG": "Зберегти PNG", 45 | "exportToCSV": "Зберегти CSV", 46 | "menu": "Меню", 47 | "selection": "Вибір", 48 | "selectionZoom": "Вибір із збільшенням", 49 | "zoomIn": "Збільшити", 50 | "zoomOut": "Зменшити", 51 | "pan": "Переміщення", 52 | "reset": "Скинути збільшення" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/zh-cn.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zh-cn", 3 | "options": { 4 | "months": [ 5 | "一月", 6 | "二月", 7 | "三月", 8 | "四月", 9 | "五月", 10 | "六月", 11 | "七月", 12 | "八月", 13 | "九月", 14 | "十月", 15 | "十一月", 16 | "十二月" 17 | ], 18 | "shortMonths": [ 19 | "一月", 20 | "二月", 21 | "三月", 22 | "四月", 23 | "五月", 24 | "六月", 25 | "七月", 26 | "八月", 27 | "九月", 28 | "十月", 29 | "十一月", 30 | "十二月" 31 | ], 32 | "days": [ 33 | "星期天", 34 | "星期一", 35 | "星期二", 36 | "星期三", 37 | "星期四", 38 | "星期五", 39 | "星期六" 40 | ], 41 | "shortDays": ["周日", "周一", "周二", "周三", "周四", "周五", "周六"], 42 | "toolbar": { 43 | "exportToSVG": "下载 SVG", 44 | "exportToPNG": "下载 PNG", 45 | "exportToCSV": "下载 CSV", 46 | "menu": "菜单", 47 | "selection": "选择", 48 | "selectionZoom": "选择缩放", 49 | "zoomIn": "放大", 50 | "zoomOut": "缩小", 51 | "pan": "平移", 52 | "reset": "重置缩放" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Public/locales/zh-tw.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zh-tw", 3 | "options": { 4 | "months": [ 5 | "一月", 6 | "二月", 7 | "三月", 8 | "四月", 9 | "五月", 10 | "六月", 11 | "七月", 12 | "八月", 13 | "九月", 14 | "十月", 15 | "十一月", 16 | "十二月" 17 | ], 18 | "shortMonths": [ 19 | "一月", 20 | "二月", 21 | "三月", 22 | "四月", 23 | "五月", 24 | "六月", 25 | "七月", 26 | "八月", 27 | "九月", 28 | "十月", 29 | "十一月", 30 | "十二月" 31 | ], 32 | "days": [ 33 | "星期日", 34 | "星期一", 35 | "星期二", 36 | "星期三", 37 | "星期四", 38 | "星期五", 39 | "星期六" 40 | ], 41 | "shortDays": ["週日", "週一", "週二", "週三", "週四", "週五", "週六"], 42 | "toolbar": { 43 | "exportToSVG": "下載 SVG", 44 | "exportToPNG": "下載 PNG", 45 | "exportToCSV": "下載 CSV", 46 | "menu": "菜單", 47 | "selection": "選擇", 48 | "selectionZoom": "選擇縮放", 49 | "zoomIn": "放大", 50 | "zoomOut": "縮小", 51 | "pan": "平移", 52 | "reset": "重置縮放" 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Support/DatasetClass.php: -------------------------------------------------------------------------------- 1 | name = $name; 22 | $this->type = $type; 23 | $this->data = $data; 24 | 25 | return $this; 26 | } 27 | 28 | public function type(string $type): DatasetClass 29 | { 30 | $this->type = $type; 31 | 32 | return $this; 33 | } 34 | 35 | public function data(array|Collection $data): DatasetClass 36 | { 37 | if ($data instanceof Collection) { 38 | $data = $data->toArray(); 39 | } 40 | 41 | $this->data = $data; 42 | 43 | return $this; 44 | } 45 | 46 | public function options(array|Collection $options, bool $overwrite = false): DatasetClass 47 | { 48 | if ($overwrite) { 49 | $this->options = $options; 50 | } else { 51 | $this->options = array_replace_recursive($this->options, $options); 52 | } 53 | 54 | return $this; 55 | } 56 | 57 | /** 58 | * Matches the data of the dataset with the given number. 59 | */ 60 | public function matchdata(int $data, bool $strict = false): void 61 | { 62 | while (count($this->data) < $data) { 63 | array_push($this->data, 0); 64 | } 65 | 66 | if ($strict) { 67 | $this->data = array_slice($this->data, 0, $data); 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/Traits/Formatter.php: -------------------------------------------------------------------------------- 1 | json($this->toVue()); 13 | } 14 | 15 | public function toVue(): array 16 | { 17 | return [ 18 | 'id' => $this->getId(), 19 | 'height' => $this->getHeight(), 20 | 'width' => $this->getWidth() ?? '100%', 21 | 'type' => $this->getType(), 22 | 'options' => json_decode($this->getOptions(), true), 23 | 'series' => $this->getSeries(), 24 | ]; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Traits/Types.php: -------------------------------------------------------------------------------- 1 | setType('area'); 15 | } 16 | 17 | public function addArea(string $name, array|Collection $data): Area 18 | { 19 | $type = $this->getType(); 20 | 21 | return $this->setDataset($name, $type, $data); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Types/Bar.php: -------------------------------------------------------------------------------- 1 | setType('bar'); 15 | } 16 | 17 | public function addBar(string $name, array|Collection $data): Bar 18 | { 19 | $type = $this->getType(); 20 | 21 | return $this->setDataset($name, $type, $data); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Types/Donut.php: -------------------------------------------------------------------------------- 1 | setType('donut'); 14 | } 15 | 16 | public function addPieces(array $data): Donut 17 | { 18 | return $this->setSeries($data); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Types/HeatMap.php: -------------------------------------------------------------------------------- 1 | setType('heatmap'); 15 | } 16 | 17 | public function addHeat(string $name, array|Collection $data): HeatMap 18 | { 19 | $type = $this->getType(); 20 | 21 | return $this->setDataset($name, $type, $data); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Types/HorizontalBar.php: -------------------------------------------------------------------------------- 1 | setType('bar'); 15 | 16 | $this->setHorizontal(true); 17 | } 18 | 19 | public function addBar(string $name, array|Collection $data): HorizontalBar 20 | { 21 | $type = $this->getType(); 22 | 23 | return $this->setDataset($name, $type, $data); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Types/Line.php: -------------------------------------------------------------------------------- 1 | setType('line'); 15 | } 16 | 17 | public function addLine(string $name, array|Collection $data): Line 18 | { 19 | $type = $this->getType(); 20 | 21 | return $this->setDataset($name, $type, $data); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Types/Pie.php: -------------------------------------------------------------------------------- 1 | setType('pie'); 14 | } 15 | 16 | public function addPieces(array $data): Pie 17 | { 18 | return $this->setSeries($data); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Types/PolarArea.php: -------------------------------------------------------------------------------- 1 | setType('polarArea'); 14 | } 15 | 16 | public function addPolarAreas(array $data): PolarArea 17 | { 18 | return $this->setSeries($data); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Types/Radar.php: -------------------------------------------------------------------------------- 1 | setType('radar'); 15 | } 16 | 17 | public function addArea(string $name, array|Collection $data): Radar 18 | { 19 | $type = $this->getType(); 20 | 21 | return $this->setDataset($name, $type, $data); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Types/Radial.php: -------------------------------------------------------------------------------- 1 | setType('radialBar'); 14 | } 15 | 16 | public function addRings(array $data): Radial 17 | { 18 | return $this->setSeries($data); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Views/container.blade.php: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /src/Views/script.blade.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /tests/Feature/ChartsTest.php: -------------------------------------------------------------------------------- 1 | setTitle('Users Test Chart'); 13 | 14 | $this->assertEquals($chart, $chart->script()['chart']); 15 | $this->assertEquals('line', $chart->getType()); 16 | } 17 | 18 | public function testPieChart() 19 | { 20 | $chart = (new Chart)->setType('pie') 21 | ->setTitle('Posts') 22 | ->setSubtitle('From January To March') 23 | ->setLabels(['Product One', 'Product Two', 'Product Three']) 24 | ->setSeries(['Jan', 'Feb', 'Mar']) 25 | ->setDataset('Posts', 'pie', [150, 120]); 26 | 27 | $this->assertEquals($chart, $chart->script()['chart']); 28 | $this->assertEquals('pie', $chart->getType()); 29 | } 30 | 31 | public function testDonutChart() 32 | { 33 | $chart = (new Chart)->setType('donut') 34 | ->setTitle('Posts') 35 | ->setSeries(['Jan', 'Feb', 'Mar']) 36 | ->setDataset('Posts', 'donut', [150, 120]); 37 | 38 | $this->assertEquals($chart, $chart->script()['chart']); 39 | $this->assertEquals('donut', $chart->getType()); 40 | } 41 | 42 | public function testRadialChart() 43 | { 44 | $chart = (new Chart)->setType('radial') 45 | ->setTitle('Products with more profit') 46 | ->setSeries(['Jan', 'Feb', 'Mar']) 47 | ->setDataset('Products', 'radial', [60, 40, 79]); 48 | 49 | $this->assertEquals($chart, $chart->script()['chart']); 50 | $this->assertEquals('radial', $chart->getType()); 51 | } 52 | 53 | public function testPolarChart() 54 | { 55 | $chart = (new Chart)->setType('polarArea') 56 | ->setTitle('Products with more profit') 57 | ->setSeries(['Jan', 'Feb', 'Mar']) 58 | ->setDataset('Products', 'polarArea', [60, 40, 79]); 59 | 60 | $this->assertEquals($chart, $chart->script()['chart']); 61 | $this->assertEquals('polarArea', $chart->getType()); 62 | } 63 | 64 | public function testLineChart() 65 | { 66 | $chart = (new Chart)->setType('line') 67 | ->setTitle('Total Users Monthly') 68 | ->setSubtitle('From January to March') 69 | ->setSeries([ 70 | 'Jan', 'Feb', 'Mar' 71 | ]) 72 | ->setDataset('Users', 'line', [ 73 | [ 74 | 'name' => 'Active Users', 75 | 'data' => [250, 700, 1200] 76 | ] 77 | ]) 78 | ->setHeight(250) 79 | ->setGridShow(true) 80 | ->setStrokeShow(true); 81 | 82 | $this->assertEquals($chart->getId(), $chart->container()['chart']->getId()); 83 | $this->assertEquals($chart, $chart->script()['chart']); 84 | $this->assertEquals('line', $chart->getType()); 85 | } 86 | 87 | public function testAreaChart() 88 | { 89 | $chart = (new Chart)->setType('area') 90 | ->setTitle('Total Users Monthly') 91 | ->setSubtitle('From January to March') 92 | ->setSeries([ 93 | 'Jan', 'Feb', 'Mar' 94 | ]) 95 | ->setDataset('Users', 'area', [ 96 | [ 97 | 'name' => 'Active Users', 98 | 'data' => [250, 700, 1200] 99 | ], 100 | [ 101 | 'name' => 'New Users', 102 | 'data' => [1000, 1124, 2000] 103 | ] 104 | ]); 105 | 106 | $this->assertEquals($chart->getId(), $chart->container()['chart']->getId()); 107 | $this->assertEquals($chart, $chart->script()['chart']); 108 | $this->assertEquals('area', $chart->getType()); 109 | } 110 | 111 | public function testBarChart() 112 | { 113 | $chart = (new Chart)->setType('bar') 114 | ->setTitle('Net Profit') 115 | ->setSeries(['Jan', 'Feb', 'Mar']) 116 | ->setDataset('Net Profit', 'bar', [ 117 | [ 118 | 'name' => 'Company A', 119 | 'data' => [500, 1000, 1900] 120 | ], 121 | [ 122 | 'name' => 'Company B', 123 | 'data' => [300, 900, 1400] 124 | ], 125 | [ 126 | 'name' => 'Company C', 127 | 'data' => [430, 245, 500] 128 | ], 129 | [ 130 | 'name' => 'Company D', 131 | 'data' => [200, 245, 700] 132 | ], 133 | [ 134 | 'name' => 'Company E', 135 | 'data' => [120, 45, 610] 136 | ], 137 | [ 138 | 'name' => 'Company F', 139 | 'data' => [420, 280, 400] 140 | ] 141 | ]); 142 | 143 | $this->assertEquals($chart->getId(), $chart->container()['chart']->getId()); 144 | $this->assertEquals($chart, $chart->script()['chart']); 145 | $this->assertEquals('bar', $chart->getType()); 146 | } 147 | 148 | public function testHorizontalBarChart() 149 | { 150 | $chart = (new Chart)->setType('bar') 151 | ->setTitle('Net Profit') 152 | ->setHorizontal(true) 153 | ->setSeries(['Jan', 'Feb', 'Mar']) 154 | ->setDataset('Net Profit', 'bar', [ 155 | [ 156 | 'name' => 'Company A', 157 | 'data' => [500, 1000, 1900] 158 | ], 159 | [ 160 | 'name' => 'Company B', 161 | 'data' => [300, 900, 1400] 162 | ], 163 | [ 164 | 'name' => 'Company C', 165 | 'data' => [430, 245, 500] 166 | ] 167 | ]); 168 | 169 | $this->assertEquals($chart->getId(), $chart->container()['chart']->getId()); 170 | $this->assertEquals($chart, $chart->script()['chart']); 171 | $this->assertEquals('bar', $chart->getType()); 172 | $this->assertTrue($chart->getHorizontal()); 173 | } 174 | 175 | public function testHeatmapChart() 176 | { 177 | $chart = (new Chart)->setType('heatmap') 178 | ->setTitle('Total Users') 179 | ->setSeries([ 180 | 'Jan', 'Feb', 'Mar' 181 | ]) 182 | ->setDataset('Users', 'heatmap', [ 183 | [ 184 | 'name' => 'Users of Basic Plan', 185 | 'data' => [250, 700, 1200] 186 | ], 187 | [ 188 | 'name' => 'Users of Premium Plan', 189 | 'data' => [1000, 1124, 2000] 190 | ] 191 | ]); 192 | 193 | $this->assertEquals($chart->getId(), $chart->container()['chart']->getId()); 194 | $this->assertEquals($chart, $chart->script()['chart']); 195 | $this->assertEquals('heatmap', $chart->getType()); 196 | } 197 | 198 | public function testRadarChart() 199 | { 200 | $chart = (new Chart)->setType('radar') 201 | ->setTitle('Total Users') 202 | ->setSeries([ 203 | 'Jan', 'Feb', 'Mar' 204 | ]) 205 | ->setDataset('Users', 'radar', [ 206 | [ 207 | 'name' => 'Users of Basic Plan', 208 | 'data' => [250, 700, 1200] 209 | ], 210 | [ 211 | 'name' => 'Users of Premium Plan', 212 | 'data' => [1000, 1124, 2000] 213 | ] 214 | ]); 215 | 216 | $this->assertEquals($chart->getId(), $chart->container()['chart']->getId()); 217 | $this->assertEquals($chart, $chart->script()['chart']); 218 | $this->assertEquals('radar', $chart->getType()); 219 | } 220 | 221 | public function testToVue() 222 | { 223 | $chart = (new Chart)->setType('line') 224 | ->setTitle('Total Users Monthly') 225 | ->setSubtitle('From January to March') 226 | ->setSeries([ 227 | 'Jan', 'Feb', 'Mar' 228 | ]) 229 | ->setDataset('Users', 'line', [ 230 | [ 231 | 'name' => 'Active Users', 232 | 'data' => [250, 700, 1200] 233 | ] 234 | ]) 235 | ->setHeight(250) 236 | ->setGridShow(true) 237 | ->setStrokeShow(true); 238 | 239 | $this->assertEquals([ 240 | 'id', 241 | 'height', 242 | 'width', 243 | 'type', 244 | 'options', 245 | 'series', 246 | ], array_keys($chart->toVue())); 247 | } 248 | 249 | public function testToJson() 250 | { 251 | $chart = (new Chart)->setType('line') 252 | ->setTitle('Total Users Monthly') 253 | ->setSubtitle('From January to March') 254 | ->setSeries([ 255 | 'Jan', 'Feb', 'Mar' 256 | ]) 257 | ->setDataset('Users', 'line', [ 258 | [ 259 | 'name' => 'Active Users', 260 | 'data' => [250, 700, 1200] 261 | ] 262 | ]) 263 | ->setHeight(250) 264 | ->setGridShow(true) 265 | ->setStrokeShow(true); 266 | 267 | $response = $chart->toJson(); 268 | 269 | $this->assertEquals([ 270 | 'id', 271 | 'height', 272 | 'width', 273 | 'type', 274 | 'options', 275 | 'series', 276 | ], array_keys(json_decode($response->content(), true))); 277 | } 278 | } 279 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 |