'wikimedia-ui' ]; public function __construct( array $options = [], $localBasePath = null, $remoteBasePath = null ) { if ( isset( $options['themeStyles'] ) ) { $this->themeStyles = $options['themeStyles']; } parent::__construct( $options, $localBasePath, $remoteBasePath ); } public function getStyleFiles( Context $context ) { if ( !$this->themeStylesAdded ) { // Add theme styles $themeMap = static::$builtinSkinThemeMap + ExtensionRegistry::getInstance()->getAttribute( 'SkinCodexThemes' ); $theme = $themeMap[ $context->getSkin() ] ?? $themeMap[ 'default' ]; $dir = $context->getDirection(); $styles = $this->themeStyles[ $theme ][ $dir ]; $this->styles = array_merge( $this->styles, (array)$styles ); // Remember we added the theme styles so we don't add them twice if getStyleFiles() is called twice $this->themeStylesAdded = true; } return parent::getStyleFiles( $context ); } /** * Retrieve the specified icon definitions from codex-icons.json. Intended as a convenience * function to be used in packageFiles definitions. * * Example: * "packageFiles": [ * { * "name": "icons.json", * "callback": "MediaWiki\\ResourceLoader\\CodexModule::getIcons", * "callbackParam": [ * "cdxIconClear", * "cdxIconTrash" * ] * } * ] * * @param Context $context * @param Config $config * @param string[] $iconNames Names of icons to fetch * @return array */ public static function getIcons( Context $context, Config $config, array $iconNames = [] ) { global $IP; static $allIcons = null; if ( $allIcons === null ) { $allIcons = json_decode( file_get_contents( "$IP/resources/lib/codex-icons/codex-icons.json" ), true ); } return array_intersect_key( $allIcons, array_flip( $iconNames ) ); } } /** @deprecated since 1.39 */ class_alias( CodexModule::class, 'ResourceLoaderCodexModule' );