{"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","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","warnDeprecation","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","onActionResize","onActionClick","isPending","onActionsChange","detachActions","attachActions","getActions","getActionProcess","setTitle","getActionWidgets","titleId","generateElementId","LabelWidget","id","setPendingElement","widgets","pushPending","popPending","MessageDialog","verticalActionLayout","verbose","label","deferMsg","fitActions","onResize","dialog","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","fitLabel","$navigation","$location","$safeActions","$primaryActions","$otherActions","dismissButton","msg","retryButton","$errors","$errorsTitle","process","fail","errors","showErrors","safeWidth","primaryWidth","biggerWidth","labelWidth","navigationWidth","leftWidth","rightWidth","Math","max","paddingLeft","paddingRight","$item","items","abilities","$errorItems","after","scrollTop","getWindowManager","windowManager","messageDialog","alert","options","confirm"],"mappings":"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","file":"oojs-ui-windows.min.js","sourcesContent":["/*!\n * OOjs UI v0.18.0\n * https://www.mediawiki.org/wiki/OOjs_UI\n *\n * Copyright 2011–2016 OOjs UI Team and other contributors.\n * Released under the MIT license\n * http://oojs.mit-license.org\n *\n * Date: 2016-11-09T00:52:37Z\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 * // 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\tresize: 'onActionResize',\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 ) {\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 resized events.\n *\n * @private\n * @param {OO.ui.ActionWidget} action Action that was resized\n */\nOO.ui.Dialog.prototype.onActionResize = function () {\n\t// Override in subclass\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\nOO.ui.MessageDialog.static.name = 'message';\n\nOO.ui.MessageDialog.static.size = 'small';\n\nOO.ui.MessageDialog.static.verbose = false;\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// Note that OO.ui.alert() and OO.ui.confirm() rely on these.\nOO.ui.MessageDialog.static.actions = [\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 * @inheritdoc\n */\nOO.ui.MessageDialog.prototype.onActionResize = function ( action ) {\n\tthis.fitActions();\n\treturn OO.ui.MessageDialog.parent.prototype.onActionResize.call( this, action );\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 {boolean} [data.verbose] Message is verbose and should be styled as a long message\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.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$scrollable[ 0 ].style.overflow = 'hidden';\n\n\t\tOO.ui.Element.static.reconsiderScrollbars( $scrollable[ 0 ] );\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.onActionResize = function ( action ) {\n\tif ( this.actions.isSpecial( action ) ) {\n\t\tthis.fitLabel();\n\t}\n\treturn OO.ui.ProcessDialog.parent.prototype.onActionResize.call( this, action );\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 = $( '