Open main menu

Difference between pages "MediaWiki:Common.css" and "MediaWiki:Common.js"

(Difference between pages)
 
(Created page with "→‎Any JavaScript here will be loaded for all users on every page load.: /** * Keep code in MediaWiki:Common.js to a minimum as it is unconditionally * loaded for all use...")
 
Line 1: Line 1:
/* CSS placed here will be applied to all skins */
+
/* Any JavaScript here will be loaded for all users on every page load. */
/* Reset italic styling set by user agent */
 
cite, dfn {
 
font-style: inherit;
 
}
 
  
/* Straight quote marks for <q> */
+
/**
q {
+
* Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
quotes: '"' '"' "'" "'";
+
* loaded for all users on every wiki page. If possible create a gadget that is
}
+
* enabled by default instead of adding it here (since gadgets are fully
 +
* optimized ResourceLoader modules with possibility to add dependencies etc.)
 +
*
 +
* Since Common.js isn't a gadget, there is no place to declare its
 +
* dependencies, so we have to lazy load them with mw.loader.using on demand and
 +
* then execute the rest in the callback. In most cases these dependencies will
 +
* be loaded (or loading) already and the callback will not be delayed. In case a
 +
* dependency hasn't arrived yet it'll make sure those are loaded before this.
 +
*/
  
/* Avoid collision of blockquote with floating elements by swapping margin and padding */
+
/* global mw, $ */
blockquote {
+
/* jshint strict:false, browser:true */
overflow: hidden;
 
margin: 1em 0;
 
padding: 0 40px;
 
}
 
  
/* give pre a float clearing new block formatting context */
+
mw.loader.using( ['mediawiki.util', 'mediawiki.notify'] ).done( function () {
/* Also break any really long words/urls to keep them visible in that case */
+
/* Begin of mw.loader.using callback */
pre, .mw-code {
 
overflow-x: hidden;
 
overflow-wrap: break-word;
 
}
 
  
/* Consistent size for <small>, <sub> and <sup> */
+
/**
small {
+
* Main Page layout fixes
font-size: 85%;
+
*
}
+
* Description: Adds an additional link to the complete list of languages available.
.mw-body-content sub,
+
* Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
.mw-body-content sup,
+
*/
span.reference /* for Parsoid */ {
+
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) {
font-size: 80%;
+
$( function () {
 +
mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
 +
'Complete list', 'interwiki-completelist', 'Complete list of Wikipedias' );
 +
} );
 
}
 
}
  
/* Same spacing for indented and unindented paragraphs on talk pages */
+
/**
.ns-talk .mw-body-content dd {
+
* Redirect User:Name/skin.js and skin.css to the current skin's pages
margin-top: 0.4em;
+
* (unless the 'skin' page really exists)
margin-bottom: 0.4em;
+
* @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js
 +
* @rev: 2
 +
*/
 +
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
 +
var titleParts = mw.config.get( 'wgPageName' ).split( '/' );
 +
/* Make sure there was a part before and after the slash
 +
  and that the latter is 'skin.js' or 'skin.css' */
 +
if ( titleParts.length == 2 ) {
 +
var userSkinPage = titleParts.shift() + '/' + mw.config.get( 'skin' );
 +
if ( titleParts.slice( -1 ) == 'skin.js' ) {
 +
window.location.href = mw.util.getUrl( userSkinPage + '.js' );
 +
} else if ( titleParts.slice( -1 ) == 'skin.css' ) {
 +
window.location.href = mw.util.getUrl( userSkinPage + '.css' );
 +
}
 +
}
 
}
 
}
  
/* Main page fixes */
+
/**
#interwiki-completelist {
+
* Map addPortletLink to mw.util
font-weight: bold;
+
* @deprecated: Use mw.util.addPortletLink instead.
}
+
*/
 +
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Use mw.util.addPortletLink instead' );
  
/* Reduce page jumps by hiding collapsed/dismissed content */
+
/**
.client-js .mw-special-Watchlist #watchlist-message,
+
* Extract a URL parameter from the current URL
.client-js .NavFrame.collapsed .NavContent,
+
* @deprecated: Use mw.util.getParamValue with proper escaping
.client-js .collapsible:not( .mw-made-collapsible).collapsed > tbody > tr:not(:first-child) {
+
*/
display: none;
+
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Use mw.util.getParamValue instead' );
}
 
  
/* Adds padding above Watchlist announcements where new recentchanges/watchlist filters are enabled */
+
/**
.mw-rcfilters-enabled .mw-specialpage-summary {
+
* Test if an element has a certain class
margin-top: 1em;
+
* @deprecated:  Use $(element).hasClass() instead.
}
+
*/
 +
mw.log.deprecate( window, 'hasClass', function ( element, className ) {
 +
return $( element ).hasClass( className );
 +
}, 'Use jQuery.hasClass() instead' );
  
/* Hide charinsert base for those not using the gadget */
+
/**
#editpage-specialchars {
+
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
display: none;
+
* @rev 6
}
+
*/
 +
var extraCSS = mw.util.getParamValue( 'withCSS' ),
 +
extraJS = mw.util.getParamValue( 'withJS' );
  
/* Highlight linked elements (such as clicked references) in blue */
+
if ( extraCSS ) {
body.action-info .mw-body-content :target,
+
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
.citation:target {
+
mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' );
background-color: #def;  /* Fallback */
+
} else {
background-color: rgba(0, 127, 255, 0.133);
+
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } );
 +
}
 
}
 
}
  
/* Styling for citations. Breaks long urls, etc., rather than overflowing box */
+
if ( extraJS ) {
.citation {
+
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
word-wrap: break-word;
+
mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' );
 +
} else {
 +
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } );
 +
}
 
}
 
}
  
/* For linked citation numbers and document IDs, where the number need not be shown
+
/**
  on a screen or a handheld, but should be included in the printed version */
+
* WikiMiniAtlas
@media screen, handheld {
+
*
.citation .printonly {
+
* Description: WikiMiniAtlas is a popup click and drag world map.
display: none;
+
*              This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
 +
*              The script itself is located on meta because it is used by many projects.
 +
*              See [[Meta:WikiMiniAtlas]] for more information.
 +
* Note - use of this service is recommended to be replaced with mw:Help:Extension:Kartographer
 +
*/
 +
$( function () {
 +
var require_wikiminiatlas = $( 'a.external.text[href*="geohack"]' ).length || $( 'div.kmldata' ).length;
 +
if ( require_wikiminiatlas ) {
 +
mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );
 
}
 
}
}
+
} );
  
/* Make the list of references smaller */
+
/**
/* Keep in sync with Template:Refbegin/styles.css */
+
* Collapsible tables; reimplemented with mw-collapsible
ol.references,
+
* Styling is also in place to avoid FOUC
div.reflist {
+
*
font-size: 90%;            /* Default font-size */
+
* Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].
margin-bottom: 0.5em;
+
* @version 3.0.0 (2018-05-20)
}
+
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
div.reflist ol.references {
+
* @author [[User:R. Koot]]
font-size: 100%;          /* Reset font-size when nested in div.reflist */
+
* @author [[User:Krinkle]]
margin-bottom: 0;          /* Avoid double margin when nested in div.reflist */
+
* @author [[User:TheDJ]]
list-style-type: inherit; /* Enable custom list style types */
+
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
}
+
* is supported in MediaWiki core. Shimmable since MediaWiki 1.32
 +
*/
 +
