{"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","WindowInstance","deferreds","opening","opened","closing","closed","isOpening","state","isOpened","isClosing","isClosed","WindowManager","factory","modal","windows","compatOpened","preparingToOpen","preparingToClose","currentWindow","globalEvents","$returnFocusTo","$ariaHidden","onWindowResizeTimeout","onWindowResizeHandler","onWindowResize","bind","afterWindowResizeHandler","afterWindowResize","toggleClass","Element","sizes","small","medium","large","larger","full","defaultSize","clearTimeout","updateWindowSize","win","lifecycle","hasWindow","name","getSetupDelay","getReadyDelay","getHoldDelay","getTeardownDelay","getWindow","Window","lookup","create","addWindows","getCurrentWindow","openWindow","data","compatOpening","error","manager","method","warnDeprecation","arguments","err","when","done","toggleGlobalEvents","toggleAriaIsolation","document","activeElement","setup","notify","ready","closeWindow","compatClosing","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","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","clearFlags","setFlags","after","scrollTop","getWindowManager","windowManager","alert","options","confirm","prompt","instance","textInput","TextInputWidget","textField","FieldLayout","align","getValue"],"mappings":"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","file":"oojs-ui-windows.min.js","sourcesContent":["/*!\n * OOjs UI v0.22.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-08-01T20:24:38Z\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 ].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 = $( '