2019-05-28 22:22:18 +00:00
|
|
|
<?php
|
|
|
|
|
|
2020-07-10 19:23:59 +00:00
|
|
|
/*
|
|
|
|
|
* @stable to extend
|
|
|
|
|
*/
|
2019-05-28 22:22:18 +00:00
|
|
|
class CollapsibleFieldsetLayout extends OOUI\FieldsetLayout {
|
2020-07-23 09:41:58 +00:00
|
|
|
/**
|
2020-07-10 19:23:59 +00:00
|
|
|
* @stable to call
|
2020-07-23 09:41:58 +00:00
|
|
|
* @inheritDoc
|
2020-07-10 19:23:59 +00:00
|
|
|
*/
|
2019-05-28 22:22:18 +00:00
|
|
|
public function __construct( array $config = [] ) {
|
|
|
|
|
parent::__construct( $config );
|
|
|
|
|
|
2021-04-08 13:06:49 +00:00
|
|
|
$this->addClasses( [ 'mw-collapsibleFieldsetLayout', 'mw-collapsible' ] );
|
2019-05-28 22:22:18 +00:00
|
|
|
if ( isset( $config[ 'collapsed' ] ) && $config[ 'collapsed' ] ) {
|
|
|
|
|
$this->addClasses( [ 'mw-collapsed' ] );
|
|
|
|
|
}
|
|
|
|
|
$this->header->addClasses( [ 'mw-collapsible-toggle' ] );
|
|
|
|
|
$this->group->addClasses( [ 'mw-collapsible-content' ] );
|
|
|
|
|
|
|
|
|
|
$this->header->appendContent(
|
|
|
|
|
new OOUI\IconWidget( [
|
|
|
|
|
'icon' => 'expand',
|
|
|
|
|
'label' => wfMessage( 'collapsible-expand' )->text(),
|
|
|
|
|
] ),
|
|
|
|
|
new OOUI\IconWidget( [
|
|
|
|
|
'icon' => 'collapse',
|
|
|
|
|
'label' => wfMessage( 'collapsible-collapse' )->text(),
|
|
|
|
|
] )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
$this->header->setAttributes( [
|
|
|
|
|
'role' => 'button',
|
|
|
|
|
] );
|
|
|
|
|
}
|
|
|
|
|
}
|