/* {{Projet:JavaScript/Script|AffMasLiens}} */

/**
 * Permet de masquer les liens d'un article pour en améliorer la lisibilité.
 *
 * Pour ce faire, ce script place un switch en haut de page,
 * permettant de masquer ou de réafficher les liens à chaque clic dessus.
 **/

/* globals mw, OO, $ */

if ( mw.config.get( 'wgNamespaceNumber' ) === 0 && mw.config.get( 'wgAction' ) === 'view' ) {

	mw.loader.using( , function () {

		$( function ( $ ) {
			'use strict';

			// '1' : CSS activé, liens masqués
			// '0' ou null : CSS désactivé, liens affichés
			var enabledAtStart = ( mw.storage.get( 'AffMasLiens' ) === '1' );

			var sheet = mw.util.addCSS( '#mw-content-text .mw-parser-output a { color: inherit }' );
			if ( !enabledAtStart ) {
				sheet.disabled = true;
			}

			var toggleSwitch = new OO.ui.ToggleSwitchWidget( { value: enabledAtStart } ),
				label = new OO.ui.LabelWidget( { label: 'Masquer les liens' } ),
				layout = new OO.ui.HorizontalLayout( { 'items':  } );

			toggleSwitch.on( 'change', function () {
				if ( toggleSwitch.getValue() ) {
					sheet.disabled = false;
					mw.storage.set( 'AffMasLiens', '1' );
				} else {
					sheet.disabled = true;
					mw.storage.set( 'AffMasLiens', '0' );
				}
			} );

			layout.$element.css( 'margin-left', '8px' );

			if ( mw.config.get( 'skin' ) === 'vector-2022' ) {
				$( '#firstHeading' ).after( layout.$element.css( 'flex-shrink', 0 ) );
			} else {
				$( '#firstHeading' ).before( layout.$element.css( 'float', 'right' ) );
			}
		} );
	} );
}