function makeCollapsibleMwCollapsible( $content ) {
 +
var $tables = $content
 +
.find( 'table.collapsible:not(.mw-collapsible)' )
 +
.addClass( 'mw-collapsible' );
  
/* Allow hidden ref errors to be shown by user CSS */
+
$.each( $tables, function( index, table ) {
/* TemplateStyles */
+
// mw.log.warn( 'This page is using the deprecated class collapsible. Please replace it with mw-collapsible.');
span.brokenref {
+
if( $( table ).hasClass( 'collapsed') ) {
display: none;
+
$( table ).addClass( 'mw-collapsed' );
 +
// mw.log.warn( 'This page is using the deprecated class collapsed. Please replace it with mw-collapsed.');
 +
}
 +
} );
 +
if( $tables.length > 0 ) {
 +
mw.loader.using( 'jquery.makeCollapsible' ).then( function() {
 +
$tables.makeCollapsible();
 +
} );
 +
}
 
}
 
}
 +
mw.hook( 'wikipage.content' ).add( makeCollapsibleMwCollapsible );
  
/* Reset top margin for lists embedded in columns */
+
/**
div.columns {
+
* Add support to mw-collapsible for autocollapse, innercollapse and outercollapse
margin-top: 0.3em;
+
*
}
+
* Maintainers: TheDJ
div.columns dl,
+
*/
div.columns ol,
+
function mwCollapsibleSetup( $collapsibleContent ) {
div.columns ul {
+
var $element,
margin-top: 0;
+
$toggle,
 +
autoCollapseThreshold = 2;
 +
$.each( $collapsibleContent, function (index, element) {
 +
$element = $( element );
 +
if ( $element.hasClass( 'collapsible' ) ) {
 +
$element.find('tr:first > th:first').prepend( $element.find('tr:first > * > .mw-collapsible-toggle'));
 +
}
 +
if ( $collapsibleContent.length >= autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {
 +
$element.data( 'mw-collapsible' ).collapse();
 +
} else if ( $element.hasClass( 'innercollapse' ) ) {
 +
if ( $element.parents( '.outercollapse' ).length > 0 ) {
 +
$element.data( 'mw-collapsible' ).collapse();
 +
}
 +
}
 +
// because of colored backgrounds, style the link in the text color
 +
// to ensure accessible contrast
 +
$toggle = $element.find( '.mw-collapsible-toggle' );
 +
if ( $toggle.length ) {
 +
// Make the toggle inherit text color
 +
if( $toggle.parent()[0].style.color ) {
 +
$toggle.find( 'a' ).css( 'color', 'inherit' );
 +
}
 +
}
 +
} );
 
}
 
}
  
/* Avoid elements breaking between columns */
+
mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );
.nocolbreak,
 
div.columns li,
 
div.columns dd {
 
-webkit-column-break-inside: avoid;
 
page-break-inside: avoid;
 
break-inside: avoid-column;
 
}
 
  
/* Style for horizontal lists (separator following item).
 
  @source mediawiki.org/wiki/Snippets/Horizontal_lists
 
  @revision 8 (2016-05-21)
 
  @author [[User:Edokter]]
 
*/
 
.hlist dl,
 
.hlist ol,
 
.hlist ul {
 
margin: 0;
 
padding: 0;
 
}
 
/* Display list items inline */
 
.hlist dd,
 
.hlist dt,
 
.hlist li {
 
margin: 0;
 
display: inline;
 
}
 
/* Display nested lists inline */
 
.hlist.inline,
 
.hlist.inline dl,
 
.hlist.inline ol,
 
.hlist.inline ul,
 
.hlist dl dl, .hlist dl ol, .hlist dl ul,
 
.hlist ol dl, .hlist ol ol, .hlist ol ul,
 
.hlist ul dl, .hlist ul ol, .hlist ul ul {
 
display: inline;
 
}
 
/* Hide empty list items */
 
.hlist .mw-empty-li {
 
display: none;
 
}
 
/* Generate interpuncts */
 
.hlist dt:after {
 
content: ": ";
 
}
 
 
/**
 
/**
  * Note hlist style usage differd in
+
  * Dynamic Navigation Bars (experimental)
  * the Minerva skin. Remember .hlist is a class defined in core as well! Please check Minerva desktop (and Minerva.css) when changing
+
  *
  * See https://phabricator.wikimedia.org/T213239
+
  * Description: See [[Wikipedia:NavFrame]].
 +
* Maintainers: UNMAINTAINED
 
  */
 
  */
.hlist dd:after,
+
.hlist li:after {
+
var collapseCaption = 'hide';
content: " · ";
+
var expandCaption = 'show';
font-weight: bold;
 
}
 
.hlist dd:last-child:after,
 
.hlist dt:last-child:after,
 
.hlist li:last-child:after {
 
content: none;
 
}
 
/* Add parentheses around nested lists */
 
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,
 
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,
 
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {
 
content: " (";
 
font-weight: normal;
 
}
 
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,
 
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,
 
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {
 
content: ")";
 
font-weight: normal;
 
}
 
/* Put ordinals in front of ordered list items */
 
.hlist ol {
 
counter-reset: listitem;
 
}
 
.hlist ol > li {
 
counter-increment: listitem;
 
}
 
.hlist ol > li:before {
 
content: " " counter(listitem) "\a0";
 
}
 
.hlist dd ol > li:first-child:before,
 
.hlist dt ol > li:first-child:before,
 
.hlist li ol > li:first-child:before {
 
content: " (" counter(listitem) "\a0";
 
}
 
  
/* Unbulleted lists */
+
// Set up the words in your language
.plainlist ol,
+
var navigationBarHide = '[' + collapseCaption + ']';
.plainlist ul {
+
var navigationBarShow = '[' + expandCaption + ']';
line-height: inherit;
 
list-style: none none;
 
margin: 0;
 
}
 
.plainlist ol li,
 
.plainlist ul li {
 
margin-bottom: 0;
 
}
 
  
/* Default style for navigation boxes */
+
/**
.navbox {                    /* Navbox container style */
+
* Shows and hides content and picture (if available) of navigation bars.
box-sizing: border-box;
+
*
border: 1px solid #a2a9b1;
+
* @param {number} indexNavigationBar The index of navigation bar to be toggled
width: 100%;
+
* @param {jQuery.Event} event Event object
clear: both;
+
*/
font-size: 88%;
+
function toggleNavigationBar( indexNavigationBar, event ) {
text-align: center;
+
var navToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
padding: 1px;
+
var navFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
margin: 1em auto 0;      /* Prevent preceding content from clinging to navboxes */
+
var navChild;
}
 
.navbox .navbox {
 
margin-top: 0;            /* No top margin for nested navboxes */
 
}
 
.navbox + .navbox {
 
margin-top: -1px;        /* Single pixel border between adjacent navboxes */
 
}
 
.navbox-inner,
 
.navbox-subgroup {
 
width: 100%;
 
}
 
.navbox-group,
 
.navbox-title,
 
.navbox-abovebelow {
 
padding: 0.25em 1em;      /* Title, group and above/below styles */
 
line-height: 1.5em;
 
text-align: center;
 
}
 
th.navbox-group {            /* Group style */
 
white-space: nowrap;
 
/* @noflip */
 
text-align: right;
 
}
 
.navbox,
 
.navbox-subgroup {
 
background-color: #fdfdfd; /* Background color */
 
}
 
.navbox-list {
 
line-height: 1.5em;
 
border-color: #fdfdfd;    /* Must match background color */
 
}
 
/* cell spacing for navbox cells */
 
tr + tr > .navbox-abovebelow,
 
tr + tr > .navbox-group,
 
tr + tr > .navbox-image,
 
tr + tr > .navbox-list {   /* Borders above 2nd, 3rd, etc. rows */
 
border-top: 2px solid #fdfdfd; /* Must match background color */
 
}
 
.navbox th,
 
.navbox-title {
 
background-color: #ccccff;      /* Level 1 color */
 
}
 
