Release notes:https://gerrit.wikimedia.org/g/oojs/ui/+/v0.51.2/History.md Bug: T210534 Bug: T324382 Bug: T376276 Depends-On: I50ec27302347203170cb14c7228b6c3d3264b24c Change-Id: Iea7cbc00d988504660754e8728707d0021ae37d7 (cherry picked from commit eb6a4ea1ae271668a0ef78e86ccc180d84614e68)
122 lines
No EOL
3.3 KiB
JavaScript
122 lines
No EOL
3.3 KiB
JavaScript
/*!
|
||
* OOUI v0.51.2
|
||
* https://www.mediawiki.org/wiki/OOUI
|
||
*
|
||
* Copyright 2011–2024 OOUI Team and other contributors.
|
||
* Released under the MIT license
|
||
* http://oojs.mit-license.org
|
||
*
|
||
* Date: 2024-11-13T16:37:10Z
|
||
*/
|
||
( function ( OO ) {
|
||
|
||
'use strict';
|
||
|
||
/**
|
||
* @class
|
||
* @extends OO.ui.Theme
|
||
*
|
||
* @constructor
|
||
*/
|
||
OO.ui.WikimediaUITheme = function OoUiWikimediaUITheme() {
|
||
// Parent constructor
|
||
OO.ui.WikimediaUITheme.super.call( this );
|
||
};
|
||
|
||
/* Setup */
|
||
|
||
OO.inheritClass( OO.ui.WikimediaUITheme, OO.ui.Theme );
|
||
|
||
/* Methods */
|
||
|
||
/**
|
||
* @inheritdoc
|
||
*/
|
||
OO.ui.WikimediaUITheme.prototype.getElementClasses = function ( element ) {
|
||
const
|
||
variants = {
|
||
invert: false,
|
||
progressive: false,
|
||
destructive: false,
|
||
error: false,
|
||
warning: false,
|
||
success: false
|
||
},
|
||
// Parent method
|
||
classes = OO.ui.WikimediaUITheme.super.prototype.getElementClasses.call( this, element );
|
||
|
||
if (
|
||
element instanceof OO.ui.IconWidget &&
|
||
// eslint-disable-next-line no-jquery/no-class-state
|
||
element.$element.hasClass( 'oo-ui-checkboxInputWidget-checkIcon' )
|
||
) {
|
||
// Icon on CheckboxInputWidget
|
||
variants.invert = true;
|
||
} else if ( element.supports( 'hasFlag' ) ) {
|
||
const isFramed = element.supports( 'isFramed' ) && element.isFramed();
|
||
const isActive = element.supports( 'isActive' ) && element.isActive();
|
||
const isToolOrGroup =
|
||
// Check if the class exists, as classes that are not in the 'core' module may
|
||
// not be loaded.
|
||
( OO.ui.Tool && element instanceof OO.ui.Tool ) ||
|
||
( OO.ui.ToolGroup && element instanceof OO.ui.ToolGroup );
|
||
if (
|
||
// Button with a dark background.
|
||
isFramed && ( isActive || element.isDisabled() || element.hasFlag( 'primary' ) ) ||
|
||
// Toolbar with a dark background.
|
||
isToolOrGroup && element.hasFlag( 'primary' )
|
||
) {
|
||
// … use white icon / indicator, regardless of other flags
|
||
variants.invert = true;
|
||
} else if ( !isFramed && element.isDisabled() && !element.hasFlag( 'invert' ) ) {
|
||
// Frameless disabled button, always use black icon / indicator regardless of
|
||
// other flags.
|
||
variants.invert = false;
|
||
} else if ( !element.isDisabled() ) {
|
||
// Any other kind of button, use the right colored icon / indicator if available.
|
||
variants.progressive = element.hasFlag( 'progressive' ) ||
|
||
// Active tools/toolgroups
|
||
( isToolOrGroup && isActive ) ||
|
||
// Pressed or selected outline/menu option widgets
|
||
(
|
||
(
|
||
element instanceof OO.ui.MenuOptionWidget ||
|
||
// Check if the class exists, as classes that are not in the 'core' module
|
||
// may not be loaded.
|
||
(
|
||
OO.ui.OutlineOptionWidget &&
|
||
element instanceof OO.ui.OutlineOptionWidget
|
||
)
|
||
) &&
|
||
( element.isPressed() || element.isSelected() )
|
||
);
|
||
|
||
variants.destructive = element.hasFlag( 'destructive' );
|
||
variants.invert = element.hasFlag( 'invert' );
|
||
variants.error = element.hasFlag( 'error' );
|
||
variants.warning = element.hasFlag( 'warning' );
|
||
variants.success = element.hasFlag( 'success' );
|
||
}
|
||
}
|
||
|
||
for ( const variant in variants ) {
|
||
classes[ variants[ variant ] ? 'on' : 'off' ].push( 'oo-ui-image-' + variant );
|
||
}
|
||
|
||
return classes;
|
||
};
|
||
|
||
/**
|
||
* @inheritdoc
|
||
*/
|
||
OO.ui.WikimediaUITheme.prototype.getDialogTransitionDuration = function () {
|
||
return 250;
|
||
};
|
||
|
||
/* Instantiation */
|
||
|
||
OO.ui.theme = new OO.ui.WikimediaUITheme();
|
||
|
||
}( OO ) );
|
||
|
||
//# sourceMappingURL=oojs-ui-wikimediaui.js.map.json
|