forked from filamentphp/filament
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathComponentContainer.php
57 lines (49 loc) · 1.51 KB
/
ComponentContainer.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
namespace Filament\Forms;
use Filament\Forms\Contracts\HasForms;
use Illuminate\Contracts\Support\Htmlable;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Traits\Macroable;
use Illuminate\Support\Traits\Tappable;
use Illuminate\View\Component as ViewComponent;
class ComponentContainer extends ViewComponent implements Htmlable
{
use Concerns\BelongsToLivewire;
use Concerns\BelongsToModel;
use Concerns\BelongsToParentComponent;
use Concerns\CanBeDisabled;
use Concerns\CanBeHidden;
use Concerns\CanBeValidated;
use Concerns\Cloneable;
use Concerns\EvaluatesClosures;
use Concerns\HasColumns;
use Concerns\HasComponents;
use Concerns\HasState;
use Concerns\HasStateBindingModifiers;
use Concerns\ListensToEvents;
use Concerns\SupportsComponentFileAttachments;
use Concerns\SupportsFileUploadFields;
use Concerns\SupportsMultiSelectFields;
use Concerns\SupportsSelectFields;
use Macroable;
use Tappable;
protected array $meta = [];
final public function __construct(HasForms $livewire)
{
$this->livewire($livewire);
}
public static function make(HasForms $livewire): static
{
return app(static::class, ['livewire' => $livewire]);
}
public function toHtml(): string
{
return $this->render()->render();
}
public function render(): View
{
return view('forms::component-container', array_merge($this->data(), [
'container' => $this,
]));
}
}