.navbox-abovebelow,
 
th.navbox-group,
 
.navbox-subgroup .navbox-title {
 
background-color: #ddddff;      /* Level 2 color */
 
}
 
.navbox-subgroup .navbox-group,
 
.navbox-subgroup .navbox-abovebelow {
 
background-color: #e6e6ff;     /* Level 3 color */
 
}
 
.navbox-even {
 
background-color: #f7f7f7;      /* Even row striping */
 
}
 
.navbox-odd {
 
background-color: transparent; /* Odd row striping */
 
}
 
.navbox .hlist td dl,
 
.navbox .hlist td ol,
 
.navbox .hlist td ul,
 
.navbox td.hlist dl,
 
.navbox td.hlist ol,
 
.navbox td.hlist ul {
 
padding: 0.125em 0;       /* Adjust hlist padding in navboxes */
 
}
 
  
/* Default styling for Navbar template */
+
if ( !navFrame || !navToggle ) {
.navbar {
+
return false;
display: inline;
+
}
font-size: 88%;
 
font-weight: normal;
 
}
 
.navbar ul {
 
display: inline-block;
 
white-space: nowrap;
 
}
 
.mw-body-content .navbar ul {
 
line-height: inherit;
 
}
 
.navbar li {
 
word-spacing: -0.125em;
 
}
 
.navbar.mini li abbr[title] {
 
font-variant: small-caps;
 
border-bottom: none;
 
text-decoration: none;
 
cursor: inherit;
 
}
 
/* Navbar styling when nested in infobox and navbox */
 
.infobox .navbar {
 
font-size: 100%;
 
}
 
.navbox .navbar {
 
display: block;
 
font-size: 100%;
 
}
 
.navbox-title .navbar {
 
/* @noflip */
 
float: left;
 
/* @noflip */
 
text-align: left;
 
/* @noflip */
 
margin-right: 0.5em;
 
}
 
  
/* Styling for JQuery makeCollapsible, matching that of collapseButton */
+
// If shown now
.mw-parser-output .mw-collapsible-toggle {
+
if ( navToggle.firstChild.data === navigationBarHide ) {
font-weight: normal;
+
for ( navChild = navFrame.firstChild; navChild !== null; navChild = navChild.nextSibling ) {
/* @noflip */
+
if ( $( navChild ).hasClass( 'NavContent' ) ) {
text-align: right;
+
navChild.style.display = 'none';
padding-right: 0.2em;
+
}
padding-left: 0.2em;
+
}
}
+
navToggle.firstChild.data = navigationBarShow;
.mw-collapsible-leftside-toggle .mw-collapsible-toggle {
+
/* @noflip */
+
// If hidden now
float: left;
+
} else if ( navToggle.firstChild.data === navigationBarShow ) {
/* @noflip */
+
for ( navChild = navFrame.firstChild; navChild !== null; navChild = navChild.nextSibling ) {
text-align: left;
+
if ( $( navChild ).hasClass( 'NavContent' ) ) {
}
+
navChild.style.display = 'block';
 +
}
 +
}
 +
navToggle.firstChild.data = navigationBarHide;
 +
}
  
/* Infobox template style */
+
event.preventDefault();
.infobox {
 
border: 1px solid #a2a9b1;
 
border-spacing: 3px;
 
background-color: #f8f9fa;
 
color: black;
 
/* @noflip */
 
margin: 0.5em 0 0.5em 1em;
 
padding: 0.2em;
 
/* @noflip */
 
float: right;
 
/* @noflip */
 
clear: right;
 
font-size: 88%;
 
line-height: 1.5em;
 
}
 
.infobox caption {
 
font-size: 125%;
 
font-weight: bold;
 
padding: 0.2em;
 
text-align: center;
 
}
 
.infobox td,
 
.infobox th {
 
vertical-align: top;
 
/* @noflip */
 
text-align: left;
 
}
 
.infobox.bordered {
 
border-collapse: collapse;
 
}
 
.infobox.bordered td,
 
.infobox.bordered th {
 
border: 1px solid #a2a9b1;
 
}
 
.infobox.bordered .borderless td,
 
.infobox.bordered .borderless th {
 
border: 0;
 
 
}
 
}
  
.infobox.sisterproject {
+
/**
width: 20em;
+
* Adds show/hide-button to navigation bars.
font-size: 90%;
+
*
}
+
* @param {jQuery} $content
 +
*/
 +
function createNavigationBarToggleButton( $content ) {
 +
var i, j, navChild, navToggle, navToggleText, isCollapsed,
 +
indexNavigationBar = 0;
 +
// Iterate over all < div >-elements
 +
var $divs = $content.find( 'div.NavFrame:not(.mw-collapsible)' );
 +
$divs.each( function ( i, navFrame ) {
 +
indexNavigationBar++;
 +
navToggle = document.createElement( 'a' );
 +
navToggle.className = 'NavToggle';
 +
navToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
 +
navToggle.setAttribute( 'href', '#' );
 +
$( navToggle ).on( 'click', $.proxy( toggleNavigationBar, null, indexNavigationBar ) );
  
.infobox.standard-talk {
+
isCollapsed = $( navFrame ).hasClass( 'collapsed' );
border: 1px solid #c0c090;
+
/**
background-color: #f8eaba;
+
* Check if any children are already hidden. This loop is here for backwards compatibility:
}
+
* the old way of making NavFrames start out collapsed was to manually add style="display:none"
.infobox.standard-talk.bordered td,
+
* to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
.infobox.standard-talk.bordered th {
+
* the content visible without JavaScript support), the new recommended way is to add the class
border: 1px solid #c0c090;
+
* "collapsed" to the NavFrame itself, just like with collapsible tables.
}
+
*/
 +
for ( navChild = navFrame.firstChild; navChild !== null && !isCollapsed; navChild = navChild.nextSibling ) {
 +
if ( $( navChild ).hasClass( 'NavPic' ) || $( navChild ).hasClass( 'NavContent' ) ) {
 +
if ( navChild.style.display === 'none' ) {
 +
isCollapsed = true;
 +
}
 +
}
 +
}
 +
if ( isCollapsed ) {
 +
for ( navChild = navFrame.firstChild; navChild !== null; navChild = navChild.nextSibling ) {
 +
if ( $( navChild ).hasClass( 'NavPic' ) || $( navChild ).hasClass( 'NavContent' ) ) {
 +
navChild.style.display = 'none';
 +
}
 +
}
 +
}
 +
navToggleText = document.createTextNode( isCollapsed ? navigationBarShow : navigationBarHide );
 +
navToggle.appendChild( navToggleText );
  
/* styles for bordered infobox with merged rows */
+
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
.infobox.bordered .mergedtoprow td,
+
for ( j = 0; j < navFrame.childNodes.length; j++ ) {
.infobox.bordered .mergedtoprow th {
+
if ( $( navFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
border: 0;
+
navToggle.style.color = navFrame.childNodes[j].style.color;
border-top: 1px solid #a2a9b1;
+
navFrame.childNodes[j].appendChild( navToggle );
/* @noflip */
+
}
border-right: 1px solid #a2a9b1;
+
}
 +
navFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
 +
} );
 
}
 
}
  
.infobox.bordered .mergedrow td,
+
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
.infobox.bordered .mergedrow th {
 
border: 0;
 
/* @noflip */
 
border-right: 1px solid #a2a9b1;
 
}
 
  
/* Styles for geography infoboxes, eg countries,
+
/**
  country subdivisions, cities, etc.            */
+
  * Magic editintros ****************************************************
.infobox.geography {
+
  *
border-collapse: collapse;
+
* Description: Adds editintros on disambiguation pages and BLP pages.
line-height: 1.2em;
+
* Maintainers: [[User:RockMFR]]
font-size: 90%;
+
*/
}
+
function addEditIntro( name ) {
 
+
$( '.mw-editsection, #ca-edit, #ca-ve-edit' ).find( 'a' ).each( function ( i, el ) {
.infobox.geography td,
+
el.href = $( this ).attr( 'href' ) + '&editintro=' + name;
.infobox.geography  th {
+
} );
border-top: 1px solid #a2a9b1;
 
padding: 0.4em 0.6em 0.4em 0.6em;
 
}
 
.infobox.geography .mergedtoprow td,
 
.infobox.geography .mergedtoprow th {
 
border-top: 1px solid #a2a9b1;
 
padding: 0.4em 0.6em 0.2em 0.6em;
 
}
 
 
 
.infobox.geography .mergedrow td,
 
.infobox.geography .mergedrow th {
 
border: 0;
 
padding: 0 0.6em 0.2em 0.6em;
 
}
 
 
 
.infobox.geography .mergedbottomrow td,
 
.infobox.geography .mergedbottomrow th {
 
border-top: 0;
 
border-bottom: 1px solid #a2a9b1;
 
padding: 0 0.6em 0.4em 0.6em;
 
}
 
 
 
.infobox.geography .maptable td,
 
.infobox.geography .maptable th {
 
border: 0;
 
padding: 0;
 
}
 
 
 
/* Normal font styling for wikitable row headers with scope="row" tag */
 
.wikitable.plainrowheaders th[scope=row] {
 
font-weight: normal;
 
/* @noflip */
 
text-align: left;
 
}
 
 
 
/* Lists in wikitable data cells are always left-aligned */
 
.wikitable td ul,
 
.wikitable td ol,
 
.wikitable td dl {
 
/* @noflip */
 
text-align: left;
 
}
 
/* ...unless they also use the hlist class */
 
.toc.hlist ul,
 
#toc.hlist ul,
 
.wikitable.hlist td ul,
 
.wikitable.hlist td ol,
 
.wikitable.hlist td dl {
 
text-align: inherit;
 
}
 
 
 
/* Icons for medialist templates [[Template:Listen]],
 
  [[Template:Multi-listen_start]], [[Template:Video]],
 
  [[Template:Multi-video_start]] */
 
/* TemplateStyles */
 
div.listenlist {
 
background: url("//upload.wikimedia.org/wikipedia/commons/4/47/Sound-icon.svg") no-repeat scroll 0 0 transparent;
 
background-size: 30px;
 
padding-left: 40px;
 
}
 
 
 
/* Fix for hieroglyphs specificity issue in infoboxes ([[phab:T43869]]) */
 
table.mw-hiero-table td {
 
vertical-align: middle;
 
}
 
 
 
/* Change the external link icon to an Adobe icon for all PDF files */
 
.mw-parser-output a[href$=".pdf"].external,
 
.mw-parser-output a[href*=".pdf?"].external,
 
.mw-parser-output a[href*=".pdf#"].external,
 
.mw-parser-output a[href$=".PDF"].external,
 
.mw-parser-output a[href*=".PDF?"].external,
 
.mw-parser-output a[href*=".PDF#"].external {
 
background: url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right;
 
/* @noflip */
 
padding-right: 18px;
 
}
 
 
 
/* Messagebox templates */
 
.messagebox {
 
border: 1px solid #a2a9b1;
 
background-color: #f8f9fa;
 
width: 80%;
 
margin: 0 auto 1em auto;
 
padding: .2em;
 
}
 
.messagebox.merge {
 
border: 1px solid #c0b8cc;
 
background-color: #f0e5ff;
 
text-align: center;
 
}
 
.messagebox.cleanup {
 
border: 1px solid #9f9fff;
 
background-color: #efefff;
 
text-align: center;
 
}
 
.messagebox.standard-talk {
 
border: 1px solid #c0c090;
 
background-color: #f8eaba;
 
margin: 4px auto;
 
}
 
/* For old WikiProject banners inside banner shells. */
 
.mbox-inside .standard-talk,
 
.messagebox.nested-talk {
 
border: 1px solid #c0c090;
 
background-color: #f8eaba;
 
width: 100%;
 
margin: 2px 0;
 
padding: 2px;
 
}
 
.messagebox.small {
 
width: 238px;
 
font-size: 85%;
 
/* @noflip */
 
float: right;
 
clear: both;
 
/* @noflip */
 
margin: 0 0 1em 1em;
 
line-height: 1.25em;
 
}
 
.messagebox.small-talk {
 
width: 238px;
 
font-size: 85%;
 
/* @noflip */
 
float: right;
 
clear: both;
 
/* @noflip */
 
margin: 0 0 1em 1em;
 
line-height: 1.25em;
 
background-color: #f8eaba;
 
}
 
 
 
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
 
th.mbox-text, td.mbox-text {  /* The message body cell(s) */
 
border: none;
 
/* @noflip */
 
padding: 0.25em 0.9em;    /* 0.9em left/right */
 
width: 100%;              /* Make all mboxes the same width regardless of text length */
 
}
 
td.mbox-image {                /* The left image cell */
 
border: none;
 
/* @noflip */
 
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
 
text-align: center;
 
}
 
td.mbox-imageright {          /* The right image cell */
 
border: none;
 
/* @noflip */
 
padding: 2px 0.9em 2px 0;  /* 0px left, 0.9em right */
 
text-align: center;
 
}
 
td.mbox-empty-cell {           /* An empty narrow cell */
 
border: none;
 
padding: 0;
 
width: 1px;
 
 
}
 
}
  
/* Article message box styles */
+
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
table.ambox {
+
$( function () {
margin: 0 10%;                  /* 10% = Will not overlap with other elements */
+
if ( document.getElementById( 'disambigbox' ) ) {
border: 1px solid #a2a9b1;
+
addEditIntro( 'Template:Disambig_editintro' );
/* @noflip */
+
}
border-left: 10px solid #36c;  /* Default "notice" blue */
+
} );
background-color: #fbfbfb;
 
box-sizing: border-box;
 
}
 
table.ambox + table.ambox {     /* Single border between stacked boxes. */
 
margin-top: -1px;
 
}
 
.ambox th.mbox-text,
 
.ambox td.mbox-text {            /* The message body cell(s) */
 
padding: 0.25em 0.5em;       /* 0.5em left/right */
 
}
 
.ambox td.mbox-image {          /* The left image cell */
 
/* @noflip */
 
padding: 2px 0 2px 0.5em;    /* 0.5em left, 0px right */
 
}
 
.ambox td.mbox-imageright {      /* The right image cell */
 
/* @noflip */
 
padding: 2px 0.5em 2px 0;   /* 0px left, 0.5em right */
 
}
 
  
table.ambox-notice {
+
$( function () {
/* @noflip */
+
var cats = mw.config.get('wgCategories');
border-left: 10px solid #36c;      /* Blue */
+
if ( !cats ) {
}
+
return;
table.ambox-speedy {
+
}
/* @noflip */
+
if ( $.inArray( 'Living people', cats ) !== -1 || $.inArray( 'Possibly living people', cats ) !== -1 ) {
border-left: 10px solid #b32424;   /* Red */
+
addEditIntro( 'Template:BLP_editintro' );
background-color: #fee7e6;          /* Pink */
+
}
}
+
} );
table.ambox-delete {
 
/* @noflip */
 
border-left: 10px solid #b32424;   /* Red */
 
}
 
table.ambox-content {
 
/* @noflip */
 
border-left: 10px solid #f28500;    /* Orange */
 
}
 
table.ambox-style {
 
/* @noflip */
 
border-left: 10px solid #fc3;       /* Yellow */
 
}
 
table.ambox-move {
 
/* @noflip */
 
border-left: 10px solid #9932cc;    /* Purple */
 
}
 
table.ambox-protection {
 
/* @noflip */
 
border-left: 10px solid #a2a9b1;   /* Gray-gold */
 
 
}
 
}
  
/* Image message box styles */
+
/* Actions specific to the edit page */
table.imbox {
+
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) {
margin: 4px 10%;
+
/**
border-collapse: collapse;
+
* Fix edit summary prompt for undo
border: 3px solid #36c;    /* Default "notice" blue */
+
*
background-color: #fbfbfb;
+
* Fixes the fact that the undo function combined with the "no edit summary prompter"
box-sizing: border-box;
+
* complains about missing editsummary, if leaving the edit summary unchanged.
}
+
*  Added by [[User:Deskana]], code by [[User:Tra]].
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
+
* See also [[phab:T10912]].
margin: 0 -0.5em;      /* 0.9 - 0.5 = 0.4em left/right.        */
+
*/
display: block;         /* Fix for webkit to force 100% width.  */
+
$(function () {
}
+
if (document.location.search.indexOf('undo=') !== -1 && document.getElementsByName('wpAutoSummary')[0]) {
.mbox-inside .imbox {      /* For imboxes inside other templates.  */
+
document.getElementsByName('wpAutoSummary')[0].value = '1';
margin: 4px;
+
}
 +
});
 
}
 
}
  
table.imbox-notice {
+
/* End of mw.loader.using callback */
border: 3px solid #36c;      /* Blue */
+
} );
}
+
/* DO NOT ADD CODE BELOW THIS LINE */
table.imbox-speedy {
 
border: 3px solid #b32424;    /* Red */
 
background-color: #fee7e6;    /* Pink */
 
}
 
table.imbox-delete {
 
border: 3px solid #b32424;    /* Red */
 
}
 
table.imbox-content {
 
border: 3px solid #f28500;    /* Orange */
 
}
 
table.imbox-style {
 
border: 3px solid #fc3;      /* Yellow */
 
}
 
table.imbox-move {
 
border: 3px solid #9932cc;    /* Purple */
 
}
 
table.imbox-protection {
 
border: 3px solid #a2a9b1;    /* Gray-gold */
 
}
 
table.imbox-license {
 
border: 3px solid #88a;      /* Dark gray */
 
background-color: #f7f8ff;    /* Light gray */
 
}
 
table.imbox-featured {
 
border: 3px solid #cba135;    /* Brown-gold */
 
}
 
 
 
/* Category message box styles */
 
table.cmbox {
 
margin: 3px 10%;
 
border-collapse: collapse;
 
border: 1px solid #a2a9b1;
 
background-color: #dfe8ff;    /* Default "notice" blue */
 
box-sizing: border-box;
 
}
 
 
 
table.cmbox-notice {
 
background-color: #d8e8ff;    /* Blue */
 
}
 
table.cmbox-speedy {
 
margin-top: 4px;
 
margin-bottom: 4px;
 
border: 4px solid #b32424;    /* Red */
 
background-color: #ffdbdb;    /* Pink */
 
}
 
table.cmbox-delete {
 
background-color: #ffdbdb;    /* Pink */
 
}
 
table.cmbox-content {
 
background-color: #ffe7ce;    /* Orange */
 
}
 
table.cmbox-style {
 
background-color: #fff9db;    /* Yellow */
 
}
 
table.cmbox-move {
 
background-color: #e4d8ff;    /* Purple */
 
}
 
table.cmbox-protection {
 
background-color: #efefe1;    /* Gray-gold */
 
}
 
 
 
/* Other pages message box styles */
 
table.ombox {
 
margin: 4px 10%;
 
border-collapse: collapse;
 
border: 1px solid #a2a9b1;    /* Default "notice" gray */
 
background-color: #f8f9fa;
 
box-sizing: border-box;
 
}
 
 
 
table.ombox-notice {
 
border: 1px solid #a2a9b1;    /* Gray */
 
}
 
table.ombox-speedy {
 
border: 2px solid #b32424;    /* Red */
 
background-color: #fee7e6;    /* Pink */
 
}
 
table.ombox-delete {
 
border: 2px solid #b32424;    /* Red */
 
}
 
table.ombox-content {
 
border: 1px solid #f28500;    /* Orange */
 
}
 
table.ombox-style {
 
border: 1px solid #fc3;      /* Yellow */
 
}
 
table.ombox-move {
 
border: 1px solid #9932cc;    /* Purple */
 
}
 
table.ombox-protection {
 
border: 2px solid #a2a9b1;    /* Gray-gold */
 
}
 
 
 
/* Talk page message box styles */
 
table.tmbox {
 
margin: 4px 10%;
 
border-collapse: collapse;
 
border: 1px solid #c0c090;    /* Default "notice" gray-brown */
 
background-color: #f8eaba;
 
min-width: 80%;
 
box-sizing: border-box;
 
}
 
.tmbox.mbox-small {
 
min-width: 0;                /* reset the min-width of tmbox above        */
 
}
 
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
 
margin: 2px 0;              /* this declaration overrides other styles (including mbox-small above)  */
 
width: 100%;                /* For Safari and Opera */
 
}
 
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when  */
 
line-height: 1.5em;          /* also "nested", so reset styles that are  */
 
font-size: 100%;            /* set in "mbox-small" above.                */
 
}
 
 
 
table.tmbox-speedy {
 
border: 2px solid #b32424;    /* Red */
 
background-color: #fee7e6;    /* Pink */
 
}
 
table.tmbox-delete {
 
border: 2px solid #b32424;    /* Red */
 
}
 
table.tmbox-content {
 
border: 2px solid #f28500;    /* Orange */
 
}
 
table.tmbox-style {
 
border: 2px solid #fc3;      /* Yellow */
 
}
 
table.tmbox-move {
 
border: 2px solid #9932cc;    /* Purple */
 
}
 
table.tmbox-protection,
 
table.tmbox-notice {
 
border: 1px solid #c0c090;    /* Gray-brown */
 
}
 
 
 
/* Footer and header message box styles */
 
table.fmbox {
 
clear: both;
 
margin: 0.2em 0;
 
width: 100%;
 
border: 1px solid #a2a9b1;
 
background-color: #f8f9fa;    /* Default "system" gray */
 
box-sizing: border-box;
 
}
 
table.fmbox-system {
 
background-color: #f8f9fa;
 
}
 
table.fmbox-warning {
 
border: 1px solid #bb7070;  /* Dark pink */
 
background-color: #ffdbdb;  /* Pink */
 
}
 
table.fmbox-editnotice {
 
background-color: transparent;
 
}
 
/* Div based "warning" style fmbox messages. */
 
div.mw-warning-with-logexcerpt,
 
div.mw-lag-warn-high,
 
div.mw-cascadeprotectedwarning,
 
div#mw-protect-cascadeon,
 
div.titleblacklist-warning,
 
div.locked-warning {
 
clear: both;
 
margin: 0.2em 0;
 
border: 1px solid #bb7070;
 
background-color: #ffdbdb;
 
padding: 0.25em 0.9em;
 
box-sizing: border-box;
 
}
 
 
 
/* These mbox-small classes must be placed after all other
 
  ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
 
  they override "table.ambox + table.ambox" above. */
 
html body.mediawiki .mbox-small {  /* For the "small=yes" option. */
 
/* @noflip */
 
clear: right;
 
/* @noflip */
 
float: right;
 
/* @noflip */
 
margin: 4px 0 4px 1em;
 
box-sizing: border-box;
 
width: 238px;
 
font-size: 88%;
 
line-height: 1.25em;
 
}
 
