Modified events with sport-id and match_id, same for players

This commit is contained in:
salam committed 2026-05-06 18:28:14 +02:00
1 parent 1c4480b014
commit 9978b0f76f
12 files changed
+205 -152

No files matched your search

@@ -12,7 +12,7 @@ class StatistikoEventsForm
{ {
return $schema return $schema
->components([ ->components([
DateTimePicker::make('starttime'), DateTimePicker::make('starttime')->native(false),
TextInput::make('season'), TextInput::make('season'),
TextInput::make('gls_h'), TextInput::make('gls_h'),
TextInput::make('gls_a'), TextInput::make('gls_a'),
@@ -2,7 +2,6 @@
namespace App\Filament\Clusters\StaticData\Resources\StatistikoImports\Schemas; namespace App\Filament\Clusters\StaticData\Resources\StatistikoImports\Schemas;
use App\Models\Sport;
use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\FileUpload;
use Filament\Forms\Components\Select; use Filament\Forms\Components\Select;
use Filament\Schemas\Components\Icon; use Filament\Schemas\Components\Icon;
@@ -14,15 +13,11 @@ class StatistikoImportForm
{ {
return $schema return $schema
->components([ ->components([
Select::make('sport_id')
->required()
->label('Sport')
->options(fn () => Sport::query()->where('is_active', 1)->pluck('name', 'id')),
Select::make('data_type') Select::make('data_type')
->required() ->required()
->allowHtml() ->allowHtml()
->options([ ->options([
'personal' => '<span class="text-blue-500">Personal detail player</span>', 'personal' => '<span class="text-blue-500">Personals</span>',
'events' => '<span class="text-green-500">Events</span>', 'events' => '<span class="text-green-500">Events</span>',
'fixtures' => '<span class="text-orange-500">Fixtures</span>', 'fixtures' => '<span class="text-orange-500">Fixtures</span>',
'player' => '<span class="text-pink-600">Player</span>', 'player' => '<span class="text-pink-600">Player</span>',
@@ -22,17 +22,12 @@ class StatistikoImportsTable
return $table return $table
->striped() ->striped()
->columns([ ->columns([
IconColumn::make('sport.icon')
->label('Sport')
->icon(fn ($record) => $record->sport->icon)
->tooltip(fn ($record) => $record->id)
->visibleFrom('lg'),
SelectColumn::make('data_type') SelectColumn::make('data_type')
->native(false) ->native(false)
->width('2rem') ->width('2rem')
->allowOptionsHtml() ->allowOptionsHtml()
->options([ ->options([
'personal' => '<span class="text-blue-500">Personal details</span>', 'personal' => '<span class="text-blue-500">Personals</span>',
'events' => '<span class="text-green-500">Events</span>', 'events' => '<span class="text-green-500">Events</span>',
'fixtures' => '<span class="text-orange-500">Fixtures</span>', 'fixtures' => '<span class="text-orange-500">Fixtures</span>',
'player' => '<span class="text-amber-500">Player</span>', 'player' => '<span class="text-amber-500">Player</span>',
@@ -41,7 +36,7 @@ class StatistikoImportsTable
->searchable() ->searchable()
->label('Name'), ->label('Name'),
IconColumn::make('has_run') IconColumn::make('has_run')
->label('Import') ->label('Imported')
->alignCenter() ->alignCenter()
->boolean() ->boolean()
->falseColor('gray'), ->falseColor('gray'),
+27 -26
View File
@@ -9,45 +9,46 @@ use Spatie\SimpleExcel\SimpleExcelReader;
class ImportEvents class ImportEvents
{ {
public static function run(string $filePath, int $sport_id): void public static function run(string $filePath): void
{ {
$now = now()->format('Y-m-d H:i:s'); $now = now()->format('Y-m-d H:i:s');
SimpleExcelReader::create(storage_path('app/public/'.$filePath)) SimpleExcelReader::create(storage_path('app/public/'.$filePath))
->getRows() ->getRows()
->chunk(1000) ->chunk(1000)
->each(function (LazyCollection $chunk) use ($now, $sport_id) { ->each(function (LazyCollection $chunk) use ($now) {
foreach ($chunk as $row) { foreach ($chunk as $row) {
$row = array_values($row); $row = array_values($row);
StatistikoEvent::where('sport_id', $sport_id) StatistikoEvent::where('match_id', $row[0])
->where('league_id', $row[0]) ->where('sport_id', $row[1])
->where('home_id', $row[1]) ->where('league_id', $row[2])
->where('away_id', $row[2]) ->where('home_id', $row[3])
->where('starttime', Carbon::parse($row[3])->toIso8601String()) ->where('away_id', $row[4])
->where('starttime', Carbon::parse($row[5])->toIso8601String())
->update( ->update(
[ [
'season' => $row[4], 'season' => $row[6],
'gls_h' => $row[5], 'gls_h' => $row[7],
'gls_a' => $row[6], 'gls_a' => $row[8],
'crn_h' => $row[7], 'crn_h' => $row[9],
'crn_a' => $row[8], 'crn_a' => $row[10],
'fls_h' => $row[9], 'fls_h' => $row[11],
'fls_a' => $row[10], 'fls_a' => $row[12],
'ofs_h' => $row[11], 'ofs_h' => $row[13],
'ofs_a' => $row[12], 'ofs_a' => $row[14],
'snt_h' => $row[13], 'snt_h' => $row[15],
'snt_a' => $row[14], 'snt_a' => $row[16],
'tsh_h' => $row[15], 'tsh_h' => $row[17],
'tsh_a' => $row[16], 'tsh_a' => $row[18],
'crd_h' => $row[17], 'crd_h' => $row[19],
'crd_a' => $row[18], 'crd_a' => $row[20],
'exp_home' => $row[19], 'exp_home' => $row[21],
'exp_away' => $row[20], 'exp_away' => $row[22],
'exp_handicap' => $row[21], 'exp_handicap' => $row[23],
'exp_total' => $row[22], 'exp_total' => $row[24],
'created_at' => $now, 'created_at' => $now,
'updated_at' => $now, 'updated_at' => $now,
], ],
+2 -3
View File
@@ -27,7 +27,6 @@ class StatistikoImporter
$table = $record['data_type']; $table = $record['data_type'];
$filePath = $record['file_name']; $filePath = $record['file_name'];
$sport_id = $record['sport_id'];
ImportBenchmark::start($table); ImportBenchmark::start($table);
@@ -36,10 +35,10 @@ class StatistikoImporter
ImportPersonal::run($filePath); ImportPersonal::run($filePath);
break; break;
case 'events': case 'events':
ImportEvents::run($filePath, $sport_id); ImportEvents::run($filePath);
break; break;
case 'fixtures': case 'fixtures':
ImportFixtures::run($filePath, $sport_id); ImportFixtures::run($filePath);
break; break;
case 'player': case 'player':
break; break;
+1
View File
@@ -15,6 +15,7 @@ class StatistikoEvent extends Model
protected $fillable = [ protected $fillable = [
'sport_id', 'sport_id',
'match_id',
'league_id', 'league_id',
'home_id', 'home_id',
'away_id', 'away_id',
Generated
+103 -103
View File
@@ -1438,16 +1438,16 @@
}, },
{ {
"name": "filament/actions", "name": "filament/actions",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/actions.git", "url": "https://github.com/filamentphp/actions.git",
"reference": "fe5b10e270021e428294cea8381e608780bb243b" "reference": "d5b0d6a9311130e34a25cabfa4e91101c2d37e88"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filamentphp/actions/zipball/fe5b10e270021e428294cea8381e608780bb243b", "url": "https://api.github.com/repos/filamentphp/actions/zipball/d5b0d6a9311130e34a25cabfa4e91101c2d37e88",
"reference": "fe5b10e270021e428294cea8381e608780bb243b", "reference": "d5b0d6a9311130e34a25cabfa4e91101c2d37e88",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1482,20 +1482,20 @@
"issues": "https://github.com/filamentphp/filament/issues", "issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament" "source": "https://github.com/filamentphp/filament"
}, },
"time": "2026-04-24T08:57:06+00:00" "time": "2026-05-02T08:33:26+00:00"
}, },
{ {
"name": "filament/filament", "name": "filament/filament",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/panels.git", "url": "https://github.com/filamentphp/panels.git",
"reference": "fcda4f158395b691fd189c4b2a2e68455bb8a96f" "reference": "b3c351850135326c64f00aab802f69aa8c560ad9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filamentphp/panels/zipball/fcda4f158395b691fd189c4b2a2e68455bb8a96f", "url": "https://api.github.com/repos/filamentphp/panels/zipball/b3c351850135326c64f00aab802f69aa8c560ad9",
"reference": "fcda4f158395b691fd189c4b2a2e68455bb8a96f", "reference": "b3c351850135326c64f00aab802f69aa8c560ad9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1539,20 +1539,20 @@
"issues": "https://github.com/filamentphp/filament/issues", "issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament" "source": "https://github.com/filamentphp/filament"
}, },
"time": "2026-04-21T15:37:04+00:00" "time": "2026-05-02T08:32:56+00:00"
}, },
{ {
"name": "filament/forms", "name": "filament/forms",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/forms.git", "url": "https://github.com/filamentphp/forms.git",
"reference": "73571a3ca19bee4c1974e8bb2ba3c022bd284bd6" "reference": "b67e4df2e5e04e2358c507a456882d7fd1313cfb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filamentphp/forms/zipball/73571a3ca19bee4c1974e8bb2ba3c022bd284bd6", "url": "https://api.github.com/repos/filamentphp/forms/zipball/b67e4df2e5e04e2358c507a456882d7fd1313cfb",
"reference": "73571a3ca19bee4c1974e8bb2ba3c022bd284bd6", "reference": "b67e4df2e5e04e2358c507a456882d7fd1313cfb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1589,20 +1589,20 @@
"issues": "https://github.com/filamentphp/filament/issues", "issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament" "source": "https://github.com/filamentphp/filament"
}, },
"time": "2026-04-24T08:58:46+00:00" "time": "2026-05-02T08:38:31+00:00"
}, },
{ {
"name": "filament/infolists", "name": "filament/infolists",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/infolists.git", "url": "https://github.com/filamentphp/infolists.git",
"reference": "39b01e3a86ca0fe0a0c7e45038de9312eefcee51" "reference": "688892eaacde483f7707af54d51699f7922d611e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filamentphp/infolists/zipball/39b01e3a86ca0fe0a0c7e45038de9312eefcee51", "url": "https://api.github.com/repos/filamentphp/infolists/zipball/688892eaacde483f7707af54d51699f7922d611e",
"reference": "39b01e3a86ca0fe0a0c7e45038de9312eefcee51", "reference": "688892eaacde483f7707af54d51699f7922d611e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1634,11 +1634,11 @@
"issues": "https://github.com/filamentphp/filament/issues", "issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament" "source": "https://github.com/filamentphp/filament"
}, },
"time": "2026-04-21T15:38:03+00:00" "time": "2026-05-02T08:32:48+00:00"
}, },
{ {
"name": "filament/notifications", "name": "filament/notifications",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/notifications.git", "url": "https://github.com/filamentphp/notifications.git",
@@ -1685,7 +1685,7 @@
}, },
{ {
"name": "filament/query-builder", "name": "filament/query-builder",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/query-builder.git", "url": "https://github.com/filamentphp/query-builder.git",
@@ -1731,16 +1731,16 @@
}, },
{ {
"name": "filament/schemas", "name": "filament/schemas",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/schemas.git", "url": "https://github.com/filamentphp/schemas.git",
"reference": "447b5f0034aab7bbda025ff6b5b177f424468e39" "reference": "6f9c39e3f3ad127a0a086c7d6ea577b7e7dc8553"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filamentphp/schemas/zipball/447b5f0034aab7bbda025ff6b5b177f424468e39", "url": "https://api.github.com/repos/filamentphp/schemas/zipball/6f9c39e3f3ad127a0a086c7d6ea577b7e7dc8553",
"reference": "447b5f0034aab7bbda025ff6b5b177f424468e39", "reference": "6f9c39e3f3ad127a0a086c7d6ea577b7e7dc8553",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1772,20 +1772,20 @@
"issues": "https://github.com/filamentphp/filament/issues", "issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament" "source": "https://github.com/filamentphp/filament"
}, },
"time": "2026-04-21T15:39:34+00:00" "time": "2026-05-02T08:33:42+00:00"
}, },
{ {
"name": "filament/support", "name": "filament/support",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/support.git", "url": "https://github.com/filamentphp/support.git",
"reference": "a16403582ed0a3c74fb1bd11615df9a4f95a155c" "reference": "ca7a16ef9145b3000a5493efe8b905272a9b11cb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filamentphp/support/zipball/a16403582ed0a3c74fb1bd11615df9a4f95a155c", "url": "https://api.github.com/repos/filamentphp/support/zipball/ca7a16ef9145b3000a5493efe8b905272a9b11cb",
"reference": "a16403582ed0a3c74fb1bd11615df9a4f95a155c", "reference": "ca7a16ef9145b3000a5493efe8b905272a9b11cb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1830,20 +1830,20 @@
"issues": "https://github.com/filamentphp/filament/issues", "issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament" "source": "https://github.com/filamentphp/filament"
}, },
"time": "2026-04-21T15:41:41+00:00" "time": "2026-05-02T08:37:14+00:00"
}, },
{ {
"name": "filament/tables", "name": "filament/tables",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/tables.git", "url": "https://github.com/filamentphp/tables.git",
"reference": "e8aab9455d07dfb9073127297ba726a72dfb33a4" "reference": "916a01c20d485841d5b3b745711ec4cc4b030e4b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filamentphp/tables/zipball/e8aab9455d07dfb9073127297ba726a72dfb33a4", "url": "https://api.github.com/repos/filamentphp/tables/zipball/916a01c20d485841d5b3b745711ec4cc4b030e4b",
"reference": "e8aab9455d07dfb9073127297ba726a72dfb33a4", "reference": "916a01c20d485841d5b3b745711ec4cc4b030e4b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1876,20 +1876,20 @@
"issues": "https://github.com/filamentphp/filament/issues", "issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament" "source": "https://github.com/filamentphp/filament"
}, },
"time": "2026-04-21T15:38:41+00:00" "time": "2026-05-02T08:33:35+00:00"
}, },
{ {
"name": "filament/widgets", "name": "filament/widgets",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/widgets.git", "url": "https://github.com/filamentphp/widgets.git",
"reference": "9327b63e0c3f6a646376a18ed4c8d485c18a8dc6" "reference": "6a05b754cc23c1776e68bebbf2cf2cce29972f5d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filamentphp/widgets/zipball/9327b63e0c3f6a646376a18ed4c8d485c18a8dc6", "url": "https://api.github.com/repos/filamentphp/widgets/zipball/6a05b754cc23c1776e68bebbf2cf2cce29972f5d",
"reference": "9327b63e0c3f6a646376a18ed4c8d485c18a8dc6", "reference": "6a05b754cc23c1776e68bebbf2cf2cce29972f5d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1920,7 +1920,7 @@
"issues": "https://github.com/filamentphp/filament/issues", "issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament" "source": "https://github.com/filamentphp/filament"
}, },
"time": "2026-04-21T15:39:57+00:00" "time": "2026-05-02T08:39:09+00:00"
}, },
{ {
"name": "fruitcake/php-cors", "name": "fruitcake/php-cors",
@@ -4100,16 +4100,16 @@
}, },
{ {
"name": "livewire/livewire", "name": "livewire/livewire",
"version": "v4.2.4", "version": "v4.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/livewire/livewire.git", "url": "https://github.com/livewire/livewire.git",
"reference": "7d0bfa46269b1ec186b8cdd38baffee5cc647d10" "reference": "19ebb1ee4d057debceccf70ff01950e6a6114edc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/livewire/livewire/zipball/7d0bfa46269b1ec186b8cdd38baffee5cc647d10", "url": "https://api.github.com/repos/livewire/livewire/zipball/19ebb1ee4d057debceccf70ff01950e6a6114edc",
"reference": "7d0bfa46269b1ec186b8cdd38baffee5cc647d10", "reference": "19ebb1ee4d057debceccf70ff01950e6a6114edc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4164,7 +4164,7 @@
"description": "A front-end framework for Laravel.", "description": "A front-end framework for Laravel.",
"support": { "support": {
"issues": "https://github.com/livewire/livewire/issues", "issues": "https://github.com/livewire/livewire/issues",
"source": "https://github.com/livewire/livewire/tree/v4.2.4" "source": "https://github.com/livewire/livewire/tree/v4.3.0"
}, },
"funding": [ "funding": [
{ {
@@ -4172,7 +4172,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-04-02T20:48:35+00:00" "time": "2026-05-01T00:46:07+00:00"
}, },
{ {
"name": "masterminds/html5", "name": "masterminds/html5",
@@ -7014,16 +7014,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v7.4.8", "version": "v7.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "1e92e39c51f95b88e3d66fa2d9f06d1fb45dd707" "reference": "d7d2b64a45a89d607865927b176fa51c33ddbb58"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/1e92e39c51f95b88e3d66fa2d9f06d1fb45dd707", "url": "https://api.github.com/repos/symfony/console/zipball/d7d2b64a45a89d607865927b176fa51c33ddbb58",
"reference": "1e92e39c51f95b88e3d66fa2d9f06d1fb45dd707", "reference": "d7d2b64a45a89d607865927b176fa51c33ddbb58",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7088,7 +7088,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v7.4.8" "source": "https://github.com/symfony/console/tree/v7.4.9"
}, },
"funding": [ "funding": [
{ {
@@ -7108,20 +7108,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-30T13:54:39+00:00" "time": "2026-04-22T15:21:55+00:00"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
"version": "v7.4.8", "version": "v7.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/css-selector.git", "url": "https://github.com/symfony/css-selector.git",
"reference": "b055f228a4178a1d6774909903905e3475f3eac8" "reference": "b75663ed96cf4756e28e3105476f220f92886cc4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/b055f228a4178a1d6774909903905e3475f3eac8", "url": "https://api.github.com/repos/symfony/css-selector/zipball/b75663ed96cf4756e28e3105476f220f92886cc4",
"reference": "b055f228a4178a1d6774909903905e3475f3eac8", "reference": "b75663ed96cf4756e28e3105476f220f92886cc4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7157,7 +7157,7 @@
"description": "Converts CSS selectors to XPath expressions", "description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/css-selector/tree/v7.4.8" "source": "https://github.com/symfony/css-selector/tree/v7.4.9"
}, },
"funding": [ "funding": [
{ {
@@ -7177,7 +7177,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-24T13:12:05+00:00" "time": "2026-04-18T13:18:21+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
@@ -7330,16 +7330,16 @@
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v7.4.8", "version": "v7.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "f57b899fa736fd71121168ef268f23c206083f0a" "reference": "e4a2e29753c7801f7a8340e066cfa788f3bc8101"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f57b899fa736fd71121168ef268f23c206083f0a", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e4a2e29753c7801f7a8340e066cfa788f3bc8101",
"reference": "f57b899fa736fd71121168ef268f23c206083f0a", "reference": "e4a2e29753c7801f7a8340e066cfa788f3bc8101",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7391,7 +7391,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v7.4.8" "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.9"
}, },
"funding": [ "funding": [
{ {
@@ -7411,7 +7411,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-30T13:54:39+00:00" "time": "2026-04-18T13:18:21+00:00"
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
@@ -7715,16 +7715,16 @@
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v7.4.8", "version": "v7.4.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "017e76ad089bac281553389269e259e155935e1a" "reference": "23486f59234c6fd6e8f1bec97124f3829d686627"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/017e76ad089bac281553389269e259e155935e1a", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/23486f59234c6fd6e8f1bec97124f3829d686627",
"reference": "017e76ad089bac281553389269e259e155935e1a", "reference": "23486f59234c6fd6e8f1bec97124f3829d686627",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7810,7 +7810,7 @@
"description": "Provides a structured process for converting a Request into a Response", "description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.4.8" "source": "https://github.com/symfony/http-kernel/tree/v7.4.10"
}, },
"funding": [ "funding": [
{ {
@@ -7830,7 +7830,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-31T20:57:01+00:00" "time": "2026-05-06T12:07:34+00:00"
}, },
{ {
"name": "symfony/mailer", "name": "symfony/mailer",
@@ -7918,16 +7918,16 @@
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
"version": "v7.4.8", "version": "v7.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mime.git", "url": "https://github.com/symfony/mime.git",
"reference": "6df02f99998081032da3407a8d6c4e1dcb5d4379" "reference": "2d550c4758ba4c47519a6667c36553d535705b0c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/6df02f99998081032da3407a8d6c4e1dcb5d4379", "url": "https://api.github.com/repos/symfony/mime/zipball/2d550c4758ba4c47519a6667c36553d535705b0c",
"reference": "6df02f99998081032da3407a8d6c4e1dcb5d4379", "reference": "2d550c4758ba4c47519a6667c36553d535705b0c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7983,7 +7983,7 @@
"mime-type" "mime-type"
], ],
"support": { "support": {
"source": "https://github.com/symfony/mime/tree/v7.4.8" "source": "https://github.com/symfony/mime/tree/v7.4.9"
}, },
"funding": [ "funding": [
{ {
@@ -8003,7 +8003,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-30T14:11:46+00:00" "time": "2026-04-29T13:21:53+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
@@ -8901,16 +8901,16 @@
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v7.4.8", "version": "v7.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/routing.git", "url": "https://github.com/symfony/routing.git",
"reference": "9608de9873ec86e754fb6c0a0fa7e5f1a960eb6b" "reference": "287771d8bc86eacb30678dd10eda6c64a859951f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/9608de9873ec86e754fb6c0a0fa7e5f1a960eb6b", "url": "https://api.github.com/repos/symfony/routing/zipball/287771d8bc86eacb30678dd10eda6c64a859951f",
"reference": "9608de9873ec86e754fb6c0a0fa7e5f1a960eb6b", "reference": "287771d8bc86eacb30678dd10eda6c64a859951f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -8962,7 +8962,7 @@
"url" "url"
], ],
"support": { "support": {
"source": "https://github.com/symfony/routing/tree/v7.4.8" "source": "https://github.com/symfony/routing/tree/v7.4.9"
}, },
"funding": [ "funding": [
{ {
@@ -8982,7 +8982,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-24T13:12:05+00:00" "time": "2026-04-22T15:21:55+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
@@ -9164,16 +9164,16 @@
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v7.4.8", "version": "v7.4.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "33600f8489485425bfcddd0d983391038d3422e7" "reference": "ada7578c30dd5feaa8259cff3e885069ea81ddde"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/33600f8489485425bfcddd0d983391038d3422e7", "url": "https://api.github.com/repos/symfony/translation/zipball/ada7578c30dd5feaa8259cff3e885069ea81ddde",
"reference": "33600f8489485425bfcddd0d983391038d3422e7", "reference": "ada7578c30dd5feaa8259cff3e885069ea81ddde",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -9240,7 +9240,7 @@
"description": "Provides tools to internationalize your application", "description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/translation/tree/v7.4.8" "source": "https://github.com/symfony/translation/tree/v7.4.10"
}, },
"funding": [ "funding": [
{ {
@@ -9260,7 +9260,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-24T13:12:05+00:00" "time": "2026-05-06T11:19:24+00:00"
}, },
{ {
"name": "symfony/translation-contracts", "name": "symfony/translation-contracts",
@@ -9346,16 +9346,16 @@
}, },
{ {
"name": "symfony/uid", "name": "symfony/uid",
"version": "v7.4.8", "version": "v7.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/uid.git", "url": "https://github.com/symfony/uid.git",
"reference": "6883ebdf7bf6a12b37519dbc0df62b0222401b56" "reference": "2676b524340abcfe4d6151ec698463cebafee439"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/uid/zipball/6883ebdf7bf6a12b37519dbc0df62b0222401b56", "url": "https://api.github.com/repos/symfony/uid/zipball/2676b524340abcfe4d6151ec698463cebafee439",
"reference": "6883ebdf7bf6a12b37519dbc0df62b0222401b56", "reference": "2676b524340abcfe4d6151ec698463cebafee439",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -9400,7 +9400,7 @@
"uuid" "uuid"
], ],
"support": { "support": {
"source": "https://github.com/symfony/uid/tree/v7.4.8" "source": "https://github.com/symfony/uid/tree/v7.4.9"
}, },
"funding": [ "funding": [
{ {
@@ -9420,7 +9420,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-24T13:12:05+00:00" "time": "2026-04-30T15:19:22+00:00"
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
@@ -10159,7 +10159,7 @@
}, },
{ {
"name": "filament/upgrade", "name": "filament/upgrade",
"version": "v5.6.1", "version": "v5.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filamentphp/upgrade.git", "url": "https://github.com/filamentphp/upgrade.git",
@@ -13345,16 +13345,16 @@
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
"version": "v7.4.8", "version": "v7.4.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/yaml.git", "url": "https://github.com/symfony/yaml.git",
"reference": "c58fdf7b3d6c2995368264c49e4e8b05bcff2883" "reference": "c660d6538545a3e8e65a5621ee3d7a6d352892c7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/c58fdf7b3d6c2995368264c49e4e8b05bcff2883", "url": "https://api.github.com/repos/symfony/yaml/zipball/c660d6538545a3e8e65a5621ee3d7a6d352892c7",
"reference": "c58fdf7b3d6c2995368264c49e4e8b05bcff2883", "reference": "c660d6538545a3e8e65a5621ee3d7a6d352892c7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -13397,7 +13397,7 @@
"description": "Loads and dumps YAML files", "description": "Loads and dumps YAML files",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/yaml/tree/v7.4.8" "source": "https://github.com/symfony/yaml/tree/v7.4.10"
}, },
"funding": [ "funding": [
{ {
@@ -13417,7 +13417,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-24T13:12:05+00:00" "time": "2026-05-05T08:01:55+00:00"
}, },
{ {
"name": "ta-tikoma/phpunit-architecture-test", "name": "ta-tikoma/phpunit-architecture-test",
@@ -11,8 +11,8 @@ return new class extends Migration
public function up(): void public function up(): void
{ {
Schema::create('player', function (Blueprint $collection) { Schema::create('player', function (Blueprint $collection) {
$collection->index('match_id');
$collection->unique('player_id'); $collection->unique('player_id');
$collection->index('name');
}); });
} }
@@ -21,3 +21,64 @@ return new class extends Migration
Schema::dropIfExists('player'); Schema::dropIfExists('player');
} }
}; };
// ssmatch_id
// player_id
// playersubstitute_id
// goals
// assists
// own_goals
// shots_on_target
// shots_off_target
// shots_blocked
// fouls
// was_fouled
// offsides
// possessions_lost
// total_tackles
// touches
// total_cross
// cross_done
// total_dribbles
// dribbles_won
// total_ground_duels
// total_ground_duels_won
// total_aerial_duels
// total_duels_aerial_won
// total_pass
// pass
// total_long_balls
// long_balls
// blocked_shots
// clearances
// dribbled_past
// hit_woodwork
// interceptions
// key_pass
// last_man_tackle
// dispossessed
// clearance_off_line
// bcc
// bcm
// errors_lead_to_a_goal
// errors_lead_to_a_shot
// penalty_committed
// penalty_miss
// penalty_save
// penalty_won
// saves
// saves_from_in_box
// total_runs_out
// runs_out
// punches
// good_high_claim
// minutes_played
// lineup
// minute_event_during_the_match
// type_event_during_the_match
// description_event_during_the_match
// subtype_event_during_the_match
// player_position
// playerrating_value
// tm_player_id
@@ -15,6 +15,7 @@ return new class extends Migration
{ {
Schema::create('events', function (Blueprint $collection) { Schema::create('events', function (Blueprint $collection) {
$collection->index('sport_id'); $collection->index('sport_id');
$collection->index('match_id');
$collection->index('league_id'); $collection->index('league_id');
$collection->index('home_id'); $collection->index('home_id');
$collection->index('away_id'); $collection->index('away_id');
+1 -1
View File
@@ -1,2 +1,2 @@
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */ /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-tracking:initial;--tw-duration:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-ease:initial;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-x-reverse:0;--tw-content:"";--tw-outline-style:solid;--tw-space-x-reverse:0}}}@layer theme{:root,:host{--font-mono:var(--mono-font-family),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-sky-400:oklch(74.6% .16 232.661);--color-gray-100:var(--gray-100);--color-gray-200:var(--gray-200);--color-gray-300:var(--gray-300);--color-gray-400:var(--gray-400);--color-gray-500:var(--gray-500);--color-gray-600:var(--gray-600);--color-gray-700:var(--gray-700);--color-gray-900:var(--gray-900);--color-gray-950:var(--gray-950);--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-sm:40rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem;--breakpoint-2xl:96rem;--container-3xs:16rem;--container-2xs:18rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--leading-loose:2;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-family),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--default-mono-font-family:var(--mono-font-family),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-primary-400:var(--primary-400)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,vLine truncated @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-tracking:initial;--tw-duration:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-ease:initial;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-x-reverse:0;--tw-content:"";--tw-outline-style:solid;--tw-space-x-reverse:0}}}@layer theme{:root,:host{--font-mono:var(--mono-font-family),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-sky-400:oklch(74.6% .16 232.661);--color-gray-100:var(--gray-100);--color-gray-200:var(--gray-200);--color-gray-300:var(--gray-300);--color-gray-400:var(--gray-400);--color-gray-500:var(--gray-500);--color-gray-600:var(--gray-600);--color-gray-700:var(--gray-700);--color-gray-900:var(--gray-900);--color-gray-950:var(--gray-950);--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-sm:40rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem;--breakpoint-2xl:96rem;--container-3xs:16rem;--container-2xs:18rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--leading-loose:2;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-family),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--default-mono-font-family:var(--mono-font-family),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-primary-400:var(--primary-400)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,vLine truncated
@@ -1,6 +1,6 @@
var Sc=Object.defineProperty;var Mc=(s,t,e)=>t in s?Sc(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var v=(s,t,e)=>Mc(s,typeof t!="symbol"?t+"":t,e);function us(s){return s+.5|0}var Zt=(s,t,e)=>Math.max(Math.min(s,e),t);function cs(s){return Zt(us(s*2.55),0,255)}function qt(s){return Zt(us(s*255),0,255)}function Nt(s){return Zt(us(s/2.55)/100,0,1)}function No(s){return Zt(us(s*100),0,100)}var pt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Zi=[..."0123456789ABCDEF"],Oc=s=>Zi[s&15],Tc=s=>Zi[(s&240)>>4]+Zi[s&15],Us=s=>(s&240)>>4===(s&15),Dc=s=>Us(s.r)&&Us(s.g)&&Us(s.b)&&Us(s.a);function Cc(s){var t=s.length,e;return s[0]==="#"&&(t===4||t===5?e={r:255&pt[s[1]]*17,g:255&pt[s[2]]*17,b:255&pt[s[3]]*17,a:t===5?pt[s[4]]*17:255}:(t===7||t===9)&&(e={r:pt[s[1]]<<4|pt[s[2]],g:pt[s[3]]<<4|pt[s[4]],b:pt[s[5]]<<4|pt[s[6]],a:t===9?pt[s[7]]<<4|pt[s[8]]:255})),e}var Pc=(s,t)=>s<255?t(s):"";function Ac(s){var t=Dc(s)?Oc:Tc;return s?"#"+t(s.r)+t(s.g)+t(s.b)+Pc(s.a,t):void 0}var Ic=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Bo(s,t,e){let i=t*Math.min(e,1-e),n=(o,r=(o+s/30)%12)=>e-i*Math.max(Math.min(r-3,9-r,1),-1);return[n(0),n(8),n(4)]}function Ec(s,t,e){let i=(n,o=(n+s/60)%6)=>e-e*t*Math.max(Math.min(o,4-o,1),0);return[i(5),i(3),i(1)]}function Lc(s,t,e){let i=Bo(s,1,.5),n;for(t+e>1&&(n=1/(t+e),t*=n,e*=n),n=0;n<3;n++)i[n]*=1-t-e,i[n]+=t;return i}function Fc(s,t,e,i,n){return s===n?(t-e)/i+(t<e?6:0):t===n?(e-s)/i+2:(s-t)/i+4}function qi(s){let e=s.r/255,i=s.g/255,n=s.b/255,o=Math.max(e,i,n),r=Math.min(e,i,n),a=(o+r)/2,l,c,h;return o!==r&&(h=o-r,c=a>.5?h/(2-o-r):h/(o+r),l=Fc(e,i,n,h,o),l=l*60+.5),[l|0,c||0,a]}function Gi(s,t,e,i){return(Array.isArray(t)?s(t[0],t[1],t[2]):s(t,e,i)).map(qt)}function Xi(s,t,e){return Gi(Bo,s,t,e)}function Rc(s,t,e){return Gi(Lc,s,t,e)}function Nc(s,t,e){return Gi(Ec,s,t,e)}function Ho(s){return(s%360+360)%360}function zc(s){let t=Ic.exec(s),e=255,i;if(!t)return;t[5]!==i&&(e=t[6]?cs(+t[5]):qt(+t[5]));let n=Ho(+t[2]),o=+t[3]/100,r=+t[4]/100;return t[1]==="hwb"?i=Rc(n,o,r):t[1]==="hsv"?i=Nc(n,o,r):i=Xi(n,o,r),{r:i[0],g:i[1],b:i[2],a:e}}function Vc(s,t){var e=qi(s);e[0]=Ho(e[0]+t),e=Xi(e),s.r=e[0],s.g=e[1],s.b=e[2]}function Wc(s){if(!s)return;let t=qi(s),e=t[0],i=No(t[1]),n=No(t[2]);return s.a<255?`hsla(${e}, ${i}%, ${n}%, ${Nt(s.a)})`:`hsl(${e}, ${i}%, ${n}%)`}var zo={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Vo={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};functionLine truncated var Sc=Object.defineProperty;var Mc=(s,t,e)=>t in s?Sc(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var k=(s,t,e)=>Mc(s,typeof t!="symbol"?t+"":t,e);function us(s){return s+.5|0}var Yt=(s,t,e)=>Math.max(Math.min(s,e),t);function cs(s){return Yt(us(s*2.55),0,255)}function Zt(s){return Yt(us(s*255),0,255)}function Rt(s){return Yt(us(s/2.55)/100,0,1)}function Rr(s){return Yt(us(s*100),0,100)}var pt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Zi=[..."0123456789ABCDEF"],Tc=s=>Zi[s&15],Oc=s=>Zi[(s&240)>>4]+Zi[s&15],Us=s=>(s&240)>>4===(s&15),Dc=s=>Us(s.r)&&Us(s.g)&&Us(s.b)&&Us(s.a);function Cc(s){var t=s.length,e;return s[0]==="#"&&(t===4||t===5?e={r:255&pt[s[1]]*17,g:255&pt[s[2]]*17,b:255&pt[s[3]]*17,a:t===5?pt[s[4]]*17:255}:(t===7||t===9)&&(e={r:pt[s[1]]<<4|pt[s[2]],g:pt[s[3]]<<4|pt[s[4]],b:pt[s[5]]<<4|pt[s[6]],a:t===9?pt[s[7]]<<4|pt[s[8]]:255})),e}var Pc=(s,t)=>s<255?t(s):"";function Ac(s){var t=Dc(s)?Tc:Oc;return s?"#"+t(s.r)+t(s.g)+t(s.b)+Pc(s.a,t):void 0}var Ic=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Wr(s,t,e){let i=t*Math.min(e,1-e),n=(r,o=(r+s/30)%12)=>e-i*Math.max(Math.min(o-3,9-o,1),-1);return[n(0),n(8),n(4)]}function Ec(s,t,e){let i=(n,r=(n+s/60)%6)=>e-e*t*Math.max(Math.min(r,4-r,1),0);return[i(5),i(3),i(1)]}function Lc(s,t,e){let i=Wr(s,1,.5),n;for(t+e>1&&(n=1/(t+e),t*=n,e*=n),n=0;n<3;n++)i[n]*=1-t-e,i[n]+=t;return i}function Fc(s,t,e,i,n){return s===n?(t-e)/i+(t<e?6:0):t===n?(e-s)/i+2:(s-t)/i+4}function qi(s){let e=s.r/255,i=s.g/255,n=s.b/255,r=Math.max(e,i,n),o=Math.min(e,i,n),a=(r+o)/2,l,c,h;return r!==o&&(h=r-o,c=a>.5?h/(2-r-o):h/(r+o),l=Fc(e,i,n,h,r),l=l*60+.5),[l|0,c||0,a]}function Gi(s,t,e,i){return(Array.isArray(t)?s(t[0],t[1],t[2]):s(t,e,i)).map(Zt)}function Xi(s,t,e){return Gi(Wr,s,t,e)}function Rc(s,t,e){return Gi(Lc,s,t,e)}function Nc(s,t,e){return Gi(Ec,s,t,e)}function Br(s){return(s%360+360)%360}function zc(s){let t=Ic.exec(s),e=255,i;if(!t)return;t[5]!==i&&(e=t[6]?cs(+t[5]):Zt(+t[5]));let n=Br(+t[2]),r=+t[3]/100,o=+t[4]/100;return t[1]==="hwb"?i=Rc(n,r,o):t[1]==="hsv"?i=Nc(n,r,o):i=Xi(n,r,o),{r:i[0],g:i[1],b:i[2],a:e}}function Vc(s,t){var e=qi(s);e[0]=Br(e[0]+t),e=Xi(e),s.r=e[0],s.g=e[1],s.b=e[2]}function Wc(s){if(!s)return;let t=qi(s),e=t[0],i=Rr(t[1]),n=Rr(t[2]);return s.a<255?`hsla(${e}, ${i}%, ${n}%, ${Rt(s.a)})`:`hsl(${e}, ${i}%, ${n}%)`}var Nr={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},zr={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};functionLine truncated
`)>-1?s.split(` `)>-1?s.split(`
`):s}function Of(s,t){let{element:e,datasetIndex:i,index:n}=t,o=s.getDatasetMeta(i).controller,{label:r,value:a}=o.getLabelAndValue(n);return{chart:s,label:r,parsed:o.getParsed(n),raw:s.data.datasets[i].data[n],formattedValue:a,dataset:o.getDataset(),dataIndex:n,datasetIndex:i,element:e}}function fa(s,t){let e=s.chart.ctx,{body:i,footer:n,title:o}=s,{boxWidth:r,boxHeight:a}=t,l=X(t.bodyFont),c=X(t.titleFont),h=X(t.footerFont),u=o.length,d=n.length,f=i.length,g=nt(t.padding),m=g.height,p=0,b=i.reduce((w,x)=>w+x.before.length+x.lines.length+x.after.length,0);if(b+=s.beforeBody.length+s.afterBody.length,u&&(m+=u*c.lineHeight+(u-1)*t.titleSpacing+t.titleMarginBottom),b){let w=t.displayColors?Math.max(a,l.lineHeight):l.lineHeight;m+=f*w+(b-f)*l.lineHeight+(b-1)*t.bodySpacing}d&&(m+=t.footerMarginTop+d*h.lineHeight+(d-1)*t.footerSpacing);let y=0,_=function(w){p=Math.max(p,e.measureText(w).width+y)};return e.save(),e.font=c.string,z(s.title,_),e.font=l.string,z(s.beforeBody.concat(s.afterBody),_),y=t.displayColors?r+2+t.boxPadding:0,z(i,w=>{z(w.before,_),z(w.lines,_),z(w.after,_)}),y=0,e.font=h.string,z(s.footer,_),e.restore(),p+=g.width,{width:p,height:m}}function Tf(s,t){let{y:e,height:i}=t;return e<i/2?"top":e>s.height-i/2?"bottom":"center"}function Df(s,t,e,i){let{x:n,width:o}=i,r=e.caretSize+e.caretPadding;if(s==="left"&&n+o+r>t.width||s==="right"&&n-o-r<0)return!0}function Cf(s,t,e,i){let{x:n,width:o}=e,{width:r,chartArea:{left:a,right:l}}=s,c="center";return i==="center"?c=n<=(a+l)/2?"left":"right":n<=o/2?c="left":n>=r-o/2&&(c="right"),Df(c,s,t,e)&&(c="center"),c}function ga(s,t,e){let i=e.yAlign||t.yAlign||Tf(s,e);return{xAlign:e.xAlign||t.xAlign||Cf(s,t,e,i),yAlign:i}}function Pf(s,t){let{x:e,width:i}=s;return t==="right"?e-=i:t==="center"&&(e-=i/2),e}function Af(s,t,e){let{y:i,height:n}=s;return t==="top"?i+=e:t==="bottom"?i-=n+e:i-=n/2,i}function ma(s,t,e,i){let{caretSize:n,caretPadding:o,cornerRadius:r}=s,{xAlign:a,yAlign:l}=e,c=n+o,{topLeft:h,topRight:u,bottomLeft:d,bottomRight:f}=te(r),g=Pf(t,a),m=Af(t,l,c);return l==="center"?a==="left"?g+=c:a==="right"&&(g-=c):a==="left"?g-=Math.max(h,d)+n:a==="right"&&(g+=Math.max(u,f)+n),{x:K(g,0,i.width-t.width),y:K(m,0,i.height-t.height)}}function pi(s,t,e){let i=nt(e.padding);return t==="center"?s.x+s.width/2:t==="right"?s.x+s.width-i.right:s.x+i.left}function pa(s){return Et([],$t(s))}function If(s,t,e){return Bt(s,{tooltip:t,tooltipItems:e,type:"tooltip"})}function ba(s,t){let e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?s.override(e):s}var Ya={beforeTitle:At,title(s){if(s.length>0){let t=s[0],e=t.chart.data.labels,i=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(i>0&&t.dataIndex<i)return e[t.dataIndex]}return""},afterTitle:At,beforeBody:At,beforeLabel:At,label(s){if(this&&this.options&&this.options.mode==="dataset")return s.label+": "+s.formattedValue||s.formattedValue;let t=s.dataset.label||"";t&&(t+=": ");let e=s.formattedValue;return I(e)||(t+=e),t},labelColor(s){let e=s.chart.getDatasetMeta(s.datasetIndex).controller.getStyle(s.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(s){let e=s.chart.getDatasetMeta(s.datasetIndex).controller.getStyle(s.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:At,afterBody:At,beforeFooter:At,footer:At,afterFooter:At};function lt(s,t,e,i){let n=s[t].call(e,i);return typeof n>"u"?Ya[t].call(e,i):n}var Ps=class extends dt{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let t=this._cachedAnimations;if(t)return t;let e=this.chart,i=this.options.setContext(this.getContext()),n=i.enabled&&e.options.animation&&i.animations,o=new _i(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=If(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){let{callbacks:i}=e,n=lt(i,"beforeTitle",this,t),o=lt(i,"title",this,t),r=lt(i,"afterTitle",this,t),a=[];return a=Et(a,$t(n)),a=Et(a,$t(o)),a=Et(a,$t(r)),a}getBeforeBody(t,e){return pa(lt(e.callbacks,"beforeBody",this,t))}getBody(t,e){let{callbacks:i}=e,n=[];return z(t Line truncated `):s}function Tf(s,t){let{element:e,datasetIndex:i,index:n}=t,r=s.getDatasetMeta(i).controller,{label:o,value:a}=r.getLabelAndValue(n);return{chart:s,label:o,parsed:r.getParsed(n),raw:s.data.datasets[i].data[n],formattedValue:a,dataset:r.getDataset(),dataIndex:n,datasetIndex:i,element:e}}function fa(s,t){let e=s.chart.ctx,{body:i,footer:n,title:r}=s,{boxWidth:o,boxHeight:a}=t,l=X(t.bodyFont),c=X(t.titleFont),h=X(t.footerFont),u=r.length,d=n.length,f=i.length,g=nt(t.padding),m=g.height,p=0,b=i.reduce((w,x)=>w+x.before.length+x.lines.length+x.after.length,0);if(b+=s.beforeBody.length+s.afterBody.length,u&&(m+=u*c.lineHeight+(u-1)*t.titleSpacing+t.titleMarginBottom),b){let w=t.displayColors?Math.max(a,l.lineHeight):l.lineHeight;m+=f*w+(b-f)*l.lineHeight+(b-1)*t.bodySpacing}d&&(m+=t.footerMarginTop+d*h.lineHeight+(d-1)*t.footerSpacing);let y=0,_=function(w){p=Math.max(p,e.measureText(w).width+y)};return e.save(),e.font=c.string,z(s.title,_),e.font=l.string,z(s.beforeBody.concat(s.afterBody),_),y=t.displayColors?o+2+t.boxPadding:0,z(i,w=>{z(w.before,_),z(w.lines,_),z(w.after,_)}),y=0,e.font=h.string,z(s.footer,_),e.restore(),p+=g.width,{width:p,height:m}}function Of(s,t){let{y:e,height:i}=t;return e<i/2?"top":e>s.height-i/2?"bottom":"center"}function Df(s,t,e,i){let{x:n,width:r}=i,o=e.caretSize+e.caretPadding;if(s==="left"&&n+r+o>t.width||s==="right"&&n-r-o<0)return!0}function Cf(s,t,e,i){let{x:n,width:r}=e,{width:o,chartArea:{left:a,right:l}}=s,c="center";return i==="center"?c=n<=(a+l)/2?"left":"right":n<=r/2?c="left":n>=o-r/2&&(c="right"),Df(c,s,t,e)&&(c="center"),c}function ga(s,t,e){let i=e.yAlign||t.yAlign||Of(s,e);return{xAlign:e.xAlign||t.xAlign||Cf(s,t,e,i),yAlign:i}}function Pf(s,t){let{x:e,width:i}=s;return t==="right"?e-=i:t==="center"&&(e-=i/2),e}function Af(s,t,e){let{y:i,height:n}=s;return t==="top"?i+=e:t==="bottom"?i-=n+e:i-=n/2,i}function ma(s,t,e,i){let{caretSize:n,caretPadding:r,cornerRadius:o}=s,{xAlign:a,yAlign:l}=e,c=n+r,{topLeft:h,topRight:u,bottomLeft:d,bottomRight:f}=Qt(o),g=Pf(t,a),m=Af(t,l,c);return l==="center"?a==="left"?g+=c:a==="right"&&(g-=c):a==="left"?g-=Math.max(h,d)+n:a==="right"&&(g+=Math.max(u,f)+n),{x:K(g,0,i.width-t.width),y:K(m,0,i.height-t.height)}}function pi(s,t,e){let i=nt(e.padding);return t==="center"?s.x+s.width/2:t==="right"?s.x+s.width-i.right:s.x+i.left}function pa(s){return It([],Ht(s))}function If(s,t,e){return Wt(s,{tooltip:t,tooltipItems:e,type:"tooltip"})}function ba(s,t){let e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?s.override(e):s}var Ya={beforeTitle:Pt,title(s){if(s.length>0){let t=s[0],e=t.chart.data.labels,i=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(i>0&&t.dataIndex<i)return e[t.dataIndex]}return""},afterTitle:Pt,beforeBody:Pt,beforeLabel:Pt,label(s){if(this&&this.options&&this.options.mode==="dataset")return s.label+": "+s.formattedValue||s.formattedValue;let t=s.dataset.label||"";t&&(t+=": ");let e=s.formattedValue;return I(e)||(t+=e),t},labelColor(s){let e=s.chart.getDatasetMeta(s.datasetIndex).controller.getStyle(s.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(s){let e=s.chart.getDatasetMeta(s.datasetIndex).controller.getStyle(s.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:Pt,afterBody:Pt,beforeFooter:Pt,footer:Pt,afterFooter:Pt};function lt(s,t,e,i){let n=s[t].call(e,i);return typeof n>"u"?Ya[t].call(e,i):n}var Ps=class extends dt{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let t=this._cachedAnimations;if(t)return t;let e=this.chart,i=this.options.setContext(this.getContext()),n=i.enabled&&e.options.animation&&i.animations,r=new _i(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(r)),r}getContext(){return this.$context||(this.$context=If(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){let{callbacks:i}=e,n=lt(i,"beforeTitle",this,t),r=lt(i,"title",this,t),o=lt(i,"afterTitle",this,t),a=[];return a=It(a,Ht(n)),a=It(a,Ht(r)),a=It(a,Ht(o)),a}getBeforeBody(t,e){return pa(lt(e.callbacks,"beforeBody",this,t))}getBody(t,e){let{callbacks:i}=e,n=[];return z(t Line truncated
/*! Bundled license information: /*! Bundled license information:
@kurkle/color/dist/color.esm.js: @kurkle/color/dist/color.esm.js:
@@ -1,6 +1,6 @@
var Jo=Object.defineProperty;var Zo=(i,t,e)=>t in i?Jo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var M=(i,t,e)=>Zo(i,typeof t!="symbol"?t+"":t,e);function ve(i){return i+.5|0}var wt=(i,t,e)=>Math.max(Math.min(i,e),t);function _e(i){return wt(ve(i*2.55),0,255)}function St(i){return wt(ve(i*255),0,255)}function mt(i){return wt(ve(i/2.55)/100,0,1)}function zs(i){return wt(ve(i*100),0,100)}var nt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Ai=[..."0123456789ABCDEF"],Qo=i=>Ai[i&15],ta=i=>Ai[(i&240)>>4]+Ai[i&15],Ue=i=>(i&240)>>4===(i&15),ea=i=>Ue(i.r)&&Ue(i.g)&&Ue(i.b)&&Ue(i.a);function ia(i){var t=i.length,e;return i[0]==="#"&&(t===4||t===5?e={r:255&nt[i[1]]*17,g:255&nt[i[2]]*17,b:255&nt[i[3]]*17,a:t===5?nt[i[4]]*17:255}:(t===7||t===9)&&(e={r:nt[i[1]]<<4|nt[i[2]],g:nt[i[3]]<<4|nt[i[4]],b:nt[i[5]]<<4|nt[i[6]],a:t===9?nt[i[7]]<<4|nt[i[8]]:255})),e}var sa=(i,t)=>i<255?t(i):"";function na(i){var t=ea(i)?Qo:ta;return i?"#"+t(i.r)+t(i.g)+t(i.b)+sa(i.a,t):void 0}var oa=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Ns(i,t,e){let s=t*Math.min(e,1-e),n=(o,a=(o+i/30)%12)=>e-s*Math.max(Math.min(a-3,9-a,1),-1);return[n(0),n(8),n(4)]}function aa(i,t,e){let s=(n,o=(n+i/60)%6)=>e-e*t*Math.max(Math.min(o,4-o,1),0);return[s(5),s(3),s(1)]}function ra(i,t,e){let s=Ns(i,1,.5),n;for(t+e>1&&(n=1/(t+e),t*=n,e*=n),n=0;n<3;n++)s[n]*=1-t-e,s[n]+=t;return s}function la(i,t,e,s,n){return i===n?(t-e)/s+(t<e?6:0):t===n?(e-i)/s+2:(i-t)/s+4}function Ti(i){let e=i.r/255,s=i.g/255,n=i.b/255,o=Math.max(e,s,n),a=Math.min(e,s,n),r=(o+a)/2,l,c,h;return o!==a&&(h=o-a,c=r>.5?h/(2-o-a):h/(o+a),l=la(e,s,n,h,o),l=l*60+.5),[l|0,c||0,r]}function Li(i,t,e,s){return(Array.isArray(t)?i(t[0],t[1],t[2]):i(t,e,s)).map(St)}function Ri(i,t,e){return Li(Ns,i,t,e)}function ca(i,t,e){return Li(ra,i,t,e)}function ha(i,t,e){return Li(aa,i,t,e)}function Hs(i){return(i%360+360)%360}function da(i){let t=oa.exec(i),e=255,s;if(!t)return;t[5]!==s&&(e=t[6]?_e(+t[5]):St(+t[5]));let n=Hs(+t[2]),o=+t[3]/100,a=+t[4]/100;return t[1]==="hwb"?s=ca(n,o,a):t[1]==="hsv"?s=ha(n,o,a):s=Ri(n,o,a),{r:s[0],g:s[1],b:s[2],a:e}}function ua(i,t){var e=Ti(i);e[0]=Hs(e[0]+t),e=Ri(e),i.r=e[0],i.g=e[1],i.b=e[2]}function fa(i){if(!i)return;let t=Ti(i),e=t[0],s=zs(t[1]),n=zs(t[2]);return i.a<255?`hsla(${e}, ${s}%, ${n}%, ${mt(i.a)})`:`hsl(${e}, ${s}%, ${n}%)`}var Bs={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Vs={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};functionLine truncated var Jo=Object.defineProperty;var Zo=(i,t,e)=>t in i?Jo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var M=(i,t,e)=>Zo(i,typeof t!="symbol"?t+"":t,e);function ve(i){return i+.5|0}var wt=(i,t,e)=>Math.max(Math.min(i,e),t);function _e(i){return wt(ve(i*2.55),0,255)}function St(i){return wt(ve(i*255),0,255)}function mt(i){return wt(ve(i/2.55)/100,0,1)}function zs(i){return wt(ve(i*100),0,100)}var nt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Ai=[..."0123456789ABCDEF"],Qo=i=>Ai[i&15],ta=i=>Ai[(i&240)>>4]+Ai[i&15],Ue=i=>(i&240)>>4===(i&15),ea=i=>Ue(i.r)&&Ue(i.g)&&Ue(i.b)&&Ue(i.a);function ia(i){var t=i.length,e;return i[0]==="#"&&(t===4||t===5?e={r:255&nt[i[1]]*17,g:255&nt[i[2]]*17,b:255&nt[i[3]]*17,a:t===5?nt[i[4]]*17:255}:(t===7||t===9)&&(e={r:nt[i[1]]<<4|nt[i[2]],g:nt[i[3]]<<4|nt[i[4]],b:nt[i[5]]<<4|nt[i[6]],a:t===9?nt[i[7]]<<4|nt[i[8]]:255})),e}var sa=(i,t)=>i<255?t(i):"";function na(i){var t=ea(i)?Qo:ta;return i?"#"+t(i.r)+t(i.g)+t(i.b)+sa(i.a,t):void 0}var oa=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Ns(i,t,e){let s=t*Math.min(e,1-e),n=(o,a=(o+i/30)%12)=>e-s*Math.max(Math.min(a-3,9-a,1),-1);return[n(0),n(8),n(4)]}function aa(i,t,e){let s=(n,o=(n+i/60)%6)=>e-e*t*Math.max(Math.min(o,4-o,1),0);return[s(5),s(3),s(1)]}function ra(i,t,e){let s=Ns(i,1,.5),n;for(t+e>1&&(n=1/(t+e),t*=n,e*=n),n=0;n<3;n++)s[n]*=1-t-e,s[n]+=t;return s}function la(i,t,e,s,n){return i===n?(t-e)/s+(t<e?6:0):t===n?(e-i)/s+2:(i-t)/s+4}function Ti(i){let e=i.r/255,s=i.g/255,n=i.b/255,o=Math.max(e,s,n),a=Math.min(e,s,n),r=(o+a)/2,l,c,h;return o!==a&&(h=o-a,c=r>.5?h/(2-o-a):h/(o+a),l=la(e,s,n,h,o),l=l*60+.5),[l|0,c||0,r]}function Li(i,t,e,s){return(Array.isArray(t)?i(t[0],t[1],t[2]):i(t,e,s)).map(St)}function Ri(i,t,e){return Li(Ns,i,t,e)}function ca(i,t,e){return Li(ra,i,t,e)}function ha(i,t,e){return Li(aa,i,t,e)}function Hs(i){return(i%360+360)%360}function da(i){let t=oa.exec(i),e=255,s;if(!t)return;t[5]!==s&&(e=t[6]?_e(+t[5]):St(+t[5]));let n=Hs(+t[2]),o=+t[3]/100,a=+t[4]/100;return t[1]==="hwb"?s=ca(n,o,a):t[1]==="hsv"?s=ha(n,o,a):s=Ri(n,o,a),{r:s[0],g:s[1],b:s[2],a:e}}function ua(i,t){var e=Ti(i);e[0]=Hs(e[0]+t),e=Ri(e),i.r=e[0],i.g=e[1],i.b=e[2]}function fa(i){if(!i)return;let t=Ti(i),e=t[0],s=zs(t[1]),n=zs(t[2]);return i.a<255?`hsla(${e}, ${s}%, ${n}%, ${mt(i.a)})`:`hsl(${e}, ${s}%, ${n}%)`}var Bs={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Vs={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};functionLine truncated
`)>-1?i.split(` `)>-1?i.split(`
`):i}function Qc(i,t){let{element:e,datasetIndex:s,index:n}=t,o=i.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:i,label:a,parsed:o.getParsed(n),raw:i.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:e}}function po(i,t){let e=i.chart.ctx,{body:s,footer:n,title:o}=i,{boxWidth:a,boxHeight:r}=t,l=$(t.bodyFont),c=$(t.titleFont),h=$(t.footerFont),d=o.length,u=n.length,f=s.length,g=q(t.padding),p=g.height,m=0,b=s.reduce((y,_)=>y+_.before.length+_.lines.length+_.after.length,0);if(b+=i.beforeBody.length+i.afterBody.length,d&&(p+=d*c.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),b){let y=t.displayColors?Math.max(r,l.lineHeight):l.lineHeight;p+=f*y+(b-f)*l.lineHeight+(b-1)*t.bodySpacing}u&&(p+=t.footerMarginTop+u*h.lineHeight+(u-1)*t.footerSpacing);let x=0,v=function(y){m=Math.max(m,e.measureText(y).width+x)};return e.save(),e.font=c.string,E(i.title,v),e.font=l.string,E(i.beforeBody.concat(i.afterBody),v),x=t.displayColors?a+2+t.boxPadding:0,E(s,y=>{E(y.before,v),E(y.lines,v),E(y.after,v)}),x=0,e.font=h.string,E(i.footer,v),e.restore(),m+=g.width,{width:m,height:p}}function th(i,t){let{y:e,height:s}=t;return e<s/2?"top":e>i.height-s/2?"bottom":"center"}function eh(i,t,e,s){let{x:n,width:o}=s,a=e.caretSize+e.caretPadding;if(i==="left"&&n+o+a>t.width||i==="right"&&n-o-a<0)return!0}function ih(i,t,e,s){let{x:n,width:o}=e,{width:a,chartArea:{left:r,right:l}}=i,c="center";return s==="center"?c=n<=(r+l)/2?"left":"right":n<=o/2?c="left":n>=a-o/2&&(c="right"),eh(c,i,t,e)&&(c="center"),c}function mo(i,t,e){let s=e.yAlign||t.yAlign||th(i,e);return{xAlign:e.xAlign||t.xAlign||ih(i,t,e,s),yAlign:s}}function sh(i,t){let{x:e,width:s}=i;return t==="right"?e-=s:t==="center"&&(e-=s/2),e}function nh(i,t,e){let{y:s,height:n}=i;return t==="top"?s+=e:t==="bottom"?s-=n+e:s-=n/2,s}function bo(i,t,e,s){let{caretSize:n,caretPadding:o,cornerRadius:a}=i,{xAlign:r,yAlign:l}=e,c=n+o,{topLeft:h,topRight:d,bottomLeft:u,bottomRight:f}=Tt(a),g=sh(t,r),p=nh(t,l,c);return l==="center"?r==="left"?g+=c:r==="right"&&(g-=c):r==="left"?g-=Math.max(h,u)+n:r==="right"&&(g+=Math.max(d,f)+n),{x:Y(g,0,s.width-t.width),y:Y(p,0,s.height-t.height)}}function bi(i,t,e){let s=q(e.padding);return t==="center"?i.x+i.width/2:t==="right"?i.x+i.width-s.right:i.x+s.left}function xo(i){return ft([],Mt(i))}function oh(i,t,e){return yt(i,{tooltip:t,tooltipItems:e,type:"tooltip"})}function _o(i,t){let e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?i.override(e):i}var Ko={beforeTitle:dt,title(i){if(i.length>0){let t=i[0],e=t.chart.data.labels,s=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(s>0&&t.dataIndex<s)return e[t.dataIndex]}return""},afterTitle:dt,beforeBody:dt,beforeLabel:dt,label(i){if(this&&this.options&&this.options.mode==="dataset")return i.label+": "+i.formattedValue||i.formattedValue;let t=i.dataset.label||"";t&&(t+=": ");let e=i.formattedValue;return A(e)||(t+=e),t},labelColor(i){let e=i.chart.getDatasetMeta(i.datasetIndex).controller.getStyle(i.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(i){let e=i.chart.getDatasetMeta(i.datasetIndex).controller.getStyle(i.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:dt,afterBody:dt,beforeFooter:dt,footer:dt,afterFooter:dt};function Q(i,t,e,s){let n=i[t].call(e,s);return typeof n>"u"?Ko[t].call(e,s):n}var We=class extends st{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let t=this._cachedAnimations;if(t)return t;let e=this.chart,s=this.options.setContext(this.getContext()),n=s.enabled&&e.options.animation&&s.animations,o=new vi(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=oh(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){let{callbacks:s}=e,n=Q(s,"beforeTitle",this,t),o=Q(s,"title",this,t),a=Q(s,"afterTitle",this,t),r=[];return r=ft(r,Mt(n)),r=ft(r,Mt(o)),r=ft(r,Mt(a)),r}getBeforeBody(t,e){return xo(Q(e.callbacks,"beforeBody",this,t))}getBody(t,e){let{callbacks:s}=e,n=[];return E(t,o=>{le Line truncated `):i}function Qc(i,t){let{element:e,datasetIndex:s,index:n}=t,o=i.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:i,label:a,parsed:o.getParsed(n),raw:i.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:e}}function po(i,t){let e=i.chart.ctx,{body:s,footer:n,title:o}=i,{boxWidth:a,boxHeight:r}=t,l=$(t.bodyFont),c=$(t.titleFont),h=$(t.footerFont),d=o.length,u=n.length,f=s.length,g=q(t.padding),p=g.height,m=0,b=s.reduce((y,_)=>y+_.before.length+_.lines.length+_.after.length,0);if(b+=i.beforeBody.length+i.afterBody.length,d&&(p+=d*c.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),b){let y=t.displayColors?Math.max(r,l.lineHeight):l.lineHeight;p+=f*y+(b-f)*l.lineHeight+(b-1)*t.bodySpacing}u&&(p+=t.footerMarginTop+u*h.lineHeight+(u-1)*t.footerSpacing);let x=0,v=function(y){m=Math.max(m,e.measureText(y).width+x)};return e.save(),e.font=c.string,E(i.title,v),e.font=l.string,E(i.beforeBody.concat(i.afterBody),v),x=t.displayColors?a+2+t.boxPadding:0,E(s,y=>{E(y.before,v),E(y.lines,v),E(y.after,v)}),x=0,e.font=h.string,E(i.footer,v),e.restore(),m+=g.width,{width:m,height:p}}function th(i,t){let{y:e,height:s}=t;return e<s/2?"top":e>i.height-s/2?"bottom":"center"}function eh(i,t,e,s){let{x:n,width:o}=s,a=e.caretSize+e.caretPadding;if(i==="left"&&n+o+a>t.width||i==="right"&&n-o-a<0)return!0}function ih(i,t,e,s){let{x:n,width:o}=e,{width:a,chartArea:{left:r,right:l}}=i,c="center";return s==="center"?c=n<=(r+l)/2?"left":"right":n<=o/2?c="left":n>=a-o/2&&(c="right"),eh(c,i,t,e)&&(c="center"),c}function mo(i,t,e){let s=e.yAlign||t.yAlign||th(i,e);return{xAlign:e.xAlign||t.xAlign||ih(i,t,e,s),yAlign:s}}function sh(i,t){let{x:e,width:s}=i;return t==="right"?e-=s:t==="center"&&(e-=s/2),e}function nh(i,t,e){let{y:s,height:n}=i;return t==="top"?s+=e:t==="bottom"?s-=n+e:s-=n/2,s}function bo(i,t,e,s){let{caretSize:n,caretPadding:o,cornerRadius:a}=i,{xAlign:r,yAlign:l}=e,c=n+o,{topLeft:h,topRight:d,bottomLeft:u,bottomRight:f}=Tt(a),g=sh(t,r),p=nh(t,l,c);return l==="center"?r==="left"?g+=c:r==="right"&&(g-=c):r==="left"?g-=Math.max(h,u)+n:r==="right"&&(g+=Math.max(d,f)+n),{x:Y(g,0,s.width-t.width),y:Y(p,0,s.height-t.height)}}function bi(i,t,e){let s=q(e.padding);return t==="center"?i.x+i.width/2:t==="right"?i.x+i.width-s.right:i.x+s.left}function xo(i){return ft([],Mt(i))}function oh(i,t,e){return yt(i,{tooltip:t,tooltipItems:e,type:"tooltip"})}function _o(i,t){let e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?i.override(e):i}var Ko={beforeTitle:dt,title(i){if(i.length>0){let t=i[0],e=t.chart.data.labels,s=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(s>0&&t.dataIndex<s)return e[t.dataIndex]}return""},afterTitle:dt,beforeBody:dt,beforeLabel:dt,label(i){if(this&&this.options&&this.options.mode==="dataset")return i.label+": "+i.formattedValue||i.formattedValue;let t=i.dataset.label||"";t&&(t+=": ");let e=i.formattedValue;return A(e)||(t+=e),t},labelColor(i){let e=i.chart.getDatasetMeta(i.datasetIndex).controller.getStyle(i.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(i){let e=i.chart.getDatasetMeta(i.datasetIndex).controller.getStyle(i.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:dt,afterBody:dt,beforeFooter:dt,footer:dt,afterFooter:dt};function Q(i,t,e,s){let n=i[t].call(e,s);return typeof n>"u"?Ko[t].call(e,s):n}var We=class extends st{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let t=this._cachedAnimations;if(t)return t;let e=this.chart,s=this.options.setContext(this.getContext()),n=s.enabled&&e.options.animation&&s.animations,o=new vi(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=oh(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){let{callbacks:s}=e,n=Q(s,"beforeTitle",this,t),o=Q(s,"title",this,t),a=Q(s,"afterTitle",this,t),r=[];return r=ft(r,Mt(n)),r=ft(r,Mt(o)),r=ft(r,Mt(a)),r}getBeforeBody(t,e){return xo(Q(e.callbacks,"beforeBody",this,t))}getBody(t,e){let{callbacks:s}=e,n=[];return E(t,o=>{le Line truncated
/*! Bundled license information: /*! Bundled license information:
@kurkle/color/dist/color.esm.js: @kurkle/color/dist/color.esm.js: