{"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","$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","setup","notify","ready","closeWindow","always","hold","teardown","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","document","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","styleObj","style","transition","OTransition","MsTransition","MozTransition","WebkitTransition","getContentHeight","bodyHeight","bodyStyleObj","frameStyleObj","oldHeight","oldPosition","position","getBodyHeight","outerHeight","innerHeight","$head","$foot","scrollHeight","getDir","getSetupProcess","getReadyProcess","getHoldProcess","getTeardownProcess","initialize","setSize","updateSize","dim","oldWidth","minWidth","maxWidth","minHeight","maxHeight","$document","onFocusTrapFocused","event","is","findFocusable","focus","open","close","focusTrapHandler","$focus","find","getDocument","activeElement","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","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.16.2\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-03-08T21:46:49Z\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/**\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\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\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.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 = $( '