%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/vendor/oojs/oojs-ui/php/widgets/ |
| Current File : //www/varak.net/wiki.varak.net/vendor/oojs/oojs-ui/php/widgets/ProgressBarWidget.php |
<?php
namespace OOUI;
class ProgressBarWidget extends Widget {
/**
* @var bool|int
*/
protected $progress;
/**
* @var Tag
*/
protected $bar;
/**
* @param array $config Configuration options
* @param bool|int $config['progress'] Numeric value between 0 and 100 (the percent complete)
* for determinate progress bar, or `false` for indeterminate progress bar (default: false)
* @param-taint $config escapes_html
*/
public function __construct( array $config = [] ) {
parent::__construct( $config );
$this->bar = new Tag( 'div' );
$this->bar->addClasses( [ 'oo-ui-progressBarWidget-bar' ] );
$this->setProgress( array_key_exists( 'progress', $config ) ? $config['progress'] : false );
$this
->setAttributes( [
'role' => 'progressbar',
'aria-valuemin' => 0,
'aria-valuemax' => 100,
] )
->addClasses( [ 'oo-ui-progressBarWidget' ] )
->appendContent( $this->bar );
}
/**
* @return bool|int
*/
public function getProgress() {
return $this->progress;
}
/**
* @param bool|int $progress Numeric value between 0 and 100 (the percent complete)
* for determinate progress bar, or `false` for indeterminate progress bar (default: false)
*/
public function setProgress( $progress ) {
$this->progress = $progress;
if ( $progress !== false ) {
$this->bar->setAttributes( [ 'style' => 'width: ' . $this->progress . '%;' ] );
$this->setAttributes( [ 'aria-valuenow' => $this->progress ] );
} else {
$this->removeAttributes( [ 'aria-valuenow' ] );
}
$this->toggleClasses( [ 'oo-ui-progressBarWidget-indeterminate' ], $progress === false );
}
public function getConfig( &$config ) {
if ( $this->progress !== null ) {
$config['progress'] = $this->progress;
}
return parent::getConfig( $config );
}
}