html body.mediawiki .mbox-small-left {  /* For the "small=left" option. */
 
/* @noflip */
 
margin: 4px 1em 4px 0;
 
box-sizing: border-box;
 
overflow: hidden;
 
width: 238px;
 
border-collapse: collapse;
 
font-size: 88%;
 
line-height: 1.25em;
 
}
 
 
 
/* Style for compact ambox */
 
/* Hide the images */
 
.compact-ambox table .mbox-image,
 
.compact-ambox table .mbox-imageright,
 
.compact-ambox table .mbox-empty-cell {
 
display: none;
 
}
 
/* Remove borders, backgrounds, padding, etc. */
 
.compact-ambox table.ambox {
 
border: none;
 
border-collapse: collapse;
 
background-color: transparent;
 
margin: 0 0 0 1.6em !important;
 
padding: 0 !important;
 
width: auto;
 
display: block;
 
}
 
body.mediawiki .compact-ambox table.mbox-small-left {
 
font-size: 100%;
 
width: auto;
 
margin: 0;
 
}
 
/* Style the text cell as a list item and remove its padding */
 
.compact-ambox table .mbox-text {
 
padding: 0 !important;
 
margin: 0 !important;
 
}
 
.compact-ambox table .mbox-text-span {
 
display: list-item;
 
line-height: 1.5em;
 
list-style-type: square;
 
list-style-image: url(/w/skins/MonoBook/resources/images/bullet.svg);
 
}
 
.skin-vector .compact-ambox table .mbox-text-span {
 
list-style-type: disc;
 
list-style-image: url(/w/skins/Vector/images/bullet-icon.svg);
 
}
 
/* Allow for hiding text in compact form */
 
.compact-ambox .hide-when-compact {
 
display: none;
 
}
 
 
 
/* Hide (formatting) elements from screen, but not from screenreaders */
 
.visualhide {
 
position: absolute;
 
left: -10000px;
 
top: auto;
 
width: 1px;
 
height: 1px;
 
overflow: hidden;
 
}
 
 
 
/* Suppress missing interwiki image links where #ifexist cannot
 
  be used due to high number of requests. See .hidden-redlink on
 
  [[m:MediaWiki:Common.css]] */
 
.check-icon a.new {
 
display: none;
 
speak: none;
 
}
 
 
 
/* Remove underlines from certain links */
 
.nounderlines a,
 
.IPA a:link, .IPA a:visited {
 
text-decoration: none !important;
 
}
 
 
 
/* Standard Navigationsleisten, aka box hiding thingy
 
  from .de.  Documentation at [[Wikipedia:NavFrame]]. */
 
div.NavFrame {
 
margin: 0;
 
padding: 4px;
 
border: 1px solid #a2a9b1;
 
text-align: center;
 
border-collapse: collapse;
 
font-size: 95%;
 
}
 
div.NavFrame + div.NavFrame {
 
border-top-style: none;
 
border-top-style: hidden;
 
}
 
div.NavFrame div.NavHead {
 
line-height: 1.6em;
 
font-weight: bold;
 
background-color: #ccf;
 
position: relative;
 
}
 
div.NavFrame p,
 
div.NavFrame div.NavContent,
 
div.NavFrame div.NavContent p {
 
font-size: 100%;
 
}
 
a.NavToggle {
 
position: absolute;
 
top: 0;
 
/* @noflip */
 
right: 3px;
 
font-weight: normal;
 
font-size: 90%;
 
}
 
 
 
/* Hatnotes and disambiguation notices */
 
.hatnote {
 
font-style: italic;
 
}
 
.hatnote i {
 
font-style: normal;
 
}
 
div.hatnote {
 
/* @noflip */
 
padding-left: 1.6em;
 
margin-bottom: 0.5em;
 
}
 
div.hatnote + div.hatnote {
 
margin-top: -0.5em;
 
}
 
 
 
/* Allow transcluded pages to display in lists rather than a table. */
 
.listify td {
 
display: list-item;
 
}
 
.listify tr {
 
display: block;
 
}
 
.listify table {
 
display: block;
 
}
 
 
 
/* Geographical coordinates defaults. See [[Template:Coord/link]]
 
  for how these are used. The classes "geo", "longitude", and
 
  "latitude" are used by the [[Geo microformat]]. */
 
/* TemplateStyles */
 
.geo-default, .geo-dms, .geo-dec {
 
display: inline;
 
}
 
.geo-nondefault, .geo-multi-punct {
 
display: none;
 
}
 
.longitude, .latitude {
 
white-space: nowrap;
 
}
 
 
 
/* User block messages */
 
div.user-block {
 
padding: 5px;
 
margin-bottom: 0.5em;
 
border: 1px solid #a9a9a9;
 
background-color: #ffefd5;
 
}
 
 
 
/* Prevent line breaks in silly places:
 
  1) Where desired
 
  2) Links when we don't want them to
 
  3) Bold "links" to the page itself */
 
.nowrap,
 
.nowraplinks a,
 
.nowraplinks .selflink {
 
white-space: nowrap;
 
}
 
.nowrap pre {
 
white-space: pre;
 
}
 
/* But allow wrapping where desired: */
 
.wrap,
 
.wraplinks a {
 
white-space: normal;
 
}
 
 
 
/* For template documentation */
 
/* TemplateStyles */
 
.template-documentation {
 
clear: both;
 
margin: 1em 0 0 0;
 
border: 1px solid #a2a9b1;
 
background-color: #ecfcf4;
 
padding: 1em;
 
}
 
 
 
/* Increase the height of the image upload box */
 
#wpUploadDescription {
 
height: 13em;
 
}
 
 
 
/* Minimum thumb width */
 
.thumbinner {
 
min-width: 100px;
 
}
 
 
 
/* Prevent floating boxes from overlapping any category listings,
 
  file histories, edit previews, and edit [Show changes] views. */
 
#mw-subcategories, #mw-pages, #mw-category-media,
 
#filehistory, #wikiPreview, #wikiDiff {
 
clear: both;
 
}
 
 
 
/* Selectively hide headers in WikiProject banners */
 
/* TemplateStyles */
 
.wpb .wpb-header {
 
display: none;
 
}
 
.wpbs-inner .wpb .wpb-header {
 
display: block;            /* for IE */
 
}
 
.wpbs-inner .wpb .wpb-header {
 
display: table-row;        /* for real browsers */
 
}
 
.wpbs-inner .wpb-outside {
 
display: none;            /* hide things that should only display outside shells */
 
}
 
 
 
/* Styling for Abuse Filter tags */
 
.mw-tag-markers {
 
font-style: italic;
 
font-size: 90%;
 
}
 
 
 
/* Hide stuff meant for accounts with special permissions. Made visible again in
 
  [[MediaWiki:Group-checkuser.css]], [[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-patroller.css]],
 
  [[MediaWiki:Group-templateeditor.css]], [[MediaWiki:Group-extendedmover.css]],
 
  [[MediaWiki:Group-extendedconfirmed.css]], and [[Mediawiki:Group-autoconfirmed.css]]. */
 
.checkuser-show,
 
.sysop-show,
 
.patroller-show,
 
.templateeditor-show,
 
.extendedmover-show,
 
.extendedconfirmed-show,
 
.autoconfirmed-show,
 
.user-show {
 
display: none;
 
}
 
 
 
/* Hide the redlink generated by {{Editnotice}},
 
  this overrides the ".sysop-show { display: none; }" above that applies
 
  to the same link as well. See [[phab:T45013]]
 
 
 
  Hide the images in editnotices to keep them readable in VE view.
 
  Long term, editnotices should become a core feature so that they can be designed responsive. */
 
.ve-ui-mwNoticesPopupTool-item .editnotice-redlink,
 
