From: James D. Forrester Date: Tue, 10 Nov 2015 23:44:04 +0000 (-0800) Subject: Update OOjs UI to v0.13.2 X-Git-Tag: 1.31.0-rc.0~9022^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/operations/?a=commitdiff_plain;h=e37fdd4ada4ef4cf496b822a37a6d79bacd3324e;p=lhc%2Fweb%2Fwiklou.git Update OOjs UI to v0.13.2 Release notes: https://git.wikimedia.org/blob/oojs%2Fui.git/v0.13.2/History.md Change-Id: I0626d91d4b93e1d680579f1e6a02555c6050127f --- diff --git a/composer.json b/composer.json index 1cdf8136ca..bf4d40267c 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "ext-iconv": "*", "liuggio/statsd-php-client": "1.0.16", "mediawiki/at-ease": "1.1.0", - "oojs/oojs-ui": "0.13.1", + "oojs/oojs-ui": "0.13.2", "oyejorge/less.php": "1.7.0.9", "php": ">=5.3.3", "psr/log": "1.0.0", diff --git a/resources/lib/oojs-ui/i18n/bs.json b/resources/lib/oojs-ui/i18n/bs.json index 162790e2e6..d41efdbf2d 100644 --- a/resources/lib/oojs-ui/i18n/bs.json +++ b/resources/lib/oojs-ui/i18n/bs.json @@ -18,5 +18,6 @@ "ooui-dialog-process-dismiss": "Odbaci", "ooui-dialog-process-retry": "Pokušajte ponovo", "ooui-dialog-process-continue": "Nastavi", + "ooui-selectfile-button-select": "Izaberi datoteku", "ooui-selectfile-placeholder": "Nijedna datoteka nije izabrana" } diff --git a/resources/lib/oojs-ui/i18n/cs.json b/resources/lib/oojs-ui/i18n/cs.json index fb93e3a36c..734b738de1 100644 --- a/resources/lib/oojs-ui/i18n/cs.json +++ b/resources/lib/oojs-ui/i18n/cs.json @@ -11,7 +11,8 @@ "Polda18", "Tchoř", "ශ්වෙත", - "Vojtěch Dostál" + "Vojtěch Dostál", + "Matěj Suchánek" ] }, "ooui-outline-control-move-down": "Přesunout položku dolů", @@ -28,5 +29,6 @@ "ooui-dialog-process-continue": "Pokračovat", "ooui-selectfile-button-select": "Vybrat soubor", "ooui-selectfile-not-supported": "Výběr souboru není podporován", - "ooui-selectfile-placeholder": "Nebyl vybrán žádný soubor" + "ooui-selectfile-placeholder": "Nebyl vybrán žádný soubor", + "ooui-selectfile-dragdrop-placeholder": "Umístěte soubor sem" } diff --git a/resources/lib/oojs-ui/i18n/wuu.json b/resources/lib/oojs-ui/i18n/wuu.json index 61e3d01e72..64816249d1 100644 --- a/resources/lib/oojs-ui/i18n/wuu.json +++ b/resources/lib/oojs-ui/i18n/wuu.json @@ -2,8 +2,9 @@ "@metadata": { "authors": [ "Malafaya", - "十弌" + "十弌", + "飞舞回堂前" ] }, - "ooui-toolbar-more": "還多" + "ooui-toolbar-more": "更多" } diff --git a/resources/lib/oojs-ui/oojs-ui-apex-noimages.css b/resources/lib/oojs-ui/oojs-ui-apex-noimages.css index 9abc847eba..15cd4bee1d 100644 --- a/resources/lib/oojs-ui/oojs-ui-apex-noimages.css +++ b/resources/lib/oojs-ui/oojs-ui-apex-noimages.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.13.1 + * OOjs UI v0.13.2 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-11-03T21:42:28Z + * Date: 2015-11-10T23:33:07Z */ @-webkit-keyframes oo-ui-progressBarWidget-slide { from { @@ -1489,6 +1489,7 @@ } .oo-ui-progressBarWidget { max-width: 50em; + background-color: #ffffff; border: 1px solid #cccccc; border-radius: 0.25em; overflow: hidden; @@ -1562,9 +1563,9 @@ overflow: hidden; } .oo-ui-popupWidget-popup { + background-color: #ffffff; border: 1px solid #cccccc; border-radius: 0.25em; - background-color: #ffffff; box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2); } .oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup { @@ -1658,7 +1659,7 @@ box-sizing: border-box; } .oo-ui-dropdownInputWidget select { - background: #ffffff; + background-color: #ffffff; height: 2.5em; padding: 0.5em; font-size: inherit; @@ -1837,7 +1838,7 @@ } .oo-ui-menuSelectWidget { position: absolute; - background: #ffffff; + background-color: #ffffff; margin-top: -1px; border: 1px solid #cccccc; border-radius: 0 0 0.25em 0.25em; @@ -1879,6 +1880,7 @@ position: relative; width: 100%; max-width: 50em; + background-color: #ffffff; margin-right: 0.5em; } .oo-ui-dropdownWidget-handle { @@ -2035,6 +2037,7 @@ } .oo-ui-selectFileWidget-info { height: 2.4em; + background-color: #ffffff; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 0.25em; } @@ -2117,10 +2120,10 @@ } .oo-ui-selectFileWidget-dropTarget { line-height: 3.5em; + background-color: #ffffff; border: 1px dashed #aaaaaa; padding: 0.5em 1em; margin-bottom: 0.5em; - background: #ffffff; text-align: center; vertical-align: middle; } @@ -2422,36 +2425,41 @@ .oo-ui-capsuleItemWidget.oo-ui-widget-disabled > .oo-ui-indicatorElement-indicator { opacity: 0.2; } -.oo-ui-comboBoxWidget { +.oo-ui-comboBoxInputWidget { display: inline-block; position: relative; width: 100%; max-width: 50em; margin-right: 0.5em; } -.oo-ui-comboBoxWidget > .oo-ui-menuSelectWidget { +.oo-ui-comboBoxInputWidget > .oo-ui-menuSelectWidget { z-index: 1; width: 100%; } -.oo-ui-comboBoxWidget > .oo-ui-textInputWidget.oo-ui-widget-enabled > .oo-ui-indicatorElement-indicator { +.oo-ui-comboBoxInputWidget.oo-ui-widget-enabled > .oo-ui-indicatorElement-indicator { cursor: pointer; } -.oo-ui-comboBoxWidget:last-child { - margin-right: 0; +.oo-ui-comboBoxInputWidget-php input::-webkit-calendar-picker-indicator { + opacity: 0 !important; + position: absolute; + right: 0; + top: 0; + height: 2.5em; + width: 2.5em; + padding: 0; } -.oo-ui-comboBoxWidget-handle { - border: 1px solid rgba(0, 0, 0, 0.1); - border-radius: 0.25em; +.oo-ui-comboBoxInputWidget-php > .oo-ui-indicatorElement-indicator { + pointer-events: none; } -.oo-ui-comboBoxWidget-handle:hover { - border-color: rgba(0, 0, 0, 0.2); +.oo-ui-comboBoxInputWidget:last-child { + margin-right: 0; } -.oo-ui-comboBoxWidget.oo-ui-widget-disabled .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator, -.oo-ui-comboBoxWidget-empty .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator { +.oo-ui-comboBoxInputWidget.oo-ui-widget-disabled .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator, +.oo-ui-comboBoxInputWidget-empty .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator { cursor: default; opacity: 0.2; } -.oo-ui-comboBoxWidget > .oo-ui-selectWidget { +.oo-ui-comboBoxInputWidget > .oo-ui-selectWidget { margin-top: -3px; } .oo-ui-searchWidget-query { diff --git a/resources/lib/oojs-ui/oojs-ui-apex.js b/resources/lib/oojs-ui/oojs-ui-apex.js index 00a09663ca..145bca3e80 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.13.1 + * OOjs UI v0.13.2 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-11-03T21:42:20Z + * Date: 2015-11-10T23:32:59Z */ /** * @class diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css index fdb06e55b2..f5b431cda0 100644 --- a/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css +++ b/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.13.1 + * OOjs UI v0.13.2 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-11-03T21:42:28Z + * Date: 2015-11-10T23:33:07Z */ @-webkit-keyframes oo-ui-progressBarWidget-slide { from { @@ -1550,6 +1550,7 @@ } .oo-ui-progressBarWidget { max-width: 50em; + background-color: #ffffff; border: 1px solid #cccccc; border-radius: 0.1em; overflow: hidden; @@ -1613,9 +1614,9 @@ overflow: hidden; } .oo-ui-popupWidget-popup { + background-color: #ffffff; border: 1px solid #aaaaaa; border-radius: 0.2em; - background-color: #ffffff; box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15); } .oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup { @@ -1778,7 +1779,7 @@ box-sizing: border-box; } .oo-ui-dropdownInputWidget select { - background: #ffffff; + background-color: #ffffff; height: 2.275em; font-size: inherit; font-family: inherit; @@ -2056,7 +2057,7 @@ } .oo-ui-menuSelectWidget { position: absolute; - background: #ffffff; + background-color: #ffffff; margin-top: -1px; border: 1px solid #aaaaaa; border-radius: 0 0 0.2em 0.2em; @@ -2106,7 +2107,7 @@ position: relative; width: 100%; max-width: 50em; - background: #ffffff; + background-color: #ffffff; margin-right: 0.5em; } .oo-ui-dropdownWidget-handle { @@ -2139,6 +2140,7 @@ .oo-ui-dropdownWidget-handle { padding: 0.5em 0; height: 2.275em; + line-height: 1.275; border: 1px solid #cccccc; border-radius: 0.1em; } @@ -2267,6 +2269,7 @@ } .oo-ui-selectFileWidget-info { height: 2.4em; + background-color: #ffffff; border: 1px solid #cccccc; border-radius: 0.1em; } @@ -2349,10 +2352,10 @@ } .oo-ui-selectFileWidget-dropTarget { line-height: 3.5em; + background-color: #ffffff; border: 1px dashed #cccccc; padding: 0.5em 1em; margin-bottom: 0.5em; - background: #ffffff; text-align: center; vertical-align: middle; } @@ -2644,25 +2647,37 @@ .oo-ui-capsuleItemWidget.oo-ui-widget-disabled > .oo-ui-indicatorElement-indicator { opacity: 0.2; } -.oo-ui-comboBoxWidget { +.oo-ui-comboBoxInputWidget { display: inline-block; position: relative; width: 100%; max-width: 50em; margin-right: 0.5em; } -.oo-ui-comboBoxWidget > .oo-ui-menuSelectWidget { +.oo-ui-comboBoxInputWidget > .oo-ui-menuSelectWidget { z-index: 1; width: 100%; } -.oo-ui-comboBoxWidget > .oo-ui-textInputWidget.oo-ui-widget-enabled > .oo-ui-indicatorElement-indicator { +.oo-ui-comboBoxInputWidget.oo-ui-widget-enabled > .oo-ui-indicatorElement-indicator { cursor: pointer; } -.oo-ui-comboBoxWidget:last-child { +.oo-ui-comboBoxInputWidget-php input::-webkit-calendar-picker-indicator { + opacity: 0 !important; + position: absolute; + right: 0; + top: 0; + height: 2.5em; + width: 2.5em; + padding: 0; +} +.oo-ui-comboBoxInputWidget-php > .oo-ui-indicatorElement-indicator { + pointer-events: none; +} +.oo-ui-comboBoxInputWidget:last-child { margin-right: 0; } -.oo-ui-comboBoxWidget .oo-ui-textInputWidget input, -.oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea { +.oo-ui-comboBoxInputWidget input, +.oo-ui-comboBoxInputWidget textarea { height: 2.35em; } .oo-ui-searchWidget-query { diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki.js b/resources/lib/oojs-ui/oojs-ui-mediawiki.js index d9a17a2249..757a9655fa 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.13.1 + * OOjs UI v0.13.2 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-11-03T21:42:20Z + * Date: 2015-11-10T23:32:59Z */ /** * @class diff --git a/resources/lib/oojs-ui/oojs-ui.js b/resources/lib/oojs-ui/oojs-ui.js index b4dc48c8e7..511ec94bff 100644 --- a/resources/lib/oojs-ui/oojs-ui.js +++ b/resources/lib/oojs-ui/oojs-ui.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.13.1 + * OOjs UI v0.13.2 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-11-03T21:42:20Z + * Date: 2015-11-10T23:32:59Z */ ( function ( OO ) { @@ -5908,10 +5908,12 @@ OO.ui.mixin.LabelElement.prototype.setLabelContent = function ( label ) { * @cfg {jQuery} [$container=this.$element] The container element. The lookup menu is rendered beneath the specified element. * @cfg {boolean} [allowSuggestionsWhenEmpty=false] Request and display a lookup menu when the text input is empty. * By default, the lookup menu is not generated and displayed until the user begins to type. + * @cfg {boolean} [highlightFirst=true] Whether the first lookup result should be highlighted (so, that the user can + * take it over into the input with simply pressing return) automatically or not. */ OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) { // Configuration initialization - config = config || {}; + config = $.extend( { highlightFirst: true }, config ); // Properties this.$overlay = config.$overlay || this.$element; @@ -5928,6 +5930,7 @@ OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) { this.lookupRequest = null; this.lookupsDisabled = false; this.lookupInputFocused = false; + this.lookupHighlightFirstItem = config.highlightFirst; // Events this.$input.on( { @@ -6115,13 +6118,13 @@ OO.ui.mixin.LookupElement.prototype.populateLookupMenu = function () { }; /** - * Highlight the first selectable item in the menu. + * Highlight the first selectable item in the menu, if configured. * * @private * @chainable */ OO.ui.mixin.LookupElement.prototype.initializeLookupMenuSelection = function () { - if ( !this.lookupMenu.getSelectedItem() ) { + if ( this.lookupHighlightFirstItem && !this.lookupMenu.getSelectedItem() ) { this.lookupMenu.highlightItem( this.lookupMenu.getFirstSelectableItem() ); } }; @@ -13223,7 +13226,7 @@ OO.ui.ToggleButtonWidget.prototype.setButtonElement = function ( $button ) { }; /** - * CapsuleMultiSelectWidgets are something like a {@link OO.ui.ComboBoxWidget 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]. @@ -16397,7 +16400,7 @@ OO.ui.TextInputWidget.prototype.restorePreInfuseState = function ( state ) { }; /** - * ComboBoxWidgets combine a {@link OO.ui.TextInputWidget text input} (where a value + * ComboBoxInputWidgets combine a {@link OO.ui.TextInputWidget text input} (where a value * can be entered manually) and a {@link OO.ui.MenuSelectWidget menu of options} (from which * a value can be chosen instead). Users can choose options from the combo box in one of two ways: * @@ -16406,13 +16409,15 @@ OO.ui.TextInputWidget.prototype.restorePreInfuseState = function ( state ) { * - by choosing a value from the menu. The value of the chosen option will then appear in the text * input field. * + * This widget can be used inside a HTML form, such as a OO.ui.FormLayout. + * * For more information about menus and options, please see the [OOjs UI documentation on MediaWiki][1]. * * @example - * // Example: A ComboBoxWidget. - * var comboBox = new OO.ui.ComboBoxWidget( { - * label: 'ComboBoxWidget', - * input: { value: 'Option One' }, + * // Example: A ComboBoxInputWidget. + * var comboBox = new OO.ui.ComboBoxInputWidget( { + * label: 'ComboBoxInputWidget', + * value: 'Option 1', * menu: { * items: [ * new OO.ui.MenuOptionWidget( { @@ -16443,60 +16448,47 @@ OO.ui.TextInputWidget.prototype.restorePreInfuseState = function ( state ) { * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options#Menu_selects_and_options * * @class - * @extends OO.ui.Widget - * @mixins OO.ui.mixin.TabIndexedElement + * @extends OO.ui.TextInputWidget * * @constructor * @param {Object} [config] Configuration options + * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }` * @cfg {Object} [menu] Configuration options to pass to the {@link OO.ui.FloatingMenuSelectWidget menu select widget}. - * @cfg {Object} [input] Configuration options to pass to the {@link OO.ui.TextInputWidget text input widget}. * @cfg {jQuery} [$overlay] Render the menu into a separate layer. This configuration is useful in cases where * the expanded menu is larger than its containing `
`. The specified overlay layer is usually on top of the * containing `
` and has a larger area. By default, the menu uses relative positioning. */ -OO.ui.ComboBoxWidget = function OoUiComboBoxWidget( config ) { +OO.ui.ComboBoxInputWidget = function OoUiComboBoxInputWidget( config ) { // Configuration initialization - config = config || {}; + config = $.extend( { + indicator: 'down' + }, config ); + // For backwards-compatibility with ComboBoxWidget config + $.extend( config, config.input ); // Parent constructor - OO.ui.ComboBoxWidget.parent.call( this, config ); - - // Properties (must be set before TabIndexedElement constructor call) - this.$indicator = this.$( '' ); - - // Mixin constructors - OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$indicator } ) ); + OO.ui.ComboBoxInputWidget.parent.call( this, config ); // Properties this.$overlay = config.$overlay || this.$element; - this.input = new OO.ui.TextInputWidget( $.extend( - { - indicator: 'down', - $indicator: this.$indicator, - disabled: this.isDisabled() - }, - config.input - ) ); - this.input.$input.eq( 0 ).attr( { - role: 'combobox', - 'aria-autocomplete': 'list' - } ); this.menu = new OO.ui.FloatingMenuSelectWidget( $.extend( { widget: this, - input: this.input, - $container: this.input.$element, + input: this, + $container: this.$element, disabled: this.isDisabled() }, config.menu ) ); + // For backwards-compatibility with ComboBoxWidget + this.input = this; // Events this.$indicator.on( { - click: this.onClick.bind( this ), - keypress: this.onKeyPress.bind( this ) + click: this.onIndicatorClick.bind( this ), + keypress: this.onIndicatorKeyPress.bind( this ) } ); - this.input.connect( this, { + this.connect( this, { change: 'onInputChange', enter: 'onInputEnter' } ); @@ -16507,15 +16499,23 @@ OO.ui.ComboBoxWidget = function OoUiComboBoxWidget( config ) { } ); // Initialization - this.$element.addClass( 'oo-ui-comboBoxWidget' ).append( this.input.$element ); + this.$input.attr( { + role: 'combobox', + 'aria-autocomplete': 'list' + } ); + // Do not override options set via config.menu.items + if ( config.options !== undefined ) { + this.setOptions( config.options ); + } + // Extra class for backwards-compatibility with ComboBoxWidget + this.$element.addClass( 'oo-ui-comboBoxInputWidget oo-ui-comboBoxWidget' ); this.$overlay.append( this.menu.$element ); this.onMenuItemsChange(); }; /* Setup */ -OO.inheritClass( OO.ui.ComboBoxWidget, OO.ui.Widget ); -OO.mixinClass( OO.ui.ComboBoxWidget, OO.ui.mixin.TabIndexedElement ); +OO.inheritClass( OO.ui.ComboBoxInputWidget, OO.ui.TextInputWidget ); /* Methods */ @@ -16523,7 +16523,7 @@ OO.mixinClass( OO.ui.ComboBoxWidget, OO.ui.mixin.TabIndexedElement ); * Get the combobox's menu. * @return {OO.ui.FloatingMenuSelectWidget} Menu widget */ -OO.ui.ComboBoxWidget.prototype.getMenu = function () { +OO.ui.ComboBoxInputWidget.prototype.getMenu = function () { return this.menu; }; @@ -16531,8 +16531,8 @@ OO.ui.ComboBoxWidget.prototype.getMenu = function () { * Get the combobox's text input widget. * @return {OO.ui.TextInputWidget} Text input widget */ -OO.ui.ComboBoxWidget.prototype.getInput = function () { - return this.input; +OO.ui.ComboBoxInputWidget.prototype.getInput = function () { + return this; }; /** @@ -16541,7 +16541,7 @@ OO.ui.ComboBoxWidget.prototype.getInput = function () { * @private * @param {string} value New value */ -OO.ui.ComboBoxWidget.prototype.onInputChange = function ( value ) { +OO.ui.ComboBoxInputWidget.prototype.onInputChange = function ( value ) { var match = this.menu.getItemFromData( value ); this.menu.selectItem( match ); @@ -16560,10 +16560,10 @@ OO.ui.ComboBoxWidget.prototype.onInputChange = function ( value ) { * @private * @param {jQuery.Event} e Mouse click event */ -OO.ui.ComboBoxWidget.prototype.onClick = function ( e ) { +OO.ui.ComboBoxInputWidget.prototype.onIndicatorClick = function ( e ) { if ( !this.isDisabled() && e.which === 1 ) { this.menu.toggle(); - this.input.$input[ 0 ].focus(); + this.$input[ 0 ].focus(); } return false; }; @@ -16574,10 +16574,10 @@ OO.ui.ComboBoxWidget.prototype.onClick = function ( e ) { * @private * @param {jQuery.Event} e Key press event */ -OO.ui.ComboBoxWidget.prototype.onKeyPress = function ( e ) { +OO.ui.ComboBoxInputWidget.prototype.onIndicatorKeyPress = function ( e ) { if ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) { this.menu.toggle(); - this.input.$input[ 0 ].focus(); + this.$input[ 0 ].focus(); return false; } }; @@ -16587,7 +16587,7 @@ OO.ui.ComboBoxWidget.prototype.onKeyPress = function ( e ) { * * @private */ -OO.ui.ComboBoxWidget.prototype.onInputEnter = function () { +OO.ui.ComboBoxInputWidget.prototype.onInputEnter = function () { if ( !this.isDisabled() ) { this.menu.toggle( false ); } @@ -16599,8 +16599,8 @@ OO.ui.ComboBoxWidget.prototype.onInputEnter = function () { * @private * @param {OO.ui.OptionWidget} item Chosen item */ -OO.ui.ComboBoxWidget.prototype.onMenuChoose = function ( item ) { - this.input.setValue( item.getData() ); +OO.ui.ComboBoxInputWidget.prototype.onMenuChoose = function ( item ) { + this.setValue( item.getData() ); }; /** @@ -16608,25 +16608,22 @@ OO.ui.ComboBoxWidget.prototype.onMenuChoose = function ( item ) { * * @private */ -OO.ui.ComboBoxWidget.prototype.onMenuItemsChange = function () { - var match = this.menu.getItemFromData( this.input.getValue() ); +OO.ui.ComboBoxInputWidget.prototype.onMenuItemsChange = function () { + var match = this.menu.getItemFromData( this.getValue() ); this.menu.selectItem( match ); if ( this.menu.getHighlightedItem() ) { this.menu.highlightItem( match ); } - this.$element.toggleClass( 'oo-ui-comboBoxWidget-empty', this.menu.isEmpty() ); + this.$element.toggleClass( 'oo-ui-comboBoxInputWidget-empty', this.menu.isEmpty() ); }; /** * @inheritdoc */ -OO.ui.ComboBoxWidget.prototype.setDisabled = function ( disabled ) { +OO.ui.ComboBoxInputWidget.prototype.setDisabled = function ( disabled ) { // Parent method - OO.ui.ComboBoxWidget.parent.prototype.setDisabled.call( this, disabled ); + OO.ui.ComboBoxInputWidget.parent.prototype.setDisabled.call( this, disabled ); - if ( this.input ) { - this.input.setDisabled( this.isDisabled() ); - } if ( this.menu ) { this.menu.setDisabled( this.isDisabled() ); } @@ -16634,6 +16631,31 @@ OO.ui.ComboBoxWidget.prototype.setDisabled = function ( disabled ) { return this; }; +/** + * Set the options available for this input. + * + * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }` + * @chainable + */ +OO.ui.ComboBoxInputWidget.prototype.setOptions = function ( options ) { + this.getMenu() + .clearItems() + .addItems( options.map( function ( opt ) { + return new OO.ui.MenuOptionWidget( { + data: opt.data, + label: opt.label !== undefined ? opt.label : opt.data + } ); + } ) ); + + return this; +}; + +/** + * @class + * @deprecated Use OO.ui.ComboBoxInputWidget instead. + */ +OO.ui.ComboBoxWidget = OO.ui.ComboBoxInputWidget; + /** * LabelWidgets help identify the function of interface elements. Each LabelWidget can * be configured with a `label` option that is set to a string, a label node, or a function: @@ -18962,7 +18984,7 @@ OO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.mixin.TabIndexedElement ); /** * MenuSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains options and * is used together with OO.ui.MenuOptionWidget. It is designed be used as part of another widget. - * See {@link OO.ui.DropdownWidget DropdownWidget}, {@link OO.ui.ComboBoxWidget ComboBoxWidget}, + * See {@link OO.ui.DropdownWidget DropdownWidget}, {@link OO.ui.ComboBoxInputWidget ComboBoxInputWidget}, * and {@link OO.ui.mixin.LookupElement LookupElement} for examples of widgets that contain menus. * MenuSelectWidgets themselves are not instantiated directly, rather subclassed * and customized to be opened, closed, and displayed as needed. @@ -18987,7 +19009,7 @@ OO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.mixin.TabIndexedElement ); * @constructor * @param {Object} [config] Configuration options * @cfg {OO.ui.TextInputWidget} [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.ComboBoxWidget ComboBoxWidget} + * 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} @@ -19276,7 +19298,7 @@ OO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) { * The menu's position is automatically calculated and maintained when the menu * is toggled or the window is resized. * - * See OO.ui.ComboBoxWidget for an example of a widget that uses this class. + * See OO.ui.ComboBoxInputWidget for an example of a widget that uses this class. * * @class * @extends OO.ui.MenuSelectWidget diff --git a/resources/lib/oojs-ui/themes/apex/icons-editing-advanced.json b/resources/lib/oojs-ui/themes/apex/icons-editing-advanced.json index f7b38628bc..a6abce5df7 100644 --- a/resources/lib/oojs-ui/themes/apex/icons-editing-advanced.json +++ b/resources/lib/oojs-ui/themes/apex/icons-editing-advanced.json @@ -13,7 +13,7 @@ "ltr": "images/icons/find-ltr.svg", "rtl": "images/icons/find-rtl.svg" } }, - "insert": { "file": "images/icons/insert.svg" }, + "insert": { "file": "images/icons/add.svg" }, "layout": { "file": { "ltr": "images/icons/layout-ltr.svg", "rtl": "images/icons/layout-rtl.svg" diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/add.png b/resources/lib/oojs-ui/themes/apex/images/icons/add.png index 730d1029a4..c0d04e9035 100644 Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/add.png and b/resources/lib/oojs-ui/themes/apex/images/icons/add.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/add.svg b/resources/lib/oojs-ui/themes/apex/images/icons/add.svg index 85e39febb2..62e54965e4 100644 --- a/resources/lib/oojs-ui/themes/apex/images/icons/add.svg +++ b/resources/lib/oojs-ui/themes/apex/images/icons/add.svg @@ -1,6 +1,6 @@ - + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/insert.png b/resources/lib/oojs-ui/themes/apex/images/icons/insert.png deleted file mode 100644 index 97927a84a9..0000000000 Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/insert.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/insert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/insert.svg deleted file mode 100644 index d1e9ba3379..0000000000 --- a/resources/lib/oojs-ui/themes/apex/images/icons/insert.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.png index 8b15525d35..875958b09e 100644 Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.png and b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.svg index e0e4fc0150..22c04ca8ca 100644 --- a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.svg +++ b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.png index f7bab3840f..6ebb399f0d 100644 Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.png and b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.svg index a7be5abee8..d717265745 100644 --- a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.svg +++ b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.png b/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.png index 4b15161cfb..850f15768b 100644 Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.png and b/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.svg b/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.svg index ded0fe1ae9..4512cf5686 100644 --- a/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.svg +++ b/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.svg @@ -1,15 +1,9 @@ - - - - - - - - - - - + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json b/resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json index ef368c23fc..d981728d0c 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json @@ -19,7 +19,7 @@ "ltr": "images/icons/find-ltr.svg", "rtl": "images/icons/find-rtl.svg" } }, - "insert": { "file": "images/icons/insert.svg" }, + "insert": { "file": "images/icons/add.svg" }, "layout": { "file": { "ltr": "images/icons/layout-ltr.svg", "rtl": "images/icons/layout-rtl.svg" diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.png index c65a5c1e37..e81206c449 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.svg index ef2ac5c016..dab0beaad2 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.svg @@ -1,6 +1,6 @@ - + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.png index d6144e3dcb..34a293fa44 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.svg index 2ad5f6019f..35322d00dd 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.svg @@ -1,6 +1,6 @@ - + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add.png index 730d1029a4..c0d04e9035 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add.svg index 85e39febb2..62e54965e4 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add.svg @@ -1,6 +1,6 @@ - + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.png deleted file mode 100644 index dd08bc2a48..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.svg deleted file mode 100644 index 54b8ffd7c2..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert.png deleted file mode 100644 index 97927a84a9..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert.svg deleted file mode 100644 index d1e9ba3379..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.png index 72bbf3478e..0400c192d2 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.svg index 3bda245079..1081b4c244 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.svg @@ -1,6 +1,6 @@ - + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.png index 45daeab428..0a781199fc 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.svg index b84ab8662b..ce25178aa5 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.svg @@ -1,6 +1,6 @@ - + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.png index dcd35ceadb..39e00b100d 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.svg index 770932b8b2..e82e1682ce 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.png index 8b15525d35..875958b09e 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.svg index e0e4fc0150..22c04ca8ca 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.png index eda918c980..6cd62a121c 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.svg index 2ecb331c65..5011541bd6 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.png index f7bab3840f..6ebb399f0d 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.svg index a7be5abee8..d717265745 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.png index bdf5238ea4..5e53c45fe4 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.svg index e050baa359..ec12d0e6bc 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.svg @@ -1,15 +1,9 @@ - - - - - - - - - - - + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.png index 4b15161cfb..850f15768b 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.svg index ded0fe1ae9..4512cf5686 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.svg @@ -1,15 +1,9 @@ - - - - - - - - - - - + + + + +