first upload all files

This commit is contained in:
NW
2023-06-11 13:14:03 +01:00
parent f14dbc52b5
commit c08b36d1b6
1705 changed files with 106852 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
<?php
namespace Modules\Admin\Ui;
class TabManager
{
/**
* The array of all Tabs.
*
* @var array
*/
private $tabs = [];
/**
* The array of all tabs extenders.
*
* @var array
*/
private $extends = [];
/**
* Register a new Tabs.
*
* @param string $name
* @param string $tabs
* @return void
*/
public function register($name, $tabs)
{
$this->tabs[$name] = $tabs;
}
/**
* Add a new Tabs extender.
*
* @param string $name
* @param string $extender
* @return void
*/
public function extend($name, $extender)
{
$this->extends[$name][] = $extender;
}
/**
* Get tabs for the given name.
*
* @param string $name
* @return \Modules\Admin\Ui\Tabs
*/
public function get($name)
{
if (! array_key_exists($name, $this->tabs)) {
return;
}
return tap(resolve($this->tabs[$name]), function (Tabs $tabs) use ($name) {
$tabs->make();
$this->extendTabs($tabs, array_get($this->extends, $name, []));
});
}
/**
* Extend the given tabs using the given extenders.
*
* @param \Modules\Admin\Ui\Tabs $tabs
* @param array $extenders
* @return void
*/
private function extendTabs(Tabs $tabs, array $extenders)
{
foreach ($extenders as $extender) {
resolve($extender)->extend($tabs);
}
}
}