.ve-ui-mwNoticesPopupTool-item .mbox-image,
 
.ve-ui-mwNoticesPopupTool-item .mbox-imageright {
 
display: none !important;
 
}
 
 
 
/* Remove bullets when there are multiple edit page warnings */
 
ul.permissions-errors > li {
 
list-style: none none;
 
}
 
ul.permissions-errors {
 
margin: 0;
 
}
 
 
 
/* Generic class for Times-based serif, texhtml class for inline math */
 
.times-serif,
 
span.texhtml {
 
font-family: "Nimbus Roman No9 L", "Times New Roman", Times, serif;
 
font-size: 118%;
 
line-height: 1;
 
}
 
span.texhtml {
 
white-space: nowrap;
 
}
 
span.texhtml span.texhtml {
 
font-size: 100%;
 
}
 
span.mwe-math-mathml-inline {
 
font-size: 118%;
 
}
 
 
 
/* Force tabular and lining display for digits and texhtml */
 
.digits,
 
.texhtml {
 
-moz-font-feature-settings: "lnum", "tnum", "kern" 0;
 
-webkit-font-feature-settings: "lnum", "tnum", "kern" 0;
 
font-feature-settings: "lnum", "tnum", "kern" 0;
 
font-variant-numeric: lining-nums tabular-nums;
 
font-kerning: none;
 
}
 
 
 
/* Make <math display="block"> be left aligned with one space indent for compatibility with style conventions */
 
.mwe-math-fallback-image-display,
 
.mwe-math-mathml-display {
 
margin-left: 1.6em !important;
 
margin-top: 0.6em;
 
margin-bottom: 0.6em;
 
}
 
.mwe-math-mathml-display math {
 
display: inline;
 
}
 
 
 
/* Fix styling of transcluded prefindex tables */
 
table#mw-prefixindex-list-table,
 
table#mw-prefixindex-nav-table {
 
width: 98%;
 
}
 
 
 
/* Make it possible to hide checkboxes in <inputbox> */
 
.inputbox-hidecheckboxes form .inputbox-element,
 
.inputbox-hidecheckboxes .mw-ui-checkbox {
 
display: none !important;
 
}
 
 
 
/* Work-around for [[phab:T25965]] / [[phab:T100106]] (Kaltura advertisement) */
 
.k-player .k-attribution {
 
visibility: hidden;
 
}
 
 
 
/* Move 'play' button of video player to bottom left corner */
 
.PopUpMediaTransform a .play-btn-large {
 
margin: 0;
 
top: auto;
 
right: auto;
 
bottom: 0;
 
left: 0;
 
}
 
 
 
/* Hide FlaggedRevs notice UI when there are no pending changes */
 
.flaggedrevs_draft_synced,
 
.flaggedrevs_stable_synced {
 
display: none;
 
}
 
 
 
/* Force imgs in galleries to have borders by wrapping them in class=bordered-images */
 
.bordered-images img {
 
border: solid #ddd 1px;
 
}
 
 
 
/* Gallery styles background changes are restricted to screen view. In printing we should avoid applying backgrounds. */
 
@media screen {
 
/* The backgrounds for galleries. */
 
#content .gallerybox div.thumb {
 
/* Light gray padding */
 
background-color: #f8f9fa;
 
}
 
 
/* Put a chequered background behind images, only visible if they have transparency.
 
'.filehistory a img' and '#file img:hover' are handled by MediaWiki core (as of 1.19) */
 
.gallerybox .thumb img {
 
background: #fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat;
 
}
 
/* But not on articles, user pages, portals or with opt-out. */
 
.ns-0 .gallerybox .thumb img,
 
.ns-2 .gallerybox .thumb img,
 
.ns-100 .gallerybox .thumb img,
 
.nochecker .gallerybox .thumb img {
 
background-image: none;
 
}
 
 
 
}
 
 
 
/* Display "From Wikipedia, the free encyclopedia" in skins that support it, do not apply to print mode */
 
@media screen {
 
#siteSub {
 
display: block;
 
}
 
}
 

Latest revision as of 10:22, 19 December 2019

/* Any JavaScript here will be loaded for all users on every page load. */

/**
 * Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
 * loaded for all users on every wiki page. If possible create a gadget that is
 * enabled by default instead of adding it here (since gadgets are fully
 * optimized ResourceLoader modules with possibility to add dependencies etc.)
 *
 * Since Common.js isn't a gadget, there is no place to declare its
 * dependencies, so we have to lazy load them with mw.loader.using on demand and
 * then execute the rest in the callback. In most cases these dependencies will
 * be loaded (or loading) already and the callback will not be delayed. In case a
 * dependency hasn't arrived yet it'll make sure those are loaded before this.
 */

/* global mw, $ */
/* jshint strict:false, browser:true */

mw.loader.using( ['mediawiki.util', 'mediawiki.notify'] ).done( function () {
/* Begin of mw.loader.using callback */

/**
 * Main Page layout fixes
 *
 * Description: Adds an additional link to the complete list of languages available.
 * Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
 */
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) {
	$( function () {
		mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
			'Complete list', 'interwiki-completelist', 'Complete list of Wikipedias' );
	} );
}

/**
 * Redirect User:Name/skin.js and skin.css to the current skin's pages
 * (unless the 'skin' page really exists)
 * @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js
 * @rev: 2
 */
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
	var titleParts = mw.config.get( 'wgPageName' ).split( '/' );
	/* Make sure there was a part before and after the slash
	   and that the latter is 'skin.js' or 'skin.css' */
	if ( titleParts.length == 2 ) {
		var userSkinPage = titleParts.shift() + '/' + mw.config.get( 'skin' );
		if ( titleParts.slice( -1 ) == 'skin.js' ) {
			window.location.href = mw.util.getUrl( userSkinPage + '.js' );
		} else if ( titleParts.slice( -1 ) == 'skin.css' ) {
			window.location.href = mw.util.getUrl( userSkinPage + '.css' );
		}
	}
}

/**
 * Map addPortletLink to mw.util
 * @deprecated: Use mw.util.addPortletLink instead.
 */
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Use mw.util.addPortletLink instead' );

/**
 * Extract a URL parameter from the current URL
 * @deprecated: Use mw.util.getParamValue with proper escaping
 */
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Use mw.util.getParamValue instead' );

/**
 * Test if an element has a certain class
 * @deprecated:  Use $(element).hasClass() instead.
 */
mw.log.deprecate( window, 'hasClass', function ( element, className ) {
	return $( element ).hasClass( className );
}, 'Use jQuery.hasClass() instead' );

/**
 * @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
 * @rev 6
 */
var extraCSS = mw.util.getParamValue( 'withCSS' ),
	extraJS = mw.util.getParamValue( 'withJS' );

if ( extraCSS ) {
	if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
		mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' );
	} else {
		mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } );
	}
}

if ( extraJS ) {
	if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
		mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' );
	} else {
		mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } );
	}
}

/**
 * WikiMiniAtlas
 *
 * Description: WikiMiniAtlas is a popup click and drag world map.
 *              This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
 *              The script itself is located on meta because it is used by many projects.
 *              See [[Meta:WikiMiniAtlas]] for more information.
 * Note - use of this service is recommended to be replaced with mw:Help:Extension:Kartographer
 */
$( function () {
	var require_wikiminiatlas = $( 'a.external.text[href*="geohack"]' ).length || $( 'div.kmldata' ).length;
	if ( require_wikiminiatlas ) {
		mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );
	}
} );

/**
 * Collapsible tables; reimplemented with mw-collapsible
 * Styling is also in place to avoid FOUC
 * 
 * Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].
 * @version 3.0.0 (2018-05-20)
 * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
 * @author [[User:R. Koot]]
 * @author [[User:Krinkle]]
 * @author [[User:TheDJ]]
 * @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
 * is supported in MediaWiki core. Shimmable since MediaWiki 1.32
 */
