File: /home/posscale/www/printmanager/vendor/filament/filament/src/FilamentServiceProvider.php
<?php
namespace Filament;
use Filament\Facades\Filament;
use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\DisableBladeIconComponents;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Http\Middleware\IdentifyTenant;
use Filament\Http\Middleware\SetUpPanel;
use Filament\Http\Responses\Auth\Contracts\EmailVerificationResponse as EmailVerificationResponseContract;
use Filament\Http\Responses\Auth\Contracts\LoginResponse as LoginResponseContract;
use Filament\Http\Responses\Auth\Contracts\LogoutResponse as LogoutResponseContract;
use Filament\Http\Responses\Auth\Contracts\PasswordResetResponse as PasswordResetResponseContract;
use Filament\Http\Responses\Auth\Contracts\RegistrationResponse as RegistrationResponseContract;
use Filament\Http\Responses\Auth\EmailVerificationResponse;
use Filament\Http\Responses\Auth\LoginResponse;
use Filament\Http\Responses\Auth\LogoutResponse;
use Filament\Http\Responses\Auth\PasswordResetResponse;
use Filament\Http\Responses\Auth\RegistrationResponse;
use Filament\Navigation\NavigationManager;
use Filament\Support\Assets\Js;
use Filament\Support\Assets\Theme;
use Filament\Support\Facades\FilamentAsset;
use Filament\View\LegacyComponents;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Blade;
use Livewire\Livewire;
use Spatie\LaravelPackageTools\Package;
use Spatie\LaravelPackageTools\PackageServiceProvider;
class FilamentServiceProvider extends PackageServiceProvider
{
public function configurePackage(Package $package): void
{
$package
->name('filament-panels')
->hasCommands($this->getCommands())
->hasRoutes('web')
->hasTranslations()
->hasViews();
}
public function packageRegistered(): void
{
$this->app->scoped('filament', function (): FilamentManager {
return new FilamentManager;
});
$this->app->alias('filament', FilamentManager::class);
$this->app->singleton(PanelRegistry::class, function (): PanelRegistry {
return new PanelRegistry;
});
$this->app->scoped(NavigationManager::class, function (): NavigationManager {
return new NavigationManager;
});
$this->app->bind(EmailVerificationResponseContract::class, EmailVerificationResponse::class);
$this->app->bind(LoginResponseContract::class, LoginResponse::class);
$this->app->bind(LogoutResponseContract::class, LogoutResponse::class);
$this->app->bind(PasswordResetResponseContract::class, PasswordResetResponse::class);
$this->app->bind(RegistrationResponseContract::class, RegistrationResponse::class);
app(Router::class)->aliasMiddleware('panel', SetUpPanel::class);
}
public function packageBooted(): void
{
Blade::components([
LegacyComponents\Page::class => 'filament::page',
LegacyComponents\Widget::class => 'filament::widget',
]);
FilamentAsset::register([
Js::make('app', __DIR__ . '/../dist/index.js')->core(),
Js::make('echo', __DIR__ . '/../dist/echo.js')->core(),
Theme::make('app', __DIR__ . '/../dist/theme.css'),
], 'filament/filament');
Livewire::addPersistentMiddleware([
Authenticate::class,
DisableBladeIconComponents::class,
DispatchServingFilamentEvent::class,
IdentifyTenant::class,
SetUpPanel::class,
]);
Filament::serving(function () {
Filament::setServingStatus();
});
if ($this->app->runningInConsole()) {
foreach (app(Filesystem::class)->files(__DIR__ . '/../stubs/') as $file) {
$this->publishes([
$file->getRealPath() => base_path("stubs/filament/{$file->getFilename()}"),
], 'filament-stubs');
}
}
}
/**
* @return array<class-string>
*/
protected function getCommands(): array
{
$commands = [
Commands\CacheComponentsCommand::class,
Commands\ClearCachedComponentsCommand::class,
Commands\MakeClusterCommand::class,
Commands\MakePageCommand::class,
Commands\MakePanelCommand::class,
Commands\MakeRelationManagerCommand::class,
Commands\MakeResourceCommand::class,
Commands\MakeThemeCommand::class,
Commands\MakeUserCommand::class,
];
$aliases = [];
foreach ($commands as $command) {
$class = 'Filament\\Commands\\Aliases\\' . class_basename($command);
if (! class_exists($class)) {
continue;
}
$aliases[] = $class;
}
return [
...$commands,
...$aliases,
];
}
}