{"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","propagateResize","isElementAttached","emit","setIcon","IconElement","apply","arguments","setLabel","LabelElement","setFlags","FlaggedElement","clearFlags","toggle","ActionSet","EventEmitter","list","categories","actions","flags","categorized","special","others","organized","changing","changed","static","specialFlags","onActionChange","isSpecial","flag","get","filters","i","len","category","index","match","matches","organize","Array","isArray","length","push","undefined","visible","isVisible","disabled","isDisabled","splice","lastIndexOf","getSpecial","getOthers","setMode","setAbilities","item","setDisabled","forEach","filter","callback","add","connect","click","resize","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","setTitle","getActionWidgets","titleId","generateElementId","LabelWidget","id","setPendingElement","widgets","pushPending","popPending","MessageDialog","verticalActionLayout","verbose","label","deferMsg","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","safeWidth","primaryWidth","biggerWidth","labelWidth","navigationWidth","leftWidth","rightWidth","Math","max","paddingLeft","paddingRight","$item","items","abilities","$errorItems","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.19.4\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-02-28T23:19: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/* Events */\n\n/**\n * A resize event is emitted when the size of the widget changes.\n *\n * @event resize\n */\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/**\n * Emit a resize event if the size has changed.\n *\n * @private\n * @chainable\n */\nOO.ui.ActionWidget.prototype.propagateResize = function () {\n\tvar width, height;\n\n\tif ( this.isElementAttached() ) {\n\t\twidth = this.$element.width();\n\t\theight = this.$element.height();\n\n\t\tif ( width !== this.width || height !== this.height ) {\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.emit( 'resize' );\n\t\t}\n\t}\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ActionWidget.prototype.setIcon = function () {\n\t// Mixin method\n\tOO.ui.mixin.IconElement.prototype.setIcon.apply( this, arguments );\n\tthis.propagateResize();\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ActionWidget.prototype.setLabel = function () {\n\t// Mixin method\n\tOO.ui.mixin.LabelElement.prototype.setLabel.apply( this, arguments );\n\tthis.propagateResize();\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ActionWidget.prototype.setFlags = function () {\n\t// Mixin method\n\tOO.ui.mixin.FlaggedElement.prototype.setFlags.apply( this, arguments );\n\tthis.propagateResize();\n\n\treturn this;\n};\n\n/**\n * @inheritdoc\n */\nOO.ui.ActionWidget.prototype.clearFlags = function () {\n\t// Mixin method\n\tOO.ui.mixin.FlaggedElement.prototype.clearFlags.apply( this, arguments );\n\tthis.propagateResize();\n\n\treturn this;\n};\n\n/**\n * Toggle the visibility of the action button.\n *\n * @param {boolean} [show] Show button, omit to toggle visibility\n * @chainable\n */\nOO.ui.ActionWidget.prototype.toggle = function () {\n\t// Parent method\n\tOO.ui.ActionWidget.parent.prototype.toggle.apply( this, arguments );\n\tthis.propagateResize();\n\n\treturn this;\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 resize\n *\n * A 'resize' event is emitted when an action widget is resized.\n *\n * @param {OO.ui.ActionWidget} action Action that was resized\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.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\tvar titleId;\n\n\t// Parent method\n\tOO.ui.Dialog.parent.prototype.initialize.call( this );\n\n\ttitleId = OO.ui.generateElementId();\n\n\t// Properties\n\tthis.title = new OO.ui.LabelWidget( {\n\t\tid: titleId\n\t} );\n\n\t// Initialization\n\tthis.$content.addClass( 'oo-ui-dialog-content' );\n\tthis.$element.attr( 'aria-labelledby', titleId );\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 * @static\n * @deprecated since v0.18.4 as default; TODO: Remove\n */\nOO.ui.MessageDialog.static.verbose = true;\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 {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\t// @deprecated since v0.18.4 as default; TODO: Remove and make default instead.\n\t\t\tthis.message.$element.toggleClass(\n\t\t\t\t'oo-ui-messageDialog-message-verbose',\n\t\t\t\tdata.verbose !== undefined ? data.verbose : this.constructor.static.verbose\n\t\t\t);\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 = $( '