mediawiki-skins-Vector/includes/Constants.php
Jon Robson 614da1dc5e Features: Make max width a feature
Making this a feature part of the feature management system is integral
to making this a toggle and will allow us to explore making this
persistent in future.

Bug: T319447
Bug: T319449
Change-Id: I80c7b892a6891094854b4154db90917b67986102
2022-10-24 13:12:06 -07:00

282 lines
6.3 KiB
PHP

<?php
namespace MediaWiki\Skins\Vector;
use FatalError;
/**
* A namespace for Vector constants for internal Vector usage only. **Do not rely on this file as an
* API as it may change without warning at any time.**
* @package Vector
* @internal
*/
final class Constants {
/**
* This is tightly coupled to the ValidSkinNames field in skin.json.
* @var string
*/
public const SKIN_NAME_MODERN = 'vector-2022';
/**
* This is tightly coupled to the ValidSkinNames field in skin.json.
* @var string
*/
public const SKIN_NAME_LEGACY = 'vector';
// These are used to provide different default skin for new users.
/**
* @var string
*/
public const SKIN_VERSION_LEGACY = '1';
/**
* @var string
*/
public const SKIN_VERSION_LATEST = '2';
/**
* @var string
*/
public const SERVICE_FEATURE_MANAGER = 'Vector.FeatureManager';
// These are tightly coupled to skin.json's configs. See skin.json for documentation.
/**
* @var string
*/
public const CONFIG_KEY_DEFAULT_SKIN_VERSION_FOR_NEW_ACCOUNTS =
'VectorDefaultSkinVersionForNewAccounts';
/**
* @var string
*/
public const CONFIG_KEY_DEFAULT_SIDEBAR_VISIBLE_FOR_AUTHORISED_USER =
'VectorDefaultSidebarVisibleForAuthorisedUser';
/**
* @var string
*/
public const CONFIG_KEY_DEFAULT_SIDEBAR_VISIBLE_FOR_ANONYMOUS_USER =
'VectorDefaultSidebarVisibleForAnonymousUser';
/**
* @var string
*/
public const PREF_KEY_SKIN = 'skin';
/**
* @var string
*/
public const PREF_KEY_SIDEBAR_VISIBLE = 'VectorSidebarVisible';
// These are used in the Feature Management System.
/**
* Also known as `$wgFullyInitialised`. Set to true in core/includes/Setup.php.
* @var string
*/
public const CONFIG_KEY_FULLY_INITIALISED = 'FullyInitialised';
/**
* @var string
*/
public const REQUIREMENT_FULLY_INITIALISED = 'FullyInitialised';
/**
* @var string
*/
public const FEATURE_LANGUAGE_IN_HEADER = 'LanguageInHeader';
/**
* @var string
*/
public const CONFIG_KEY_DISABLE_SIDEBAR_PERSISTENCE = 'VectorDisableSidebarPersistence';
/**
* @var string
*/
public const CONFIG_KEY_LANGUAGE_IN_HEADER = 'VectorLanguageInHeader';
/**
* @var string
*/
public const REQUIREMENT_LANGUAGE_IN_HEADER = 'LanguageInHeader';
/**
* @var string
*/
public const CONFIG_STICKY_HEADER = 'VectorStickyHeader';
/**
* @var string
*/
public const CONFIG_STICKY_HEADER_EDIT = 'VectorStickyHeaderEdit';
/**
* @var string
*/
public const REQUIREMENT_STICKY_HEADER = 'StickyHeader';
/**
* @var string
*/
public const REQUIREMENT_STICKY_HEADER_EDIT = 'StickyHeaderEdit';
/**
* @var string
*/
public const FEATURE_STICKY_HEADER = 'StickyHeader';
/**
* @var string
*/
public const FEATURE_STICKY_HEADER_EDIT = 'StickyHeaderEdit';
/**
* Defines whether an A/B test is running.
*
* @var string
*/
public const CONFIG_WEB_AB_TEST_ENROLLMENT = 'VectorWebABTestEnrollment';
/**
* The `mediawiki.searchSuggest` protocol piece of the SearchSatisfaction instrumention reads
* the value of an element with the "data-search-loc" attribute and set the event's
* `inputLocation` property accordingly.
*
* When the search widget is moved as part of the "Search 1: Search widget move" feature, the
* "data-search-loc" attribute is set to this value.
*
* See also:
* - https://www.mediawiki.org/wiki/Reading/Web/Desktop_Improvements/Features#Search_1:_Search_widget_move
* - https://phabricator.wikimedia.org/T261636 and https://phabricator.wikimedia.org/T256100
* - https://gerrit.wikimedia.org/g/mediawiki/core/+/61d36def2d7adc15c88929c824b444f434a0511a/resources/src/mediawiki.searchSuggest/searchSuggest.js#106
*
* @var string
*/
public const SEARCH_BOX_INPUT_LOCATION_MOVED = 'header-moved';
/**
* Similar to `Constants::SEARCH_BOX_INPUT_LOCATION_MOVED`, when the search widget hasn't been
* moved, the "data-search-loc" attribute is set to this value.
*
* @var string
*/
public const SEARCH_BOX_INPUT_LOCATION_DEFAULT = 'header-navigation';
/**
* @var string
*/
public const REQUIREMENT_IS_MAIN_PAGE = 'IsMainPage';
/**
* @var string
*/
public const REQUIREMENT_LANGUAGE_IN_MAIN_PAGE_HEADER = 'LanguageInMainPageHeader';
/**
* @var string
*/
public const CONFIG_LANGUAGE_IN_MAIN_PAGE_HEADER = 'VectorLanguageInMainPageHeader';
/**
* @var string
*/
public const FEATURE_LANGUAGE_IN_MAIN_PAGE_HEADER = 'LanguageInMainPageHeader';
/**
* @var string
*/
public const REQUIREMENT_LANGUAGE_ALERT_IN_SIDEBAR = 'LanguageAlertInSidebar';
/**
* @var string
*/
public const CONFIG_LANGUAGE_ALERT_IN_SIDEBAR = 'VectorLanguageAlertInSidebar';
/**
* @var string
*/
public const FEATURE_LANGUAGE_ALERT_IN_SIDEBAR = 'LanguageAlertInSidebar';
/**
* @var string
*/
public const FEATURE_TABLE_OF_CONTENTS_AB_TEST = 'TableOfContentsLegacyTOC';
/**
* @var string
*/
public const REQUIREMENT_TABLE_OF_CONTENTS_AB_TEST = 'TableOfContentsLegacy';
/**
* @var string
*/
public const WEB_AB_TEST_ARTICLE_ID_FACTORY_SERVICE = 'WikimediaEvents.WebABTestArticleIdFactory';
/**
* @var string
*/
public const FEATURE_VISUAL_ENHANCEMENTS = 'VisualEnhancementNext';
/**
* @var string
*/
public const REQUIREMENT_VISUAL_ENHANCEMENTS = 'VisualEnhancementNext';
/**
* @var string
*/
public const CONFIG_KEY_VISUAL_ENHANCEMENTS = 'VectorVisualEnhancementNext';
/**
* @var string
*/
public const CONFIG_ARTICLE_TOOLS = 'VectorArticleTools';
/**
* @var string
*/
public const REQUIREMENT_ARTICLE_TOOLS = 'ArticleTools';
/**
* @var string
*/
public const FEATURE_ARTICLE_TOOLS = 'ArticleTools';
/**
* @var string
*/
public const FEATURE_LIMITED_WIDTH = 'LimitedWidth';
/**
* @var string
*/
public const REQUIREMENT_LIMITED_WIDTH = 'LimitedWidth';
/**
* @var string
*/
public const PREF_KEY_LIMITED_WIDTH = 'vector-limited-width';
/**
* @var string
*/
public const FEATURE_LIMITED_WIDTH_CONTENT = 'LimitedWidthContent';
/**
* @var string
*/
public const REQUIREMENT_LIMITED_WIDTH_CONTENT = 'LimitedWidthContent';
/**
* @var bool
*/
public const CONFIG_DEFAULT_LIMITED_WIDTH = 1;
/**
* This class is for namespacing constants only. Forbid construction.
* @throws FatalError
* @return never
*/
private function __construct() {
throw new FatalError( "Cannot construct a utility class." );
}
}