]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - vendor/oojs/oojs-ui/php/themes/WikimediaUITheme.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / vendor / oojs / oojs-ui / php / themes / WikimediaUITheme.php
1 <?php
2
3 namespace OOUI;
4
5 class WikimediaUITheme extends Theme {
6
7         /* Methods */
8
9         public function getElementClasses( Element $element ) {
10                 $variants = [
11                         'warning' => false,
12                         'invert' => false,
13                         'progressive' => false,
14                         'constructive' => false,
15                         'destructive' => false
16                 ];
17
18                 // Parent method
19                 $classes = parent::getElementClasses( $element );
20
21                 if ( $element->supports( [ 'hasFlag' ] ) ) {
22                         $isFramed = $element->supports( [ 'isFramed' ] ) && $element->isFramed();
23                         $isActive = $element->supports( [ 'isActive' ] ) && $element->isActive();
24                         if ( $isFramed && ( $isActive || $element->isDisabled() || $element->hasFlag( 'primary' ) ) ) {
25                                 // Button with a dark background, use white icon
26                                 $variants['invert'] = true;
27                         } elseif ( !$isFramed && $element->isDisabled() ) {
28                                 // Frameless disabled button, always use black icon regardless of flags
29                                 $variants['invert'] = false;
30                         } elseif ( !$element->isDisabled() ) {
31                                 // Any other kind of button, use the right colored icon if available
32                                 $variants['progressive'] = $element->hasFlag( 'progressive' );
33                                 $variants['constructive'] = $element->hasFlag( 'constructive' );
34                                 $variants['destructive'] = $element->hasFlag( 'destructive' );
35                                 $variants['warning'] = $element->hasFlag( 'warning' );
36                         }
37                 }
38
39                 foreach ( $variants as $variant => $toggle ) {
40                         $classes[$toggle ? 'on' : 'off'][] = 'oo-ui-image-' . $variant;
41                 }
42
43                 return $classes;
44         }
45 }