{"version":3,"sources":["oojs-ui-windows.js"],"names":["OO","ui","ActionWidget","config","$","extend","framed","parent","call","this","mixin","PendingElement","action","modes","width","height","$element","addClass","inheritClass","ButtonWidget","mixinClass","prototype","hasMode","mode","indexOf","getAction","getModes","slice","ActionSet","EventEmitter","list","categories","actions","flags","categorized","special","others","organized","changing","changed","static","specialFlags","onActionChange","emit","isSpecial","flag","get","filters","i","len","category","index","match","matches","organize","Array","isArray","length","push","apply","undefined","visible","isVisible","disabled","isDisabled","splice","lastIndexOf","getSpecial","getOthers","setMode","toggle","setAbilities","item","setDisabled","forEach","filter","callback","add","connect","click","remove","disconnect","clear","removed","iLen","j","jLen","constructor","hasFlag","Error","message","isPlainObject","jQuery","String","recoverable","warning","initClass","isRecoverable","isWarning","getMessage","clone","text","contents","getMessageText","Process","step","context","steps","next","execute","proceed","deferred","result","Deferred","reject","promise","setTimeout","resolve","isFunction","then","createStep","first","unshift","WindowManager","factory","modal","windows","opening","opened","closing","preparingToOpen","preparingToClose","currentWindow","globalEvents","$returnFocusTo","$ariaHidden","onWindowResizeTimeout","onWindowResizeHandler","onWindowResize","bind","afterWindowResizeHandler","afterWindowResize","toggleClass","Element","sizes","small","medium","large","larger","full","defaultSize","clearTimeout","updateWindowSize","isOpening","win","state","isClosing","isOpened","hasWindow","name","getSetupDelay","getReadyDelay","getHoldDelay","getTeardownDelay","getWindow","Window","lookup","create","addWindows","getCurrentWindow","openWindow","data","manager","when","done","toggleGlobalEvents","toggleAriaIsolation","document","activeElement","setup","notify","ready","closeWindow","always","hold","teardown","focus","append","setManager","removeWindows","names","cleanupWindow","promises","cleanup","detach","clearWindows","Object","keys","isFullscreen","getSize","setDimensions","getSizeProperties","on","scrollWidth","bodyMargin","$body","getElementDocument","body","stackDepth","getElementWindow","orientationchange resize","window","innerWidth","documentElement","clientWidth","parseFloat","css","overflow","margin-right","off","isolate","children","not","parentsUntil","last","attr","removeAttr","destroy","size","$frame","$overlay","$content","$focusTrapBefore","prop","$focusTrapAfter","$focusTraps","onMouseDown","e","target","isInitialized","getManager","viewport","getDimensions","rect","right","left","withoutSizeTransitions","oldTransition","getContentHeight","bodyHeight","bodyStyleObj","style","frameStyleObj","oldHeight","oldPosition","position","getBodyHeight","outerHeight","innerHeight","$head","$foot","scrollHeight","getDir","getSetupProcess","getReadyProcess","getHoldProcess","getTeardownProcess","initialize","setSize","updateSize","dim","styleObj","oldWidth","minWidth","maxWidth","minHeight","maxHeight","$document","onFocusTrapFocused","event","backwards","is","element","findFocusable","open","close","focusTrapHandler","$focus","find","getDocument","blur","removeClass","Dialog","attachedActions","currentAction","onDialogKeyDownHandler","onDialogKeyDown","change","title","escapable","which","Keys","ESCAPE","executeAction","preventDefault","stopPropagation","ENTER","ctrlKey","metaKey","onActionClick","isPending","onActionsChange","detachActions","attachActions","getActions","getActionProcess","setLabel","setTitle","getActionWidgets","LabelWidget","getElementId","setPendingElement","widgets","pushPending","popPending","MessageDialog","verticalActionLayout","label","deferMsg","resize","onResize","dialog","fitActions","toggleVerticalActionLayout","value","$actions","getFlags","$button","oldOverflow","$scrollable","container","reconsiderScrollbars","PanelLayout","scrollable","classes","padded","expanded","other","safe","toggleFramed","primary","previous","$label","outerWidth","ProcessDialog","fitOnOpen","onDismissErrorButtonClick","hideErrors","onRetryButtonClick","$navigation","$location","$safeActions","$primaryActions","$otherActions","dismissButton","msg","retryButton","$errors","$errorsTitle","isMobile","icon","fitLabel","process","fail","errors","showErrors","arguments","safeWidth","primaryWidth","biggerWidth","labelWidth","navigationWidth","leftWidth","rightWidth","Math","max","paddingLeft","paddingRight","$item","items","abilities","$errorItems","clearFlags","setFlags","after","scrollTop","getWindowManager","windowManager","alert","options","confirm","prompt","textInput","TextInputWidget","textField","FieldLayout","align","getValue"],"mappings":"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","file":"oojs-ui-windows.min.js","sourcesContent":["/*!\n * OOjs UI v0.21.3\n * https://www.mediawiki.org/wiki/OOjs_UI\n *\n * Copyright 2011–2017 OOjs UI Team and other contributors.\n * Released under the MIT license\n * http://oojs.mit-license.org\n *\n * Date: 2017-05-10T00:55:40Z\n */\n( function ( OO ) {\n\n'use strict';\n\n/**\n * An ActionWidget is a {@link OO.ui.ButtonWidget button widget} that executes an action.\n * Action widgets are used with OO.ui.ActionSet, which manages the behavior and availability\n * of the actions.\n *\n * Both actions and action sets are primarily used with {@link OO.ui.Dialog Dialogs}.\n * Please see the [OOjs UI documentation on MediaWiki] [1] for more information\n * and examples.\n *\n * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Process_Dialogs#Action_sets\n *\n * @class\n * @extends OO.ui.ButtonWidget\n * @mixins OO.ui.mixin.PendingElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n * @cfg {string} [action] Symbolic name of the action (e.g., ‘continue’ or ‘cancel’).\n * @cfg {string[]} [modes] Symbolic names of the modes (e.g., ‘edit’ or ‘read’) in which the action\n * should be made available. See the action set's {@link OO.ui.ActionSet#setMode setMode} method\n * for more information about setting modes.\n * @cfg {boolean} [framed=false] Render the action button with a frame\n */\nOO.ui.ActionWidget = function OoUiActionWidget( config ) {\n\t// Configuration initialization\n\tconfig = $.extend( { framed: false }, config );\n\n\t// Parent constructor\n\tOO.ui.ActionWidget.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PendingElement.call( this, config );\n\n\t// Properties\n\tthis.action = config.action || '';\n\tthis.modes = config.modes || [];\n\tthis.width = 0;\n\tthis.height = 0;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-actionWidget' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ActionWidget, OO.ui.ButtonWidget );\nOO.mixinClass( OO.ui.ActionWidget, OO.ui.mixin.PendingElement );\n\n/* Methods */\n\n/**\n * Check if the action is configured to be available in the specified `mode`.\n *\n * @param {string} mode Name of mode\n * @return {boolean} The action is configured with the mode\n */\nOO.ui.ActionWidget.prototype.hasMode = function ( mode ) {\n\treturn this.modes.indexOf( mode ) !== -1;\n};\n\n/**\n * Get the symbolic name of the action (e.g., ‘continue’ or ‘cancel’).\n *\n * @return {string}\n */\nOO.ui.ActionWidget.prototype.getAction = function () {\n\treturn this.action;\n};\n\n/**\n * Get the symbolic name of the mode or modes for which the action is configured to be available.\n *\n * The current mode is set with the action set's {@link OO.ui.ActionSet#setMode setMode} method.\n * Only actions that are configured to be avaiable in the current mode will be visible. All other actions\n * are hidden.\n *\n * @return {string[]}\n */\nOO.ui.ActionWidget.prototype.getModes = function () {\n\treturn this.modes.slice();\n};\n\n/* eslint-disable no-unused-vars */\n/**\n * ActionSets manage the behavior of the {@link OO.ui.ActionWidget action widgets} that comprise them.\n * Actions can be made available for specific contexts (modes) and circumstances\n * (abilities). Action sets are primarily used with {@link OO.ui.Dialog Dialogs}.\n *\n * ActionSets contain two types of actions:\n *\n * - Special: Special actions are the first visible actions with special flags, such as 'safe' and 'primary', the default special flags. Additional special flags can be configured in subclasses with the static #specialFlags property.\n * - Other: Other actions include all non-special visible actions.\n *\n * Please see the [OOjs UI documentation on MediaWiki][1] for more information.\n *\n * @example\n * // Example: An action set used in a process dialog\n * function MyProcessDialog( config ) {\n * MyProcessDialog.parent.call( this, config );\n * }\n * OO.inheritClass( MyProcessDialog, OO.ui.ProcessDialog );\n * MyProcessDialog.static.title = 'An action set in a process dialog';\n * MyProcessDialog.static.name = 'myProcessDialog';\n * // An action set that uses modes ('edit' and 'help' mode, in this example).\n * MyProcessDialog.static.actions = [\n * { action: 'continue', modes: 'edit', label: 'Continue', flags: [ 'primary', 'constructive' ] },\n * { action: 'help', modes: 'edit', label: 'Help' },\n * { modes: 'edit', label: 'Cancel', flags: 'safe' },\n * { action: 'back', modes: 'help', label: 'Back', flags: 'safe' }\n * ];\n *\n * MyProcessDialog.prototype.initialize = function () {\n * MyProcessDialog.parent.prototype.initialize.apply( this, arguments );\n * this.panel1 = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n * this.panel1.$element.append( '
This dialog uses an action set (continue, help, cancel, back) configured with modes. This is edit mode. Click \\'help\\' to see help mode.
' );\n * this.panel2 = new OO.ui.PanelLayout( { padded: true, expanded: false } );\n * this.panel2.$element.append( 'This is help mode. Only the \\'back\\' action widget is configured to be visible here. Click \\'back\\' to return to \\'edit\\' mode.
' );\n * this.stackLayout = new OO.ui.StackLayout( {\n * items: [ this.panel1, this.panel2 ]\n * } );\n * this.$body.append( this.stackLayout.$element );\n * };\n * MyProcessDialog.prototype.getSetupProcess = function ( data ) {\n * return MyProcessDialog.parent.prototype.getSetupProcess.call( this, data )\n * .next( function () {\n * this.actions.setMode( 'edit' );\n * }, this );\n * };\n * MyProcessDialog.prototype.getActionProcess = function ( action ) {\n * if ( action === 'help' ) {\n * this.actions.setMode( 'help' );\n * this.stackLayout.setItem( this.panel2 );\n * } else if ( action === 'back' ) {\n * this.actions.setMode( 'edit' );\n * this.stackLayout.setItem( this.panel1 );\n * } else if ( action === 'continue' ) {\n * var dialog = this;\n * return new OO.ui.Process( function () {\n * dialog.close();\n * } );\n * }\n * return MyProcessDialog.parent.prototype.getActionProcess.call( this, action );\n * };\n * MyProcessDialog.prototype.getBodyHeight = function () {\n * return this.panel1.$element.outerHeight( true );\n * };\n * var windowManager = new OO.ui.WindowManager();\n * $( 'body' ).append( windowManager.$element );\n * var dialog = new MyProcessDialog( {\n * size: 'medium'\n * } );\n * windowManager.addWindows( [ dialog ] );\n * windowManager.openWindow( dialog );\n *\n * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Process_Dialogs#Action_sets\n *\n * @abstract\n * @class\n * @mixins OO.EventEmitter\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ActionSet = function OoUiActionSet( config ) {\n\t// Configuration initialization\n\tconfig = config || {};\n\n\t// Mixin constructors\n\tOO.EventEmitter.call( this );\n\n\t// Properties\n\tthis.list = [];\n\tthis.categories = {\n\t\tactions: 'getAction',\n\t\tflags: 'getFlags',\n\t\tmodes: 'getModes'\n\t};\n\tthis.categorized = {};\n\tthis.special = {};\n\tthis.others = [];\n\tthis.organized = false;\n\tthis.changing = false;\n\tthis.changed = false;\n};\n/* eslint-enable no-unused-vars */\n\n/* Setup */\n\nOO.mixinClass( OO.ui.ActionSet, OO.EventEmitter );\n\n/* Static Properties */\n\n/**\n * Symbolic name of the flags used to identify special actions. Special actions are displayed in the\n * header of a {@link OO.ui.ProcessDialog process dialog}.\n * See the [OOjs UI documentation on MediaWiki][2] for more information and examples.\n *\n * [2]:https://www.mediawiki.org/wiki/OOjs_UI/Windows/Process_Dialogs\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.ActionSet.static.specialFlags = [ 'safe', 'primary' ];\n\n/* Events */\n\n/**\n * @event click\n *\n * A 'click' event is emitted when an action is clicked.\n *\n * @param {OO.ui.ActionWidget} action Action that was clicked\n */\n\n/**\n * @event add\n *\n * An 'add' event is emitted when actions are {@link #method-add added} to the action set.\n *\n * @param {OO.ui.ActionWidget[]} added Actions added\n */\n\n/**\n * @event remove\n *\n * A 'remove' event is emitted when actions are {@link #method-remove removed}\n * or {@link #clear cleared}.\n *\n * @param {OO.ui.ActionWidget[]} added Actions removed\n */\n\n/**\n * @event change\n *\n * A 'change' event is emitted when actions are {@link #method-add added}, {@link #clear cleared},\n * or {@link #method-remove removed} from the action set or when the {@link #setMode mode} is changed.\n *\n */\n\n/* Methods */\n\n/**\n * Handle action change events.\n *\n * @private\n * @fires change\n */\nOO.ui.ActionSet.prototype.onActionChange = function () {\n\tthis.organized = false;\n\tif ( this.changing ) {\n\t\tthis.changed = true;\n\t} else {\n\t\tthis.emit( 'change' );\n\t}\n};\n\n/**\n * Check if an action is one of the special actions.\n *\n * @param {OO.ui.ActionWidget} action Action to check\n * @return {boolean} Action is special\n */\nOO.ui.ActionSet.prototype.isSpecial = function ( action ) {\n\tvar flag;\n\n\tfor ( flag in this.special ) {\n\t\tif ( action === this.special[ flag ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * Get action widgets based on the specified filter: ‘actions’, ‘flags’, ‘modes’, ‘visible’,\n * or ‘disabled’.\n *\n * @param {Object} [filters] Filters to use, omit to get all actions\n * @param {string|string[]} [filters.actions] Actions that action widgets must have\n * @param {string|string[]} [filters.flags] Flags that action widgets must have (e.g., 'safe')\n * @param {string|string[]} [filters.modes] Modes that action widgets must have\n * @param {boolean} [filters.visible] Action widgets must be visible\n * @param {boolean} [filters.disabled] Action widgets must be disabled\n * @return {OO.ui.ActionWidget[]} Action widgets matching all criteria\n */\nOO.ui.ActionSet.prototype.get = function ( filters ) {\n\tvar i, len, list, category, actions, index, match, matches;\n\n\tif ( filters ) {\n\t\tthis.organize();\n\n\t\t// Collect category candidates\n\t\tmatches = [];\n\t\tfor ( category in this.categorized ) {\n\t\t\tlist = filters[ category ];\n\t\t\tif ( list ) {\n\t\t\t\tif ( !Array.isArray( list ) ) {\n\t\t\t\t\tlist = [ list ];\n\t\t\t\t}\n\t\t\t\tfor ( i = 0, len = list.length; i < len; i++ ) {\n\t\t\t\t\tactions = this.categorized[ category ][ list[ i ] ];\n\t\t\t\t\tif ( Array.isArray( actions ) ) {\n\t\t\t\t\t\tmatches.push.apply( matches, actions );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Remove by boolean filters\n\t\tfor ( i = 0, len = matches.length; i < len; i++ ) {\n\t\t\tmatch = matches[ i ];\n\t\t\tif (\n\t\t\t\t( filters.visible !== undefined && match.isVisible() !== filters.visible ) ||\n\t\t\t\t( filters.disabled !== undefined && match.isDisabled() !== filters.disabled )\n\t\t\t) {\n\t\t\t\tmatches.splice( i, 1 );\n\t\t\t\tlen--;\n\t\t\t\ti--;\n\t\t\t}\n\t\t}\n\t\t// Remove duplicates\n\t\tfor ( i = 0, len = matches.length; i < len; i++ ) {\n\t\t\tmatch = matches[ i ];\n\t\t\tindex = matches.lastIndexOf( match );\n\t\t\twhile ( index !== i ) {\n\t\t\t\tmatches.splice( index, 1 );\n\t\t\t\tlen--;\n\t\t\t\tindex = matches.lastIndexOf( match );\n\t\t\t}\n\t\t}\n\t\treturn matches;\n\t}\n\treturn this.list.slice();\n};\n\n/**\n * Get 'special' actions.\n *\n * Special actions are the first visible action widgets with special flags, such as 'safe' and 'primary'.\n * Special flags can be configured in subclasses by changing the static #specialFlags property.\n *\n * @return {OO.ui.ActionWidget[]|null} 'Special' action widgets.\n */\nOO.ui.ActionSet.prototype.getSpecial = function () {\n\tthis.organize();\n\treturn $.extend( {}, this.special );\n};\n\n/**\n * Get 'other' actions.\n *\n * Other actions include all non-special visible action widgets.\n *\n * @return {OO.ui.ActionWidget[]} 'Other' action widgets\n */\nOO.ui.ActionSet.prototype.getOthers = function () {\n\tthis.organize();\n\treturn this.others.slice();\n};\n\n/**\n * Set the mode (e.g., ‘edit’ or ‘view’). Only {@link OO.ui.ActionWidget#modes actions} configured\n * to be available in the specified mode will be made visible. All other actions will be hidden.\n *\n * @param {string} mode The mode. Only actions configured to be available in the specified\n * mode will be made visible.\n * @chainable\n * @fires toggle\n * @fires change\n */\nOO.ui.ActionSet.prototype.setMode = function ( mode ) {\n\tvar i, len, action;\n\n\tthis.changing = true;\n\tfor ( i = 0, len = this.list.length; i < len; i++ ) {\n\t\taction = this.list[ i ];\n\t\taction.toggle( action.hasMode( mode ) );\n\t}\n\n\tthis.organized = false;\n\tthis.changing = false;\n\tthis.emit( 'change' );\n\n\treturn this;\n};\n\n/**\n * Set the abilities of the specified actions.\n *\n * Action widgets that are configured with the specified actions will be enabled\n * or disabled based on the boolean values specified in the `actions`\n * parameter.\n *\n * @param {Object.Popup contents.
Popup contents.
Popup contents.
' ),\n\t * padded: true\n\t * }\n\t * } );\n\t * ...\n\t * };\n\t *\n\t * @property {jQuery}\n\t */\n\tthis.$overlay = $( 'A simple dialog window. Press \\'Esc\\' to close.
' );\n * this.$body.append( this.content.$element );\n * };\n * MyDialog.prototype.getBodyHeight = function () {\n * return this.content.$element.outerHeight( true );\n * };\n * var myDialog = new MyDialog( {\n * size: 'medium'\n * } );\n * // Create and append a window manager, which opens and closes the window.\n * var windowManager = new OO.ui.WindowManager();\n * $( 'body' ).append( windowManager.$element );\n * windowManager.addWindows( [ myDialog ] );\n * // Open the window!\n * windowManager.openWindow( myDialog );\n *\n * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Dialogs\n *\n * @abstract\n * @class\n * @extends OO.ui.Window\n * @mixins OO.ui.mixin.PendingElement\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.Dialog = function OoUiDialog( config ) {\n\t// Parent constructor\n\tOO.ui.Dialog.parent.call( this, config );\n\n\t// Mixin constructors\n\tOO.ui.mixin.PendingElement.call( this );\n\n\t// Properties\n\tthis.actions = new OO.ui.ActionSet();\n\tthis.attachedActions = [];\n\tthis.currentAction = null;\n\tthis.onDialogKeyDownHandler = this.onDialogKeyDown.bind( this );\n\n\t// Events\n\tthis.actions.connect( this, {\n\t\tclick: 'onActionClick',\n\t\tchange: 'onActionsChange'\n\t} );\n\n\t// Initialization\n\tthis.$element\n\t\t.addClass( 'oo-ui-dialog' )\n\t\t.attr( 'role', 'dialog' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.Dialog, OO.ui.Window );\nOO.mixinClass( OO.ui.Dialog, OO.ui.mixin.PendingElement );\n\n/* Static Properties */\n\n/**\n * Symbolic name of dialog.\n *\n * The dialog class must have a symbolic name in order to be registered with OO.Factory.\n * Please see the [OOjs UI documentation on MediaWiki] [3] for more information.\n *\n * [3]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Window_managers\n *\n * @abstract\n * @static\n * @inheritable\n * @property {string}\n */\nOO.ui.Dialog.static.name = '';\n\n/**\n * The dialog title.\n *\n * The title can be specified as a plaintext string, a {@link OO.ui.mixin.LabelElement Label} node, or a function\n * that will produce a Label node or string. The title can also be specified with data passed to the\n * constructor (see #getSetupProcess). In this case, the static value will be overridden.\n *\n * @abstract\n * @static\n * @inheritable\n * @property {jQuery|string|Function}\n */\nOO.ui.Dialog.static.title = '';\n\n/**\n * An array of configured {@link OO.ui.ActionWidget action widgets}.\n *\n * Actions can also be specified with data passed to the constructor (see #getSetupProcess). In this case, the static\n * value will be overridden.\n *\n * [2]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Process_Dialogs#Action_sets\n *\n * @static\n * @inheritable\n * @property {Object[]}\n */\nOO.ui.Dialog.static.actions = [];\n\n/**\n * Close the dialog when the 'Esc' key is pressed.\n *\n * @static\n * @abstract\n * @inheritable\n * @property {boolean}\n */\nOO.ui.Dialog.static.escapable = true;\n\n/* Methods */\n\n/**\n * Handle frame document key down events.\n *\n * @private\n * @param {jQuery.Event} e Key down event\n */\nOO.ui.Dialog.prototype.onDialogKeyDown = function ( e ) {\n\tvar actions;\n\tif ( e.which === OO.ui.Keys.ESCAPE && this.constructor.static.escapable ) {\n\t\tthis.executeAction( '' );\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t} else if ( e.which === OO.ui.Keys.ENTER && ( e.ctrlKey || e.metaKey ) ) {\n\t\tactions = this.actions.get( { flags: 'primary', visible: true, disabled: false } );\n\t\tif ( actions.length > 0 ) {\n\t\t\tthis.executeAction( actions[ 0 ].getAction() );\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n};\n\n/**\n * Handle action click events.\n *\n * @private\n * @param {OO.ui.ActionWidget} action Action that was clicked\n */\nOO.ui.Dialog.prototype.onActionClick = function ( action ) {\n\tif ( !this.isPending() ) {\n\t\tthis.executeAction( action.getAction() );\n\t}\n};\n\n/**\n * Handle actions change event.\n *\n * @private\n */\nOO.ui.Dialog.prototype.onActionsChange = function () {\n\tthis.detachActions();\n\tif ( !this.isClosing() ) {\n\t\tthis.attachActions();\n\t}\n};\n\n/**\n * Get the set of actions used by the dialog.\n *\n * @return {OO.ui.ActionSet}\n */\nOO.ui.Dialog.prototype.getActions = function () {\n\treturn this.actions;\n};\n\n/**\n * Get a process for taking action.\n *\n * When you override this method, you can create a new OO.ui.Process and return it, or add additional\n * accept steps to the process the parent method provides using the {@link OO.ui.Process#first 'first'}\n * and {@link OO.ui.Process#next 'next'} methods of OO.ui.Process.\n *\n * @param {string} [action] Symbolic name of action\n * @return {OO.ui.Process} Action process\n */\nOO.ui.Dialog.prototype.getActionProcess = function ( action ) {\n\treturn new OO.ui.Process()\n\t\t.next( function () {\n\t\t\tif ( !action ) {\n\t\t\t\t// An empty action always closes the dialog without data, which should always be\n\t\t\t\t// safe and make no changes\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n *\n * @param {Object} [data] Dialog opening data\n * @param {jQuery|string|Function|null} [data.title] Dialog title, omit to use\n * the {@link #static-title static title}\n * @param {Object[]} [data.actions] List of configuration options for each\n * {@link OO.ui.ActionWidget action widget}, omit to use {@link #static-actions static actions}.\n */\nOO.ui.Dialog.prototype.getSetupProcess = function ( data ) {\n\tdata = data || {};\n\n\t// Parent method\n\treturn OO.ui.Dialog.parent.prototype.getSetupProcess.call( this, data )\n\t\t.next( function () {\n\t\t\tvar config = this.constructor.static,\n\t\t\t\tactions = data.actions !== undefined ? data.actions : config.actions,\n\t\t\t\ttitle = data.title !== undefined ? data.title : config.title;\n\n\t\t\tthis.title.setLabel( title ).setTitle( title );\n\t\t\tthis.actions.add( this.getActionWidgets( actions ) );\n\n\t\t\tthis.$element.on( 'keydown', this.onDialogKeyDownHandler );\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.Dialog.prototype.getTeardownProcess = function ( data ) {\n\t// Parent method\n\treturn OO.ui.Dialog.parent.prototype.getTeardownProcess.call( this, data )\n\t\t.first( function () {\n\t\t\tthis.$element.off( 'keydown', this.onDialogKeyDownHandler );\n\n\t\t\tthis.actions.clear();\n\t\t\tthis.currentAction = null;\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.Dialog.prototype.initialize = function () {\n\t// Parent method\n\tOO.ui.Dialog.parent.prototype.initialize.call( this );\n\n\t// Properties\n\tthis.title = new OO.ui.LabelWidget();\n\n\t// Initialization\n\tthis.$content.addClass( 'oo-ui-dialog-content' );\n\tthis.$element.attr( 'aria-labelledby', this.title.getElementId() );\n\tthis.setPendingElement( this.$head );\n};\n\n/**\n * Get action widgets from a list of configs\n *\n * @param {Object[]} actions Action widget configs\n * @return {OO.ui.ActionWidget[]} Action widgets\n */\nOO.ui.Dialog.prototype.getActionWidgets = function ( actions ) {\n\tvar i, len, widgets = [];\n\tfor ( i = 0, len = actions.length; i < len; i++ ) {\n\t\twidgets.push(\n\t\t\tnew OO.ui.ActionWidget( actions[ i ] )\n\t\t);\n\t}\n\treturn widgets;\n};\n\n/**\n * Attach action actions.\n *\n * @protected\n */\nOO.ui.Dialog.prototype.attachActions = function () {\n\t// Remember the list of potentially attached actions\n\tthis.attachedActions = this.actions.get();\n};\n\n/**\n * Detach action actions.\n *\n * @protected\n * @chainable\n */\nOO.ui.Dialog.prototype.detachActions = function () {\n\tvar i, len;\n\n\t// Detach all actions that may have been previously attached\n\tfor ( i = 0, len = this.attachedActions.length; i < len; i++ ) {\n\t\tthis.attachedActions[ i ].$element.detach();\n\t}\n\tthis.attachedActions = [];\n};\n\n/**\n * Execute an action.\n *\n * @param {string} action Symbolic name of action to execute\n * @return {jQuery.Promise} Promise resolved when action completes, rejected if it fails\n */\nOO.ui.Dialog.prototype.executeAction = function ( action ) {\n\tthis.pushPending();\n\tthis.currentAction = action;\n\treturn this.getActionProcess( action ).execute()\n\t\t.always( this.popPending.bind( this ) );\n};\n\n/**\n * MessageDialogs display a confirmation or alert message. By default, the rendered dialog box\n * consists of a header that contains the dialog title, a body with the message, and a footer that\n * contains any {@link OO.ui.ActionWidget action widgets}. The MessageDialog class is the only type\n * of {@link OO.ui.Dialog dialog} that is usually instantiated directly.\n *\n * There are two basic types of message dialogs, confirmation and alert:\n *\n * - **confirmation**: the dialog title describes what a progressive action will do and the message provides\n * more details about the consequences.\n * - **alert**: the dialog title describes which event occurred and the message provides more information\n * about why the event occurred.\n *\n * The MessageDialog class specifies two actions: ‘accept’, the primary\n * action (e.g., ‘ok’) and ‘reject,’ the safe action (e.g., ‘cancel’). Both will close the window,\n * passing along the selected action.\n *\n * For more information and examples, please see the [OOjs UI documentation on MediaWiki][1].\n *\n * @example\n * // Example: Creating and opening a message dialog window.\n * var messageDialog = new OO.ui.MessageDialog();\n *\n * // Create and append a window manager.\n * var windowManager = new OO.ui.WindowManager();\n * $( 'body' ).append( windowManager.$element );\n * windowManager.addWindows( [ messageDialog ] );\n * // Open the window.\n * windowManager.openWindow( messageDialog, {\n * title: 'Basic message dialog',\n * message: 'This is the message'\n * } );\n *\n * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Message_Dialogs\n *\n * @class\n * @extends OO.ui.Dialog\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.MessageDialog = function OoUiMessageDialog( config ) {\n\t// Parent constructor\n\tOO.ui.MessageDialog.parent.call( this, config );\n\n\t// Properties\n\tthis.verticalActionLayout = null;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-messageDialog' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.MessageDialog, OO.ui.Dialog );\n\n/* Static Properties */\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MessageDialog.static.name = 'message';\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MessageDialog.static.size = 'small';\n\n/**\n * Dialog title.\n *\n * The title of a confirmation dialog describes what a progressive action will do. The\n * title of an alert dialog describes which event occurred.\n *\n * @static\n * @inheritable\n * @property {jQuery|string|Function|null}\n */\nOO.ui.MessageDialog.static.title = null;\n\n/**\n * The message displayed in the dialog body.\n *\n * A confirmation message describes the consequences of a progressive action. An alert\n * message describes why an event occurred.\n *\n * @static\n * @inheritable\n * @property {jQuery|string|Function|null}\n */\nOO.ui.MessageDialog.static.message = null;\n\n/**\n * @static\n * @inheritdoc\n */\nOO.ui.MessageDialog.static.actions = [\n\t// Note that OO.ui.alert() and OO.ui.confirm() rely on these.\n\t{ action: 'accept', label: OO.ui.deferMsg( 'ooui-dialog-message-accept' ), flags: 'primary' },\n\t{ action: 'reject', label: OO.ui.deferMsg( 'ooui-dialog-message-reject' ), flags: 'safe' }\n];\n\n/* Methods */\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.setManager = function ( manager ) {\n\tOO.ui.MessageDialog.parent.prototype.setManager.call( this, manager );\n\n\t// Events\n\tthis.manager.connect( this, {\n\t\tresize: 'onResize'\n\t} );\n\n\treturn this;\n};\n\n/**\n * Handle window resized events.\n *\n * @private\n */\nOO.ui.MessageDialog.prototype.onResize = function () {\n\tvar dialog = this;\n\tdialog.fitActions();\n\t// Wait for CSS transition to finish and do it again :(\n\tsetTimeout( function () {\n\t\tdialog.fitActions();\n\t}, 300 );\n};\n\n/**\n * Toggle action layout between vertical and horizontal.\n *\n * @private\n * @param {boolean} [value] Layout actions vertically, omit to toggle\n * @chainable\n */\nOO.ui.MessageDialog.prototype.toggleVerticalActionLayout = function ( value ) {\n\tvalue = value === undefined ? !this.verticalActionLayout : !!value;\n\n\tif ( value !== this.verticalActionLayout ) {\n\t\tthis.verticalActionLayout = value;\n\t\tthis.$actions\n\t\t\t.toggleClass( 'oo-ui-messageDialog-actions-vertical', value )\n\t\t\t.toggleClass( 'oo-ui-messageDialog-actions-horizontal', !value );\n\t}\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getActionProcess = function ( action ) {\n\tif ( action ) {\n\t\treturn new OO.ui.Process( function () {\n\t\t\tthis.close( { action: action } );\n\t\t}, this );\n\t}\n\treturn OO.ui.MessageDialog.parent.prototype.getActionProcess.call( this, action );\n};\n\n/**\n * @inheritdoc\n *\n * @param {Object} [data] Dialog opening data\n * @param {jQuery|string|Function|null} [data.title] Description of the action being confirmed\n * @param {jQuery|string|Function|null} [data.message] Description of the action's consequence\n * @param {string} [data.size] Symbolic name of the dialog size, see OO.ui.Window\n * @param {Object[]} [data.actions] List of OO.ui.ActionOptionWidget configuration options for each\n * action item\n */\nOO.ui.MessageDialog.prototype.getSetupProcess = function ( data ) {\n\tdata = data || {};\n\n\t// Parent method\n\treturn OO.ui.MessageDialog.parent.prototype.getSetupProcess.call( this, data )\n\t\t.next( function () {\n\t\t\tthis.title.setLabel(\n\t\t\t\tdata.title !== undefined ? data.title : this.constructor.static.title\n\t\t\t);\n\t\t\tthis.message.setLabel(\n\t\t\t\tdata.message !== undefined ? data.message : this.constructor.static.message\n\t\t\t);\n\t\t\tthis.size = data.size !== undefined ? data.size : this.constructor.static.size;\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getReadyProcess = function ( data ) {\n\tdata = data || {};\n\n\t// Parent method\n\treturn OO.ui.MessageDialog.parent.prototype.getReadyProcess.call( this, data )\n\t\t.next( function () {\n\t\t\t// Focus the primary action button\n\t\t\tvar actions = this.actions.get();\n\t\t\tactions = actions.filter( function ( action ) {\n\t\t\t\treturn action.getFlags().indexOf( 'primary' ) > -1;\n\t\t\t} );\n\t\t\tif ( actions.length > 0 ) {\n\t\t\t\tactions[ 0 ].$button.focus();\n\t\t\t}\n\t\t}, this );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.getBodyHeight = function () {\n\tvar bodyHeight, oldOverflow,\n\t\t$scrollable = this.container.$element;\n\n\toldOverflow = $scrollable[ 0 ].style.overflow;\n\t$scrollable[ 0 ].style.overflow = 'hidden';\n\n\tOO.ui.Element.static.reconsiderScrollbars( $scrollable[ 0 ] );\n\n\tbodyHeight = this.text.$element.outerHeight( true );\n\t$scrollable[ 0 ].style.overflow = oldOverflow;\n\n\treturn bodyHeight;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.setDimensions = function ( dim ) {\n\tvar $scrollable = this.container.$element;\n\tOO.ui.MessageDialog.parent.prototype.setDimensions.call( this, dim );\n\n\t// Twiddle the overflow property, otherwise an unnecessary scrollbar will be produced.\n\t// Need to do it after transition completes (250ms), add 50ms just in case.\n\tsetTimeout( function () {\n\t\tvar oldOverflow = $scrollable[ 0 ].style.overflow,\n\t\t\tactiveElement = document.activeElement;\n\n\t\t$scrollable[ 0 ].style.overflow = 'hidden';\n\n\t\tOO.ui.Element.static.reconsiderScrollbars( $scrollable[ 0 ] );\n\n\t\t// Check reconsiderScrollbars didn't destroy our focus, as we\n\t\t// are doing this after the ready process.\n\t\tif ( activeElement && activeElement !== document.activeElement && activeElement.focus ) {\n\t\t\tactiveElement.focus();\n\t\t}\n\n\t\t$scrollable[ 0 ].style.overflow = oldOverflow;\n\t}, 300 );\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.initialize = function () {\n\t// Parent method\n\tOO.ui.MessageDialog.parent.prototype.initialize.call( this );\n\n\t// Properties\n\tthis.$actions = $( 'This is a process dialog window. The header contains the title and two buttons: \\'Cancel\\' (a safe action) on the left and \\'Done\\' (a primary action) on the right.
' );\n * this.$body.append( this.content.$element );\n * };\n * MyProcessDialog.prototype.getActionProcess = function ( action ) {\n * var dialog = this;\n * if ( action ) {\n * return new OO.ui.Process( function () {\n * dialog.close( { action: action } );\n * } );\n * }\n * return MyProcessDialog.parent.prototype.getActionProcess.call( this, action );\n * };\n *\n * var windowManager = new OO.ui.WindowManager();\n * $( 'body' ).append( windowManager.$element );\n *\n * var dialog = new MyProcessDialog();\n * windowManager.addWindows( [ dialog ] );\n * windowManager.openWindow( dialog );\n *\n * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Process_Dialogs\n *\n * @abstract\n * @class\n * @extends OO.ui.Dialog\n *\n * @constructor\n * @param {Object} [config] Configuration options\n */\nOO.ui.ProcessDialog = function OoUiProcessDialog( config ) {\n\t// Parent constructor\n\tOO.ui.ProcessDialog.parent.call( this, config );\n\n\t// Properties\n\tthis.fitOnOpen = false;\n\n\t// Initialization\n\tthis.$element.addClass( 'oo-ui-processDialog' );\n};\n\n/* Setup */\n\nOO.inheritClass( OO.ui.ProcessDialog, OO.ui.Dialog );\n\n/* Methods */\n\n/**\n * Handle dismiss button click events.\n *\n * Hides errors.\n *\n * @private\n */\nOO.ui.ProcessDialog.prototype.onDismissErrorButtonClick = function () {\n\tthis.hideErrors();\n};\n\n/**\n * Handle retry button click events.\n *\n * Hides errors and then tries again.\n *\n * @private\n */\nOO.ui.ProcessDialog.prototype.onRetryButtonClick = function () {\n\tthis.hideErrors();\n\tthis.executeAction( this.currentAction );\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ProcessDialog.prototype.initialize = function () {\n\t// Parent method\n\tOO.ui.ProcessDialog.parent.prototype.initialize.call( this );\n\n\t// Properties\n\tthis.$navigation = $( '