From: James D. Forrester Date: Tue, 24 May 2016 22:53:46 +0000 (-0700) Subject: Update OOjs UI to v0.17.3 X-Git-Tag: 1.31.0-rc.0~6834^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=71889d72c92d8ffaf5507e25cb3873eb8b46d54e Update OOjs UI to v0.17.3 Release notes: https://phabricator.wikimedia.org/diffusion/GOJU/browse/master/History.md;v0.17.3 Change-Id: I3fe38754c18a83554593479ea1b01f8a60144435 --- diff --git a/composer.json b/composer.json index ef85ec4652..5cc4a6457c 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "ext-xml": "*", "liuggio/statsd-php-client": "1.0.18", "mediawiki/at-ease": "1.1.0", - "oojs/oojs-ui": "0.17.2", + "oojs/oojs-ui": "0.17.3", "oyejorge/less.php": "1.7.0.10", "php": ">=5.5.9", "psr/log": "1.0.0", diff --git a/resources/lib/oojs-ui/i18n/eu.json b/resources/lib/oojs-ui/i18n/eu.json index e507325174..033c1b0a75 100644 --- a/resources/lib/oojs-ui/i18n/eu.json +++ b/resources/lib/oojs-ui/i18n/eu.json @@ -22,5 +22,6 @@ "ooui-dialog-process-continue": "Jarraitu", "ooui-selectfile-button-select": "Fitxategi bat aukeratu", "ooui-selectfile-not-supported": "Fitxategi aukeraketa ez da onartzen", - "ooui-selectfile-placeholder": "Ez da fitxategirik hautatu" + "ooui-selectfile-placeholder": "Ez da fitxategirik hautatu", + "ooui-selectfile-dragdrop-placeholder": "Fitxategia hemen utzi" } diff --git a/resources/lib/oojs-ui/i18n/gom-latn.json b/resources/lib/oojs-ui/i18n/gom-latn.json new file mode 100644 index 0000000000..afd471002d --- /dev/null +++ b/resources/lib/oojs-ui/i18n/gom-latn.json @@ -0,0 +1,14 @@ +{ + "@metadata": { + "authors": [ + "The Discoverer" + ] + }, + "ooui-toolbar-more": "Anik", + "ooui-toolgroup-expand": "Anik", + "ooui-dialog-message-reject": "Rodd'dd kor", + "ooui-dialog-process-retry": "Porot proyotn kor", + "ooui-selectfile-button-select": "Ek fayl nivodd", + "ooui-selectfile-placeholder": "Khuimchech fayl nivddunk nam", + "ooui-selectfile-dragdrop-placeholder": "Fayl hanga udoi" +} diff --git a/resources/lib/oojs-ui/i18n/gor.json b/resources/lib/oojs-ui/i18n/gor.json new file mode 100644 index 0000000000..ca0f1b42f5 --- /dev/null +++ b/resources/lib/oojs-ui/i18n/gor.json @@ -0,0 +1,23 @@ +{ + "@metadata": { + "authors": [ + "Marwan Mohamad" + ] + }, + "ooui-outline-control-move-down": "Heyiya botu ode tibawa", + "ooui-outline-control-move-up": "Heyiya botu ode yitaato", + "ooui-outline-control-remove": "Yinggila botu", + "ooui-toolbar-more": "Pe'eentapo", + "ooui-toolgroup-expand": "Pe'eentapo", + "ooui-toolgroup-collapse": "ngoolo botu", + "ooui-dialog-message-accept": "Jo", + "ooui-dialog-message-reject": "Bataliya", + "ooui-dialog-process-error": "Woluwo u yilotalawa", + "ooui-dialog-process-dismiss": "He'uti", + "ooui-dialog-process-retry": "Yimontali pooli", + "ooui-dialog-process-continue": "Turusi", + "ooui-selectfile-button-select": "Tulawota berkas tuwawu", + "ooui-selectfile-not-supported": "Berkas tilulawoto ja motuhatawa", + "ooui-selectfile-placeholder": "Diya'a berkas u letulawoto", + "ooui-selectfile-dragdrop-placeholder": "Dutuwa berkas teeya" +} diff --git a/resources/lib/oojs-ui/i18n/hr.json b/resources/lib/oojs-ui/i18n/hr.json index 36cc8eb5ff..b07594ca43 100644 --- a/resources/lib/oojs-ui/i18n/hr.json +++ b/resources/lib/oojs-ui/i18n/hr.json @@ -19,5 +19,6 @@ "ooui-dialog-process-dismiss": "Zatvori", "ooui-dialog-process-retry": "Pokušajte ponovo", "ooui-selectfile-button-select": "Odaberi datoteku", - "ooui-selectfile-placeholder": "Datoteka nije označena" + "ooui-selectfile-placeholder": "Datoteka nije označena", + "ooui-selectfile-dragdrop-placeholder": "Povucite datoteku ovdje" } diff --git a/resources/lib/oojs-ui/i18n/lv.json b/resources/lib/oojs-ui/i18n/lv.json index 9ff787ac2b..74658ce13c 100644 --- a/resources/lib/oojs-ui/i18n/lv.json +++ b/resources/lib/oojs-ui/i18n/lv.json @@ -10,12 +10,18 @@ }, "ooui-outline-control-move-down": "Pārvietot vienumu uz leju", "ooui-outline-control-move-up": "Pārvietot vienumu uz augšu", + "ooui-outline-control-remove": "Noņemt vienumu", "ooui-toolbar-more": "Vairāk", "ooui-toolgroup-expand": "Vairāk", "ooui-toolgroup-collapse": "Mazāk", "ooui-dialog-message-accept": "Labi", "ooui-dialog-message-reject": "Atcelt", "ooui-dialog-process-error": "Kaut kas nogāja greizi", + "ooui-dialog-process-dismiss": "Paslēpt", "ooui-dialog-process-retry": "Mēģināt vēlreiz", - "ooui-dialog-process-continue": "Turpināt" + "ooui-dialog-process-continue": "Turpināt", + "ooui-selectfile-button-select": "Izvēlies failu", + "ooui-selectfile-not-supported": "Failu izvēle nav atbalstīta", + "ooui-selectfile-placeholder": "Nav izvēlēts neviens fails", + "ooui-selectfile-dragdrop-placeholder": "Nomet failu šeit" } diff --git a/resources/lib/oojs-ui/oojs-ui-apex.js b/resources/lib/oojs-ui/oojs-ui-apex.js index 9a8b058dfe..637f4c9275 100644 --- a/resources/lib/oojs-ui/oojs-ui-apex.js +++ b/resources/lib/oojs-ui/oojs-ui-apex.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:27Z + * Date: 2016-05-24T22:46:32Z */ ( function ( OO ) { diff --git a/resources/lib/oojs-ui/oojs-ui-core-apex.css b/resources/lib/oojs-ui/oojs-ui-core-apex.css index 9ec7278847..0b9b2b9c6f 100644 --- a/resources/lib/oojs-ui/oojs-ui-core-apex.css +++ b/resources/lib/oojs-ui/oojs-ui-core-apex.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:31Z + * Date: 2016-05-24T22:46:36Z */ .oo-ui-element-hidden { display: none !important; @@ -44,7 +44,6 @@ vertical-align: top; text-align: center; } -.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button { cursor: default; @@ -130,7 +129,7 @@ .oo-ui-buttonElement-framed.oo-ui-buttonElement-active > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button { box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07); - color: black; + color: #000000; border-color: #c9c9c9; background-color: #eeeeee; background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0, #dddddd), color-stop(100%, #ffffff)); @@ -383,7 +382,7 @@ position: relative; margin: 0; padding: 0; - border: none; + border: 0; } .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon { display: block; @@ -475,7 +474,7 @@ position: relative; display: block; padding: 0.25em 0.5em; - border: none; + border: 0; } .oo-ui-optionWidget.oo-ui-widget-enabled { cursor: pointer; @@ -850,9 +849,9 @@ font-size: inherit; font-family: inherit; background-color: #ffffff; - color: black; + color: #000000; border: 1px solid #cccccc; - box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #dddddd; + box-shadow: 0 0 0 #ffffff, inset 0 0.1em 0.2em #dddddd; border-radius: 0.25em; -webkit-transition: border-color 250ms ease, box-shadow 250ms ease; -moz-transition: border-color 250ms ease, box-shadow 250ms ease; @@ -866,7 +865,7 @@ .oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus { outline: none; border-color: #a7dcff; - box-shadow: 0 0 0.3em #a7dcff, 0 0 0 white; + box-shadow: 0 0 0.3em #a7dcff, 0 0 0 #ffffff; } .oo-ui-textInputWidget.oo-ui-widget-enabled input[readonly], .oo-ui-textInputWidget.oo-ui-widget-enabled textarea[readonly] { @@ -1003,23 +1002,19 @@ border-color: rgba(0, 0, 0, 0.2); } .oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator { + top: 0; right: 0; + margin: 0.775em; } .oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon { + top: 0; left: 0.25em; + margin: 0.3em; } .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label { line-height: 2.5em; margin: 0 0.5em; } -.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator { - top: 0; - margin: 0.775em; -} -.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon { - top: 0; - margin: 0.3em; -} .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle { color: #cccccc; text-shadow: 0 1px 1px #ffffff; diff --git a/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css index ba293e4399..46e3f01125 100644 --- a/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css +++ b/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:31Z + * Date: 2016-05-24T22:46:36Z */ .oo-ui-element-hidden { display: none !important; @@ -44,7 +44,6 @@ vertical-align: top; text-align: center; } -.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button { cursor: default; @@ -1273,22 +1272,18 @@ border-radius: 2px; } .oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator { + top: 0; right: 0; + margin: 0.775em; } .oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon { + top: 0; left: 0.25em; + margin: 0.3em; } .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label { margin: 0 1em; } -.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator { - top: 0; - margin: 0.775em; -} -.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon { - top: 0; - margin: 0.3em; -} .oo-ui-dropdownWidget:hover .oo-ui-dropdownWidget-handle { border-color: #aaaaaa; } diff --git a/resources/lib/oojs-ui/oojs-ui-core.js b/resources/lib/oojs-ui/oojs-ui-core.js index cbc02eb44d..efed6b2a64 100644 --- a/resources/lib/oojs-ui/oojs-ui-core.js +++ b/resources/lib/oojs-ui/oojs-ui-core.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:27Z + * Date: 2016-05-24T22:46:32Z */ ( function ( OO ) { @@ -4797,8 +4797,10 @@ OO.ui.mixin.ItemWidget.prototype.setElementGroup = function ( group ) { * * @class * @extends OO.ui.Widget + * @mixins OO.ui.mixin.ItemWidget * @mixins OO.ui.mixin.LabelElement * @mixins OO.ui.mixin.FlaggedElement + * @mixins OO.ui.mixin.AccessKeyedElement * * @constructor * @param {Object} [config] Configuration options @@ -4814,6 +4816,7 @@ OO.ui.OptionWidget = function OoUiOptionWidget( config ) { OO.ui.mixin.ItemWidget.call( this ); OO.ui.mixin.LabelElement.call( this, config ); OO.ui.mixin.FlaggedElement.call( this, config ); + OO.ui.mixin.AccessKeyedElement.call( this, config ); // Properties this.selected = false; @@ -4823,6 +4826,8 @@ OO.ui.OptionWidget = function OoUiOptionWidget( config ) { // Initialization this.$element .data( 'oo-ui-optionWidget', this ) + // Allow programmatic focussing (and by accesskey), but not tabbing + .attr( 'tabindex', '-1' ) .attr( 'role', 'option' ) .attr( 'aria-selected', 'false' ) .addClass( 'oo-ui-optionWidget' ) @@ -4835,6 +4840,7 @@ OO.inheritClass( OO.ui.OptionWidget, OO.ui.Widget ); OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.ItemWidget ); OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.LabelElement ); OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.FlaggedElement ); +OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.AccessKeyedElement ); /* Static Properties */ @@ -5035,7 +5041,7 @@ OO.ui.SelectWidget = function OoUiSelectWidget( config ) { toggle: 'onToggle' } ); this.$element.on( { - focus: this.onFocus.bind( this ), + focusin: this.onFocus.bind( this ), mousedown: this.onMouseDown.bind( this ), mouseover: this.onMouseOver.bind( this ), mouseleave: this.onMouseLeave.bind( this ) @@ -5122,10 +5128,18 @@ OO.ui.SelectWidget.static.passAllFilter = function () { * @private * @param {jQuery.Event} event */ -OO.ui.SelectWidget.prototype.onFocus = function () { - // The styles for focus state depend on one of the items being selected. - if ( !this.getSelectedItem() ) { - this.selectItem( this.getFirstSelectableItem() ); +OO.ui.SelectWidget.prototype.onFocus = function ( event ) { + if ( event.target === this.$element[ 0 ] ) { + // This widget was focussed, e.g. by the user tabbing to it. + // The styles for focus state depend on one of the items being selected. + if ( !this.getSelectedItem() ) { + this.selectItem( this.getFirstSelectableItem() ); + } + } else { + // One of the options got focussed (and the event bubbled up here). + // They can't be tabbed to, but they can be activated using accesskeys. + this.selectItem( this.getTargetItem( event ) ); + this.$element.focus(); } }; @@ -6002,7 +6016,7 @@ OO.ui.MenuSectionOptionWidget.static.highlightable = false; * the text the user types. This config is used by {@link OO.ui.ComboBoxInputWidget ComboBoxInputWidget} * and {@link OO.ui.mixin.LookupElement LookupElement} * @cfg {jQuery} [$input] Text input used to implement option highlighting for menu items that match - * the text the user types. This config is used by {@link OO.ui.CapsuleMultiSelectWidget CapsuleMultiSelectWidget} + * the text the user types. This config is used by {@link OO.ui.CapsuleMultiselectWidget CapsuleMultiselectWidget} * @cfg {OO.ui.Widget} [widget] Widget associated with the menu's active state. If the user clicks the mouse * anywhere on the page outside of this widget, the menu is hidden. For example, if there is a button * that toggles the menu's visibility on click, the menu will be hidden then re-shown when the user clicks @@ -6463,9 +6477,6 @@ OO.ui.RadioOptionWidget = function OoUiRadioOptionWidget( config ) { // Parent constructor OO.ui.RadioOptionWidget.parent.call( this, config ); - // Events - this.radio.$input.on( 'focus', this.onInputFocus.bind( this ) ); - // Initialization // Remove implicit role, we're handling it ourselves this.radio.$input.attr( 'role', 'presentation' ); @@ -6493,15 +6504,6 @@ OO.ui.RadioOptionWidget.static.tagName = 'label'; /* Methods */ -/** - * @param {jQuery.Event} e Focus event - * @private - */ -OO.ui.RadioOptionWidget.prototype.onInputFocus = function () { - this.radio.$input.blur(); - this.$element.parent().focus(); -}; - /** * @inheritdoc */ @@ -8346,16 +8348,15 @@ OO.ui.TextInputWidget.prototype.getInputElement = function ( config ) { */ OO.ui.TextInputWidget.prototype.getSaneType = function ( config ) { var allowedTypes = [ - 'text', - 'password', - 'search', - 'email', - 'url', - 'date', - 'number' - ], - type = allowedTypes.indexOf( config.type ) !== -1 ? config.type : 'text'; - return config.multiline ? 'multiline' : type; + 'text', + 'password', + 'search', + 'email', + 'url', + 'date', + 'number' + ]; + return allowedTypes.indexOf( config.type ) !== -1 ? config.type : 'text'; }; /** diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki.js b/resources/lib/oojs-ui/oojs-ui-mediawiki.js index 3a99fba057..581c512832 100644 --- a/resources/lib/oojs-ui/oojs-ui-mediawiki.js +++ b/resources/lib/oojs-ui/oojs-ui-mediawiki.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:27Z + * Date: 2016-05-24T22:46:32Z */ ( function ( OO ) { diff --git a/resources/lib/oojs-ui/oojs-ui-toolbars-apex.css b/resources/lib/oojs-ui/oojs-ui-toolbars-apex.css index d757813d4f..338ed31e30 100644 --- a/resources/lib/oojs-ui/oojs-ui-toolbars-apex.css +++ b/resources/lib/oojs-ui/oojs-ui-toolbars-apex.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:31Z + * Date: 2016-05-24T22:46:36Z */ .oo-ui-popupTool .oo-ui-popupWidget-popup, .oo-ui-popupTool .oo-ui-popupWidget-anchor { @@ -284,7 +284,7 @@ top: 2.5em; margin: 0 -1px; border: 1px solid #cccccc; - background-color: white; + background-color: #ffffff; box-shadow: 0 0.3125em 1.25em rgba(0, 0, 0, 0.25); } .oo-ui-popupToolGroup .oo-ui-tool-link { @@ -481,7 +481,7 @@ -ms-filter: "progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffffff', endColorstr='#fff1f7fb' )"; } .oo-ui-toolbar-bar .oo-ui-toolbar-bar { - border: none; + border: 0; background: none; } .oo-ui-toolbar-actions > .oo-ui-buttonElement-framed, diff --git a/resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css index 82335a475a..c54e8332c4 100644 --- a/resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css +++ b/resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:31Z + * Date: 2016-05-24T22:46:36Z */ .oo-ui-popupTool .oo-ui-popupWidget-popup, .oo-ui-popupTool .oo-ui-popupWidget-anchor { @@ -22,7 +22,7 @@ margin: 0; } .oo-ui-toolGroupTool > .oo-ui-toolGroup { - border-right: none; + border-right: 0; } .oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle { height: 2.5em; @@ -51,7 +51,7 @@ margin-left: 0; } .oo-ui-toolGroup .oo-ui-toolGroup .oo-ui-widget-enabled { - border-right: none !important; + border-right: 0 !important; } .oo-ui-barToolGroup > .oo-ui-iconElement-icon, .oo-ui-barToolGroup > .oo-ui-labelElement-label { diff --git a/resources/lib/oojs-ui/oojs-ui-toolbars.js b/resources/lib/oojs-ui/oojs-ui-toolbars.js index d9764487c8..ea919df8dd 100644 --- a/resources/lib/oojs-ui/oojs-ui-toolbars.js +++ b/resources/lib/oojs-ui/oojs-ui-toolbars.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:27Z + * Date: 2016-05-24T22:46:32Z */ ( function ( OO ) { diff --git a/resources/lib/oojs-ui/oojs-ui-widgets-apex.css b/resources/lib/oojs-ui/oojs-ui-widgets-apex.css index 7a45a25887..e268f7e911 100644 --- a/resources/lib/oojs-ui/oojs-ui-widgets-apex.css +++ b/resources/lib/oojs-ui/oojs-ui-widgets-apex.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:31Z + * Date: 2016-05-24T22:46:36Z */ .oo-ui-draggableElement-handle, .oo-ui-draggableElement-handle.oo-ui-widget { @@ -231,7 +231,7 @@ height: 2em; width: 4em; border-radius: 1em; - box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #dddddd; + box-shadow: 0 0 0 #ffffff, inset 0 0.1em 0.2em #dddddd; border: 1px solid #cccccc; margin-right: 0.5em; background-color: #eeeeee; @@ -395,7 +395,6 @@ } .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button > [type="file"] { position: absolute; - margin: 0; top: 0; bottom: 0; left: 0; @@ -489,9 +488,6 @@ position: absolute; right: 0.5em; } -.oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-dropLabel { - display: block; -} .oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-thumbnail, .oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-info { display: none; @@ -512,6 +508,9 @@ .oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-clearButton { display: none; } +.oo-ui-selectFileWidget-empty.oo-ui-widget-enabled .oo-ui-selectFileWidget-dropLabel { + display: block; +} .oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget, .oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-dropTarget, .oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget .oo-ui-buttonElement-button, @@ -522,19 +521,26 @@ margin-right: 0; } .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button { - margin-left: 0.5em; + border-radius: 0 0.25em 0.25em 0; } .oo-ui-selectFileWidget-info { height: 2.4em; background-color: #ffffff; border: 1px solid rgba(0, 0, 0, 0.1); - border-radius: 0.25em; + border-radius: 0.25em 0 0 0.25em; + border-width: 1px 0 1px 1px; } .oo-ui-selectFileWidget-info > .oo-ui-indicatorElement-indicator { + top: 0; right: 0; + height: 2.3em; + margin-right: 0.775em; } .oo-ui-selectFileWidget-info > .oo-ui-iconElement-icon { + top: 0; left: 0; + height: 2.3em; + margin-left: 0.3em; } .oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-label { line-height: 2.3em; @@ -559,16 +565,6 @@ .oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-clearButton .oo-ui-buttonElement-button > .oo-ui-iconElement-icon { height: 2.3em; } -.oo-ui-selectFileWidget-info > .oo-ui-indicatorElement-indicator { - top: 0; - height: 2.3em; - margin-right: 0.775em; -} -.oo-ui-selectFileWidget-info > .oo-ui-iconElement-icon { - top: 0; - height: 2.3em; - margin-left: 0.3em; -} .oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-info { color: #cccccc; text-shadow: 0 1px 1px #ffffff; @@ -622,6 +618,9 @@ vertical-align: middle; border-radius: 0.25em; } +.oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button { + border-radius: 0.25em; +} .oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-dropTarget { border-style: dashed; } @@ -728,7 +727,7 @@ padding: 0.5em 1em; margin: 0.5em 0 0 0.75em; border: 1px solid transparent; - border-bottom: none; + border-bottom: 0; border-top-left-radius: 0.5em; border-top-right-radius: 0.5em; } @@ -755,31 +754,31 @@ background-color: #ffffff; border-color: #dddddd; } -.oo-ui-capsuleMultiSelectWidget { +.oo-ui-capsuleMultiselectWidget { display: inline-block; position: relative; width: 100%; max-width: 50em; } -.oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget-handle { width: 100%; display: block; position: relative; } -.oo-ui-capsuleMultiSelectWidget-content { +.oo-ui-capsuleMultiselectWidget-content { position: relative; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiSelectWidget-content > input { +.oo-ui-capsuleMultiselectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiselectWidget-content > input { display: none; } -.oo-ui-capsuleMultiSelectWidget-group { +.oo-ui-capsuleMultiselectWidget-group { display: inline; } -.oo-ui-capsuleMultiSelectWidget > .oo-ui-menuSelectWidget { +.oo-ui-capsuleMultiselectWidget > .oo-ui-menuSelectWidget { z-index: 1; width: 100%; } -.oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget-handle { background-color: #ffffff; cursor: text; min-height: 2.4em; @@ -791,15 +790,15 @@ -moz-box-sizing: border-box; box-sizing: border-box; } -.oo-ui-capsuleMultiSelectWidget-handle:last-child { +.oo-ui-capsuleMultiselectWidget-handle:last-child { margin-right: 0; } -.oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-indicatorElement-indicator, -.oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-iconElement-icon { +.oo-ui-capsuleMultiselectWidget-handle > .oo-ui-indicatorElement-indicator, +.oo-ui-capsuleMultiselectWidget-handle > .oo-ui-iconElement-icon { position: absolute; } -.oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-capsuleMultiSelectWidget-content > input { - border: none; +.oo-ui-capsuleMultiselectWidget-handle > .oo-ui-capsuleMultiselectWidget-content > input { + border: 0; line-height: 1.675em; margin: 0; margin-left: 0.2em; @@ -807,40 +806,40 @@ font-size: inherit; font-family: inherit; background-color: transparent; - color: black; + color: #000000; vertical-align: middle; } -.oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-capsuleMultiSelectWidget-content > input:focus { +.oo-ui-capsuleMultiselectWidget-handle > .oo-ui-capsuleMultiselectWidget-content > input:focus { outline: none; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-indicatorElement .oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget.oo-ui-indicatorElement .oo-ui-capsuleMultiselectWidget-handle { padding-right: 2.4875em; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-indicatorElement .oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-indicatorElement-indicator { +.oo-ui-capsuleMultiselectWidget.oo-ui-indicatorElement .oo-ui-capsuleMultiselectWidget-handle > .oo-ui-indicatorElement-indicator { right: 0; top: 0; margin: 0.775em; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-iconElement .oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget.oo-ui-iconElement .oo-ui-capsuleMultiselectWidget-handle { padding-left: 2.475em; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-iconElement .oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-iconElement-icon { +.oo-ui-capsuleMultiselectWidget.oo-ui-iconElement .oo-ui-capsuleMultiselectWidget-handle > .oo-ui-iconElement-icon { left: 0; top: 0; margin: 0.3em; } -.oo-ui-capsuleMultiSelectWidget:hover .oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget:hover .oo-ui-capsuleMultiselectWidget-handle { border-color: rgba(0, 0, 0, 0.2); } -.oo-ui-capsuleMultiSelectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiselectWidget-handle { color: #cccccc; text-shadow: 0 1px 1px #ffffff; border-color: #dddddd; background-color: #f3f3f3; cursor: default; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-iconElement-icon, -.oo-ui-capsuleMultiSelectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-indicatorElement-indicator { +.oo-ui-capsuleMultiselectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiselectWidget-handle > .oo-ui-iconElement-icon, +.oo-ui-capsuleMultiselectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiselectWidget-handle > .oo-ui-indicatorElement-indicator { opacity: 0.2; } .oo-ui-capsuleItemWidget { diff --git a/resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css index a530235a0b..c21539ce49 100644 --- a/resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css +++ b/resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:31Z + * Date: 2016-05-24T22:46:36Z */ .oo-ui-draggableElement-handle, .oo-ui-draggableElement-handle.oo-ui-widget { @@ -423,7 +423,6 @@ } .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button > [type="file"] { position: absolute; - margin: 0; top: 0; bottom: 0; left: 0; @@ -517,9 +516,6 @@ position: absolute; right: 0.5em; } -.oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-dropLabel { - display: block; -} .oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-thumbnail, .oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-info { display: none; @@ -540,6 +536,9 @@ .oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-clearButton { display: none; } +.oo-ui-selectFileWidget-empty.oo-ui-widget-enabled .oo-ui-selectFileWidget-dropLabel { + display: block; +} .oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget, .oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-dropTarget, .oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget .oo-ui-buttonElement-button, @@ -550,13 +549,14 @@ margin-right: 0; } .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button { - margin-left: 0.5em; + border-radius: 0 2px 2px 0; } .oo-ui-selectFileWidget-info { height: 2.4em; background-color: #ffffff; border: 1px solid #cccccc; - border-radius: 2px; + border-radius: 2px 0 0 2px; + border-width: 1px 0 1px 1px; } .oo-ui-selectFileWidget-info > .oo-ui-iconElement-icon { left: 0; @@ -596,6 +596,7 @@ .oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-clearButton .oo-ui-buttonElement-button > .oo-ui-iconElement-icon { height: 2.3em; } +.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-info, .oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-info { background-color: #f3f3f3; color: #cccccc; @@ -603,7 +604,9 @@ border-color: #dddddd; cursor: default; } +.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-info > .oo-ui-iconElement-icon, .oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-info > .oo-ui-iconElement-icon, +.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-info > .oo-ui-indicatorElement-indicator, .oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-info > .oo-ui-indicatorElement-indicator { opacity: 0.2; } @@ -658,10 +661,16 @@ overflow: hidden; border-radius: 2px; } +.oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button { + border-radius: 2px; +} .oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-dropTarget { background-color: #eeeeee; border-style: dashed; } +.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropLabel { + display: none; +} .oo-ui-outlineOptionWidget { position: relative; cursor: pointer; @@ -764,7 +773,7 @@ padding: 0.35em 1em; margin: 0.5em 0 0 0.75em; border: 1px solid transparent; - border-bottom: none; + border-bottom: 0; border-top-left-radius: 2px; border-top-right-radius: 2px; color: #555555; @@ -788,31 +797,31 @@ background-color: #ffffff; color: #333333; } -.oo-ui-capsuleMultiSelectWidget { +.oo-ui-capsuleMultiselectWidget { display: inline-block; position: relative; width: 100%; max-width: 50em; } -.oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget-handle { width: 100%; display: block; position: relative; } -.oo-ui-capsuleMultiSelectWidget-content { +.oo-ui-capsuleMultiselectWidget-content { position: relative; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiSelectWidget-content > input { +.oo-ui-capsuleMultiselectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiselectWidget-content > input { display: none; } -.oo-ui-capsuleMultiSelectWidget-group { +.oo-ui-capsuleMultiselectWidget-group { display: inline; } -.oo-ui-capsuleMultiSelectWidget > .oo-ui-menuSelectWidget { +.oo-ui-capsuleMultiselectWidget > .oo-ui-menuSelectWidget { z-index: 1; width: 100%; } -.oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget-handle { background-color: #ffffff; cursor: text; min-height: 2.4em; @@ -824,14 +833,14 @@ -moz-box-sizing: border-box; box-sizing: border-box; } -.oo-ui-capsuleMultiSelectWidget-handle:last-child { +.oo-ui-capsuleMultiselectWidget-handle:last-child { margin-right: 0; } -.oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-indicatorElement-indicator, -.oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-iconElement-icon { +.oo-ui-capsuleMultiselectWidget-handle > .oo-ui-indicatorElement-indicator, +.oo-ui-capsuleMultiselectWidget-handle > .oo-ui-iconElement-icon { position: absolute; } -.oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-capsuleMultiSelectWidget-content > input { +.oo-ui-capsuleMultiselectWidget-handle > .oo-ui-capsuleMultiselectWidget-content > input { border: 0; line-height: 1.675em; margin: 0 0 0 0.2em; @@ -842,37 +851,37 @@ color: #000000; vertical-align: middle; } -.oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-capsuleMultiSelectWidget-content > input:focus { +.oo-ui-capsuleMultiselectWidget-handle > .oo-ui-capsuleMultiselectWidget-content > input:focus { outline: 0; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-indicatorElement .oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget.oo-ui-indicatorElement .oo-ui-capsuleMultiselectWidget-handle { padding-right: 2.4875em; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-indicatorElement .oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-indicatorElement-indicator { +.oo-ui-capsuleMultiselectWidget.oo-ui-indicatorElement .oo-ui-capsuleMultiselectWidget-handle > .oo-ui-indicatorElement-indicator { right: 0; top: 0; margin: 0.775em; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-iconElement .oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget.oo-ui-iconElement .oo-ui-capsuleMultiselectWidget-handle { padding-left: 2.475em; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-iconElement .oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-iconElement-icon { +.oo-ui-capsuleMultiselectWidget.oo-ui-iconElement .oo-ui-capsuleMultiselectWidget-handle > .oo-ui-iconElement-icon { left: 0; top: 0; margin: 0.3em; } -.oo-ui-capsuleMultiSelectWidget:hover .oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget:hover .oo-ui-capsuleMultiselectWidget-handle { border-color: #aaaaaa; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiSelectWidget-handle { +.oo-ui-capsuleMultiselectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiselectWidget-handle { color: #cccccc; text-shadow: 0 1px 1px #ffffff; border-color: #dddddd; background-color: #f3f3f3; cursor: default; } -.oo-ui-capsuleMultiSelectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-iconElement-icon, -.oo-ui-capsuleMultiSelectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-indicatorElement-indicator { +.oo-ui-capsuleMultiselectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiselectWidget-handle > .oo-ui-iconElement-icon, +.oo-ui-capsuleMultiselectWidget.oo-ui-widget-disabled .oo-ui-capsuleMultiselectWidget-handle > .oo-ui-indicatorElement-indicator { opacity: 0.2; } .oo-ui-capsuleItemWidget { diff --git a/resources/lib/oojs-ui/oojs-ui-widgets.js b/resources/lib/oojs-ui/oojs-ui-widgets.js index e3c2bd5f30..31c0a45731 100644 --- a/resources/lib/oojs-ui/oojs-ui-widgets.js +++ b/resources/lib/oojs-ui/oojs-ui-widgets.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:27Z + * Date: 2016-05-24T22:46:32Z */ ( function ( OO ) { @@ -3186,7 +3186,6 @@ OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.mixin.TabIndexedElement ); * @mixins OO.ui.mixin.ButtonElement * @mixins OO.ui.mixin.IconElement * @mixins OO.ui.mixin.IndicatorElement - * @mixins OO.ui.mixin.TabIndexedElement * @mixins OO.ui.mixin.TitledElement * * @constructor @@ -3204,10 +3203,6 @@ OO.ui.ButtonOptionWidget = function OoUiButtonOptionWidget( config ) { OO.ui.mixin.IconElement.call( this, config ); OO.ui.mixin.IndicatorElement.call( this, config ); OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) ); - OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { - $tabIndexed: this.$button, - tabIndex: -1 - } ) ); // Initialization this.$element.addClass( 'oo-ui-buttonOptionWidget' ); @@ -3222,7 +3217,6 @@ OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.ButtonElement ); OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.IconElement ); OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.IndicatorElement ); OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.TitledElement ); -OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.TabIndexedElement ); /* Static Properties */ @@ -3376,8 +3370,8 @@ OO.inheritClass( OO.ui.TabSelectWidget, OO.ui.SelectWidget ); OO.mixinClass( OO.ui.TabSelectWidget, OO.ui.mixin.TabIndexedElement ); /** - * CapsuleItemWidgets are used within a {@link OO.ui.CapsuleMultiSelectWidget - * CapsuleMultiSelectWidget} to display the selected items. + * CapsuleItemWidgets are used within a {@link OO.ui.CapsuleMultiselectWidget + * CapsuleMultiselectWidget} to display the selected items. * * @class * @extends OO.ui.Widget @@ -3484,15 +3478,15 @@ OO.ui.CapsuleItemWidget.prototype.focus = function () { }; /** - * CapsuleMultiSelectWidgets are something like a {@link OO.ui.ComboBoxInputWidget combo box widget} + * CapsuleMultiselectWidgets are something like a {@link OO.ui.ComboBoxInputWidget combo box widget} * that allows for selecting multiple values. * * For more information about menus and options, please see the [OOjs UI documentation on MediaWiki][1]. * * @example - * // Example: A CapsuleMultiSelectWidget. - * var capsule = new OO.ui.CapsuleMultiSelectWidget( { - * label: 'CapsuleMultiSelectWidget', + * // Example: A CapsuleMultiselectWidget. + * var capsule = new OO.ui.CapsuleMultiselectWidget( { + * label: 'CapsuleMultiselectWidget', * selected: [ 'Option 1', 'Option 3' ], * menu: { * items: [ @@ -3525,8 +3519,11 @@ OO.ui.CapsuleItemWidget.prototype.focus = function () { * * @class * @extends OO.ui.Widget - * @mixins OO.ui.mixin.TabIndexedElement * @mixins OO.ui.mixin.GroupElement + * @mixins OO.ui.mixin.PopupElement + * @mixins OO.ui.mixin.TabIndexedElement + * @mixins OO.ui.mixin.IndicatorElement + * @mixins OO.ui.mixin.IconElement * @uses OO.ui.CapsuleItemWidget * @uses OO.ui.FloatingMenuSelectWidget * @@ -3545,11 +3542,11 @@ OO.ui.CapsuleItemWidget.prototype.focus = function () { * the containing `
` and has a larger area. By default, the menu uses * relative positioning. */ -OO.ui.CapsuleMultiSelectWidget = function OoUiCapsuleMultiSelectWidget( config ) { +OO.ui.CapsuleMultiselectWidget = function OoUiCapsuleMultiselectWidget( config ) { var $tabFocus; // Parent constructor - OO.ui.CapsuleMultiSelectWidget.parent.call( this, config ); + OO.ui.CapsuleMultiselectWidget.parent.call( this, config ); // Configuration initialization config = $.extend( { @@ -3639,12 +3636,12 @@ OO.ui.CapsuleMultiSelectWidget = function OoUiCapsuleMultiSelectWidget( config ) if ( config.data ) { this.setItemsFromData( config.data ); } - this.$content.addClass( 'oo-ui-capsuleMultiSelectWidget-content' ) + this.$content.addClass( 'oo-ui-capsuleMultiselectWidget-content' ) .append( this.$group ); - this.$group.addClass( 'oo-ui-capsuleMultiSelectWidget-group' ); - this.$handle.addClass( 'oo-ui-capsuleMultiSelectWidget-handle' ) + this.$group.addClass( 'oo-ui-capsuleMultiselectWidget-group' ); + this.$handle.addClass( 'oo-ui-capsuleMultiselectWidget-handle' ) .append( this.$indicator, this.$icon, this.$content ); - this.$element.addClass( 'oo-ui-capsuleMultiSelectWidget' ) + this.$element.addClass( 'oo-ui-capsuleMultiselectWidget' ) .append( this.$handle ); if ( this.popup ) { this.$content.append( $tabFocus ); @@ -3658,12 +3655,12 @@ OO.ui.CapsuleMultiSelectWidget = function OoUiCapsuleMultiSelectWidget( config ) /* Setup */ -OO.inheritClass( OO.ui.CapsuleMultiSelectWidget, OO.ui.Widget ); -OO.mixinClass( OO.ui.CapsuleMultiSelectWidget, OO.ui.mixin.GroupElement ); -OO.mixinClass( OO.ui.CapsuleMultiSelectWidget, OO.ui.mixin.PopupElement ); -OO.mixinClass( OO.ui.CapsuleMultiSelectWidget, OO.ui.mixin.TabIndexedElement ); -OO.mixinClass( OO.ui.CapsuleMultiSelectWidget, OO.ui.mixin.IndicatorElement ); -OO.mixinClass( OO.ui.CapsuleMultiSelectWidget, OO.ui.mixin.IconElement ); +OO.inheritClass( OO.ui.CapsuleMultiselectWidget, OO.ui.Widget ); +OO.mixinClass( OO.ui.CapsuleMultiselectWidget, OO.ui.mixin.GroupElement ); +OO.mixinClass( OO.ui.CapsuleMultiselectWidget, OO.ui.mixin.PopupElement ); +OO.mixinClass( OO.ui.CapsuleMultiselectWidget, OO.ui.mixin.TabIndexedElement ); +OO.mixinClass( OO.ui.CapsuleMultiselectWidget, OO.ui.mixin.IndicatorElement ); +OO.mixinClass( OO.ui.CapsuleMultiselectWidget, OO.ui.mixin.IconElement ); /* Events */ @@ -3692,7 +3689,7 @@ OO.mixinClass( OO.ui.CapsuleMultiSelectWidget, OO.ui.mixin.IconElement ); * @param {string} label The label text. * @return {OO.ui.CapsuleItemWidget} */ -OO.ui.CapsuleMultiSelectWidget.prototype.createItemWidget = function ( data, label ) { +OO.ui.CapsuleMultiselectWidget.prototype.createItemWidget = function ( data, label ) { return new OO.ui.CapsuleItemWidget( { data: data, label: label } ); }; @@ -3701,8 +3698,10 @@ OO.ui.CapsuleMultiSelectWidget.prototype.createItemWidget = function ( data, lab * * @return {Mixed[]} */ -OO.ui.CapsuleMultiSelectWidget.prototype.getItemsData = function () { - return $.map( this.getItems(), function ( e ) { return e.data; } ); +OO.ui.CapsuleMultiselectWidget.prototype.getItemsData = function () { + return this.getItems().map( function ( item ) { + return item.data; + } ); }; /** @@ -3710,9 +3709,9 @@ OO.ui.CapsuleMultiSelectWidget.prototype.getItemsData = function () { * * @chainable * @param {Mixed[]} datas - * @return {OO.ui.CapsuleMultiSelectWidget} + * @return {OO.ui.CapsuleMultiselectWidget} */ -OO.ui.CapsuleMultiSelectWidget.prototype.setItemsFromData = function ( datas ) { +OO.ui.CapsuleMultiselectWidget.prototype.setItemsFromData = function ( datas ) { var widget = this, menu = this.menu, items = this.getItems(); @@ -3755,9 +3754,9 @@ OO.ui.CapsuleMultiSelectWidget.prototype.setItemsFromData = function ( datas ) { * * @chainable * @param {Mixed[]} datas - * @return {OO.ui.CapsuleMultiSelectWidget} + * @return {OO.ui.CapsuleMultiselectWidget} */ -OO.ui.CapsuleMultiSelectWidget.prototype.addItemsFromData = function ( datas ) { +OO.ui.CapsuleMultiselectWidget.prototype.addItemsFromData = function ( datas ) { var widget = this, menu = this.menu, items = []; @@ -3788,7 +3787,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.addItemsFromData = function ( datas ) { * @param {string} label * @return {boolean} Whether the item was added or not */ -OO.ui.CapsuleMultiSelectWidget.prototype.addItemFromLabel = function ( label ) { +OO.ui.CapsuleMultiselectWidget.prototype.addItemFromLabel = function ( label ) { var item = this.menu.getItemFromLabel( label, true ); if ( item ) { this.addItemsFromData( [ item.data ] ); @@ -3805,9 +3804,9 @@ OO.ui.CapsuleMultiSelectWidget.prototype.addItemFromLabel = function ( label ) { * * @chainable * @param {Mixed[]} datas - * @return {OO.ui.CapsuleMultiSelectWidget} + * @return {OO.ui.CapsuleMultiselectWidget} */ -OO.ui.CapsuleMultiSelectWidget.prototype.removeItemsFromData = function ( datas ) { +OO.ui.CapsuleMultiselectWidget.prototype.removeItemsFromData = function ( datas ) { var widget = this, items = []; @@ -3828,7 +3827,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.removeItemsFromData = function ( datas /** * @inheritdoc */ -OO.ui.CapsuleMultiSelectWidget.prototype.addItems = function ( items ) { +OO.ui.CapsuleMultiselectWidget.prototype.addItems = function ( items ) { var same, i, l, oldItems = this.items.slice(); @@ -3855,7 +3854,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.addItems = function ( items ) { * * @param {Object} item */ -OO.ui.CapsuleMultiSelectWidget.prototype.editItem = function ( item ) { +OO.ui.CapsuleMultiselectWidget.prototype.editItem = function ( item ) { this.$input.val( item.label ); this.updateInputSize(); this.focus(); @@ -3865,7 +3864,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.editItem = function ( item ) { /** * @inheritdoc */ -OO.ui.CapsuleMultiSelectWidget.prototype.removeItems = function ( items ) { +OO.ui.CapsuleMultiselectWidget.prototype.removeItems = function ( items ) { var same, i, l, oldItems = this.items.slice(); @@ -3890,7 +3889,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.removeItems = function ( items ) { /** * @inheritdoc */ -OO.ui.CapsuleMultiSelectWidget.prototype.clearItems = function () { +OO.ui.CapsuleMultiselectWidget.prototype.clearItems = function () { if ( this.items.length ) { OO.ui.mixin.GroupElement.prototype.clearItems.call( this ); this.emit( 'change', this.getItemsData() ); @@ -3907,7 +3906,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.clearItems = function () { * @param {OO.ui.CapsuleItemWidget} [item] * @return {OO.ui.CapsuleItemWidget|jQuery|boolean} */ -OO.ui.CapsuleMultiSelectWidget.prototype.getNextItem = function ( item ) { +OO.ui.CapsuleMultiselectWidget.prototype.getNextItem = function ( item ) { var itemIndex; if ( item === undefined ) { @@ -3932,7 +3931,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.getNextItem = function ( item ) { * @param {OO.ui.CapsuleItemWidget} [item] * @return {OO.ui.CapsuleItemWidget|jQuery|boolean} */ -OO.ui.CapsuleMultiSelectWidget.prototype.getPreviousItem = function ( item ) { +OO.ui.CapsuleMultiselectWidget.prototype.getPreviousItem = function ( item ) { var itemIndex; if ( item === undefined ) { @@ -3954,7 +3953,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.getPreviousItem = function ( item ) { * * @return {OO.ui.MenuSelectWidget} Menu widget */ -OO.ui.CapsuleMultiSelectWidget.prototype.getMenu = function () { +OO.ui.CapsuleMultiselectWidget.prototype.getMenu = function () { return this.menu; }; @@ -3964,7 +3963,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.getMenu = function () { * @private * @param {jQuery.Event} event */ -OO.ui.CapsuleMultiSelectWidget.prototype.onInputFocus = function () { +OO.ui.CapsuleMultiselectWidget.prototype.onInputFocus = function () { if ( !this.isDisabled() ) { this.menu.toggle( true ); } @@ -3976,7 +3975,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.onInputFocus = function () { * @private * @param {jQuery.Event} event */ -OO.ui.CapsuleMultiSelectWidget.prototype.onInputBlur = function () { +OO.ui.CapsuleMultiselectWidget.prototype.onInputBlur = function () { this.addItemFromLabel( this.$input.val() ); this.clearInput(); }; @@ -3987,14 +3986,11 @@ OO.ui.CapsuleMultiSelectWidget.prototype.onInputBlur = function () { * @private * @param {jQuery.Event} event */ -OO.ui.CapsuleMultiSelectWidget.prototype.onFocusForPopup = function () { +OO.ui.CapsuleMultiselectWidget.prototype.onFocusForPopup = function () { if ( !this.isDisabled() ) { this.popup.setSize( this.$handle.width() ); this.popup.toggle( true ); - this.popup.$element.find( '*' ) - .filter( function () { return OO.ui.isFocusableElement( $( this ), true ); } ) - .first() - .focus(); + OO.ui.findFocusable( this.popup.$element ).focus(); } }; @@ -4004,7 +4000,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.onFocusForPopup = function () { * @private * @param {jQuery.Event} e Focus out event */ -OO.ui.CapsuleMultiSelectWidget.prototype.onPopupFocusOut = function () { +OO.ui.CapsuleMultiselectWidget.prototype.onPopupFocusOut = function () { var widget = this.popup; setTimeout( function () { @@ -4024,7 +4020,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.onPopupFocusOut = function () { * @private * @param {jQuery.Event} e Mouse down event */ -OO.ui.CapsuleMultiSelectWidget.prototype.onMouseDown = function ( e ) { +OO.ui.CapsuleMultiselectWidget.prototype.onMouseDown = function ( e ) { if ( e.which === OO.ui.MouseButtons.LEFT ) { this.focus(); return false; @@ -4039,7 +4035,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.onMouseDown = function ( e ) { * @private * @param {jQuery.Event} e Key press event */ -OO.ui.CapsuleMultiSelectWidget.prototype.onKeyPress = function ( e ) { +OO.ui.CapsuleMultiselectWidget.prototype.onKeyPress = function ( e ) { if ( !this.isDisabled() ) { if ( e.which === OO.ui.Keys.ESCAPE ) { this.clearInput(); @@ -4067,7 +4063,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.onKeyPress = function ( e ) { * @private * @param {jQuery.Event} e Key down event */ -OO.ui.CapsuleMultiSelectWidget.prototype.onKeyDown = function ( e ) { +OO.ui.CapsuleMultiselectWidget.prototype.onKeyDown = function ( e ) { if ( !this.isDisabled() && this.$input.val() === '' && @@ -4095,7 +4091,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.onKeyDown = function ( e ) { * @private * @param {jQuery.Event} e Event of some sort */ -OO.ui.CapsuleMultiSelectWidget.prototype.updateInputSize = function () { +OO.ui.CapsuleMultiselectWidget.prototype.updateInputSize = function () { var $lastItem, direction, contentWidth, currentWidth, bestWidth; if ( !this.isDisabled() ) { this.$input.css( 'width', '1em' ); @@ -4133,7 +4129,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.updateInputSize = function () { * * @private */ -OO.ui.CapsuleMultiSelectWidget.prototype.updateIfHeightChanged = function () { +OO.ui.CapsuleMultiselectWidget.prototype.updateIfHeightChanged = function () { var height = this.$element.height(); if ( height !== this.height ) { this.height = height; @@ -4148,7 +4144,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.updateIfHeightChanged = function () { * @private * @param {OO.ui.OptionWidget} item Chosen item */ -OO.ui.CapsuleMultiSelectWidget.prototype.onMenuChoose = function ( item ) { +OO.ui.CapsuleMultiselectWidget.prototype.onMenuChoose = function ( item ) { if ( item && item.isVisible() ) { this.addItemsFromData( [ item.getData() ] ); this.clearInput(); @@ -4160,9 +4156,9 @@ OO.ui.CapsuleMultiSelectWidget.prototype.onMenuChoose = function ( item ) { * * @private */ -OO.ui.CapsuleMultiSelectWidget.prototype.onMenuItemsChange = function () { +OO.ui.CapsuleMultiselectWidget.prototype.onMenuItemsChange = function () { this.setItemsFromData( this.getItemsData() ); - this.$element.toggleClass( 'oo-ui-capsuleMultiSelectWidget-empty', this.menu.isEmpty() ); + this.$element.toggleClass( 'oo-ui-capsuleMultiselectWidget-empty', this.menu.isEmpty() ); }; /** @@ -4170,7 +4166,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.onMenuItemsChange = function () { * * @private */ -OO.ui.CapsuleMultiSelectWidget.prototype.clearInput = function () { +OO.ui.CapsuleMultiselectWidget.prototype.clearInput = function () { if ( this.$input ) { this.$input.val( '' ); this.updateInputSize(); @@ -4186,11 +4182,11 @@ OO.ui.CapsuleMultiSelectWidget.prototype.clearInput = function () { /** * @inheritdoc */ -OO.ui.CapsuleMultiSelectWidget.prototype.setDisabled = function ( disabled ) { +OO.ui.CapsuleMultiselectWidget.prototype.setDisabled = function ( disabled ) { var i, len; // Parent method - OO.ui.CapsuleMultiSelectWidget.parent.prototype.setDisabled.call( this, disabled ); + OO.ui.CapsuleMultiselectWidget.parent.prototype.setDisabled.call( this, disabled ); if ( this.$input ) { this.$input.prop( 'disabled', this.isDisabled() ); @@ -4215,17 +4211,14 @@ OO.ui.CapsuleMultiSelectWidget.prototype.setDisabled = function ( disabled ) { * Focus the widget * * @chainable - * @return {OO.ui.CapsuleMultiSelectWidget} + * @return {OO.ui.CapsuleMultiselectWidget} */ -OO.ui.CapsuleMultiSelectWidget.prototype.focus = function () { +OO.ui.CapsuleMultiselectWidget.prototype.focus = function () { if ( !this.isDisabled() ) { if ( this.popup ) { this.popup.setSize( this.$handle.width() ); this.popup.toggle( true ); - this.popup.$element.find( '*' ) - .filter( function () { return OO.ui.isFocusableElement( $( this ), true ); } ) - .first() - .focus(); + OO.ui.findFocusable( this.popup.$element ).focus(); } else { this.updateInputSize(); this.menu.toggle( true ); @@ -4235,6 +4228,12 @@ OO.ui.CapsuleMultiSelectWidget.prototype.focus = function () { return this; }; +/** + * @class + * @deprecated since 0.17.3; use OO.ui.CapsuleMultiselectWidget instead + */ +OO.ui.CapsuleMultiSelectWidget = OO.ui.CapsuleMultiselectWidget; + /** * SelectFileWidgets allow for selecting files, using the HTML5 File API. These * widgets can be configured with {@link OO.ui.mixin.IconElement icons} and {@link diff --git a/resources/lib/oojs-ui/oojs-ui-windows-apex.css b/resources/lib/oojs-ui/oojs-ui-windows-apex.css index 6dfe142ab9..1c17426220 100644 --- a/resources/lib/oojs-ui/oojs-ui-windows-apex.css +++ b/resources/lib/oojs-ui/oojs-ui-windows-apex.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:31Z + * Date: 2016-05-24T22:46:36Z */ .oo-ui-actionWidget.oo-ui-pendingElement-pending { background-image: /* @embed */ url(themes/apex/images/textures/pending.gif); diff --git a/resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css index 9a544d6d95..9bc76d88eb 100644 --- a/resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css +++ b/resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:31Z + * Date: 2016-05-24T22:46:36Z */ .oo-ui-window { background: transparent; diff --git a/resources/lib/oojs-ui/oojs-ui-windows.js b/resources/lib/oojs-ui/oojs-ui-windows.js index 37b7d90d98..7c95f9211d 100644 --- a/resources/lib/oojs-ui/oojs-ui-windows.js +++ b/resources/lib/oojs-ui/oojs-ui-windows.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.17.2 + * OOjs UI v0.17.3 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2016 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2016-05-10T22:58:27Z + * Date: 2016-05-24T22:46:32Z */ ( function ( OO ) { diff --git a/resources/src/mediawiki.special/mediawiki.special.apisandbox.js b/resources/src/mediawiki.special/mediawiki.special.apisandbox.js index 3cfc52c51b..7aeafec53b 100644 --- a/resources/src/mediawiki.special/mediawiki.special.apisandbox.js +++ b/resources/src/mediawiki.special/mediawiki.special.apisandbox.js @@ -304,7 +304,7 @@ } } ); } else if ( Util.apiBool( pi.multi ) ) { - widget = new OO.ui.CapsuleMultiSelectWidget( { + widget = new OO.ui.CapsuleMultiselectWidget( { allowArbitrary: true } ); widget.paramInfo = pi; @@ -413,7 +413,7 @@ return a.data - b.data; } ); if ( Util.apiBool( pi.multi ) ) { - widget = new OO.ui.CapsuleMultiSelectWidget( { + widget = new OO.ui.CapsuleMultiselectWidget( { menu: { items: items } } ); widget.paramInfo = pi; @@ -436,7 +436,7 @@ return new OO.ui.MenuOptionWidget( { data: String( v ), label: String( v ) } ); } ); if ( Util.apiBool( pi.multi ) ) { - widget = new OO.ui.CapsuleMultiSelectWidget( { + widget = new OO.ui.CapsuleMultiselectWidget( { menu: { items: items } } ); widget.paramInfo = pi; @@ -480,7 +480,7 @@ throw new Error( 'Unknown multiMode "' + multiMode + '"' ); } - widget = new OO.ui.CapsuleMultiSelectWidget( { + widget = new OO.ui.CapsuleMultiselectWidget( { allowArbitrary: true, popup: { classes: [ 'mw-apisandbox-popup' ], @@ -1314,10 +1314,10 @@ } if ( Util.apiBool( pi.parameters[ i ].multi ) ) { tmp = []; - if ( flag && !( widget instanceof OO.ui.CapsuleMultiSelectWidget ) && + if ( flag && !( widget instanceof OO.ui.CapsuleMultiselectWidget ) && !( widget instanceof OptionalWidget && - widget.widget instanceof OO.ui.CapsuleMultiSelectWidget + widget.widget instanceof OO.ui.CapsuleMultiselectWidget ) ) { tmp.push( mw.message( 'api-help-param-multi-separate' ).parse() ); diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js b/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js index 2eb84e633a..0bdf02e877 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js @@ -125,7 +125,7 @@ .text( this.label ) .attr( 'target', '_blank' ) .on( 'click', function ( e ) { - // CapsuleMultiSelectWidget really wants to prevent you from clicking the link, don't let it + // CapsuleMultiselectWidget really wants to prevent you from clicking the link, don't let it e.stopPropagation(); } ); diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js index 5d7d115a3e..45f52b70e2 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js +++ b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js @@ -9,7 +9,7 @@ NS_CATEGORY = mw.config.get( 'wgNamespaceIds' ).category; /** - * Category selector widget. Displays an OO.ui.CapsuleMultiSelectWidget + * Category selector widget. Displays an OO.ui.CapsuleMultiselectWidget * and autocompletes with available categories. * * var selector = new mw.widgets.CategorySelector( { @@ -25,7 +25,7 @@ * * @class mw.widgets.CategorySelector * @uses mw.Api - * @extends OO.ui.CapsuleMultiSelectWidget + * @extends OO.ui.CapsuleMultiselectWidget * @mixins OO.ui.mixin.PendingElement * * @constructor @@ -67,7 +67,7 @@ /* Setup */ - OO.inheritClass( CategorySelector, OO.ui.CapsuleMultiSelectWidget ); + OO.inheritClass( CategorySelector, OO.ui.CapsuleMultiselectWidget ); OO.mixinClass( CategorySelector, OO.ui.mixin.PendingElement ); CSP = CategorySelector.prototype;