function makeCollapsibleMwCollapsible( $content ) {
	var $tables = $content
		.find( 'table.collapsible:not(.mw-collapsible)' )
		.addClass( 'mw-collapsible' );

	$.each( $tables, function( index, table ) {
		// mw.log.warn( 'This page is using the deprecated class collapsible. Please replace it with mw-collapsible.');
		if( $( table ).hasClass( 'collapsed') ) {
			$( table ).addClass( 'mw-collapsed' );
			// mw.log.warn( 'This page is using the deprecated class collapsed. Please replace it with mw-collapsed.');
		}
	} );
	if( $tables.length > 0 ) {
		mw.loader.using( 'jquery.makeCollapsible' ).then( function() {
			$tables.makeCollapsible();
		} );
	}
}
mw.hook( 'wikipage.content' ).add( makeCollapsibleMwCollapsible );

/**
 * Add support to mw-collapsible for autocollapse, innercollapse and outercollapse
 *
 * Maintainers: TheDJ
 */
function mwCollapsibleSetup( $collapsibleContent ) {
	var $element,
		$toggle,
		autoCollapseThreshold = 2;
	$.each( $collapsibleContent, function (index, element) {
		$element = $( element );
		if ( $element.hasClass( 'collapsible' ) ) {
			$element.find('tr:first > th:first').prepend( $element.find('tr:first > * > .mw-collapsible-toggle'));
		}
		if ( $collapsibleContent.length >= autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {
			$element.data( 'mw-collapsible' ).collapse();
		} else if ( $element.hasClass( 'innercollapse' ) ) {
			if ( $element.parents( '.outercollapse' ).length > 0 ) {
				$element.data( 'mw-collapsible' ).collapse();
			}
		}
		// because of colored backgrounds, style the link in the text color
		// to ensure accessible contrast
		$toggle = $element.find( '.mw-collapsible-toggle' );
		if ( $toggle.length ) {
			// Make the toggle inherit text color
			if( $toggle.parent()[0].style.color ) {
				$toggle.find( 'a' ).css( 'color', 'inherit' );
			}
		}
	} );
}

mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );

/**
 * Dynamic Navigation Bars (experimental)
 *
 * Description: See [[Wikipedia:NavFrame]].
 * Maintainers: UNMAINTAINED
 */
 
var collapseCaption = 'hide';
var expandCaption = 'show';

// Set up the words in your language
var navigationBarHide = '[' + collapseCaption + ']';
var navigationBarShow = '[' + expandCaption + ']';

/**
 * Shows and hides content and picture (if available) of navigation bars.
 *
 * @param {number} indexNavigationBar The index of navigation bar to be toggled
 * @param {jQuery.Event} event Event object
 */
function toggleNavigationBar( indexNavigationBar, event ) {
	var navToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
	var navFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
	var navChild;

	if ( !navFrame || !navToggle ) {
		return false;
	}

	// If shown now
	if ( navToggle.firstChild.data === navigationBarHide ) {
		for ( navChild = navFrame.firstChild; navChild !== null; navChild = navChild.nextSibling ) {
			if ( $( navChild ).hasClass( 'NavContent' ) ) {
				navChild.style.display = 'none';
			}
		}
		navToggle.firstChild.data = navigationBarShow;
	
	// If hidden now
	} else if ( navToggle.firstChild.data === navigationBarShow ) {
		for ( navChild = navFrame.firstChild; navChild !== null; navChild = navChild.nextSibling ) {
			if ( $( navChild ).hasClass( 'NavContent' ) ) {
				navChild.style.display = 'block';
			}
		}
		navToggle.firstChild.data = navigationBarHide;
	}

	event.preventDefault();
}

/**
 * Adds show/hide-button to navigation bars.
 *
 * @param {jQuery} $content
 */
function createNavigationBarToggleButton( $content ) {
	var i, j, navChild, navToggle, navToggleText, isCollapsed,
		indexNavigationBar = 0;
	// Iterate over all < div >-elements
	var $divs = $content.find( 'div.NavFrame:not(.mw-collapsible)' );
	$divs.each( function ( i, navFrame ) {
		indexNavigationBar++;
		navToggle = document.createElement( 'a' );
		navToggle.className = 'NavToggle';
		navToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
		navToggle.setAttribute( 'href', '#' );
		$( navToggle ).on( 'click', $.proxy( toggleNavigationBar, null, indexNavigationBar ) );

		isCollapsed = $( navFrame ).hasClass( 'collapsed' );
		/**
		 * Check if any children are already hidden.  This loop is here for backwards compatibility:
		 * the old way of making NavFrames start out collapsed was to manually add style="display:none"
		 * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
		 * the content visible without JavaScript support), the new recommended way is to add the class
		 * "collapsed" to the NavFrame itself, just like with collapsible tables.
		 */
		for ( navChild = navFrame.firstChild; navChild !== null && !isCollapsed; navChild = navChild.nextSibling ) {
			if ( $( navChild ).hasClass( 'NavPic' ) || $( navChild ).hasClass( 'NavContent' ) ) {
				if ( navChild.style.display === 'none' ) {
					isCollapsed = true;
				}
			}
		}
		if ( isCollapsed ) {
			for ( navChild = navFrame.firstChild; navChild !== null; navChild = navChild.nextSibling ) {
				if ( $( navChild ).hasClass( 'NavPic' ) || $( navChild ).hasClass( 'NavContent' ) ) {
					navChild.style.display = 'none';
				}
			}
		}
		navToggleText = document.createTextNode( isCollapsed ? navigationBarShow : navigationBarHide );
		navToggle.appendChild( navToggleText );

		// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
		for ( j = 0; j < navFrame.childNodes.length; j++ ) {
			if ( $( navFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
				navToggle.style.color = navFrame.childNodes[j].style.color;
				navFrame.childNodes[j].appendChild( navToggle );
			}
		}
		navFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
	} );
}

mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );

/**
 * Magic editintros ****************************************************
 *
 * Description: Adds editintros on disambiguation pages and BLP pages.
 * Maintainers: [[User:RockMFR]]
 */
function addEditIntro( name ) {
	$( '.mw-editsection, #ca-edit, #ca-ve-edit' ).find( 'a' ).each( function ( i, el ) {
		el.href = $( this ).attr( 'href' ) + '&editintro=' + name;
	} );
}

if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
	$( function () {
		if ( document.getElementById( 'disambigbox' ) ) {
			addEditIntro( 'Template:Disambig_editintro' );
		}
	} );

	$( function () {
		var cats = mw.config.get('wgCategories');
		if ( !cats ) {
			return;
		}
		if ( $.inArray( 'Living people', cats ) !== -1 || $.inArray( 'Possibly living people', cats ) !== -1 ) {
			addEditIntro( 'Template:BLP_editintro' );
		}
	} );
}

/* Actions specific to the edit page */
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) {
	/**
	 * Fix edit summary prompt for undo
	 *
	 *  Fixes the fact that the undo function combined with the "no edit summary prompter"
	 *  complains about missing editsummary, if leaving the edit summary unchanged.
	 *  Added by [[User:Deskana]], code by [[User:Tra]].
	 *  See also [[phab:T10912]].
	 */
	$(function () {
		if (document.location.search.indexOf('undo=') !== -1 && document.getElementsByName('wpAutoSummary')[0]) {
			document.getElementsByName('wpAutoSummary')[0].value = '1';
		}
	});
}

/* End of mw.loader.using callback */
} );
/* DO NOT ADD CODE BELOW THIS LINE */