File: /home/posscale/public_html/printmanager/vendor/filament/tables/src/Actions/ActionGroup.php
<?php
namespace Filament\Tables\Actions;
use Exception;
use Filament\Actions\ActionGroup as BaseActionGroup;
use Filament\Actions\Concerns\InteractsWithRecord;
use Filament\Actions\Contracts\HasRecord;
use Filament\Tables\Actions\Contracts\HasTable;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Model;
/**
* @property array<Action | BulkAction> $actions
*/
class ActionGroup extends BaseActionGroup implements HasRecord, HasTable
{
use InteractsWithRecord;
protected Table $table;
public function table(Table $table): static
{
$this->table = $table;
return $this;
}
public function getTable(): Table
{
if (isset($this->table)) {
return $this->table;
}
$group = $this->getGroup();
if (! ($group instanceof HasTable)) {
throw new Exception('This action does not belong to a table.');
}
return $group->getTable();
}
/**
* @return array<mixed>
*/
protected function resolveDefaultClosureDependencyForEvaluationByName(string $parameterName): array
{
return match ($parameterName) {
'record' => [$this->getRecord()],
default => parent::resolveDefaultClosureDependencyForEvaluationByName($parameterName),
};
}
/**
* @return array<mixed>
*/
protected function resolveDefaultClosureDependencyForEvaluationByType(string $parameterType): array
{
$record = $this->getRecord();
if (! $record) {
return parent::resolveDefaultClosureDependencyForEvaluationByType($parameterType);
}
return match ($parameterType) {
Model::class, $record::class => [$record],
default => parent::resolveDefaultClosureDependencyForEvaluationByType($parameterType),
};
}
}