/*!
- * OOUI v0.29.3
+ * OOUI v0.30.2
* https://www.mediawiki.org/wiki/OOUI
*
- * Copyright 2011–2018 OOUI Team and other contributors.
+ * Copyright 2011–2019 OOUI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2018-11-01T02:03:33Z
+ * Date: 2019-01-23T01:14:20Z
*/
( function ( OO ) {
* return this.panel1.$element.outerHeight( true );
* };
* var windowManager = new OO.ui.WindowManager();
- * $( 'body' ).append( windowManager.$element );
+ * $( document.body ).append( windowManager.$element );
* var dialog = new MyProcessDialog( {
* size: 'medium'
* } );
* @param {string} mode The mode. Only actions configured to be available in the specified
* mode will be made visible.
* @chainable
+ * @return {OO.ui.ActionSet} The widget, for chaining
* @fires toggle
* @fires change
*/
* @param {Object.<string,boolean>} actions A list keyed by action name with boolean
* values that indicate whether or not the action should be enabled.
* @chainable
+ * @return {OO.ui.ActionSet} The widget, for chaining
*/
OO.ui.ActionSet.prototype.setAbilities = function ( actions ) {
var i, len, action, item;
* @param {Function} callback Callback to run for each action; callback is invoked with three
* arguments: the action, the action's index, the list of actions being iterated over
* @chainable
+ * @return {OO.ui.ActionSet} The widget, for chaining
*/
OO.ui.ActionSet.prototype.forEach = function ( filter, callback ) {
this.changed = false;
*
* @param {OO.ui.ActionWidget[]} actions Action widgets to add
* @chainable
+ * @return {OO.ui.ActionSet} The widget, for chaining
* @fires add
* @fires change
*/
*
* @param {OO.ui.ActionWidget[]} actions Action widgets to remove
* @chainable
+ * @return {OO.ui.ActionSet} The widget, for chaining
* @fires remove
* @fires change
*/
* To remove only specified actions, use the {@link #method-remove remove} method instead.
*
* @chainable
+ * @return {OO.ui.ActionSet} The widget, for chaining
* @fires remove
* @fires change
*/
*
* @private
* @chainable
+ * @return {OO.ui.ActionSet} The widget, for chaining
*/
OO.ui.ActionSet.prototype.organize = function () {
var i, iLen, j, jLen, flag, action, category, list, item, special,
config = config || {};
// Properties
- this.message = message instanceof jQuery ? message : String( message );
+ this.message = message instanceof $ ? message : String( message );
this.recoverable = config.recoverable === undefined || !!config.recoverable;
this.warning = !!config.warning;
};
* @return {jQuery} Error message in DOM nodes
*/
OO.ui.Error.prototype.getMessage = function () {
- return this.message instanceof jQuery ?
+ return this.message instanceof $ ?
this.message.clone() :
$( '<div>' ).text( this.message ).contents();
};
* @return {string} Error message
*/
OO.ui.Error.prototype.getMessageText = function () {
- return this.message instanceof jQuery ? this.message.text() : this.message;
+ return this.message instanceof $ ? this.message.text() : this.message;
};
/**
return $.Deferred().reject( result ).promise();
}
// Duck-type the object to see if it can produce a promise
- if ( result && $.isFunction( result.promise ) ) {
+ if ( result && typeof result.promise === 'function' ) {
// Use a promise generated from the result
return result.promise();
}
* @return {Object} Step object, with `callback` and `context` properties
*/
OO.ui.Process.prototype.createStep = function ( step, context ) {
- if ( typeof step === 'number' || $.isFunction( step.promise ) ) {
+ if ( typeof step === 'number' || typeof step.promise === 'function' ) {
return {
callback: function () {
return step;
context: null
};
}
- if ( $.isFunction( step ) ) {
+ if ( typeof step === 'function' ) {
return {
callback: step,
context: context
return this.currentWindow;
};
+/* eslint-disable valid-jsdoc */
/**
* Open a window.
*
* @fires opening
*/
OO.ui.WindowManager.prototype.openWindow = function ( win, data, lifecycle, compatOpening ) {
+ /* eslint-enable valid-jsdoc */
var error,
manager = this;
data = data || {};
* Example:
*
* var windowManager = new OO.ui.WindowManager();
- * $( 'body' ).append( windowManager.$element );
+ * $( document.body ).append( windowManager.$element );
*
* // Add a window under the default name: see OO.ui.MessageDialog.static.name
* windowManager.addWindows( [ new OO.ui.MessageDialog() ] );
*
* @param {OO.ui.Window} win Window to update, should be the current window
* @chainable
+ * @return {OO.ui.WindowManager} The manager, for chaining
*/
OO.ui.WindowManager.prototype.updateWindowSize = function ( win ) {
var isFullscreen;
* @private
* @param {boolean} [on] Bind global events
* @chainable
+ * @return {OO.ui.WindowManager} The manager, for chaining
*/
OO.ui.WindowManager.prototype.toggleGlobalEvents = function ( on ) {
var scrollWidth, bodyMargin,
if ( stackDepth === 0 ) {
scrollWidth = window.innerWidth - document.documentElement.clientWidth;
bodyMargin = parseFloat( $body.css( 'margin-right' ) ) || 0;
- $body.css( {
- overflow: 'hidden',
- 'margin-right': bodyMargin + scrollWidth
- } );
+ $body.addClass( 'oo-ui-windowManager-modal-active' );
+ $body.css( 'margin-right', bodyMargin + scrollWidth );
}
stackDepth++;
this.globalEvents = true;
} );
stackDepth--;
if ( stackDepth === 0 ) {
- $body.css( {
- overflow: '',
- 'margin-right': ''
- } );
+ $body.removeClass( 'oo-ui-windowManager-modal-active' );
+ $body.css( 'margin-right', '' );
}
this.globalEvents = false;
}
* @private
* @param {boolean} [isolate] Make only the window manager visible to screen readers
* @chainable
+ * @return {OO.ui.WindowManager} The manager, for chaining
*/
OO.ui.WindowManager.prototype.toggleAriaIsolation = function ( isolate ) {
var $topLevelElement;
this.$element.removeAttr( 'aria-hidden' );
// Hide everything other than the window manager from screen readers
- this.$ariaHidden = $( 'body' )
+ this.$ariaHidden = $( document.body )
.children()
.not( 'script' )
.not( $topLevelElement )
*
* @private
* @param {jQuery.Event} e Mouse down event
+ * @return {OO.ui.Window} The window, for chaining
*/
OO.ui.Window.prototype.onMouseDown = function ( e ) {
// Prevent clicking on the click-block from stealing focus
* @param {OO.ui.WindowManager} manager Manager for this window
* @throws {Error} An error is thrown if the method is called more than once
* @chainable
+ * @return {OO.ui.Window} The window, for chaining
*/
OO.ui.Window.prototype.setManager = function ( manager ) {
if ( this.manager ) {
* @param {string} size Symbolic name of size: `small`, `medium`, `large`, `larger` or
* `full`
* @chainable
+ * @return {OO.ui.Window} The window, for chaining
*/
OO.ui.Window.prototype.setSize = function ( size ) {
this.size = size;
*
* @throws {Error} An error is thrown if the window is not attached to a window manager
* @chainable
+ * @return {OO.ui.Window} The window, for chaining
*/
OO.ui.Window.prototype.updateSize = function () {
if ( !this.manager ) {
* @param {string|number} [dim.minHeight] Minimum height
* @param {string|number} [dim.maxHeight] Maximum height
* @chainable
+ * @return {OO.ui.Window} The window, for chaining
*/
OO.ui.Window.prototype.setDimensions = function ( dim ) {
var height,
*
* @throws {Error} An error is thrown if the window is not attached to a window manager
* @chainable
+ * @return {OO.ui.Window} The window, for chaining
*/
OO.ui.Window.prototype.initialize = function () {
if ( !this.manager ) {
// Blur the focused element
if ( $focus.length ) {
+ // eslint-disable-next-line jquery/no-event-shorthand
$focus[ 0 ].blur();
}
* } );
* // Create and append a window manager, which opens and closes the window.
* var windowManager = new OO.ui.WindowManager();
- * $( 'body' ).append( windowManager.$element );
+ * $( document.body ).append( windowManager.$element );
* windowManager.addWindows( [ myDialog ] );
* // Open the window!
* windowManager.openWindow( myDialog );
*
* @protected
* @chainable
+ * @return {OO.ui.Dialog} The dialog, for chaining
*/
OO.ui.Dialog.prototype.detachActions = function () {
var i, len;
this.attachedActions[ i ].$element.detach();
}
this.attachedActions = [];
+
+ return this;
};
/**
*
* // Create and append a window manager.
* var windowManager = new OO.ui.WindowManager();
- * $( 'body' ).append( windowManager.$element );
+ * $( document.body ).append( windowManager.$element );
* windowManager.addWindows( [ messageDialog ] );
* // Open the window.
* windowManager.openWindow( messageDialog, {
* @private
* @param {boolean} [value] Layout actions vertically, omit to toggle
* @chainable
+ * @return {OO.ui.MessageDialog} The dialog, for chaining
*/
OO.ui.MessageDialog.prototype.toggleVerticalActionLayout = function ( value ) {
value = value === undefined ? !this.verticalActionLayout : !!value;
* };
*
* var windowManager = new OO.ui.WindowManager();
- * $( 'body' ).append( windowManager.$element );
+ * $( document.body ).append( windowManager.$element );
*
* var dialog = new MyProcessDialog();
* windowManager.addWindows( [ dialog ] );
// Events
this.dismissButton.connect( this, { click: 'onDismissErrorButtonClick' } );
this.retryButton.connect( this, { click: 'onRetryButtonClick' } );
+ this.title.connect( this, { labelChange: 'fitLabel' } );
// Initialization
this.title.$element.addClass( 'oo-ui-processDialog-title' );
*
* @private
* @chainable
+ * @return {OO.ui.MessageDialog} The dialog, for chaining
*/
OO.ui.ProcessDialog.prototype.fitLabel = function () {
var safeWidth, primaryWidth, biggerWidth, labelWidth, navigationWidth, leftWidth, rightWidth,
OO.ui.getWindowManager = function () {
if ( !OO.ui.windowManager ) {
OO.ui.windowManager = new OO.ui.WindowManager();
- $( 'body' ).append( OO.ui.windowManager.$element );
+ $( document.body ).append( OO.ui.windowManager.$element );
OO.ui.windowManager.addWindows( [ new OO.ui.MessageDialog() ] );
}
return OO.ui.windowManager;