From cb9650b4e29e275fd1954bdebea9b9f06f6f90c7 Mon Sep 17 00:00:00 2001 From: LT Date: Fri, 29 Nov 2024 15:39:44 +0300 Subject: [PATCH] feat: AssetManager Append/Create --- src/AssetManager/AssetManagerContract.php | 11 ++++++++++- src/Core/DependencyInjection/CoreContract.php | 2 +- src/MenuManager/MenuManagerContract.php | 3 ++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/AssetManager/AssetManagerContract.php b/src/AssetManager/AssetManagerContract.php index 6e041d528..ca4023a86 100644 --- a/src/AssetManager/AssetManagerContract.php +++ b/src/AssetManager/AssetManagerContract.php @@ -4,13 +4,22 @@ namespace MoonShine\Contracts\AssetManager; +use Closure; use Illuminate\Contracts\Support\Htmlable; +use MoonShine\Contracts\Core\StatefulContract; -interface AssetManagerContract extends Htmlable +interface AssetManagerContract extends Htmlable, StatefulContract { public function getAsset(string $path): string; public function getAssets(): AssetElementsContract; + /** @param Closure(array $assets): array $callback */ + public function modifyAssets(Closure $callback): static; + public function add(AssetElementContract|array $assets): static; + + public function prepend(AssetElementContract|array $assets): static; + + public function append(AssetElementContract|array $assets): static; } diff --git a/src/Core/DependencyInjection/CoreContract.php b/src/Core/DependencyInjection/CoreContract.php index c5484244c..0db93e632 100644 --- a/src/Core/DependencyInjection/CoreContract.php +++ b/src/Core/DependencyInjection/CoreContract.php @@ -26,7 +26,7 @@ public function isProduction(): bool; /** * @template T * @param class-string|null $id - * @return T|ContainerInterface + * @return null|T|ContainerInterface */ public function getContainer(?string $id = null, mixed $default = null, ...$parameters): mixed; diff --git a/src/MenuManager/MenuManagerContract.php b/src/MenuManager/MenuManagerContract.php index d9a3f6cd6..81a5f2067 100644 --- a/src/MenuManager/MenuManagerContract.php +++ b/src/MenuManager/MenuManagerContract.php @@ -5,8 +5,9 @@ namespace MoonShine\Contracts\MenuManager; use Closure; +use MoonShine\Contracts\Core\StatefulContract; -interface MenuManagerContract +interface MenuManagerContract extends StatefulContract { public function add(array|MenuElementContract $data): static;