Final Class Yiisoft\Bootstrap5\ProgressStack
| Inheritance | Yiisoft\Bootstrap5\ProgressStack » Yiisoft\Widget\Widget |
|---|
The progress stack component allows you to stack multiple progress bars on top of each other.
For example,
echo ProgressStack::widget()
->bars(
Progress::widget()
->ariaLabel('Segment one')
->id('segment-one')
->percent(15),
Progress::widget()
->ariaLabel('Segment two')
->backGroundColor(BackgroundColor::SUCCESS)
->id('segment-two')
->percent(30),
Progress::widget()
->ariaLabel('Segment three')
->backGroundColor(BackgroundColor::INFO)
->id('segment-three')
->percent(20),
)
->render();
See also https://getbootstrap.com/docs/5.3/components/progress/#multiple-bars.
Public Methods
| Method | Description | Defined By |
|---|---|---|
| addAttributes() | Adds a set of attributes. | Yiisoft\Bootstrap5\ProgressStack |
| addClass() | Adds one or more CSS classes to the existing classes. | Yiisoft\Bootstrap5\ProgressStack |
| addCssStyle() | Adds a CSS style. | Yiisoft\Bootstrap5\ProgressStack |
| attribute() | Sets attribute value. | Yiisoft\Bootstrap5\ProgressStack |
| attributes() | Sets the HTML attributes. | Yiisoft\Bootstrap5\ProgressStack |
| bars() | Sets the progress bars to be displayed. | Yiisoft\Bootstrap5\ProgressStack |
| class() | Replaces all existing CSS classes with the specified one(s). | Yiisoft\Bootstrap5\ProgressStack |
| id() | Sets the ID. | Yiisoft\Bootstrap5\ProgressStack |
| render() | Run the widget. | Yiisoft\Bootstrap5\ProgressStack |
Constants
| Constant | Value | Description | Defined By |
|---|---|---|---|
| NAME | 'progress-stack' | Yiisoft\Bootstrap5\ProgressStack | |
| PROGRESS_STACKED | 'progress-stacked' | Yiisoft\Bootstrap5\ProgressStack |
Method Details
Adds a set of attributes.
| public self addAttributes ( array $attributes ) | ||
| $attributes | array |
Attribute values indexed by attribute names. for example, |
| return | self |
A new instance with the specified attributes added. Example usage:
|
|---|---|---|
public function addAttributes(array $attributes): self
{
$new = clone $this;
$new->attributes = [...$this->attributes, ...$attributes];
return $new;
}
Adds one or more CSS classes to the existing classes.
| public self addClass ( \BackedEnum|string|null $class ) | ||
| $class | \BackedEnum|string|null |
One or more CSS class names to add. Pass |
| return | self |
A new instance with the specified CSS classes added to existing ones. |
|---|---|---|
public function addClass(BackedEnum|string|null ...$class): self
{
$new = clone $this;
$new->cssClasses = [...$this->cssClasses, ...$class];
return $new;
}
Adds a CSS style.
| public self addCssStyle ( array|string $style, boolean $overwrite = true ) | ||
| $style | array|string |
The CSS style. If the value is an array, a space will separate the values.
For example, |
| $overwrite | boolean |
Whether to overwrite existing styles with the same name. If |
| return | self |
A new instance with the specified CSS style value added. Example usage:
// or
$progressStack->addCssStyle(['color' => 'red', 'font-weight' => 'bold']);
|
|---|---|---|
public function addCssStyle(array|string $style, bool $overwrite = true): self
{
$new = clone $this;
Html::addCssStyle($new->attributes, $style, $overwrite);
return $new;
}
Sets attribute value.
| public self attribute ( string $name, mixed $value ) | ||
| $name | string |
The attribute name. |
| $value | mixed |
The attribute value. |
| return | self |
A new instance with the specified attribute set. Example usage:
|
|---|---|---|
public function attribute(string $name, mixed $value): self
{
$new = clone $this;
$new->attributes[$name] = $value;
return $new;
}
Sets the HTML attributes.
| public self attributes ( array $attributes ) | ||
| $attributes | array |
Attribute values indexed by attribute names. |
| return | self |
A new instance with the specified attributes. |
|---|---|---|
public function attributes(array $attributes): self
{
$new = clone $this;
$new->attributes = $attributes;
return $new;
}
Sets the progress bars to be displayed.
| public self bars ( Yiisoft\Bootstrap5\Progress $bars ) | ||
| $bars | Yiisoft\Bootstrap5\Progress |
One or more Progress instances to include in the stack. |
| return | self |
A new instance with the specified bars. Example usage:
);
|
|---|---|---|
public function bars(Progress ...$bars): self
{
$new = clone $this;
$new->bars = $bars;
return $new;
}
Replaces all existing CSS classes with the specified one(s).
| public self class ( \BackedEnum|string|null $class ) | ||
| $class | \BackedEnum|string|null |
One or more CSS class names to set. Pass |
| return | self |
A new instance with the specified CSS classes set. Example usage:
|
|---|---|---|
public function class(BackedEnum|string|null ...$class): self
{
$new = clone $this;
$new->cssClasses = $class;
return $new;
}
Sets the ID.
| public self id ( boolean|string $id ) | ||
| $id | boolean|string |
The ID of the component. If |
| return | self |
A new instance with the specified ID. Example usage:
|
|---|---|---|
public function id(bool|string $id): self
{
$new = clone $this;
$new->id = $id;
return $new;
}
Run the widget.
| public string render ( ) | ||
| return | string |
The HTML representation of the element. |
|---|---|---|
public function render(): string
{
if ($this->bars === []) {
return '';
}
$attributes = $this->attributes;
$content = '';
$classes = $attributes['class'] ?? null;
unset($attributes['class']);
foreach ($this->bars as $bar) {
$content .= $bar->stacked()->render() . "\n";
}
return Div::tag()
->attributes($attributes)
->addClass(
self::PROGRESS_STACKED,
...$this->cssClasses,
)
->addClass($classes)
->content(
"\n",
$content,
)
->encode(false)
->id($this->getId())
->render();
}
Signup or Login in order to comment.