pips decimal at slider

This commit is contained in:
salam committed 2026-06-03 15:54:18 +02:00
1 parent 10801ddab2
commit 99363e001c
5 files changed
+2083 -33

No files matched your search

+13 -10
View File
@@ -18,6 +18,7 @@ use Filament\Schemas\Components\Grid;
use Filament\Schemas\Components\Utilities\Get; use Filament\Schemas\Components\Utilities\Get;
use Filament\Schemas\Components\Utilities\Set; use Filament\Schemas\Components\Utilities\Set;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Support\RawJs;
use Illuminate\Contracts\Support\Htmlable; use Illuminate\Contracts\Support\Htmlable;
use Illuminate\Support\HtmlString; use Illuminate\Support\HtmlString;
use PhpOption\None; use PhpOption\None;
@@ -203,8 +204,7 @@ class Statistic extends BaseDashboard
->hiddenLabel() ->hiddenLabel()
->placeholder('Similar Past Matches') ->placeholder('Similar Past Matches')
->prefixIconColor('primary') ->prefixIconColor('primary')
// ->prefixIcon('phosphor-approximate-equals') ->suffix(fn (Get $get): string|HtmlString => $get('similar_past_matches') != 'none' ? new HtmlString('<div class="text-center w-24 font-bold rounded p-1 bg-blue-600 dark:bg-blue-700 text-white dark:text-gray-300">'.$get('accuracy').'</div>') : '')
->suffix(fn (Get $get): string|HtmlString => $get('similar_past_matches') != 'none' ? new HtmlString('<span class="text-xl">'.$get('accuracy').'</span>') : '')
->columnSpan([ ->columnSpan([
'default' => 1, 'default' => 1,
'xl' => 2, 'xl' => 2,
@@ -230,18 +230,21 @@ class Statistic extends BaseDashboard
// ->label('Accuracy min: 0, max: 0.25, steps: 0.025') // ->label('Accuracy min: 0, max: 0.25, steps: 0.025')
->hiddenLabel() ->hiddenLabel()
->hidden(fn (Get $get) => $get('similar_past_matches') == 'none') ->hidden(fn (Get $get) => $get('similar_past_matches') == 'none')
// ->fillTrack() ->fillTrack()
->range(minValue: 0, maxValue: 0.25) ->minValue(0)
->maxValue(0.25)
->default(0.125)
->step(0.025) ->step(0.025)
->default(5)
->decimalPlaces(1)
->decimalPlaces(3) ->decimalPlaces(3)
// ->tooltips() // ->tooltips()
// ->columnSpan([ ->columnSpan([
// 'default' => 1, 'default' => 1,
// 'xl' => 2, 'xl' => 2,
// ]) ])
->pips() ->pips()
->pipsFormatter(RawJs::make(<<<'JS'
`${$value.toFixed(2)}`
JS))
->live(), ->live(),
Select::make('tm_player_id') Select::make('tm_player_id')
->hiddenLabel() ->hiddenLabel()
+13 -16
View File
@@ -33,7 +33,7 @@ class StatsMedianAverage extends StatsOverviewWidget
'default' => 1, 'default' => 1,
'sm' => 2, 'sm' => 2,
'md' => 3, 'md' => 3,
'md' => 6, 'lg' => 6,
]; ];
$statistic_type = ucfirst(HelperStatisticType::get($this->filters)); $statistic_type = ucfirst(HelperStatisticType::get($this->filters));
@@ -63,7 +63,6 @@ class StatsMedianAverage extends StatsOverviewWidget
Stat::make('stat1', 'stat1')->view('filament.resources.events.widgets.statistic-regular', [ Stat::make('stat1', 'stat1')->view('filament.resources.events.widgets.statistic-regular', [
'titel' => 'Number of events', 'titel' => 'Number of events',
'value' => '0', 'value' => '0',
'hidden' => false,
]), ]),
Stat::make('stat2', 'stat2')->view('filament.resources.events.widgets.statistic-average', [ Stat::make('stat2', 'stat2')->view('filament.resources.events.widgets.statistic-average', [
'titel' => 'Average '.$statistic_type, 'titel' => 'Average '.$statistic_type,
@@ -82,17 +81,14 @@ class StatsMedianAverage extends StatsOverviewWidget
Stat::make('stat4', 'stat4')->view('filament.resources.events.widgets.statistic-regular', [ Stat::make('stat4', 'stat4')->view('filament.resources.events.widgets.statistic-regular', [
'titel' => 'Win', 'titel' => 'Win',
'value' => 0, 'value' => 0,
'hidden' => false,
]), ]),
Stat::make('stat5', 'stat5')->view('filament.resources.events.widgets.statistic-regular', [ Stat::make('stat5', 'stat5')->view('filament.resources.events.widgets.statistic-regular', [
'titel' => 'Draw', 'titel' => 'Draw',
'value' => 0, 'value' => 0,
'hidden' => false,
]), ]),
Stat::make('stat6', 'stat6')->view('filament.resources.events.widgets.statistic-regular', [ Stat::make('stat6', 'stat6')->view('filament.resources.events.widgets.statistic-regular', [
'titel' => 'Lost', 'titel' => 'Lost',
'value' => 0, 'value' => 0,
'hidden' => false,
]), ]),
]; ];
} }
@@ -122,15 +118,20 @@ class StatsMedianAverage extends StatsOverviewWidget
$median_away = $arr_away[$m]; $median_away = $arr_away[$m];
} }
$win = $data['results']['w'] ? number_format(Round::odd($total_home / $data['results']['w']), 2) : 0; if ($data['similar_past_matches'] == 'none') {
$draw = $data['results']['d'] ? number_format(Round::odd($total_home / $data['results']['d']), 2) : 0; $win = $data['results']['w'] ? number_format(Round::odd($total_home / $data['results']['w']), 2) : 0;
$lost = $data['results']['l'] ? number_format(Round::odd($total_home / $data['results']['l']), 2) : 0; $draw = $data['results']['d'] ? number_format(Round::odd($total_home / $data['results']['d']), 2) : 0;
$lost = $data['results']['l'] ? number_format(Round::odd($total_home / $data['results']['l']), 2) : 0;
} else {
$win = 0;
$draw = 0;
$lost = 0;
}
return [ return [
Stat::make('stat1', 'stat1')->view('filament.resources.events.widgets.statistic-regular', [ Stat::make('stat1', 'stat1')->view('filament.resources.events.widgets.statistic-regular', [
'titel' => 'Number of events', 'titel' => 'Number of events',
'value' => $total_home, 'value' => $total_home,
'hidden' => false,
]), ]),
Stat::make('stat2', 'stat2')->view('filament.resources.events.widgets.statistic-average', [ Stat::make('stat2', 'stat2')->view('filament.resources.events.widgets.statistic-average', [
'titel' => 'Average '.$statistic_type, 'titel' => 'Average '.$statistic_type,
@@ -146,21 +147,17 @@ class StatsMedianAverage extends StatsOverviewWidget
'home' => $home_team, 'home' => $home_team,
'away' => $away_team, 'away' => $away_team,
]), ]),
Stat::make('stat4', 'stat4')->view('filament.resources.events.widgets.statistic-regular', [ Stat::make('stat4', 'stat4')->view('filament.resources.events.widgets.statistic-regular', [
'titel' => 'Win: '.$data['results']['w'], 'titel' => ($data['similar_past_matches'] != 'none') ? 'Win' : 'Win: '.$data['results']['w'],
'value' => $win, 'value' => $win,
'hidden' => $data['similar_past_matches'] == 'none' ? false : true,
]), ]),
Stat::make('stat5', 'stat5')->view('filament.resources.events.widgets.statistic-regular', [ Stat::make('stat5', 'stat5')->view('filament.resources.events.widgets.statistic-regular', [
'titel' => 'Draw: '.$data['results']['d'], 'titel' => ($data['similar_past_matches'] != 'none') ? 'Draw' : 'Draw: '.$data['results']['d'],
'value' => $draw, 'value' => $draw,
'hidden' => $data['similar_past_matches'] == 'none' ? false : true,
]), ]),
Stat::make('stat6', 'stat6')->view('filament.resources.events.widgets.statistic-regular', [ Stat::make('stat6', 'stat6')->view('filament.resources.events.widgets.statistic-regular', [
'titel' => 'Lost: '.$data['results']['l'], 'titel' => ($data['similar_past_matches'] != 'none') ? 'Lost' : 'Lost: '.$data['results']['l'],
'value' => $lost, 'value' => $lost,
'hidden' => $data['similar_past_matches'] == 'none' ? false : true,
]), ]),
]; ];
} }
+440
View File
@@ -0,0 +1,440 @@
{
"event": {
"eventState": {},
"tournament": {
"name": "Liga DIMAYOR, Apertura, Playoffs",
"slug": "primera-a-apertura-playoffs",
"category": {
"name": "Colombia",
"slug": "colombia",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 0,
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 274,
"flag": "colombia",
"alpha2": "CO",
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0643\u0648\u0644\u0648\u0645\u0628\u064a\u0627",
"ru": "\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u044f"
},
"shortNameTranslation": {}
}
},
"uniqueTournament": {
"name": "Primera A, Apertura",
"slug": "primera-a-apertura",
"primaryColorHex": "#002c6d",
"secondaryColorHex": "#00afcf",
"category": {
"name": "Colombia",
"slug": "colombia",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 0,
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 274,
"flag": "colombia",
"alpha2": "CO",
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0643\u0648\u0644\u0648\u0645\u0628\u064a\u0627",
"ru": "\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u044f"
},
"shortNameTranslation": {}
}
},
"userCount": 24442,
"hasRounds": true,
"hasPerformanceGraphFeature": false,
"country": {},
"id": 11539,
"hasEventPlayerStatistics": true,
"displayInverseHomeAwayTeams": false,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0627\u0644\u062f\u0648\u0631\u064a \u0627\u0644\u0623\u0648\u0644\u060c \u0645\u0631\u062d\u0644\u0629 \u0627\u0644\u0630\u0647\u0627\u0628",
"bn": "\u09aa\u09cd\u09b0\u09be\u0987\u09ae\u09c7\u09b0\u09be \u098f, \u0985\u09cd\u09af\u09be\u09aa\u09be\u09b0\u09cd\u09a4\u09c1\u09b0\u09be",
"hi": "\u092a\u094d\u0930\u093e\u0907\u092e\u0947\u0930\u093e \u090f, \u090f\u092a\u0930\u094d\u091f\u0941\u0930\u093e"
},
"shortNameTranslation": {}
}
},
"priority": 285,
"isGroup": false,
"competitionType": 2,
"isLive": false,
"id": 19235,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0627\u0644\u062f\u0648\u0631\u064a \u0627\u0644\u0643\u0648\u0644\u0648\u0645\u0628\u064a\u060c \u0645\u0631\u062d\u0644\u0629 \u0627\u0644\u0630\u0647\u0627\u0628\u060c \u0627\u0644\u062a\u0635\u0641\u064a\u0627\u062a",
"bn": "\u09aa\u09cd\u09b0\u09be\u0987\u09ae\u09c7\u09b0\u09be \u098f, \u0985\u09cd\u09af\u09be\u09aa\u09be\u09b0\u09cd\u099f\u09c1\u09b0\u09be, \u09aa\u09cd\u09b2\u09c7\u0985\u09ab",
"hi": "\u092a\u094d\u0930\u093e\u0907\u092e\u0947\u0930\u093e \u090f, \u090f\u092a\u0930\u094d\u091f\u0941\u0930\u093e, \u092a\u094d\u0932\u0947\u0911\u092b\u094d\u0938"
},
"shortNameTranslation": {}
}
},
"season": {
"name": "Liga DIMAYOR 2026",
"year": "2026",
"editor": false,
"id": 88503
},
"roundInfo": {
"round": 29,
"name": "Final",
"slug": "final",
"cupRoundType": 1
},
"customId": "fxcsgxc",
"status": {
"code": 100,
"description": "Ended",
"type": "finished"
},
"winnerCode": 1,
"venue": {
"city": {
"name": "Barranquilla",
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 18864
},
"venueCoordinates": {
"latitude": 10.926955,
"longitude": -74.800511
},
"hidden": true,
"slug": "estadio-metropolitano-roberto-melendez",
"name": "Estadio Metropolitano Roberto Melendez",
"capacity": 46692,
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 1594,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0645\u0644\u0639\u0628 \u0645\u062a\u0631\u0648\u0628\u0648\u0644\u064a\u062a\u0627\u0646\u0648 \u0631\u0648\u0628\u0631\u062a\u0648 \u0645\u064a\u0644\u064a\u0646\u062f\u064a\u0632",
"hi": "\u090f\u0938\u094d\u091f\u0947\u0921\u093f\u092f\u094b \u092e\u0947\u091f\u094d\u0930\u094b\u092a\u094b\u0932\u093f\u091f\u093e\u0928\u094b \u0930\u0949\u092c\u0930\u094d\u091f\u094b \u092e\u0947\u0932\u0947\u0902\u0921\u0947\u091c\u093c",
"bn": "\u098f\u09b8\u09cd\u09a4\u09be\u09a6\u09bf\u0993 \u09ae\u09c7\u099f\u09cd\u09b0\u09cb\u09aa\u09b2\u09bf\u099f\u09be\u09a8\u09cb \u09b0\u09ac\u09be\u09b0\u09cd\u09a4\u09cb \u09ae\u09c7\u09b2\u09be\u09a8\u09cd\u09a6\u09c7\u099c"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "Estadio Metropolitano Roberto Melendez",
"capacity": 46692
}
},
"referee": {
"name": "Carlos Ortega",
"slug": "ortega-carlos",
"yellowCards": 1524,
"redCards": 45,
"yellowRedCards": 48,
"games": 257,
"sport": {
"id": 1,
"slug": "football",
"name": "Football"
},
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 786569,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0643\u0627\u0631\u0644\u0648\u0633 \u0623\u0648\u0631\u062a\u064a\u063a\u0627"
},
"shortNameTranslation": {}
}
},
"homeTeam": {
"name": "Junior Barranquilla",
"slug": "junior-barranquilla",
"shortName": "Junior Barranquilla",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 72286,
"manager": {
"name": "Alfredo Arias",
"slug": "alfredo-arias",
"shortName": "A. Arias",
"country": {
"alpha2": "UY",
"alpha3": "URY",
"name": "Uruguay",
"slug": "uruguay"
},
"id": 340049,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0623\u0644\u0641\u0631\u064a\u062f\u0648 \u0623\u0631\u064a\u0627\u0633"
},
"shortNameTranslation": {
"ar": "\u0623. \u0623\u0631\u064a\u0627\u0633"
}
}
},
"venue": {
"city": {
"name": "Barranquilla",
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 18864
},
"venueCoordinates": {
"latitude": 10.926955,
"longitude": -74.800511
},
"hidden": true,
"slug": "estadio-metropolitano-roberto-melendez",
"name": "Estadio Metropolitano Roberto Melendez",
"capacity": 46692,
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 1594,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0645\u0644\u0639\u0628 \u0645\u062a\u0631\u0648\u0628\u0648\u0644\u064a\u062a\u0627\u0646\u0648 \u0631\u0648\u0628\u0631\u062a\u0648 \u0645\u064a\u0644\u064a\u0646\u062f\u064a\u0632",
"hi": "\u090f\u0938\u094d\u091f\u0947\u0921\u093f\u092f\u094b \u092e\u0947\u091f\u094d\u0930\u094b\u092a\u094b\u0932\u093f\u091f\u093e\u0928\u094b \u0930\u0949\u092c\u0930\u094d\u091f\u094b \u092e\u0947\u0932\u0947\u0902\u0921\u0947\u091c\u093c",
"bn": "\u098f\u09b8\u09cd\u09a4\u09be\u09a6\u09bf\u0993 \u09ae\u09c7\u099f\u09cd\u09b0\u09cb\u09aa\u09b2\u09bf\u099f\u09be\u09a8\u09cb \u09b0\u09ac\u09be\u09b0\u09cd\u09a4\u09cb \u09ae\u09c7\u09b2\u09be\u09a8\u09cd\u09a6\u09c7\u099c"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "Estadio Metropolitano Roberto Melendez",
"capacity": 46692
}
},
"nameCode": "JUN",
"class": 1,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 6105,
"fullName": "Junior Barranquilla",
"subTeams": [],
"teamColors": {
"primary": "#cc0000",
"secondary": "#ffffff",
"text": "#ffffff"
},
"foundationDateTimestamp": -1432771200,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u062e\u0648\u0646\u064a\u0648 \u0628\u0627\u0631\u0627\u0646\u0643\u0648\u064a\u0644\u0627",
"ru": "\u0410\u0442\u043b\u0435\u0442\u0438\u043a\u043e \u0414\u0436\u0443\u043d\u0438\u043e\u0440"
},
"shortNameTranslation": {
"ar": "\u062e\u0648\u0646\u064a\u0648 \u0628\u0627\u0631\u0627\u0646\u0643\u0648\u064a\u0644\u0627"
}
},
"timeActive": []
},
"awayTeam": {
"name": "Atl\u00e9tico Nacional",
"slug": "atletico-nacional",
"shortName": "Atl. Nacional",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 122307,
"manager": {
"name": "Diego Arias",
"slug": "diego-arias",
"shortName": "D. Arias",
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 801358,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u062f\u064a\u064a\u063a\u0648 \u0623\u0631\u064a\u0627\u0633"
},
"shortNameTranslation": {
"ar": "\u062f. \u0623\u0631\u064a\u0627\u0633"
}
}
},
"venue": {
"city": {
"name": "Medellin",
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 19386
},
"venueCoordinates": {
"latitude": 6.256827,
"longitude": -75.590147
},
"hidden": true,
"slug": "estadio-atanasio-girardot",
"name": "Estadio Atanasio Girardot",
"capacity": 44739,
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 1010,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0645\u0644\u0639\u0628 \u0623\u062a\u0627\u0646\u0627\u0633\u064a\u0648 \u063a\u064a\u0631\u0627\u0631\u062f\u0648\u062a",
"hi": "\u090f\u0938\u094d\u091f\u0947\u0921\u093f\u092f\u094b \u0905\u091f\u093e\u0928\u093e\u0938\u093f\u092f\u094b \u0917\u093f\u0930\u093e\u0930\u0921\u0949\u091f",
"bn": "\u098f\u09b8\u09cd\u09a4\u09be\u09a6\u09bf\u0993 \u0986\u09a4\u09be\u09a8\u09be\u09b8\u09bf\u0993 \u0997\u09bf\u09b0\u09be\u09a1\u099f"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "Estadio Atanasio Girardot",
"capacity": 44739
}
},
"nameCode": "CAN",
"class": 1,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "CO",
"alpha3": "COL",
"name": "Colombia",
"slug": "colombia"
},
"id": 6106,
"fullName": "Atl\u00e9tico Nacional",
"subTeams": [],
"teamColors": {
"primary": "#339933",
"secondary": "#ffffff",
"text": "#ffffff"
},
"foundationDateTimestamp": -720230400,
"fieldTranslations": {
"nameTranslation": {
"ar": "\u0623\u062a\u0644\u062a\u064a\u0643\u0648 \u0646\u0627\u0633\u064a\u0648\u0646\u0627\u0644",
"ru": "\u0410\u0442\u043b\u0435\u0442\u0438\u043a\u043e \u041d\u0430\u0441\u044c\u043e\u043d\u0430\u043b\u044c \u041c\u0435\u0434\u0435\u043b\u044c\u0438\u043d"
},
"shortNameTranslation": {
"ar": "\u0623\u062a\u0644. \u0646\u0627\u0633\u064a\u0648\u0646\u0627\u0644"
}
},
"timeActive": []
},
"homeScore": {
"current": 3,
"display": 3,
"period1": 2,
"period2": 1,
"normaltime": 3
},
"awayScore": {
"current": 0,
"display": 0,
"period1": 0,
"period2": 0,
"normaltime": 0
},
"time": {
"injuryTime1": 7,
"injuryTime2": 6,
"currentPeriodStartTimestamp": 1780450982
},
"changes": {
"changes": [
"status.code",
"status.description",
"status.type"
],
"changeTimestamp": 1780454080
},
"hasGlobalHighlights": true,
"hasXg": true,
"hasEventPlayerStatistics": true,
"hasEventPlayerHeatMap": true,
"detailId": 1,
"crowdsourcingDataDisplayEnabled": false,
"correctAiInsight": true,
"correctHalftimeAiInsight": true,
"id": 16231268,
"defaultPeriodCount": 2,
"defaultPeriodLength": 45,
"defaultOvertimeLength": 15,
"slug": "atletico-nacional-junior-barranquilla",
"currentPeriodStartTimestamp": 1780450982,
"startTimestamp": 1780446600,
"finalResultOnly": false,
"feedLocked": true,
"cupMatchesInRound": 2,
"seasonStatisticsType": "overall",
"showTotoPromo": true,
"isEditor": false,
"eventFilters": {
"category": [
"club"
],
"level": [
"pro"
],
"gender": [
"M"
]
}
}
}
+1612
View File
File diff suppressed because it is too large. Load diff
@@ -1,7 +1,5 @@
@if (!$hidden) <div
<div class="h-full rounded-lg p-0 lg:py-2 grid grid-rows-3 gap-0 bg-green-50 dark:bg-green-900 border border-green-300 dark:border-green-700">
class="h-full rounded-lg p-0 lg:py-2 grid grid-rows-3 gap-0 bg-green-50 dark:bg-green-900 border border-green-300 dark:border-green-700"> <span class="font-bold text-center">{{ $titel }}</span>
<span class="font-bold text-center">{{ $titel }}</span> <span class="font-bold text-2xl text-center">{{ $value }}</span>
<span class="font-bold text-2xl text-center">{{ $value }}</span> </div>
</div>
@endif