90 lines
1.6 KiB
PHP
90 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\View;
|
|
|
|
use Illuminate\Contracts\Support\Htmlable;
|
|
|
|
class ComponentSlot implements Htmlable
|
|
{
|
|
/**
|
|
* The slot attribute bag.
|
|
*
|
|
* @var \Illuminate\View\ComponentAttributeBag
|
|
*/
|
|
public $attributes;
|
|
|
|
/**
|
|
* The slot contents.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $contents;
|
|
|
|
/**
|
|
* Create a new slot instance.
|
|
*
|
|
* @param string $contents
|
|
* @param array $attributes
|
|
* @return void
|
|
*/
|
|
public function __construct($contents = '', $attributes = [])
|
|
{
|
|
$this->contents = $contents;
|
|
|
|
$this->withAttributes($attributes);
|
|
}
|
|
|
|
/**
|
|
* Set the extra attributes that the slot should make available.
|
|
*
|
|
* @param array $attributes
|
|
* @return $this
|
|
*/
|
|
public function withAttributes(array $attributes)
|
|
{
|
|
$this->attributes = new ComponentAttributeBag($attributes);
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the slot's HTML string.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function toHtml()
|
|
{
|
|
return $this->contents;
|
|
}
|
|
|
|
/**
|
|
* Determine if the slot is empty.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function isEmpty()
|
|
{
|
|
return $this->contents === '';
|
|
}
|
|
|
|
/**
|
|
* Determine if the slot is not empty.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function isNotEmpty()
|
|
{
|
|
return ! $this->isEmpty();
|
|
}
|
|
|
|
/**
|
|
* Get the slot's HTML string.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function __toString()
|
|
{
|
|
return $this->toHtml();
|
|
}
|
|
}
|