From: James D. Forrester Date: Wed, 18 Nov 2015 01:25:01 +0000 (-0800) Subject: Update OOjs UI to v0.13.3 X-Git-Tag: 1.31.0-rc.0~8956 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=410dce2ffc8dc46d35d5b4eed32f2f1c349c7025 Update OOjs UI to v0.13.3 Release notes: https://git.wikimedia.org/blob/oojs%2Fui.git/v0.13.3/History.md Change-Id: If131ec0d7663d6493f23b00c9451544767b7807a --- diff --git a/composer.json b/composer.json index bf4d40267c..6d90d3e036 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.2", + "oojs/oojs-ui": "0.13.3", "oyejorge/less.php": "1.7.0.9", "php": ">=5.3.3", "psr/log": "1.0.0", diff --git a/resources/lib/oojs-ui/i18n/ca.json b/resources/lib/oojs-ui/i18n/ca.json index 3077b60537..96d782ee21 100644 --- a/resources/lib/oojs-ui/i18n/ca.json +++ b/resources/lib/oojs-ui/i18n/ca.json @@ -31,5 +31,5 @@ "ooui-selectfile-button-select": "Seleccioneu un fitxer", "ooui-selectfile-not-supported": "El tipus de fitxer no és compatible", "ooui-selectfile-placeholder": "No s'ha seleccionat cap fitxer", - "ooui-selectfile-dragdrop-placeholder": "Deixeu-hi anar el fitxer (o feu clic a navega)" + "ooui-selectfile-dragdrop-placeholder": "Deseu els arxius aquí" } diff --git a/resources/lib/oojs-ui/i18n/hu.json b/resources/lib/oojs-ui/i18n/hu.json index acd9d3b531..cf26cc1aaf 100644 --- a/resources/lib/oojs-ui/i18n/hu.json +++ b/resources/lib/oojs-ui/i18n/hu.json @@ -22,6 +22,8 @@ "ooui-dialog-process-dismiss": "Elrejt", "ooui-dialog-process-retry": "Próbáld újra", "ooui-dialog-process-continue": "Folytatás", + "ooui-selectfile-button-select": "Fájl kiválasztása", "ooui-selectfile-not-supported": "A fájl kiválasztása nincs támogatva", - "ooui-selectfile-placeholder": "Nincs fájl kiválasztva" + "ooui-selectfile-placeholder": "Nincs fájl kiválasztva", + "ooui-selectfile-dragdrop-placeholder": "Dobd ide a fájlt" } diff --git a/resources/lib/oojs-ui/oojs-ui-apex-noimages.css b/resources/lib/oojs-ui/oojs-ui-apex-noimages.css index 15cd4bee1d..4a04b48cba 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.2 + * OOjs UI v0.13.3 * 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-10T23:33:07Z + * Date: 2015-11-18T01:09:30Z */ @-webkit-keyframes oo-ui-progressBarWidget-slide { from { @@ -165,7 +165,6 @@ color: #cccccc; } .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button { - margin: 0.1em 0; padding: 0.2em 0.8em; border-radius: 0.3em; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); @@ -2033,7 +2032,7 @@ margin-right: 0; } .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button { - margin: 0 0 0 0.5em; + margin-left: 0.5em; } .oo-ui-selectFileWidget-info { height: 2.4em; @@ -2516,9 +2515,7 @@ .oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button { box-sizing: border-box; } -.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget, -.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button { - margin: 0; +.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget { width: 2.5em; } .oo-ui-numberInputWidget-minusButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button { @@ -2910,7 +2907,7 @@ -moz-transition: all 250ms ease; transition: all 250ms ease; } -.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready { +.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup { opacity: 1; } .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame { diff --git a/resources/lib/oojs-ui/oojs-ui-apex.js b/resources/lib/oojs-ui/oojs-ui-apex.js index 145bca3e80..1c7db1df73 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.2 + * OOjs UI v0.13.3 * 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-10T23:32:59Z + * Date: 2015-11-18T01:09:23Z */ /** * @class diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css index f5b431cda0..9b82a2919a 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.2 + * OOjs UI v0.13.3 * 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-10T23:33:07Z + * Date: 2015-11-18T01:09:30Z */ @-webkit-keyframes oo-ui-progressBarWidget-slide { from { @@ -198,7 +198,6 @@ padding-left: 2.4em; } .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button { - margin: 0.1em 0; padding: 0.5em 1em; min-height: 1.2em; min-width: 1em; @@ -547,19 +546,19 @@ .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { width: 60%; } +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline { + margin-bottom: 1.25em; +} .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { - padding: 0.5em; + padding: 0.25em; padding-left: 1em; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { - padding: 0.5em 0; -} .oo-ui-fieldLayout.oo-ui-fieldLayout-align-top.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { - padding: 0.5em 0; + padding-top: 0.25em; + padding-bottom: 0.5em; } .oo-ui-fieldLayout > .oo-ui-popupButtonWidget { margin-right: 0; - margin-top: 0.25em; } .oo-ui-fieldLayout > .oo-ui-popupButtonWidget:last-child { margin-right: 0; @@ -2265,7 +2264,7 @@ margin-right: 0; } .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button { - margin: 0 0 0 0.5em; + margin-left: 0.5em; } .oo-ui-selectFileWidget-info { height: 2.4em; @@ -2734,9 +2733,7 @@ .oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button { box-sizing: border-box; } -.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget, -.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button { - margin: 0; +.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget { width: 2.5em; } .oo-ui-numberInputWidget-minusButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button { @@ -3106,7 +3103,7 @@ -moz-transition: all 250ms ease; transition: all 250ms ease; } -.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready { +.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup { opacity: 1; } .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame { diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki.js b/resources/lib/oojs-ui/oojs-ui-mediawiki.js index 757a9655fa..8894ef7fdd 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.2 + * OOjs UI v0.13.3 * 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-10T23:32:59Z + * Date: 2015-11-18T01:09:23Z */ /** * @class diff --git a/resources/lib/oojs-ui/oojs-ui.js b/resources/lib/oojs-ui/oojs-ui.js index 511ec94bff..2565fb5ea2 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.2 + * OOjs UI v0.13.3 * 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-10T23:32:59Z + * Date: 2015-11-18T01:09:23Z */ ( function ( OO ) { @@ -350,7 +350,6 @@ OO.ui.infuse = function ( idOrNode ) { * Alternative implementations of OO.ui.msg may use any substitution system they like, as long as * they support unnamed, ordered message parameters. * - * @abstract * @param {string} key Message key * @param {Mixed...} [params] Message parameters * @return {string} Translated message with parameters substituted @@ -2407,7 +2406,6 @@ OO.ui.Window.prototype.getDir = function () { * To add window content that persists between openings, you may wish to use the #initialize method * instead. * - * @abstract * @param {Object} [data] Window opening data * @return {OO.ui.Process} Setup process */ @@ -2426,7 +2424,6 @@ OO.ui.Window.prototype.getSetupProcess = function () { * provides using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} * methods of OO.ui.Process. * - * @abstract * @param {Object} [data] Window opening data * @return {OO.ui.Process} Ready process */ @@ -2445,7 +2442,6 @@ OO.ui.Window.prototype.getReadyProcess = function () { * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods * of OO.ui.Process. * - * @abstract * @param {Object} [data] Window closing data * @return {OO.ui.Process} Hold process */ @@ -2464,7 +2460,6 @@ OO.ui.Window.prototype.getHoldProcess = function () { * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods * of OO.ui.Process. * - * @abstract * @param {Object} [data] Window closing data * @return {OO.ui.Process} Teardown process */ @@ -2669,22 +2664,18 @@ OO.ui.Window.prototype.close = function ( data ) { * @return {jQuery.Promise} Promise resolved when window is setup */ OO.ui.Window.prototype.setup = function ( data ) { - var win = this, - deferred = $.Deferred(); + var win = this; this.toggle( true ); this.focusTrapHandler = OO.ui.bind( this.onFocusTrapFocused, this ); this.$focusTraps.on( 'focus', this.focusTrapHandler ); - this.getSetupProcess( data ).execute().done( function () { + return this.getSetupProcess( data ).execute().then( function () { // Force redraw by asking the browser to measure the elements' widths win.$element.addClass( 'oo-ui-window-active oo-ui-window-setup' ).width(); win.$content.addClass( 'oo-ui-window-content-setup' ).width(); - deferred.resolve(); } ); - - return deferred.promise(); }; /** @@ -2697,18 +2688,14 @@ OO.ui.Window.prototype.setup = function ( data ) { * @return {jQuery.Promise} Promise resolved when window is ready */ OO.ui.Window.prototype.ready = function ( data ) { - var win = this, - deferred = $.Deferred(); + var win = this; this.$content.focus(); - this.getReadyProcess( data ).execute().done( function () { + return this.getReadyProcess( data ).execute().then( function () { // Force redraw by asking the browser to measure the elements' widths win.$element.addClass( 'oo-ui-window-ready' ).width(); win.$content.addClass( 'oo-ui-window-content-ready' ).width(); - deferred.resolve(); } ); - - return deferred.promise(); }; /** @@ -2721,10 +2708,9 @@ OO.ui.Window.prototype.ready = function ( data ) { * @return {jQuery.Promise} Promise resolved when window is held */ OO.ui.Window.prototype.hold = function ( data ) { - var win = this, - deferred = $.Deferred(); + var win = this; - this.getHoldProcess( data ).execute().done( function () { + return this.getHoldProcess( data ).execute().then( function () { // Get the focused element within the window's content var $focus = win.$content.find( OO.ui.Element.static.getDocument( win.$content ).activeElement ); @@ -2736,10 +2722,7 @@ OO.ui.Window.prototype.hold = function ( data ) { // Force redraw by asking the browser to measure the elements' widths win.$element.removeClass( 'oo-ui-window-ready' ).width(); win.$content.removeClass( 'oo-ui-window-content-ready' ).width(); - deferred.resolve(); } ); - - return deferred.promise(); }; /** @@ -2754,14 +2737,13 @@ OO.ui.Window.prototype.hold = function ( data ) { OO.ui.Window.prototype.teardown = function ( data ) { var win = this; - return this.getTeardownProcess( data ).execute() - .done( function () { - // Force redraw by asking the browser to measure the elements' widths - win.$element.removeClass( 'oo-ui-window-active oo-ui-window-setup' ).width(); - win.$content.removeClass( 'oo-ui-window-content-setup' ).width(); - win.$focusTraps.off( 'focus', win.focusTrapHandler ); - win.toggle( false ); - } ); + return this.getTeardownProcess( data ).execute().then( function () { + // Force redraw by asking the browser to measure the elements' widths + win.$element.removeClass( 'oo-ui-window-active oo-ui-window-setup' ).width(); + win.$content.removeClass( 'oo-ui-window-content-setup' ).width(); + win.$focusTraps.off( 'focus', win.focusTrapHandler ); + win.toggle( false ); + } ); }; /** @@ -2958,7 +2940,6 @@ OO.ui.Dialog.prototype.getActions = function () { * accept steps to the process the parent method provides using the {@link OO.ui.Process#first 'first'} * and {@link OO.ui.Process#next 'next'} methods of OO.ui.Process. * - * @abstract * @param {string} [action] Symbolic name of action * @return {OO.ui.Process} Action process */ @@ -3479,8 +3460,18 @@ OO.ui.WindowManager.prototype.openWindow = function ( win, data ) { manager.opening = null; manager.opened = $.Deferred(); opening.resolve( manager.opened.promise(), data ); + }, function () { + manager.opening = null; + manager.opened = $.Deferred(); + opening.reject(); + manager.closeWindow( win ); } ); }, manager.getReadyDelay() ); + }, function () { + manager.opening = null; + manager.opened = $.Deferred(); + opening.reject(); + manager.closeWindow( win ); } ); }, manager.getSetupDelay() ); } ); @@ -3531,7 +3522,7 @@ OO.ui.WindowManager.prototype.closeWindow = function ( win, data ) { // If the window is currently opening, close it when it's done this.preparingToClose = $.when( this.opening ); // Ensure handlers get called after preparingToClose is set - this.preparingToClose.done( function () { + this.preparingToClose.always( function () { manager.closing = closing; manager.preparingToClose = null; manager.emit( 'closing', win, closing, data ); @@ -4287,6 +4278,132 @@ OO.ui.Theme.prototype.updateElementClasses = function ( element ) { .addClass( classes.on.join( ' ' ) ); }; +/** + * RequestManager is a mixin that manages the lifecycle of a promise-backed request for a widget, such as + * the {@link OO.ui.mixin.LookupElement}. + * + * @class + * @abstract + * + * @constructor + */ +OO.ui.mixin.RequestManager = function OoUiMixinRequestManager() { + this.requestCache = {}; + this.requestQuery = null; + this.requestRequest = null; +}; + +/* Setup */ + +OO.initClass( OO.ui.mixin.RequestManager ); + +/** + * Get request results for the current query. + * + * @return {jQuery.Promise} Promise object which will be passed response data as the first argument of + * the done event. If the request was aborted to make way for a subsequent request, this promise + * may not be rejected, depending on what jQuery feels like doing. + */ +OO.ui.mixin.RequestManager.prototype.getRequestData = function () { + var widget = this, + value = this.getRequestQuery(), + deferred = $.Deferred(), + ourRequest; + + this.abortRequest(); + if ( Object.prototype.hasOwnProperty.call( this.requestCache, value ) ) { + deferred.resolve( this.requestCache[ value ] ); + } else { + if ( this.pushPending ) { + this.pushPending(); + } + this.requestQuery = value; + ourRequest = this.requestRequest = this.getRequest(); + ourRequest + .always( function () { + // We need to pop pending even if this is an old request, otherwise + // the widget will remain pending forever. + // TODO: this assumes that an aborted request will fail or succeed soon after + // being aborted, or at least eventually. It would be nice if we could popPending() + // at abort time, but only if we knew that we hadn't already called popPending() + // for that request. + if ( widget.popPending ) { + widget.popPending(); + } + } ) + .done( function ( response ) { + // If this is an old request (and aborting it somehow caused it to still succeed), + // ignore its success completely + if ( ourRequest === widget.requestRequest ) { + widget.requestQuery = null; + widget.requestRequest = null; + widget.requestCache[ value ] = widget.getRequestCacheDataFromResponse( response ); + deferred.resolve( widget.requestCache[ value ] ); + } + } ) + .fail( function () { + // If this is an old request (or a request failing because it's being aborted), + // ignore its failure completely + if ( ourRequest === widget.requestRequest ) { + widget.requestQuery = null; + widget.requestRequest = null; + deferred.reject(); + } + } ); + } + return deferred.promise(); +}; + +/** + * Abort the currently pending request, if any. + * + * @private + */ +OO.ui.mixin.RequestManager.prototype.abortRequest = function () { + var oldRequest = this.requestRequest; + if ( oldRequest ) { + // First unset this.requestRequest to the fail handler will notice + // that the request is no longer current + this.requestRequest = null; + this.requestQuery = null; + oldRequest.abort(); + } +}; + +/** + * Get the query to be made. + * + * @protected + * @method + * @abstract + * @return {string} query to be used + */ +OO.ui.mixin.RequestManager.prototype.getRequestQuery = null; + +/** + * Get a new request object of the current query value. + * + * @protected + * @method + * @abstract + * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method + */ +OO.ui.mixin.RequestManager.prototype.getRequest = null; + +/** + * Pre-process data returned by the request from #getRequest. + * + * The return value of this function will be cached, and any further queries for the given value + * will use the cache rather than doing API requests. + * + * @protected + * @method + * @abstract + * @param {Mixed} response Response from server + * @return {Mixed} Cached result data + */ +OO.ui.mixin.RequestManager.prototype.getRequestCacheDataFromResponse = null; + /** * The TabIndexedElement class is an attribute mixin used to add additional functionality to an * element created by another class. The mixin provides a ‘tabIndex’ property, which specifies the @@ -5915,6 +6032,9 @@ OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) { // Configuration initialization config = $.extend( { highlightFirst: true }, config ); + // Mixin constructors + OO.ui.mixin.RequestManager.call( this, config ); + // Properties this.$overlay = config.$overlay || this.$element; this.lookupMenu = new OO.ui.FloatingMenuSelectWidget( { @@ -5925,9 +6045,6 @@ OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) { this.allowSuggestionsWhenEmpty = config.allowSuggestionsWhenEmpty || false; - this.lookupCache = {}; - this.lookupQuery = null; - this.lookupRequest = null; this.lookupsDisabled = false; this.lookupInputFocused = false; this.lookupHighlightFirstItem = config.highlightFirst; @@ -5950,6 +6067,10 @@ OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) { this.$overlay.append( this.lookupMenu.$element ); }; +/* Setup */ + +OO.mixinClass( OO.ui.mixin.LookupElement, OO.ui.mixin.RequestManager ); + /* Methods */ /** @@ -6138,49 +6259,9 @@ OO.ui.mixin.LookupElement.prototype.initializeLookupMenuSelection = function () * will not be rejected: it will remain pending forever. */ OO.ui.mixin.LookupElement.prototype.getLookupMenuItems = function () { - var widget = this, - value = this.getValue(), - deferred = $.Deferred(), - ourRequest; - - this.abortLookupRequest(); - if ( Object.prototype.hasOwnProperty.call( this.lookupCache, value ) ) { - deferred.resolve( this.getLookupMenuOptionsFromData( this.lookupCache[ value ] ) ); - } else { - this.pushPending(); - this.lookupQuery = value; - ourRequest = this.lookupRequest = this.getLookupRequest(); - ourRequest - .always( function () { - // We need to pop pending even if this is an old request, otherwise - // the widget will remain pending forever. - // TODO: this assumes that an aborted request will fail or succeed soon after - // being aborted, or at least eventually. It would be nice if we could popPending() - // at abort time, but only if we knew that we hadn't already called popPending() - // for that request. - widget.popPending(); - } ) - .done( function ( response ) { - // If this is an old request (and aborting it somehow caused it to still succeed), - // ignore its success completely - if ( ourRequest === widget.lookupRequest ) { - widget.lookupQuery = null; - widget.lookupRequest = null; - widget.lookupCache[ value ] = widget.getLookupCacheDataFromResponse( response ); - deferred.resolve( widget.getLookupMenuOptionsFromData( widget.lookupCache[ value ] ) ); - } - } ) - .fail( function () { - // If this is an old request (or a request failing because it's being aborted), - // ignore its failure completely - if ( ourRequest === widget.lookupRequest ) { - widget.lookupQuery = null; - widget.lookupRequest = null; - deferred.reject(); - } - } ); - } - return deferred.promise(); + return this.getRequestData().then( function ( data ) { + return this.getLookupMenuOptionsFromData( data ); + }.bind( this ) ); }; /** @@ -6189,27 +6270,18 @@ OO.ui.mixin.LookupElement.prototype.getLookupMenuItems = function () { * @private */ OO.ui.mixin.LookupElement.prototype.abortLookupRequest = function () { - var oldRequest = this.lookupRequest; - if ( oldRequest ) { - // First unset this.lookupRequest to the fail handler will notice - // that the request is no longer current - this.lookupRequest = null; - this.lookupQuery = null; - oldRequest.abort(); - } + this.abortRequest(); }; /** * Get a new request object of the current lookup query value. * * @protected + * @method * @abstract * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method */ -OO.ui.mixin.LookupElement.prototype.getLookupRequest = function () { - // Stub, implemented in subclass - return null; -}; +OO.ui.mixin.LookupElement.prototype.getLookupRequest = null; /** * Pre-process data returned by the request from #getLookupRequest. @@ -6218,28 +6290,24 @@ OO.ui.mixin.LookupElement.prototype.getLookupRequest = function () { * will use the cache rather than doing API requests. * * @protected + * @method * @abstract * @param {Mixed} response Response from server * @return {Mixed} Cached result data */ -OO.ui.mixin.LookupElement.prototype.getLookupCacheDataFromResponse = function () { - // Stub, implemented in subclass - return []; -}; +OO.ui.mixin.LookupElement.prototype.getLookupCacheDataFromResponse = null; /** * Get a list of menu option widgets from the (possibly cached) data returned by * #getLookupCacheDataFromResponse. * * @protected + * @method * @abstract * @param {Mixed} data Cached result data, usually an array * @return {OO.ui.MenuOptionWidget[]} Menu items */ -OO.ui.mixin.LookupElement.prototype.getLookupMenuOptionsFromData = function () { - // Stub, implemented in subclass - return []; -}; +OO.ui.mixin.LookupElement.prototype.getLookupMenuOptionsFromData = null; /** * Set the read-only state of the widget. @@ -6262,6 +6330,27 @@ OO.ui.mixin.LookupElement.prototype.setReadOnly = function ( readOnly ) { return this; }; +/** + * @inheritdoc OO.ui.mixin.RequestManager + */ +OO.ui.mixin.LookupElement.prototype.getRequestQuery = function () { + return this.getValue(); +}; + +/** + * @inheritdoc OO.ui.mixin.RequestManager + */ +OO.ui.mixin.LookupElement.prototype.getRequest = function () { + return this.getLookupRequest(); +}; + +/** + * @inheritdoc OO.ui.mixin.RequestManager + */ +OO.ui.mixin.LookupElement.prototype.getRequestCacheDataFromResponse = function ( response ) { + return this.getLookupCacheDataFromResponse( response ); +}; + /** * PopupElement is mixed into other classes to generate a {@link OO.ui.PopupWidget popup widget}. * A popup is a container for content. It is overlaid and positioned absolutely. By default, each @@ -6593,7 +6682,8 @@ OO.ui.mixin.TitledElement.prototype.setTitledElement = function ( $titled ) { * @chainable */ OO.ui.mixin.TitledElement.prototype.setTitle = function ( title ) { - title = typeof title === 'string' ? OO.ui.resolveMsg( title ) : null; + title = typeof title === 'function' ? OO.ui.resolveMsg( title ) : title; + title = ( typeof title === 'string' && title.length ) ? title : null; if ( this.title !== title ) { if ( this.$titled ) { @@ -7326,28 +7416,22 @@ OO.ui.Tool.static.isCompatibleWith = function () { * * This is an abstract method that must be overridden in a concrete subclass. * + * @method * @protected * @abstract */ -OO.ui.Tool.prototype.onUpdateState = function () { - throw new Error( - 'OO.ui.Tool.onUpdateState not implemented in this subclass:' + this.constructor - ); -}; +OO.ui.Tool.prototype.onUpdateState = null; /** * Handle the tool being selected. * * This is an abstract method that must be overridden in a concrete subclass. * + * @method * @protected * @abstract */ -OO.ui.Tool.prototype.onSelect = function () { - throw new Error( - 'OO.ui.Tool.onSelect not implemented in this subclass:' + this.constructor - ); -}; +OO.ui.Tool.prototype.onSelect = null; /** * Check if the tool is active. @@ -7451,7 +7535,7 @@ OO.ui.Tool.prototype.destroy = function () { * * Individual tools are customized and then registered with a {@link OO.ui.ToolFactory tool factory}, which creates * the tools on demand. Each tool has a symbolic name (used when registering the tool), a title (e.g., ‘Insert - * picture’), and an icon. + * image’), and an icon. * * Individual tools are organized in {@link OO.ui.ToolGroup toolgroups}, which can be {@link OO.ui.MenuToolGroup menus} * of tools, {@link OO.ui.ListToolGroup lists} of tools, or a single {@link OO.ui.BarToolGroup bar} of tools. @@ -7473,23 +7557,23 @@ OO.ui.Tool.prototype.destroy = function () { * // Define the tools that we're going to place in our toolbar * * // Create a class inheriting from OO.ui.Tool - * function PictureTool() { - * PictureTool.parent.apply( this, arguments ); + * function ImageTool() { + * ImageTool.parent.apply( this, arguments ); * } - * OO.inheritClass( PictureTool, OO.ui.Tool ); + * OO.inheritClass( ImageTool, OO.ui.Tool ); * // Each tool must have a 'name' (used as an internal identifier, see later) and at least one * // of 'icon' and 'title' (displayed icon and text). - * PictureTool.static.name = 'picture'; - * PictureTool.static.icon = 'picture'; - * PictureTool.static.title = 'Insert picture'; + * ImageTool.static.name = 'image'; + * ImageTool.static.icon = 'image'; + * ImageTool.static.title = 'Insert image'; * // Defines the action that will happen when this tool is selected (clicked). - * PictureTool.prototype.onSelect = function () { - * $area.text( 'Picture tool clicked!' ); + * ImageTool.prototype.onSelect = function () { + * $area.text( 'Image tool clicked!' ); * // Never display this tool as "active" (selected). * this.setActive( false ); * }; * // Make this tool available in our toolFactory and thus our toolbar - * toolFactory.register( PictureTool ); + * toolFactory.register( ImageTool ); * * // Register two more tools, nothing interesting here * function SettingsTool() { @@ -7541,7 +7625,7 @@ OO.ui.Tool.prototype.destroy = function () { * { * // 'bar' tool groups display tools' icons only, side-by-side. * type: 'bar', - * include: [ 'picture', 'help' ] + * include: [ 'image', 'help' ] * }, * { * // 'list' tool groups display both the titles and icons, in a dropdown list. @@ -7589,28 +7673,28 @@ OO.ui.Tool.prototype.destroy = function () { * // Define the tools that we're going to place in our toolbar * * // Create a class inheriting from OO.ui.Tool - * function PictureTool() { - * PictureTool.parent.apply( this, arguments ); + * function ImageTool() { + * ImageTool.parent.apply( this, arguments ); * } - * OO.inheritClass( PictureTool, OO.ui.Tool ); + * OO.inheritClass( ImageTool, OO.ui.Tool ); * // Each tool must have a 'name' (used as an internal identifier, see later) and at least one * // of 'icon' and 'title' (displayed icon and text). - * PictureTool.static.name = 'picture'; - * PictureTool.static.icon = 'picture'; - * PictureTool.static.title = 'Insert picture'; + * ImageTool.static.name = 'image'; + * ImageTool.static.icon = 'image'; + * ImageTool.static.title = 'Insert image'; * // Defines the action that will happen when this tool is selected (clicked). - * PictureTool.prototype.onSelect = function () { - * $area.text( 'Picture tool clicked!' ); + * ImageTool.prototype.onSelect = function () { + * $area.text( 'Image tool clicked!' ); * // Never display this tool as "active" (selected). * this.setActive( false ); * }; * // The toolbar can be synchronized with the state of some external stuff, like a text * // editor's editing area, highlighting the tools (e.g. a 'bold' tool would be shown as active * // when the text cursor was inside bolded text). Here we simply disable this feature. - * PictureTool.prototype.onUpdateState = function () { + * ImageTool.prototype.onUpdateState = function () { * }; * // Make this tool available in our toolFactory and thus our toolbar - * toolFactory.register( PictureTool ); + * toolFactory.register( ImageTool ); * * // Register two more tools, nothing interesting here * function SettingsTool() { @@ -7676,7 +7760,7 @@ OO.ui.Tool.prototype.destroy = function () { * { * // 'bar' tool groups display tools' icons only, side-by-side. * type: 'bar', - * include: [ 'picture', 'help' ] + * include: [ 'image', 'help' ] * }, * { * // 'menu' tool groups display both the titles and icons, in a dropdown menu. @@ -11401,23 +11485,23 @@ OO.mixinClass( OO.ui.HorizontalLayout, OO.ui.mixin.GroupElement ); * // Define the tools that we're going to place in our toolbar * * // Create a class inheriting from OO.ui.Tool - * function PictureTool() { - * PictureTool.parent.apply( this, arguments ); + * function ImageTool() { + * ImageTool.parent.apply( this, arguments ); * } - * OO.inheritClass( PictureTool, OO.ui.Tool ); + * OO.inheritClass( ImageTool, OO.ui.Tool ); * // Each tool must have a 'name' (used as an internal identifier, see later) and at least one * // of 'icon' and 'title' (displayed icon and text). - * PictureTool.static.name = 'picture'; - * PictureTool.static.icon = 'picture'; - * PictureTool.static.title = 'Insert picture'; + * ImageTool.static.name = 'image'; + * ImageTool.static.icon = 'image'; + * ImageTool.static.title = 'Insert image'; * // Defines the action that will happen when this tool is selected (clicked). - * PictureTool.prototype.onSelect = function () { - * $area.text( 'Picture tool clicked!' ); + * ImageTool.prototype.onSelect = function () { + * $area.text( 'Image tool clicked!' ); * // Never display this tool as "active" (selected). * this.setActive( false ); * }; * // Make this tool available in our toolFactory and thus our toolbar - * toolFactory.register( PictureTool ); + * toolFactory.register( ImageTool ); * * // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a * // little popup window (a PopupWidget). @@ -11441,7 +11525,7 @@ OO.mixinClass( OO.ui.HorizontalLayout, OO.ui.mixin.GroupElement ); * { * // 'bar' tool groups display tools by icon only * type: 'bar', - * include: [ 'picture', 'help' ] + * include: [ 'image', 'help' ] * } * ] ); * @@ -11762,7 +11846,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) { * type: 'list', * label: 'ListToolGroup', * indicator: 'down', - * icon: 'picture', + * icon: 'image', * title: 'This is the title, displayed when user moves the mouse over the list toolgroup', * header: 'This is the header', * include: [ 'settings', 'stuff' ], @@ -16125,7 +16209,7 @@ OO.ui.TextInputWidget.prototype.isAutosizing = function () { */ OO.ui.TextInputWidget.prototype.selectRange = function ( from, to ) { var textRange, isBackwards, start, end, - element = this.$input[ 0 ]; + input = this.$input[ 0 ]; to = to || from; @@ -16135,11 +16219,11 @@ OO.ui.TextInputWidget.prototype.selectRange = function ( from, to ) { this.focus(); - if ( element.setSelectionRange ) { - element.setSelectionRange( start, end, isBackwards ? 'backward' : 'forward' ); - } else if ( element.createTextRange ) { + if ( input.setSelectionRange ) { + input.setSelectionRange( start, end, isBackwards ? 'backward' : 'forward' ); + } else if ( input.createTextRange ) { // IE 8 and below - textRange = element.createTextRange(); + textRange = input.createTextRange(); textRange.collapse( true ); textRange.moveStart( 'character', start ); textRange.moveEnd( 'character', end - start ); @@ -16148,6 +16232,23 @@ OO.ui.TextInputWidget.prototype.selectRange = function ( from, to ) { return this; }; +/** + * Get an object describing the current selection range in a directional manner + * + * @return {Object} Object containing 'from' and 'to' offsets + */ +OO.ui.TextInputWidget.prototype.getRange = function () { + var input = this.$input[ 0 ], + start = input.selectionStart, + end = input.selectionEnd, + isBackwards = input.selectionDirection === 'backward'; + + return { + from: isBackwards ? end : start, + to: isBackwards ? start : end + }; +}; + /** * Get the length of the text input value. * diff --git a/resources/lib/oojs-ui/themes/apex/icons-media.json b/resources/lib/oojs-ui/themes/apex/icons-media.json new file mode 100644 index 0000000000..e1ad562d18 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/icons-media.json @@ -0,0 +1,15 @@ +{ + "prefix": "oo-ui-icon", + "intro": "@import '../../../../src/styles/common';", + "images": { + "image": { "file": "images/icons/image.svg" }, + "imageGallery": { "file": { + "ltr": "images/icons/imageGallery-ltr.svg", + "rtl": "images/icons/imageGallery-rtl.svg" + } }, + "photoGallery": { "file": { + "ltr": "images/icons/imageGallery-ltr.svg", + "rtl": "images/icons/imageGallery-rtl.svg" + } } + } +} diff --git a/resources/lib/oojs-ui/themes/apex/icons.json b/resources/lib/oojs-ui/themes/apex/icons.json index 92791d66f6..829f0c24f1 100644 --- a/resources/lib/oojs-ui/themes/apex/icons.json +++ b/resources/lib/oojs-ui/themes/apex/icons.json @@ -29,7 +29,7 @@ "rtl": "images/icons/move-rtl.svg" } }, "notice": { "file": "images/icons/notice.svg" }, - "picture": { "file": "images/icons/picture.svg" }, + "picture": { "file": "images/icons/image.svg" }, "previous": { "file": { "ltr": "images/icons/move-rtl.svg", "rtl": "images/icons/move-ltr.svg" diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/image.png b/resources/lib/oojs-ui/themes/apex/images/icons/image.png new file mode 100644 index 0000000000..d680396faa Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/image.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/image.svg b/resources/lib/oojs-ui/themes/apex/images/icons/image.svg new file mode 100644 index 0000000000..281ede8ee4 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/image.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.png new file mode 100644 index 0000000000..62c5e102f7 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.svg new file mode 100644 index 0000000000..c0ccea6eba --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.png new file mode 100644 index 0000000000..9e688ed684 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.svg new file mode 100644 index 0000000000..a664aaf9b4 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/picture.png b/resources/lib/oojs-ui/themes/apex/images/icons/picture.png deleted file mode 100644 index d680396faa..0000000000 Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/picture.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/picture.svg b/resources/lib/oojs-ui/themes/apex/images/icons/picture.svg deleted file mode 100644 index 246e130c58..0000000000 --- a/resources/lib/oojs-ui/themes/apex/images/icons/picture.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-media.json b/resources/lib/oojs-ui/themes/mediawiki/icons-media.json index 1c6da5a36d..c7684ec2eb 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons-media.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons-media.json @@ -20,9 +20,13 @@ "ltr": "images/icons/imageLock-ltr.svg", "rtl": "images/icons/imageLock-rtl.svg" } }, + "imageGallery": { "file": { + "ltr": "images/icons/imageGallery-ltr.svg", + "rtl": "images/icons/imageGallery-rtl.svg" + } }, "photoGallery": { "file": { - "ltr": "images/icons/photoGallery-ltr.svg", - "rtl": "images/icons/photoGallery-rtl.svg" + "ltr": "images/icons/imageGallery-ltr.svg", + "rtl": "images/icons/imageGallery-rtl.svg" } }, "play": { "file": { "ltr": "images/icons/play-ltr.svg", diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons.json b/resources/lib/oojs-ui/themes/mediawiki/icons.json index a79b329539..01a4e0dbfc 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons.json @@ -24,7 +24,7 @@ "add": { "file": "images/icons/add.svg", "variants": [ "constructive" ] }, "advanced": { "file": "images/icons/advanced.svg" }, "alert": { "file": "images/icons/alert.svg", "variants": [ "warning" ] }, - "cancel": { "file": "images/icons/cancel.svg" }, + "cancel": { "file": "images/icons/cancel.svg", "variants": [ "destructive" ] }, "check": { "file": "images/icons/check.svg", "variants": [ "constructive", "progressive", "destructive" ] }, "circle": { "file": "images/icons/circle.svg", "variants": [ "constructive" ] }, "close": { "file": { @@ -51,7 +51,10 @@ "rtl": "images/icons/move-rtl.svg" } }, "notice": { "file": "images/icons/notice.svg" }, - "picture": { "file": "images/icons/picture.svg" }, + "picture": { "file": { + "ltr": "images/icons/image-rtl.svg", + "rtl": "images/icons/image-ltr.svg" + } }, "previous": { "file": { "ltr": "images/icons/move-rtl.svg", "rtl": "images/icons/move-ltr.svg" diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.png new file mode 100644 index 0000000000..08385b57be Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.svg new file mode 100644 index 0000000000..3496acf24a --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png index 08bf391be3..fc724c8907 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.svg index 81558e0224..9b39350d8b 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png index 58bf564367..23c2331bcf 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg index 72ebf10670..dfcbd8bb45 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png index b5b7fb523e..98452606b7 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.svg index c00d0c4a86..f962cbff6e 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png index 73ee31a353..1260378bca 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg index ca53d9b59d..2251c0e7ae 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png index e56944a052..32b7d1a8d5 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.svg index da2ddaa775..cfcf60dd1b 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.svg @@ -1,7 +1,7 @@ - - - + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png index 7ed8b7e712..a071e4e263 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg index b775ddff29..1b60cf0015 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg @@ -1,7 +1,7 @@ - - - + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png index eba653f7b9..bfc56253ab 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.svg index 7b7beaa7d1..8b20a50c38 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.svg @@ -1,7 +1,7 @@ - - - + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png index 74b6ef39f8..ad22a4e260 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg index a7128be26f..b86d49993a 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg @@ -1,7 +1,7 @@ - - - + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.png new file mode 100644 index 0000000000..6bb8581397 Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.svg new file mode 100644 index 0000000000..c507c203a2 --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.png new file mode 100644 index 0000000000..db12fcd6e8 Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.svg new file mode 100644 index 0000000000..95e28d423a --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.png new file mode 100644 index 0000000000..964d8b1672 Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.svg new file mode 100644 index 0000000000..caa4098756 --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.png new file mode 100644 index 0000000000..ca56cc376c Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.svg new file mode 100644 index 0000000000..be12662a01 --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png index 50e7889fef..20cda897d5 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.svg index 10d770a918..b14b67d43e 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.svg @@ -1,4 +1,7 @@ - + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png index c636a8dff8..973e36320a 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.svg index b41ff43518..50a928a5c0 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.svg @@ -1,4 +1,7 @@ - + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png index 1b1029bca7..2058be0c5c 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.svg index c821cd1f6b..275dfc2e3d 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.svg @@ -1,4 +1,7 @@ - + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png index 59439aa851..d160db59cb 100644 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.svg index 29004d4d2b..e8ac3ed8b4 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.svg +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.svg @@ -1,4 +1,7 @@ - + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png deleted file mode 100644 index 2c23c3c558..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.svg deleted file mode 100644 index 8647752b3a..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png deleted file mode 100644 index 38a90e222f..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg deleted file mode 100644 index 17eee1760d..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png deleted file mode 100644 index ea51cad951..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.svg deleted file mode 100644 index 283bd5d008..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png deleted file mode 100644 index bcb805d2fb..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg deleted file mode 100644 index 24a4e12b20..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png deleted file mode 100644 index f63756bc2c..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.svg deleted file mode 100644 index a969967927..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png deleted file mode 100644 index d680396faa..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.svg deleted file mode 100644 index 246e130c58..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - -